作业结束时运行的回调

作业结束时运行的回调

我的 Lua 初始化脚本打开了一些在运行过程中写入的文件。当 LuaTeX 处理完所有代码后,我还想向这些文件写入最后的一些字节。

似乎最好通过回调来实现这一点,但我还没有找到完全适合我需要的回调:

  • stop_run(§7.1.5.3)有效,但是:

    • 未以草稿模式运行(--draftmode);
    • 替换默认的工作结束消息,我希望避免这样做;
    • 尽管名字很诱人,但它似乎是用于信息报告的。
  • finish_pdffile(§7.1.6.1)有效,但是:

    • 也不以草稿模式运行;
    • 仅适用于 PDF 输出。我更喜欢与输出无关的解决方案。

查看当前版本的LuaTeX 手册以获得这些回调的更详细描述。

\AtEndDocument不适合,因为:

  • 之后仍可写入文件\end{document}
  • 在 Lua 初始化脚本时,TeX 代码还不能被处理(例如,tex.sprint和朋友不可用)。虽然我可以挂接另一个回调来执行tex.sprint( appropiate_catcode_table , [[\AtEndDocument{ \directlua{ work() } }]] ),但这似乎过于间接。

请你帮助我好吗?

相关内容