Lektion 15

Mit Fehlern umgehen

Diese Lektion zeigt einige häufige Fehler in LaTeX-Dokumenten, was sie bedeuten und wie sie behoben werden können.

Anders als typische Textverarbeitungsprogramme weist LaTeX einen Editieren/Ausführen/Betrachten-Zyklus ähnlich wie kompilierte Programmiersprachen und ähnlich wie beim Programmieren können Nutzer fehlerhafte Eingaben machen und deshalb mit Fehlermeldungen umgehen.

Häufige Fehler

Diese Seite zeigt Beispiele einiger häufiger Fehler. Jedes Fehlerbeispiel wird von einer Beschreibung der Fehlerform begleitet.

Es könnte sich als lehrreich erweisen, die Beispiele zu testen und anschließend zu versuchen, die Fehler mittels des Editierfeatures zu beheben, auch um zu testen, ob man mit den gezeigten Fehlern umgehen kann.

pdflatex not found

Ein häufiger erster Fehler, den Anfänger zu Beginn sehen ist:

'pdflatex' is not recognized as an internal or external command,
operable program or batch file.

auf Windows oder

bash: pdflatex: command not found

auf Linux.

Dies ist kein TeX-Fehler, sondern eine Fehlermeldung des Betriebssystems, das uns mitteilt, dass TeX nicht installiert ist oder gefunden werden kann. Ein häufiger Fehler ist, einen Editor, wie etwa TeXworks oder TeXShop, ohne ein TeX-System, wie etwa TeX Live oder MiKTeX, zu installieren.

Anatomie einer TeX-Fehlermeldung

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\newcommand\mycommand{\textbold{hmmm}}

\begin{document}

Mein Befehl wird hier verwendet \mycommand.

\end{document}

Hierdurch wird die mehrzeilige Meldung in der Logdatei ausgegeben:

! Undefined control sequence.
\mycommand ->\textbold 
                       {hmmm}
l.8 Mein Befehl wird hier verwendet \mycommand
                                              .
? 

Man beachte, dass TeX den Fehler nicht während der Definition findet; tatsächlich gäbe es keinen Fehler, wenn \mycommand nie verwendet würde. Also ist der eigentliche Fehler bereits in der Definition, wird aber für Zeile 8 gemeldet. Deshalb ist es wichtig, die vollständige Fehlermeldung zu betrachten.

Vorsicht, manche Editoren zeigen nur einzeilige “Fehlerzusammenfassungen”. Dies kann besonders verwirrend sein, wenn beispielsweise

line 8: undefined command: ...\mycommand

gezeigt wird, da hierdurch der Eindruck vermittelt wird, \mycommand wäre nicht definiert.

Nicht zusammenpassende Klammern

\documentclass{article}
\usepackage[T1]{fontenc}

\usepackage[leqno}{amsmath}

\begin{document}

\end{document}

Hier liegt der Fehler in einer falsch zugeordneten }, die verwendet wurde, um das optionale Argument zu beenden. Die schließende Klammer bewirkt einen Fehler während LaTeXs Optionsparsing. Man bekommt einen internen und nicht sehr hilfreichen Fehler:

! Argument of `\@fileswith@ptions has an extra }.

Während die Fehlerbeschreibung nicht hilfreich ist, beschreiben die nächsten zwei Zeilen durch den Zeilenumbruch, der anzeigt, wie weit TeX die Datei gelesen hat, genau, wo der Fehler gefunden wurde:

l.4 \usepackage[leqno}
                      {amsmath}

Fehlende Dateien

\documentclass{article}
\usepackage[T1]{fontenc}

\usepackage{amsmathz}

\begin{document}

\end{document}

Dies führt zum Fehler

! LaTeX Error: File `amsmathz.sty' not found.

Derselbe Fehler kann durch zwei verschiedene Ursachen begründet werden, ein Tippfehler wie hier, der einfach durch Korrektur des Dateinamens behoben wird, oder das tatsächliche Fehlen der Datei, die auf dem aktuellen System noch installiert werden muss.

Leerzeilen in Matheumgebungen

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\begin{document}

Etwas Text
\begin{equation}

  1=2

\end{equation}

\end{document}

Verursacht den mysteriösen Fehler

! Missing $ inserted.

Das Beheben ist einfach, Leerzeilen sind in Matheumgebungen nicht erlaubt und sollten entfernt werden.

Übung

Versuche, die gezeigten Fehler in den Beispielen zu beheben.

Erstelle kleine Dokumente mit verschiedenen Fehlern und beachte die Form der Fehlermeldungen.