是否可以避免重新编译 LaTeX 文档未修改的部分?

是否可以避免重新编译 LaTeX 文档未修改的部分?

我的 LaTeX 文档中有一些 TikZ 代码。每当我编辑 LaTeX 文档中的其他部分时,我都会重新编译它。但重复重新编译未修改的 TikZ 代码可能会很耗时。

我想知道是否有某种方法可以避免重新编译 LaTeX 文档中未修改的部分?如果存在这样的方法,它们不仅适用于未更改的 TikZ 代码,还适用于未更改的非 TikZ 代码吗?

感谢致敬!

答案1

你可以用克蒂克兹,将它们保存为 pdf(导出为 pdf)然后将它们作为图形包含在内。

每次更改数据时,只需覆盖之前的 pdf。您还可以获得“实时”预览,这可以大大提高工作效率。

编辑

这种方法的问题在于,为了保持一致性,如果您在某个时候决定更改字体大小或类似内容,则必须更改 Ktikz 使用的序言,并重新编译所有图表。这不是一项艰巨的工作,但要牢记在心。最好只做一次,就在文档最终编译之前。

最终,最好的解决方案是有一个包来检查 tikz 源文件自上次编译以来是否已被修改,如果有更改,则自动重新编译源代码(使用主文件前言)并将 pdf 作为图形包含在内。

这样,编译将会很快(因为每次只需要重新编译几个文件),而且一致(因为相同的前言将在任何地方使用)。

或许,最终/草稿选项也会有用。

附言:如果有人知道任何可以实现这种工作流程的东西,我会非常感兴趣 :)

更新

我编写了一个 Python(ver. 2)脚本来自动化该过程。

它必须与 TeX 主文件放在同一个文件夹中。它会检查tikz扩展名的文件并检查其修改时间。

第一次运行时,它会将 tikz 源文件的名称及其修改时间存储在 pickled 字典中,并在读取主 TeX 文件的序言后对其进行编译。生成的 pdf 以 tikz 源代码文件名命名,并移动到与 tikz 源文件相同的(子)文件夹中。

在后续运行中,它会检查新的 tikz 文件和旧 tikz 文件的修改时间的变化,并根据需要重新编译。

它需要更多的测试,但据我所知它运行良好。

您可以在BitBucket

答案2

您可以使用\include\includeonly仅编译文档的“活动”部分。请参阅这个答案我尽力解释这是如何工作的。请注意,使用\include会导致分页符;如果这不是您想要的,您可以按照这种方式工作,在编辑的后期用 s 替换 s \include\input

相关内容