Mein Lua-Initialisierungsskript öffnet einige Dateien, in die während des Laufs geschrieben wird. Ich möchte zusätzlich einige letzte Bytes in diese Dateien schreiben, wenn LuaTeX mit der Verarbeitung des gesamten Codes fertig ist.
Dies ließe sich anscheinend am besten mit einem Rückruf erreichen, ich habe jedoch keinen gefunden, der meinen Anforderungen vollständig entspricht:
stop_run
(§ 7.1.5.3) funktioniert, aber:- wird nicht im Entwurfsmodus (
--draftmode
) ausgeführt; - ersetzt die Standardmeldung zum Jobende, was ich lieber vermeiden würde;
- scheint trotz seines verlockenden Namens zur Informationsberichterstattung gedacht zu sein.
- wird nicht im Entwurfsmodus (
finish_pdffile
(§ 7.1.6.1) funktioniert, aber:- wird auch nicht im Entwurfsmodus ausgeführt;
- funktioniert nur mit der PDF-Ausgabe. Mir wäre eine ausgabeunabhängige Lösung sehr viel lieber.
Die aktuelle Version derLuaTeX-Handbuchfür eine detailliertere Beschreibung dieser Rückrufe.
\AtEndDocument
ist nicht geeignet, weil:
- die Dateien sind auch danach noch beschreibbar
\end{document}
. - TeX-Code kann zum Zeitpunkt des Lua-Initialisierungsskripts noch nicht verarbeitet werden (d. h.
tex.sprint
und Freunde sind nicht verfügbar). Ich könnte zwar einen anderen Rückruf einbinden, um ein auszuführentex.sprint( appropiate_catcode_table , [[\AtEndDocument{ \directlua{ work() } }]] )
, aber das scheint zu indirekt.
Könnten Sie mir bitte helfen?