ジョブの終了時に実行されるコールバック

ジョブの終了時に実行されるコールバック

私の Lua 初期化スクリプトは、実行中に書き込まれるいくつかのファイルを開きます。LuaTeX がすべてのコードの処理を完了したときに、最後のバイトをいくつか追加で書き込みたいと思います。

これはコールバックで実現するのが最適と思われますが、私のニーズに完全に合うものは見つかりませんでした。

  • stop_run(§ 7.1.5.3) は機能しますが、

    • ドラフトモードでは実行されません(--draftmode);
    • デフォルトのジョブ終了メッセージを置き換えますが、これは避けたいものです。
    • 魅力的な名前にもかかわらず、情報報告を目的としているようです。
  • finish_pdffile(§ 7.1.6.1) は機能しますが、

    • ドラフトモードでも実行されません。
    • PDF 出力でのみ機能します。出力に依存しないソリューションを強く希望します。

現在のバージョンを見るLuaTeX マニュアルこれらのコールバックの詳細な説明については、こちらをご覧ください。

\AtEndDocument以下の理由で適していません:

  • ファイルはその後も書き込むことができます\end{document}
  • TeX コードは、Lua 初期化スクリプトの時点ではまだ処理できません (つまり、tex.sprintおよび の仲間は利用できません)。 を実行するために別のコールバックにフックすることもできますがtex.sprint( appropiate_catcode_table , [[\AtEndDocument{ \directlua{ work() } }]] )、これは間接的すぎるようです。

手伝っていただけませんか?

関連情報