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.
- não é executado em modo rascunho (
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.
\AtEndDocument
nã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.sprint
e amigos não estão disponíveis). Embora eu pudesse conectar outro retorno de chamada para fazer umtex.sprint( appropiate_catcode_table , [[\AtEndDocument{ \directlua{ work() } }]] )
, isso parece excessivamente indireto.
Você poderia por favor me ajudar?