Latex、TikZ和章节和图表的单独汇编

Latex、TikZ和章节和图表的单独汇编,latex,build,build-process,pdflatex,tikz,Latex,Build,Build Process,Pdflatex,Tikz,我有相当大的Latex文档,里面有很多TikZ数字。我有一个频繁重新编译的习惯,使用pdflatex编译它需要花费很长时间。TikZ中的数字占用了大部分时间 我的问题是,将文档拆分为单独的tex文件(图/章)以实现图和章的单独编译、单独的章节pdf和整个文档pdf文件的最佳方式是什么?您是否尝试过单独编译每张图片,然后将它们作为pdf而不是tikz代码包含在tex文件中?您可以单独使用该软件包,以便图片的大小与您所需的完全一致。因此: \documentclass{standalone} \u

我有相当大的Latex文档,里面有很多TikZ数字。我有一个频繁重新编译的习惯,使用pdflatex编译它需要花费很长时间。TikZ中的数字占用了大部分时间


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

您是否尝试过单独编译每张图片,然后将它们作为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}

我通常这样做的方式是将Latex应用于文件的一部分:Emacs和其他几个Latex编辑器允许您编译区域:使用Auctex,您可以运行TeX pin region以指定当前章节,然后运行TeX command region以在所选区域上运行Latex


传统的方法是将大文件的一部分剪切成较小的部分,这些部分是
\include
d,然后注释掉您不想处理的部分,或者在每个文件的开头和结尾放一些宏,这样可以单独编译。

将每个章节放在一个单独的文件中,然后使用
\include
将它们放在一些主文件中如何?然后,您可以使用
\includeonly
仅编译当前正在编写的章节。这至少可以节省一些时间


我希望某种基于makefile的解决方案会比这更好,但我对makefiles一无所知……

有一种可能更好的方法(imho)来缓存tikz图片。将以下行添加到 序言:

\usetikzlibrary{external}
\tikzexternalize[prefix=i/]
pdflatex运行后,您将在子目录中看到所有图片。/i。 如果更新tikz图片的代码,只需扔掉相应的pdf文件即可重新生成。有关更多信息,请参阅PFG/TikZ手册第32.4节外部化图形 并且可能在未安装pgf的情况下使用外部图形32.5