如何检查生成的 LaTeX PDF 是否相同?

如何检查生成的 LaTeX PDF 是否相同?

我有一个预处理器,可以生成一些输入并将其编译成 LaTeX,然后编译成 PDF。

我想要进行一些回归测试,以便能够判断我是否意外破坏了代码中的某些内容。

从命令行检查两个 latex 生成的文件是否相同的最佳方法是什么?(我可以检查全部来源,但有几百个,所以我想要一个更快的解决方案。

我一直在尝试使用 pythons filecmp.cmp 方法 - 但总是会发现新生成的文件与几秒钟前生成的文件不一样 - 我认为这是因为在 pdf 的某处有一个时间戳编码...

答案1

LaTeX 团队有一个LaTeX 回归套件本身也可以从 CTAN 获得l3build。这不是基于对 PDF 文件进行二进制比较,而是基于使用文件在“TeX 端”比较结果.log。这可以通过刻意记录编程结果(“这个宏是否产生了正确的标记?”)或通过装箱排版材料并检查箱子的全部内容来完成。后一种方法可以用于整页(通过设置\showoutput),因此将拾取 TeX 发送到 PDF 的任何内容中的任何更改。重要的是,这不包括“变量”数据,例如运行时间或引擎版本。该l3build脚本还旨在规范化系统/引擎之间的各种“可接受”变化,以便测试可以专注于重要的变化。

答案2

您是否尝试过 DiffPDF(http://www.qtrac.eu/diffpdf.html)?适用于 Windows 和 macOSX 机器。它远非完美,但在某些情况下确实很有用。

帕斯卡

答案3

事实证明我想要做的是使用乳胶膨胀将所有源放入一个文件中,然后比较两个 tex 文件。这正是我需要的 :)

相关内容