
Em outras palavras, o conjunto de todos os arquivos de texto compilados em tex forma um monóide sob concatenação?
Recentemente, me envolvi um pouco com texto simples e meus sentidos algébricos de aranha foram imediatamente formigados. Pensei em pesquisar a resposta no Google com facilidade, mas até agora não encontrei nada.
Responder1
Primeiro, um arquivo tex simples termina com \bye
(e um arquivo latex termina com \end{document}
), e tudo depois disso é ignorado. Portanto, sua afirmação está trivialmente correta, pois o segundo arquivo é ignorado após a concatenação.
Se considerarmos \bye
um "metacomando" descartado em uma concatenação, sua afirmação está incorreta.
Considere os arquivos
\def\aa{0}
\aa
\bye
e
\def\bb{0}
\bb
\ifx\aa\bb\cc\fi
\bye
Cada um deles compila, mas a concatenação não:
\def\aa{0}
\aa
\def\bb{0}
\bb
\ifx\aa\bb\cc\fi
\bye
produz
! Undefined control sequence.
l.5 \ifx\aa\bb\cc
\fi
?
! Emergency stop.
A razão é que indefinido \aa
é indefinido no segundo arquivo, mas é igual ao \bb
concatenado.
Responder2
No TeX simples, um arquivo formatado corretamente terminará \bye
informando ao compilador para parar de procurar por entrada. Portanto, a concatenação compilará apenas o primeiro arquivo e o resto será ignorado. (Então não.) No LaTeX, um arquivo compilável terminará \end{document}
novamente para informar ao compilador que foi concluído. Portanto, apenas o primeiro arquivo da concatenação será compilado e o restante será ignorado. Além disso, o segundo arquivo terá um preâmbulo agora em um local que geraria um erro de compilação se eu fosse visto. (Então não.)
Não são discutidos os impactos adicionais de pacotes, fontes, arquivos inseridos, etc.