Latex, TikZ и отдельная компиляция глав и рисунков

У меня довольно большой латексный документ с большим количеством цифр TikZ внутри. У меня есть привычка к частой перекомпиляции, и требуется вечность, чтобы скомпилировать ее с помощью pdflatex. Цифры в TikZ занимают большую часть времени.

мой вопрос: каков наилучший способ разбить документ на отдельные файлы tex (рисунки/главы) для достижения отдельной компиляции рисунков и глав, отдельных глав PDF-файлов и всего pdf-файла документа ?

4 ответов


вы пробовали компилировать каждое изображение самостоятельно, а затем включать их в свой 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 для включения в документ, либо вы можете использовать команду \input, чтобы включить ее в свой основной документ в качестве кода tikz добавление

\usepackage{standalone}

в вашем основном документе (вместе с пакетами и библиотеками tikz), а затем

\begin{figure}
\input{tikzfile.tex}
\end{figure}

есть, возможно, лучший способ (imho)кэш tikz-картинки. Добавьте следующие строки преамбула:

\usetikzlibrary{external}
\tikzexternalize[prefix=i/]

после запуска pdflatex вы увидите все изображения в подкаталоге ./я. Если вы обновите код TikZ-изображения, просто выбросьте соответствующий pdf-файл, и он будет восстановлен. Для получения дополнительной информации см. руководство PFG / TikZ section 32.4 Объективируя Графика и, возможно,32.5 использование внешней графики без pgf Установлено.


Как насчет размещения каждой главы в отдельном файле, а затем с помощью \include чтобы поместить их в какой-то главный файл? Тогда вы можете использовать \includeonly только для компиляции главы, над которой вы сейчас работаете. Это, по крайней мере, сэкономит время.

Я ожидаю, что какое-то решение на основе makefile будет еще лучше, чем это, но я ничего не знаю о makefiles...


обычно я применяю Latex только к части файла: Emacs и несколько других редакторов Latex позволяют вам области компилятора: С Auctex вы можете запустить TeX-pin-region, чтобы указать текущую главу, а затем TeX-command-region для запуска Latex в выбранной области.

традиционный способ сделать это-разрезать части большого файла на меньшие части, которые \included, а затем либо прокомментируйте части, над которыми вы не хотите работать, либо поместите некоторую макрологию в начало и конец каждого файла, что позволяет их компилировать отдельно.