使用独立包减少 tikz 编译时间

使用独立包减少 tikz 编译时间

我在一份报告中使用了standaloneMartin Scharrer 编写的软件包。我读到Martin 的回答是,如果文档使用[mode=buildnew]{standalone}包加载,那么对于使用 包含的每张图片\includestandalone[<options>]{<filename>},使用 进行的编译pdflatex -shell-escape main 将编译所有\includesstandalone'ed 文件编译为图形并构建这些图形如果源文件较新比现有的图形文件。

我的问题是,如果文件tikzpic.tex包含来自另一个数据文件的绘图数据,这是否也有效?因为如果在数据文件中进行了更改,那么包是否standalone仍将包含旧数据绘图的 pdf?

答案1

虽然[mode=buildnew] 选项standalone非常巧妙,但它不具有传递性。也就是说,它调用重新编译仅当源文件本身比 PDF 更新时,但不会将此测试递归扩展到源文件的进一步依赖项。

一种可行的但未经测试的解决方法可能是使用[mode=build],即始终调用编译器,但使用make(使用适当的Makefile)或作为独立的编译器可执行文件。(在文档中latexmk查找latex+latexoptions或)。commandstandalone

因此,依赖关系处理将委托给makelatexmk,它们考虑递归依赖关系。然而,代价是编译时间会略长,因为外部编译器总是被调用——即使它不需要做任何工作。

相关内容