Der TeX-Parser liest Struktur und Input des Textes sehr genau. Bei der Fehlerberichterstattung ist er ebenso präzise. Diese Seite beschreibt einige der am häufigsten auftretenden Fehler und gibt Ratschläge, wie man sie beheben kann.
Zu jeder geöffneten Klammer muss es immer eine korrespondierende geschlossene Klammer des gleichen Typs (( )
, { }
, [ ]
) geben. Der häufigste Fehler entsteht, wenn vergessen wird eine Klammer zu schließen.
Ein weiterer häufiger Fehler sind einfache Tippfehler. Der TeX-Parser ist nicht in der Lage, Befehle zu verstehen, die ungenau eingegeben wurden: Befehle wie \EOAseection
anstatt von \EOAseection
werden nicht akzeptiert und erzeugen eine Fehlermeldung, da der Parser das zweite “e” nicht ignorieren kann und den Befehl damit als ungültig einstuft.
Sonderzeichen stellen eine weitere Fehlerquelle dar. Sogenannte reservierte Zeichen wie _ \ $ & # { } % können nicht einfach in den Text eingegeben werden, da sie in der TeX-Umgebung eine besondere Bedeutung haben. Einem Unterstrichzeichen muss beispielsweise im Text direkt ein Backslash (MacOS X shortcut alt + shift + shift + 7
) vorangestellt werden, damit dieser als _ im Text dargestellt wird: also \_ anstatt von _. Der spezielle EOA-Befehl \EOAtilde
wird verwendet, um das Tildezeichen (~) zu schreiben.
Hier wurde ein unbekannter Befehl entdeckt. Dies ist oft auf Tippfehler zurückzuführen, wie z.B. \EOAsction{title}
' anstelle von \EOAsection{title}
.
Dieser Fehler ist auf das Fehlen einer schließenden Klammer zurückzuführen:
\EOAsection{title .
Dies veranlasst den Parser, den gesamten folgenden Text als Teil der Überschrift dieses Abschnitts zu interpretieren.
Dies ist das genaue Gegenteil des obigen Fehlers. Hier gibt es zu viele schließende Klammern. Es könnte beispielsweise daran liegen, dass \EOAsection{title}}
eingegeben wurde.
Sonderzeichen wie _ \ $ & # { } % wurden nicht mit dem notwendigen vorangestellten Backslash versehen. Der Eintrag 300,- $ verursacht somit einen Fehler. Um den Text korrekt zu erzeugen, muss 300,- \$ geschrieben werden.
Der Befehl \item
kann nur innerhalb der Umgebung verwendet werden, die von den Befehlen EOAitems
oder EOAlist
erzeugt wird. Wenn \item
ohne diese einleitenden Befehle in den Text eingegeben wird, führt dies zu einem Fehler.
Die Datei wurde nicht gefunden. Dies kann auf ein falsch beschriftetes Bild, einen Ordner oder einen fehlerhaften Pfad zurückzuführen sein. Ein Beispiel wäre Image/Picture1.png
, wenn der Ordner mit den Bildern aber eigentlich Images
heißt. (Die Verwendung von Leer- und Sonderzeichen in Dateinamen wird in TeX nicht akzeptiert.)
Fast alle Editorprogramme wie TeXShop geben die Parserausgabe in einem Fenster aus. Das folgende Bild zeigt das Protokoll eines Parsing-Laufs, bei dem ein schwerer Fehler festgestellt wurde.
Der Vorspann gibt Auskunft über das Laden der benötigten TeX-Pakete; die Zahlen in eckigen Klammern zeigen an, welche Seiten gerade geparst werden. Der Parsing-Lauf im folgenden Fenster zeigt, dass die ersten vier Seiten problemlos geparst wurden.
Informationen wie Chapter 1/ oder <use “inline/A.jpg” >/ zeigen an, dass ein Kapitel begonnen hat oder dass eine Illustration eingefügt wurde.
Der im obigen Fenster angezeigte Parsing-Lauf wurde unterbrochen. Die Fehlermeldung lautet:
./publication.tex:43: Undefined control sequence
l.43 Lorem ipsum dolor sit amet \EOAfnn
{This is a
?
TeX bezeichnet den tatsächlichen Fehler als Undefined control sequence. Der Grund dafür ist ein einfacher Tippfehler: Der Fußnotenbefehl wurde mit \EOAfnn
statt \EOAfn
angegeben. Das überflüssige n führte zu dieser Fehlermeldung. Um solche Tippfehler schnell zu finden, verweist der TeX-Parser auf die Zeile in der der jeweilige Fehler gefunden werden kann, im obigen Beispiel Zeile l.43 (l = line). Der Fehler kann behoben werden, indem man in der Datei publication.tex in Zeile 43 \EOAfnn
zu \EOAfn
ändert.
Treten wiederholt Fehler auf, die mit den oben beschriebenen Methoden nicht klar erkannt werden können, ist es möglich, dass eine von XeLaTeX verwendete Cache-Datei beschädigt ist. Alle Dateien mit den Endungen .aux, .bbl, .bcf, .idx, .log, .pdf, .run.xml, .synctex.gz und .toc sollten aus dem entsprechenden Publikationsordner gelöscht werden. Es sollte darauf geachtet werden, dass keine der wichtigen .tex- oder .bib-Dateien versehentlich gelöscht werden.
Bei der Verwendung von OS X kann es vorkommen, dass beim Erstellen einer Bibliographie mit Biber die folgende Fehlermeldung ausgegeben wird:
FATAL - Error loading data source package 'Biber::Input::file::bibtex': data source /var/folders/0F/0FD2fdygFEGjRYF9eAhna++++TM/-Tmp-/par-user/ cache-fe147f467ff57455f519af2e054cbfc46578602e//inc/lib/Biber/Input/file/bibtex.dcf not found in . Compilation failed in require at (eval 79) line 2.
Wenn dies eintritt, speichern Sie alle Dokumente und starten Sie Ihren Computer neu. Technisch versierte Benutzer können das Verzeichnis auch einfach auf dem Terminal mit dem Befehl rm -rv $(biber –cache)
löschen. (Administratorrechte erforderlich).
Einzelfälle: Manchmal werden Wörter inkorrekt getrennt. Es gibt zwei Möglichkeiten, festzulegen, wie XeLaTeX die Wörter im Text trennen soll. Wenn es nur ein einziges Mal vorkommt, dass ein bestimmtes Wort falsch getrennt wird, dann können Sie den Bindestrich manuell mit \- an der gewünschten stelle definieren. Sollte ein langes Wort wie incomprehensibilities falsch getrennt worden sein, dann können Sie eine alternative Silbenrennung angeben, zum Beispiel in\-com\-pre\-pre\-hen\-si\-bil\-i\-i\-ties. Diese Vorgaben zur Silbentrennung werden berücksichtigt, ohne, dass die -\ Symbole im anschließend ausgegebenen Text angezeigt werden.
Separate Dateien: Wenn viele Fälle vorkommen, in denen ungewöhnliche Wörter im Text falsch getrennt werden, dann können Sie die Silbentrennung in einer separaten Datei mit dem Befehl \hyphenation{Wort}
für alle Vorkommnisse der entsprechenden Wörter definieren. Dazu müssen Sie eine neue Datei mit dem Namen hyphenation.tex
erstellen und diese in dem entsprechenden Publikationsordner speichern. In der Hauptdatei Ihrer Publikation müssen Sie vor der Zeile \begin{document}
den Befehl \include{hyphenation}
einfügen. In der Datei hyphenation.tex können Sie nun Ihre Vorschläge zur Silbentrennung angeben, zum Beispiel:
\hyphenation{in-com-pre-hen-si-bil-i-ties} \hyphenation{su-per-a-bun-dant}