DokumentumgenerálásÁllapot: 2026-10
Reprodukálható PDF-kimenet
Hogyan változnak a commitolt minta-PDF-ek csak tartalmi változáskor, hogy egy újrabuild ne hagyjon maga után nyolc módosított bináris fájlt.
Kutatási kérdés: Hogyan változhat egy commitolt PDF csak akkor, ha a tartalma valóban változott?
Projektigény
A minta-PDF-ek commitolva vannak, hogy a README előnézete és a letöltés build nélkül is működjön. Ha minden build új időbélyeget ír a PDF-be, minden futás nyolc módosított bináris fájlt mutat, és elvész a valódi változás.
Módszer és ellenőrzés
- Fordítás rögzített SOURCE_DATE_EPOCH értékkel és FORCE_SOURCE_DATE=1 beállítással.
- latexmk -g, amely akkor is lefuttatja a fordítást, ha a latexmk nem lát változást.
- Két egymás utáni teljes build összevetése fájlhash alapján.
- Minden build után pdfinfo az oldalszámhoz, a levélnél szószámlálás.
Eredmények
- A két build hash-egyezően azonos PDF-eket adott, így a commitolt kimenet csak a tartalommal együtt változik.
- FORCE_SOURCE_DATE=1 nélkül a pdfTeX a SOURCE_DATE_EPOCH-ot csak a metaadatokban használja, a szövegben megjelenő dátumokban, például a \today-ben nem.
- A latexmk nem észleli a környezeti változók, például az időbélyeg vagy a TEXINPUTS változását, ezért kell a -g kapcsoló.
- A mérhető korlátok, az egyoldalas CV és a levél nyelvenkénti szószám-tartománya, a build részeként futnak, nem utólagos kézi ellenőrzésként.
Döntés
Rögzített időbélyeg a buildben, latexmk -g, és build utáni oldal- és szószám-ellenőrzés, amely figyelmeztet, de nem állítja le a buildet, mert a hosszabb CV is használható kimenet.
Korlátok és nyitott kérdések
- Egy gépen, egy TeX-telepítéssel ellenőrizve; más TeX Live verzió eltérő bájtokat adhat (nem ellenőrzött).
- Automatikus PDF-build CI-ban még nincs.