
Mit anderen Worten: Bildet die Menge aller unter Tex kompilierten Textdateien bei Verkettung ein Monoid?
Ich habe mich vor kurzem ein bisschen mit Plain Tex beschäftigt und meine algebraischen Spinnensinne haben sofort geweckt. Ich dachte, ich könnte die Antwort ganz einfach googeln, aber bisher habe ich nichts gefunden.
Antwort1
Erstens endet eine einfache Tex-Datei mit \bye
(und eine Latex-Datei endet mit \end{document}
), und alles danach wird ignoriert. Ihre Aussage ist also trivial korrekt, da die zweite Datei nach der Verkettung ignoriert wird.
Wenn wir es \bye
als einen „Metabefehl“ betrachten, der in einer Verkettung eingefügt wird, dann ist Ihre Aussage falsch.
Betrachten Sie die Dateien
\def\aa{0}
\aa
\bye
Und
\def\bb{0}
\bb
\ifx\aa\bb\cc\fi
\bye
Jeder von ihnen wird kompiliert, die Verkettung jedoch nicht:
\def\aa{0}
\aa
\def\bb{0}
\bb
\ifx\aa\bb\cc\fi
\bye
produziert
! Undefined control sequence.
l.5 \ifx\aa\bb\cc
\fi
?
! Emergency stop.
Der Grund hierfür ist, dass „undefined“ in der zweiten Datei nicht definiert ist, aber mit der verknüpften Datei \aa
identisch ist .\bb
Antwort2
In einfachem TeX endet eine richtig formatierte Datei mit , \bye
um dem Compiler mitzuteilen, dass er nicht mehr nach Eingaben suchen soll. Daher wird durch die Verkettung nur die erste Datei kompiliert, der Rest wird ignoriert. (Also nein.) In LaTeX endet eine kompilierbare Datei \end{document}
wieder mit , um dem Compiler mitzuteilen, dass sie fertig ist. Daher wird nur die erste Datei in der Verkettung kompiliert und der Rest wird ignoriert. Außerdem wird die zweite Datei jetzt eine Präambel an einer Stelle haben, die einen Kompilierungsfehler auslösen würde, wenn sie „i“ sehen würde. (Also nein.)
Nicht besprochen werden zusätzliche Einflüsse durch Pakete, Schriftarten, eingegebene Dateien etc.