如何使用 pdflatex 產生位元組一致的文件?

如何使用 pdflatex 產生位元組一致的文件?

當我在同一個 .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'}
\pdf資訊{
    /CreationDate (\fixedpdfdate)
     /ModDate (\fixedpdfdate) }

將其放在文件的開頭:存在字典被分成幾個區塊寫出的風險。

後記 謝謝問題的重複項在 tex.stackexchange.com 上詢問時,我了解到/ID在 PDF 末尾傳遞的值startxref在調用 Pdftex 時仍然會發生變化。您可以破壞 的內容,顯然不會產生不良影響:將標識符/ID之間的 PDF 文字編輯為: /IDstartxref

/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.

相關內容