
Когда я запускаю pdflatex на одном и том же .tex-файле дважды, он выдает похожие результаты на мой взгляд, но содержимое файла немного отличается (как показывает контрольная сумма 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
Вы можете изменить содержимое информационного словаря PDF-файла, используя \pdfinfo
примитив Pdftex:
\def\fixedpdfdate{D:20100413000000+00'00'} \pdfinfo{ /ДатаСоздания (\fixedpdfdate) /ModDate (\fixedpdfdate) }
Поместите это в самом начале документа: есть риск, что словарь будет написан несколькими частями.
Постскриптум
Благодарядубликат вопросабудучи заданным на tex.stackexchange.com, я узнал, что /ID
значение, переданное в конце PDF, startxref
все еще меняется от вызова к вызову Pdftex. Вы можете затереть содержимое /ID
, по-видимому, без вредных последствий: отредактируйте текст PDF между /ID
идентификатором и startxref
чем-то вроде:
/ИД [<B74AEC0FBDE0F25D7D2F5099291FEC6F> <B74AEC0FBDE0F25D7D2F5099291FEC6F>] >> startxrefк:
/ID [<0> <0>] >> startxref
Я сомневаюсь, что возможно гарантировать неизменность /ID из Pdftex, но, возможно, это можно сделать в Luatex.
решение2
Взгляните на -I
вариант diff
:
-I PATTERN --ignore-matching-lines=PATTERN
Ignore changes whose lines all match PATTERN.