Como inúmeras perguntas/respostas foram observadas no passado, o LaTeX exige que você compile pelo menos duas vezes quando há referências, TOC/LOF, etc.Quais são as situações em que é necessário compilar um documento mais de uma vez?
Os esforços para evitar esta etapa extra foram bem sucedidos em casos seleccionados e muito específicos, como Como posso evitar compilar duas vezes? No entanto, é uma prática que hoje consideramos um dado adquirido, simplesmente desenvolvendo scripts e macros para automatizar esse processo o suficiente para aliviar a dor.
A resposta para[esta pergunta sobre como passar para a página anterior]alude às restrições de memória dos primeiros computadores, sendo fundamentais para as razões pelas quais o TeX foi originalmente construído da maneira que foi. As informações que podem ser necessárias posteriormente são simplesmente armazenadas em qualquer número de arquivos auxiliares e referidas quando a próxima passagem for feita. Depois que uma página está "completa", ela é esquecida pelo compilador.
Muitas vezes pensei:Dados os avanços no processamento do computador e nas capacidades de memória, é possível/realista/planejado para o LaTeX manter mais documentos na memória para evitar ter que compilar várias vezes?
Manter o documento inteiro na memória consumiria muita memória e talvez alguns documentos muito grandes não pudessem seguir esse caminho (talvez fosse um comportamento opcional). Mas parece que muitos aspectos da composição tipográfica se beneficiariam com esse tipo de compilação aprimorada.
Sei que isso vai ao cerne do que é (La)TeX e como ele foi construído. Não é um patch simples; provavelmente requer uma reescrita de todo o núcleo (ou não?). Certamente há outros problemas que envolvem isso também (isso realmente reduziria o tempo de compilação?); Eu ficaria muito feliz em receber uma referência a outro lugar que discuta esse assunto ou assuntos relacionados. (Isso foi pensado para o LaTeX3?)
Responder1
Como Joseph disse, isso não é um recurso do látex, é um recurso do tex (compartilhado com xetex e luatex), portanto não há uma maneira viável de fazer isso em algo chamado látex. Também não creio que seja verdade que, em geral, as restrições de memória sejam tão diferentes: as expectativas das pessoas aumentam ainda mais rápido que a capacidade do hardware. Veja a necessidade de externalização do tikz, pois um documento com algumas imagens do tikz pode em breve consumir grandes quantidades de memória, mesmo em hardware moderno.
Mas está tudo realmente em um nome: qualquer sistema que permita referências diretas e reversas está armazenando as informaçõesem algum lugar. Você pode pensar no látex como armazená-lo no arquivo .aux no disco como sendo muito dos anos 1970, mas o arquivo .aux pode estar em um SSD ou em um sistema de arquivos virtual na memória principal e acessá-lo não precisa ser nenhum obstáculo prático, e como você comentou que pode substituir "latex" por make ou latexmk ou arara ou context ou um arquivo em lote que roda latex apenas 4 vezes, então o efeito final para o usuário pode ser de compilar em uma única passagem se for isso que deseja.
É claro que fazer isso de uma só vez só será realmente benéfico se você puder escrever o documento completo sem erros e nunca precisar processá-lo mais de uma vez. Se você estiver usando um ciclo de edição/compilação/visualização, isso será apenas um incômodo, pois retarda o ciclo.