我的 Lua 初始化腳本會開啟一些在執行過程中寫入的檔案。當 LuaTeX 處理完所有程式碼時,我想另外向它們寫入一些最後一個位元組。
看來這最好是透過回調來完成,但我還沒有找到任何完全適合我的需求的:
stop_run
(§ 7.1.5.3) 有效,但:- 未在草稿模式下運作 (
--draftmode
); - 替換預設的作業結束訊息,我希望避免這樣做;
- 儘管它的名字很誘人,但它似乎是為了資訊報告而設計的。
- 未在草稿模式下運作 (
finish_pdffile
(§ 7.1.6.1) 有效,但:- 也不以草稿模式運作;
- 僅適用於 PDF 輸出。我非常喜歡與輸出無關的解決方案。
查看目前版本LuaTeX手冊有關這些回調的更詳細說明。
\AtEndDocument
不適合,因為:
- 之後仍然可以寫入文件
\end{document}
。 - 在 Lua 初始化腳本時,TeX 程式碼還不能被處理(即
tex.sprint
和朋友不可用)。雖然我可以掛接另一個回調來執行 atex.sprint( appropiate_catcode_table , [[\AtEndDocument{ \directlua{ work() } }]] )
,但這似乎太間接。
請你幫助我好嗎?