4

Когда я дважды запускаю 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>] >>

2 ответа2

2

Вы можете изменить содержимое информационного словаря PDF, используя примитив Pdftex \pdfinfo :

\def\fixedpdfdate{D:20100413000000+00’00’}
\pdfinfo{
    /CreationDate (\fixedpdfdate)
     /ModDate (\fixedpdfdate) }

Поместите это прямо в начале документа: есть некоторый риск, что словарь будет записан в несколько частей.

Постскриптум Благодаря дублированию вопроса , задаваемого на tex.stackexchange.com, я узнал, что значение /ID передаваемое в конце PDF в startxref все еще меняется от вызова к вызову Pdftex. Вы можете скопировать содержимое /ID , очевидно, без вредных последствий: отредактируйте текст PDF между /ID для startxref из чего-то вроде:

/ID [<B74AEC0FBDE0F25D7D2F5099291FEC6F> <B74AEC0FBDE0F25D7D2F5099291FEC6F>] >>
startxref
to: /ID [<0> <0>] >> startxref

Я сомневаюсь, что возможно гарантировать, что /ID не меняется изнутри Pdftex, но, возможно, это можно сделать в Luatex.

1

Посмотрите на опцию -I diff:

   -I PATTERN  --ignore-matching-lines=PATTERN
          Ignore changes whose lines all match PATTERN.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .