Wie produziere ich mit pdflatex durchgängig konsistente Dokumente?

736
Conley Owens

Wenn ich pdflatex zweimal auf dieselbe .tex-Datei starte, führt dies zu ähnlichen Ergebnissen wie in meinen Augen, aber der Inhalt der Datei unterscheidet sich geringfügig (wie bei einer MD5-Prüfsumme angezeigt wird). Gibt es ein Flag, das ich an pdflatex übergeben kann, das die Ausgabe konsistent hält?

Welche umgebungsempfindlichen Metadaten könnten in meinem PDF enthalten sein? Wie kann ich das kontrollieren?

Update: Bei einem diff -a finde ich Folgendes:

> /CreationDate (D:20100413035938Z) < /ModDate (D:20100413035938Z) --- > /CreationDate (D:20100413041320Z) > /ModDate (D:20100413041320Z) 106c106 < /ID [<41D2805AE64117914EDF6E09554EABAE> <41D2805AE64117914EDF6E09554EABAE>] >> --- > /ID [<071832DAA2E77E13D96460479D9C6664> <071832DAA2E77E13D96460479D9C6664>] >> 
4

2 Antworten auf die Frage

2
Charles Stewart

Sie können den Inhalt des PDF-Info-Wörterbuchs mit dem Pdftex-Grundelement ändern \pdfinfo:

\ def \ fixedpdfdate  \ pdfinfo { / Erstellungsdatum (\ fixedpdfdate) / ModDate (\ fixedpdfdate)} 

Setzen Sie dies am Anfang des Dokuments richtig: Es besteht die Gefahr, dass das Wörterbuch in mehreren Abschnitten geschrieben wird.

Postscript Dank eines Duplikats der auf tex.stackexchange.com gestellten Frage erfuhr ich, dass der /IDam Ende der PDF-Datei übergebene Wert startxrefimmer noch vom Aufruf zum Aufruf von Pdftex wechselt. Sie können den Inhalt von /ID, scheinbar ohne negative Auswirkungen, aufbessern : Bearbeiten Sie den Text der PDF-Datei zwischen dem /IDBezeichner in startxrefetwa wie folgt :

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

Ich bezweifle, dass es möglich ist, sicherzustellen, dass / ID innerhalb von Pdftex unverändert bleibt, aber vielleicht ist dies in Luatex möglich.

1
mrucci

Take a look at the -I option of diff:

 -I PATTERN --ignore-matching-lines=PATTERN Ignore changes whose lines all match PATTERN. 
Vielen Dank. Das ist genau das, was ich wollte, außer dass ich / ID nicht kontrollieren kann. Wenn ich es zu pdftex hinzufüge, wird die ID zweimal gedruckt - einmal so, wie ich es habe, und will, wie pdflatex es will. Conley Owens vor 14 Jahren 0
Theoretisch müssen Sie die ID nicht kontrollieren, da Sie Muster ignorieren können (dh `-I" \ ID. * "`). Die Option -I ist nicht gut dokumentiert, so dass ich Ihnen nicht mehr sagen kann. mrucci vor 14 Jahren 0