背景
希望使用 生成 PDF latexmk
。从基于 Web 的应用程序自动生成的 LaTeX 文档将包含许多大图像、Tikz 图形、目录、多个索引等。
默认调用latexmk
将在每次运行中包含图像pdflatex
。为了提高性能,建议使用-draftmode
。
问题
程序latexmk
无法确定下一次运行pdflatex
是否是生成完成文档所需的最后一次运行。
通过简单的测试,不使用时差别为 10 秒-draftmode
,使用时差别为 0.9 秒-draftmode
:这是一个数量级,非常显著。
问题
如何确定pdflatex
生成 PDF 文档所需的确切运行次数,以便pdflatex
除最后一次调用之外的调用都可以使用-draftmode
?
谢谢你!
想法
- 可以传入一个等于所需运行次数的数字。我宁愿不使用这种方法,因为动态确定是理想的。
- 在最后执行额外的运行
pdflatex
,这不在-draftmode
。
答案1
在评论中您指出该文档是在结构上生成和约束的,因此可能无需排版就可以预先确定运行次数。
如果有任何\pageref
交叉引用,那么最好排版直到 LaTeX 确定引用稳定,因为排版页码和文档的分页之间存在循环依赖关系,在病理情况下可能根本无法解决。
如果没有页面引用,则一次运行 latex 就会将所有参考编号放入辅助文件中,因此\ref
第二次运行时所有内容都应该是正确的。
开头的目录实际上是页面引用的集合,因此如果您有目录并想限制所需的运行次数,请将目录放在带有(比如说)罗马页码的前言部分,后跟强制分页符,以便主要文档内容的分页和编号不受目录长度的影响。