(我不确定我是否正确地提出了这个问题。如果愿意,请修改。)
我有一个包含大量 Tikz 图形和大量文本的文档。图形已完成。我现在正在处理文本。如何避免每次编译文档时都编译图形,同时仍将图形保留在文档中?有没有“使用以前编译的图形”的方法?我正在使用 TexStudio。
我有一种倾向/强迫/痴迷,每半分钟左右编译一次,以便查看添加的文本是什么样子。拥有许多 Tikz 图形只会使过程效率低下。我不想处理我的倾向/强迫/痴迷。
答案1
实际上有几种选择。哪种最适合您取决于您的工作流程和文档结构,以及您的偏好。例如,如果您还有非 Ti钾Z/PGF 图像需要编译,更通用的解决方案可能更可取。如果你的所有代码都是内联的,你唯一关心的是 Ti钾Z/PGF,然后是 Ti钾Z/PGF 特定解决方案可能效果更好。
external
钛钾Z 库
无论您的图片代码是以内联方式提供还是在补充文件中提供,这都是有效的。
仅限于 Ti钾Z/PGF 图片例如tikzpicture
或forest
基于tikzpicture
或的环境\tikz
。
将以下内容添加到您的序言中。
\usetikzlibrary{external}
\tikzexternalenable
然后在启用 shell escape 的情况下进行编译。例如,使用pdflatex --shell-escape
而不是pdflatex
。您需要的确切选项可能有所不同,但想法是您需要关闭通常限制 TeX 写入任意文件能力的安全限制。
第一次编译时,编译时间实际上会更长。但是,后续编译会更快。默认情况下,外部化将包含图像,而不是编译提供的图片代码
- 的代码
tikzpicture
没有改变; - 存在该图像的编译版本;
- 它可以,即启用 shell 转义等等。
有些结构不欢迎外化。在这种情况下,你可以关闭这些图片。有几种方法可以做到这一点。一种是使用
\tikzexternaldisable
和
\tikzexternalenable
将其重新打开。
例如,如果你有使用pgfplots
或的图片,请注意这些包支持外部化forest
通过他们自己的选项,您应该使用适当的选项或包库来启用此功能。
overlay
对于需要或 的图片,必须关闭外部化remember picture
。例如,对于使用tikzmark
库 或类似库的代码,必须将其关闭。
standalone
该解决方案不仅限于 Ti钾Z/PGF 图片,但也可以用于使用其他包创建的图像。
它要求您将图片的代码放入外部文件中,然后再放\input
入主文档中。
默认情况下,standalone
每次编译每张图片的代码。但是,您可以更改其模式,以便编译外部图像,然后将其包含在后续编译中。