Callback a ser executado no final do trabalho

Callback a ser executado no final do trabalho

Meu script de inicialização Lua abre alguns arquivos que são gravados durante a execução. Eu gostaria de escrever adicionalmente alguns últimos bytes para eles quando o LuaTeX terminar de processar todo o código.

Parece que isso seria melhor realizado com um retorno de chamada, mas não encontrei nenhum que atenda totalmente às minhas necessidades:

  • stop_run(§ 7.1.5.3) funciona, mas:

    • não é executado em modo rascunho ( --draftmode);
    • substitui a mensagem padrão de fim de trabalho, o que eu preferiria evitar;
    • parece destinado à divulgação de informações, apesar de seu nome tentador.
  • finish_pdffile(§ 7.1.6.1) funciona, mas:

    • também não é executado no modo rascunho;
    • funciona apenas com a saída PDF. Eu preferiria muito uma solução independente de saída.

Veja a versão atual doManual do LuaTeXpara obter uma descrição mais detalhada desses retornos de chamada.

\AtEndDocumentnão é adequado porque:

  • os arquivos ainda podem ser gravados depois de \end{document}.
  • O código TeX ainda não pode ser processado no momento do script de inicialização Lua (ou seja, tex.sprinte amigos não estão disponíveis). Embora eu pudesse conectar outro retorno de chamada para fazer um tex.sprint( appropiate_catcode_table , [[\AtEndDocument{ \directlua{ work() } }]] ), isso parece excessivamente indireto.

Você poderia por favor me ajudar?

informação relacionada