当我对同一个 .tex 文件运行 pdflatex 两次时,它产生的结果在我看来是相似的,但文件的内容略有不同(如 md5 校验和所示)。我是否可以将任何标志传递给 pdflatex 以保持输出一致?
我的 PDF 中可能包含哪些环境敏感元数据?我该如何控制它?
更新:执行 diff -a 后,我发现以下内容:
> /CreationDate (D:20100413035938Z)
< /ModDate (D:20100413035938Z)
---
> /CreationDate (D:20100413041320Z)
> /ModDate (D:20100413041320Z)
106c106
< /ID [<41D2805AE64117914EDF6E09554EABAE> <41D2805AE64117914EDF6E09554EABAE>] >>
---
> /ID [<071832DAA2E77E13D96460479D9C6664> <071832DAA2E77E13D96460479D9C6664>] >>
答案1
您可以使用 Pdftex 的原语更改 PDF 的信息字典的内容\pdfinfo
:
\def\fixedpdfdate{D:20100413000000+00'00'} \pdfinfo{ /创建日期 (\fixedpdfdate) /ModDate (\fixedpdfdate) }
把这个放在文档的开头:字典可能会被分成几块写出来,有一定的风险。
后记
谢谢问题的重复在 tex.stackexchange.com 上被问到,我了解到/ID
PDF 末尾传递的值startxref
在 Pdftex 的每次调用中仍然会发生变化。您可以破坏 的内容,显然不会产生不良影响:编辑 PDF标识符/ID
之间的文本,如下所示:
/ID
startxref
/ID [<B74AEC0FBDE0F25D7D2F5099291FEC6F> <B74AEC0FBDE0F25D7D2F5099291FEC6F>] >> 开始引用到:
/ID [<0> <0>] >> startxref
我怀疑是否有可能确保 /ID 在 Pdftex 内部保持不变,但也许可以在 Luatex 中做到这一点。
答案2
看一下-I
以下选项diff
:
-I PATTERN --ignore-matching-lines=PATTERN
Ignore changes whose lines all match PATTERN.