Латекс, тикз и раздельный сборник глав и рисунков
У меня довольно большой латексный документ с большим количеством фигур TikZ внутри. У меня есть привычка частой перекомпиляции, и сборка с использованием pdflatex занимает вечность. Цифры в TikZ занимают большую часть времени.
Мой вопрос заключается в том, как лучше всего разделить документ на отдельные текстовые файлы (рисунки / главы), чтобы добиться отдельной компиляции рисунков и глав, отдельных глав PDF и целого файла PDF документа?
4 ответа
Вы пытались скомпилировать каждое изображение отдельно, а затем включить его в свой текстовый файл в формате 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 для включения в ваш документ, либо вы можете использовать команду \input, чтобы включить его в ваш основной документ в виде кода tikz, добавив
\usepackage{standalone}
в вашем основном документе (вместе с пакетами и библиотеками tikz), а затем
\begin{figure}
\input{tikzfile.tex}
\end{figure}
Существует, возможно, лучший способ (imho) для кэширования tikz-картинок. Добавьте следующие строки в вашу преамбулу:
\usetikzlibrary{external}
\tikzexternalize[prefix=i/]
После запуска pdflatex вы увидите все картинки в подкаталоге./i . Если вы обновите код тикз-картинки, просто выбросьте соответствующий pdf-файл, и он будет восстановлен. Для получения дополнительной информации см. Руководство по PFG/TikZ, раздел 32.4 Внешняя графика и, возможно, 32.5 Использование внешней графики без установленного pgf.
Как насчет помещения каждой главы в отдельный файл, а затем с помощью \include
положить их в какой-то мастер-файл? Тогда вы можете использовать \includeonly
только для составления главы, над которой вы сейчас работаете. Это должно сэкономить время, по крайней мере.
Я ожидаю, что какое-то решение на основе make-файлов будет даже лучше, чем это, но я ничего не знаю о make-файлах...
Обычно я делаю это, применяя Latex только к части файла: Emacs и несколько других редакторов Latex позволяют вам компилировать регионы: с Auctex вы можете запустить TeX-pin-region, чтобы указать текущую главу, а затем TeX-command-region для запуска Latex в выбранном регионе.
Традиционный способ сделать это - разрезать части большого файла на более мелкие части, которые \include
d, а затем либо закомментируйте части, над которыми вы не хотите работать, либо поместите некоторую макрологию в начало и конец каждого файла, которая позволяет их компилировать отдельно.