让 pdflatex/Lualatex 编写 PDF“检查点”

让 pdflatex/Lualatex 编写 PDF“检查点”

假设您有一个程序在计算时正在编写报告,并且该报告是一个包含文本、TikZ 图形等的 LaTeX 文件,需要将其编译为 PDF 才能正确查看。

通过执行如下命令

lualatex "\\input{report}\\end{document}"

可以在编写报告的同时对其进行编译。文档中的图形包含许多元素,因此如果程序的执行速度比 lualtex 的编译速度快,则不会在程序结束之前终止。由于在编译完成之前无法查看 Lualatex 生成的 PDF 文件(通过 xpdf、evince 等),这意味着在编写“report.tex”的程序完成之前无法检查报告的开头。

我可以让(lua)latex 写检查站到 PDF 文件,以便在 Lualatex 尚未完成时就可以查看其第一页?

这样就可以在程序运行时对其进行调试。我指的是程序的计算时间,所以这会很有帮助。


一些细节:我不坚持使用 lualatex,但 pdflatex 经常在报告中耗尽内存(“TeX 容量超出,抱歉 [主内存大小=5000000]“)。即使在几分钟后停止创建报告的程序,lualatex 仍然需要 30 多分钟来编译报告。虽然创建报告的程序当然可以重写为使用“更便宜”的 LaTeX 命令,但这是我想避免的优化,因为重点是保持程序简单——报告实际上用于调试这个程序。

答案1

未完成PDF 文件不是为了查看而存在的。

PDF 文件由对象和对对象的引用组成。对象在 PDF 文件中的放置顺序可能任意。它们的确切字节位置在表中定义xref,通常位于 PDF 文件的末尾。

有方法可以优化 PDF 文件,以加快 Web 浏览速度,尝试将 PDF 对象按线性顺序排列,这样它们确实可以在 PDF 文件完全下载之前呈现。但是,这种优化通常是由其他程序(例如)完成的后处理步骤,pdfopt并且只能在写入整个 PDF 文件(第一次)后应用。

相关内容