Como faço para produzir documentos consistentes com o pdflatex?

4

Quando executo o pdflatex no mesmo arquivo .tex duas vezes, ele produz resultados semelhantes aos meus olhos, mas o conteúdo do arquivo é um pouco diferente (conforme revelado com uma soma de verificação md5). Existe algum sinalizador que eu possa passar para o pdflatex que manterá a saída consistente?

Quais metadados sensíveis ao ambiente podem estar no meu pdf? Como posso controlar isso?

Atualização: Fazendo um diff -a, eu acho o seguinte:

> /CreationDate (D:20100413035938Z)
< /ModDate (D:20100413035938Z)
---
> /CreationDate (D:20100413041320Z)
> /ModDate (D:20100413041320Z)
106c106
< /ID [<41D2805AE64117914EDF6E09554EABAE> <41D2805AE64117914EDF6E09554EABAE>] >>
---
> /ID [<071832DAA2E77E13D96460479D9C6664> <071832DAA2E77E13D96460479D9C6664>] >>
    
por Conley Owens 13.04.2010 / 06:06

2 respostas

2

Você pode alterar o conteúdo do dicionário de informações do PDF usando o \pdfinfo primitivo de Pdftex:

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

Coloque isso logo no começo do documento: há algum risco de o dicionário ser escrito em vários pedaços.

Postscript Graças a uma pergunta duplicada que foi feita em tex.stackexchange.com, aprendi que o valor /ID passado no final do PDF para startxref ainda muda de invocação para invocação de Pdftex. Você pode estragar o conteúdo de /ID , aparentemente sem efeitos negativos: edite o texto do PDF entre o /ID identifier e startxref de algo como:

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

Eu duvido que seja possível garantir que o / ID seja imutável de dentro do Pdftex, mas talvez isso possa ser feito no Luatex.

    
por 14.04.2010 / 11:32
1

Dê uma olhada na opção -I de diff :

   -I PATTERN  --ignore-matching-lines=PATTERN
          Ignore changes whose lines all match PATTERN.
    
por 13.04.2010 / 07:51