external钛钾Z 库

external钛钾Z 库

(我不确定我是否正确地提出了这个问题。如果愿意,请修改。)

我有一个包含大量 Tikz 图形和大量文本的文档。图形已完成。我现在正在处理文本。如何避免每次编译文档时都编译图形,同时仍将图形保留在文档中?有没有“使用以前编译的图形”的方法?我正在使用 TexStudio。

我有一种倾向/强迫/痴迷,每半分钟左右编译一次,以便查看添加的文本是什么样子。拥有许多 Tikz 图形只会使过程效率低下。我不想处理我的倾向/强迫/痴迷。

答案1

实际上有几种选择。哪种最适合您取决于您​​的工作流程和文档结构,以及您的偏好。例如,如果您还有非 TiZ/PGF 图像需要编译,更通用的解决方案可能更可取。如果你的所有代码都是内联的,你唯一关心的是 TiZ/PGF,然后是 TiZ/PGF 特定解决方案可能效果更好。

externalZ 库

无论您的图片代码是以内联方式提供还是在补充文件中提供,这都是有效的。

仅限于 TiZ/PGF 图片例如tikzpictureforest基于tikzpicture或的环境\tikz

将以下内容添加到您的序言中。

\usetikzlibrary{external}
\tikzexternalenable

然后在启用 shell escape 的情况下进行编译。例如,使用pdflatex --shell-escape而不是pdflatex。您需要的确切选项可能有所不同,但想法是您需要关闭通常限制 TeX 写入任意文件能力的安全限制。

第一次编译时,编译时间实际上会更长。但是,后续编译会更快。默认情况下,外部化将包含图像,而不是编译提供的图片代码

  1. 的代码tikzpicture没有改变;
  2. 存在该图像的编译版本;
  3. 它可以,即启用 shell 转义等等。

有些结构不欢迎外化。在这种情况下,你可以关闭这些图片。有几种方法可以做到这一点。一种是使用

\tikzexternaldisable

\tikzexternalenable

将其重新打开。

例如,如果你有使用pgfplots或的图片,请注意这些包支持外部化forest通过他们自己的选项,您应该使用适当的选项或包库来启用此功能。

overlay对于需要或 的图片,必须关闭外部化remember picture。例如,对于使用tikzmark库 或类似库的代码,必须将其关闭。

standalone

该解决方案不仅限于 TiZ/PGF 图片,但也可以用于使用其他包创建的图像。

它要求您将图片的代码放入外部文件中,然后再放\input入主文档中。

默认情况下,standalone每次编译每张图片的代码。但是,您可以更改其模式,以便编译外部图像,然后将其包含在后续编译中。

相关内容