Латекс, тикз и раздельный сборник глав и рисунков - PullRequest
9 голосов
/ 14 июля 2010

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

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

Ответы [ 4 ]

7 голосов
/ 15 июля 2010

Вы пытались скомпилировать каждое изображение отдельно и затем включить его в свой текстовый файл в формате 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}
6 голосов
/ 12 мая 2011

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

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

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

2 голосов
/ 15 июля 2010

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

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

1 голос
/ 15 июля 2010

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

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

...