Latex、TikZ以及章节和图形的分开编译

9

我有一个相当大的LaTeX文档,其中包含许多TikZ图形。我习惯于经常重新编译,但使用pdflatex编译它需要很长时间,TikZ中的图形需要大部分时间。

我的问题是,将文档拆分为单独的tex文件(图表/章节)以实现图表和章节的分别编译、分别生成章节pdf文件以及整个文档pdf文件,最好的方法是什么?

4个回答

12

你尝试过将每个图片单独编译为pdf文件,然后在TeX文件中包含它们,而不是使用TikZ代码吗?您可以使用standalone宏包,以使图片的大小与您需要的完全一致。因此:

\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}

请注意,如果您不想在主文档头中污染\tikzstyle命令,您可以将它们放在\begin{tikzpicture}选项中,例如这里 - jmon12

8

我认为有一种可能更好的方法来缓存tikz图片。在你的导言部分添加以下几行:

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

在运行pdflatex后,您将在子目录./i中看到所有图片。 如果您更新tikz图片的代码,请直接删除其相应的pdf文件,它将被重新生成。有关更多信息,请参阅PFG/TikZ手册第32.4节“外部化图形”,以及可能的第32.5节“在未安装pgf的情况下使用外部图形”。


2
如何将每个章节放入单独的文件中,然后使用\include将它们放入某个主文件中?然后您可以使用\includeonly只编译当前正在工作的章节。这样至少可以节省一些时间。
我希望有一种基于makefile的解决方案会比这更好,但我不知道关于makefile的任何内容...

1
我通常的做法是只对文件的一部分应用Latex:Emacs和其他几个Latex编辑器允许您编译区域:使用Auctex,您可以运行TeX-pin-region来指定当前章节,然后运行TeX-command-region在所选区域上运行Latex。
传统的方法是将大文件的部分剪切成较小的部分,然后将它们\include,然后要么注释掉您不想处理的部分,要么在每个文件的开头和结尾放置一些宏代码,以便它们可以单独编译。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接