Man nennt solche Kommentare (in der Regel) am Anfang des Dokuments *magic comment*. TeX-Engines selbst verstehen in der Regel nur eine einzige Form eines solchen *magic comment*:
`%&`*format*
wobei *Format* der Name eines TeX-Formats ist. Die Engine versucht dann, zunächst das angegebene Format zu laden, bevor es den Rest des Dokuments verarbeitet. Würde man also beispielsweise für ein Dokument `foo.tex` der Form:
%&pdflatex
\documentclass{article}
\begin{document}
Test
\end{document}
den Aufruf »`pdfetex foo.tex`« durchführen, so würde `pdfetex` das Format `pdflatex.fmt` laden und mit dessen Hilfe dann die Datei `foo.pdf` erzeugen. Übrigens würden `luatex` und `tex` an derselben Aufgabe scheitern, weil die Namen der LaTeX-Formate in diesem Fall nicht passen. Ebenfalls laden die Engines über den *magic comment* keine andere Engine. Aus diesem Grund ist ein *magic comment* für das Format heutzutage unüblich und eher sinnlos.
sinnlos. Tatsächlich stammt das aus der Anfangszeit von TeX und LaTeX, als man Dokumente für unterschiedliche Sprachen noch mit unterschiedlichen Formaten verarbeitet hat.
Anders sieht es mit *magic comments* unterschiedlicher Editoren aus. Wie @stefan in [seiner Antwort](https://texwelt.de/fragen/27534#27535) bereits erklärt hat, versteht der Online-Editor von texlive.net, der hier auf TeXwelt verwendet wird, Kommentare wie:
`% !TeX` *Format*
und ruft dann direkt das korrespondierende Programm auf, beispielsweise `lualatex` für *Format*=`LuaLaTeX`. *Format*=`LuaLaTeX`, also beim Kommentar:
`% !TeX LuaLaTeX
Dies unterscheidet sich also von dem vorgenannten *magic comment* insofert, insofern, als nicht erst die TeX-Engine darauf reagiert, sondern bereits der Editor bzw. der Server ausführendem per ausgeführtem Script.
Von besonderem Interesse ist hier übrigens auch das Pseudo-*Format* `None`. Mit
% !TeX None
kann man verhindern, dass der Knopf zur Erzeugung der Ausgabe (mittels eines LaTeX-Compilers) für den jeweiligen Code überhaupt angezeigt wird.
Andere Editoren wie TeXworks, TeXmaker oder TeXstudio kennen weitere *magic comment*. comments*. So kann man beispielsweise dasselbe wie oben für TeXwelt erklärt, in den LaTeX-Editoren häufig per
`% !TeX program =` *Format*
erreicht werden. Aber auch andere Dinge kann man für Editoren häufig per *magic comment* einstellen. Beispielsweise kann man für TeXworks bei einem Dokument, das aus mehreren TeX-Dateien besteht, mit Hilfe von
`% !TeX root = master.tex`
die Datei `master.tex` als Hauptdatei einstellen. Man kann damit dann LaTeX-Läufe für `master.tex` aus jeder TeX-Datei heraus anstoßen, die diesen *magic comment* enthält. Natürlich muss sich die Datei `master.tex` dann auch in demselben Verzeichnis wie die aktuelle Datei mit diesem Kommentar befinden.
Übrigens werden bei TeX-Dokumenten, die mit `emacs` und `auctex` erstellt wurden, meist am Ende der Datei verschiedene Variablen für die Datei als Kommentar angelegt. Beispielsweise würde bei:
würde:
%%% Local Variables:
%%% mode: latex
%%% TeX-engine: luatex
%%% TeX-master: t
%%% End:
am Ende des Dokuments bedeuten, dass es sich um ein LaTeX-Dokument handelt (`mode: latex`), das mit der Engine LuaLaTeX LuaTeX (`TeX-engine: luatex`), also mit `lualatex` verarbeitet werden soll. Statt `TeX-master:
`%%% TeX-master: t`
könnte beispielsweise auch etwas wie `TeX-master:
`%%% TeX-master: "master.tex"`
angegeben sein. In diesem Fall würde `lualatex` nicht für die aktuelle Datei, sondern für die Datei `master.tex` in demselben Verzeichnis aufgerufen.
aufgerufen. Das ist also mit dem oben erklärten *magic comment*
`% !TeX root = master.tex`
vergleichbar.
Aber auch, wenn keine Maschine diese *magic comments* verarbeitet, liefern sie natürlich auch für den Anwender nützliche Informationen. Gerade, ob ein Dokument für die Verwendung mit PDFLaTeX, LuaLaTeX oder XeLaTeX gedacht ist, ist eine wichtige Information.