随着文档的增长,绘图的数量也在增长。我使用的是 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
。