Engine extension: \TectonicCodaTokens

I’m planning to implement a new extension to the TeX language in the upcoming release of Tectonic. It will be a new token list, \TectonicCodaTokens.

This token list is basically going to be the partner of \everyjob. While \everyjob gets inserted at the beginning of every job, \TectonicCodaTokens will get inserted if Tectonic gets to the end of its main input file without encountering a \end or a \dump. I am making a conscious choice to have a wordy name since it’s nice to have descriptive names and this isn’t something that regular users should be encountering.

This feature is required, I think, to get fully boilerplate-free LaTeX processing, which I’ll demonstrate in an upcoming post. Boilerplate-free processing isn’t foundationally important, and it can be emulated with \input and wrapper files, but I think it might actually make a significant difference in how people design their LaTeX documents.

Note that it is only possible to implement this feature since we’ve broken the traditional TeX user experience in which the engine asks for input from the terminal if the main input file ends without seeing \end or \dump.

I should note that \TectonicCodaTokens is not redundant with \everyeof — the \everyeof tokens are inserted whenever any input file is finished, so you can’t use it to specify automatic behavior that should only happen at the very end of document processing.