我的 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