有没有办法在文档之外编译 tikz 图形?

有没有办法在文档之外编译 tikz 图形?

随着文档的增长,绘图的数量也在增长。我使用的是 PGF/TikZ,每个绘图都是\begin{tikzpicture}和之间的内容\end{tikzpicture}。每次编译文档时,每个绘图也会编译。我最近注意到,在使用库时,Lindenmayersystems内存是一个问题!必须有一种在文档外部编译绘图的方法,并让文档引用编译的结果,而不是将绘图的源代码驻留在文档中。这将允许编译复杂的绘图,并将所有可用资源用于编译该绘图。此外,如何才能拥有包含数百张绘图的大型文档而不出现内存问题?

我正在使用 Windows 7、MiKTeX 2.9、TeXMaker 3.3.1。

答案1

为此,请使用 TikZexternal库。在序言中:

\usetikzlibrary{external}\tikzexternalize

您需要确保 LaTeX 可以使用带有-enable-write18或 的 外部命令-shell-escape。这会将每个 TikZ 图形转换为自己的 PDF 图像,然后 TikZ 知道要抓取该图像(即您不需要更改任何代码)。有关更多信息,请参阅第 32 节PGF/TikZ 手册

这种方法的好处是 LaTeX 会单独排版每个图形,这样内存开销就会被分解成更小的块,您就不太可能用完内存。您还会注意到,每次排版都会在图形生成后节省一些时间。

答案2

如果内存是一个问题(甚至是编译时),你应该考虑tikzpicture在自己的文档中创建 s,并结合standalone文档类在其默认preview模式下(从standalone文档):

该类默认使用该preview包来创建一个输出文件,该文件仅包含图片而没有额外的边距、页码或任何其他内容。

然后,一旦创建了图片,就可以使用graphicx\includegraphics

tikzpicture或者,在空白页上创建(使用\pagestyle{empty})允许您使用pdfcrop修剪任何边界空格。随后将其包含在主文档中也是通过 完成的\includegraphics

相关内容