【发布时间】:2011-03-15 23:56:09
【问题描述】:
我有相当大的 Latex 文档,里面有很多 TikZ 人物。我有频繁重新编译的习惯,使用 pdflatex 编译它需要很长时间。 TikZ 中的数字占用了大部分时间。
我的问题是将文档拆分为单独的tex文件(图形/章节)以实现图形和章节的单独编译,单独的章节pdf和整个文档pdf文件的最佳方法是什么?
【问题讨论】:
标签: latex build build-process pdflatex tikz
我有相当大的 Latex 文档,里面有很多 TikZ 人物。我有频繁重新编译的习惯,使用 pdflatex 编译它需要很长时间。 TikZ 中的数字占用了大部分时间。
我的问题是将文档拆分为单独的tex文件(图形/章节)以实现图形和章节的单独编译,单独的章节pdf和整个文档pdf文件的最佳方法是什么?
【问题讨论】:
标签: latex build build-process pdflatex tikz
您是否尝试过自己编译每张图片,然后将它们作为 pdf 而不是 tikz 代码包含在您的 tex 文件中?您可以单独使用该包,这样图片将是您需要的确切尺寸。所以:
\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}
【讨论】:
缓存 tikz-pictures 可能有更好的方法(恕我直言)。在您的 序言:
\usetikzlibrary{external}
\tikzexternalize[prefix=i/]
运行 pdflatex 后,您将在子目录 ./i 中看到所有图片。 如果您更新 tikz-picture 的代码,只需丢弃其相应的 pdf 文件,它将重新生成。有关更多信息,请参阅 PFG/TikZ 手册部分 32.4 Externalizing Graphics 并且可能 32.5 在未安装 pgf 的情况下使用外部图形。
【讨论】:
如何将每一章放在一个单独的文件中,然后使用\include 将它们放入某个主文件中?然后您可以使用\includeonly 仅编译您当前正在编写的章节。这样至少可以节省一些时间。
我希望某种基于 makefile 的解决方案会比这更好,但我对 makefile 一无所知...
【讨论】:
我通常这样做的方式是将 Latex 应用于文件的一部分:Emacs 和其他几个 Latex 编辑器允许您编译区域:使用 Auctex,您可以运行 TeX-pin-region 来指定当前章节,并且然后 TeX-command-region 在所选区域上运行 Latex。
执行此操作的传统方法是将大文件的一部分切成\included 的较小部分,然后注释掉您不想处理的部分,或者在开头和结尾放置一些宏观允许它们单独编译的每个文件。
【讨论】: