Латекс, ТикЗ и отдельная подборка глав и рисунков
-
15-09-2020 - |
Вопрос
У меня есть довольно большой латексный документ со множеством фигурок TikZ внутри.У меня есть привычка к частой перекомпиляции, и компиляция с использованием pdflatex занимает целую вечность.Фигурки в TikZ занимают большую часть времени.
Мой вопрос: как лучше всего разделить документ на отдельные текстовые файлы (рисунки/главы), чтобы добиться отдельной компиляции рисунков и глав, отдельных PDF-файлов глав и всего PDF-файла документа?
Решение
Вы пытались компилировать каждое изображение самостоятельно, а затем в том числе в своем файле Tex в качестве PDF, а не код Tikz?Вы можете использовать автономный пакет, чтобы изображение было точным размером, который вам нужен.Итак:
\documentclass{standalone}
\usepackage{tikz,pgf} %and any other packages or tikzlibraries your picture needs
\begin{document}
\begin{tikzpicture}
%your tikz code here
\end{tikzpicture}
\end{document}
.
Хорошая вещь в этом заключается в том, что вы можете включить компиляционный этот документ непосредственно для получения фигуры PDF, чтобы включить в ваш документ, или вы можете использовать команду \ вход, чтобы включить его в основной документ в качестве кода TikzДобавление
\usepackage{standalone}
.
В вашем основном документе (вместе с пакетами и библиотеками Tikz), а затем
\begin{figure}
\input{tikzfile.tex}
\end{figure}
. Другие советы
Есть возможно, лучше (imho) для cache tikz-картинки .Добавьте следующие строки в вашем Преамбула:
\usetikzlibrary{external}
\tikzexternalize[prefix=i/]
.
После pdflatex-run вы увидите все изображения в подкаталоге ./i. Если вы обновите код Tikz-изображения, просто выбросьте соответствующий PDF-файл, и он будет регенерирован.Для получения дополнительной информации см. Руководство по разделу PFG / TIKZ 32.4 Externalization Graphics И, возможно, 32,5 с использованием внешней графики без PGF установлен .
Как насчет положения каждой главы в отдельный файл, а затем используя \include
, чтобы положить их в какой-то основной файл?Затем вы можете использовать \includeonly
, чтобы только собрать главу, на которой вы сейчас работаете.Это должно сэкономить некоторое время, по крайней мере.
Я ожидаю, что какое-то решение на основе Makefile будет даже лучше, чем это, но я ничего не знаю о Makefiles ...
Обычно я это делаю, применяя Latex только к части файла:Emacs и некоторые другие редакторы Latex позволяют компилировать регионы:с Auctex вы можете запустить TeX-pin-region, чтобы указать текущую главу, а затем TeX-command-region, чтобы запустить Latex в выбранном регионе.
Традиционный способ сделать это — разрезать части большого файла на более мелкие части, которые затем \include
d, а затем либо закомментируйте части, над которыми вы не хотите работать, либо поместите некоторую макрологию в начало и конец каждого файла, что позволит их компилировать отдельно.