作業結束時運行的回調

作業結束時運行的回調

我的 Lua 初始化腳本會開啟一些在執行過程中寫入的檔案。當 LuaTeX 處理完所有程式碼時,我想另外向它們寫入一些最後一個位元組。

看來這最好是透過回調來完成,但我還沒有找到任何完全適合我的需求的:

  • stop_run(§ 7.1.5.3) 有效,但:

    • 未在草稿模式下運作 ( --draftmode);
    • 替換預設的作業結束訊息,我希望避免這樣做;
    • 儘管它的名字很誘人,但它似乎是為了資訊報告而設計的。
  • finish_pdffile(§ 7.1.6.1) 有效,但:

    • 也不以草稿模式運作;
    • 僅適用於 PDF 輸出。我非常喜歡與輸出無關的解決方案。

查看目前版本LuaTeX手冊有關這些回調的更詳細說明。

\AtEndDocument不適合,因為:

  • 之後仍然可以寫入文件\end{document}
  • 在 Lua 初始化腳本時,TeX 程式碼還不能被處理(即tex.sprint和朋友不可用)。雖然我可以掛接另一個回調來執行 a tex.sprint( appropiate_catcode_table , [[\AtEndDocument{ \directlua{ work() } }]] ),但這似乎太間接。

請你幫助我好嗎?

相關內容