4 ms·
"You should not have to recompile your document 2 or 3 times... References / bibliographies don't work the first time through..." If you think about it, you'll
by mcswell 5y ago
"You should not have to recompile your document 2 or 3 times... References / bibliographies don't work the first time through..." If you think about it, you'll probably see why. Cross-references can't be set until you know what they refer to, which may be later on in the doc ("see section 8 below"), and setting such references (or citations) can change the page numbering. If the multiple passes (which are analogous to the multiple passes a compiler makes) bother you, then use a tool that hides them from your eyes, like arara. That's probably what Word does under the hood.
- colejohnson66 5y agoI think what OP is suggesting is that the multiple passes should be done by the executable itself. They shouldn’t have to be abstracted away be some other tool. TeX already does two or so passes for layout IIRC.
- DemocracyFTW 5y agoThis, totally. Nobody cares—or should be forced to care—whether a given compiler does something in a single or multiple passes, what counts is ergonomics and overall speed. FWIW when I still worked with TeX (XeLaTeX) I soon built my own wrapper for the executable that simply compared the sha1sum of the relevant *.aux file from before with that from after the run and would loop until the checksum wouldn't change any more.
- gjvc 5y agoSeems like rubber [1] is a commonly-used wrapper for this sort of thing. Works well in a makefile. [1] https://gitlab.com/latex-rubber/rubber/ https://gitlab.com/latex-rubber/rubber/