Während des Kompilierens kommt es gelegentlich zu unerklärlichen und rätselhaften Fehlermeldungen. Hier einige Ratschläge zu diesem Thema:
Die Grundregel lautet:
Selbst ein einziges fehlendes Zeichen, zum Beispiel eine fehlende geschweifte Klammer eines Makros, kann Hunderte von Fehler-Warnungen erzeugen. Und dies an den seltsamsten Stellen und unter den eigenartigsten Zeilennummern!
Doch wenn der Fehler nicht zu lokalisieren ist, was kann ich prüfen?
caption
muß schon relativ früh geladen werden, um Fehlermeldungen zu vermeiden, obwohl mit dem LaTeX-Code alles korrekt ist. Das
Paket hyperref
sollte möglichst immer als letztes geladen werden.
\listfiles
der Präambel voran (also noch vor
\documentclass
) und beim Kompilieren werden die verwendeten Pakete mitsamt ihrer Versionsnummer ans Ende der erzeugten .log-Datei geschrieben. Die kann man dann mit einem Texteditor
einsehen und ggf. aktualisieren. Hier beschreibe ich so ein Beispiel.
\%
bzw. \_
). Nun ist es so, daß man diese speziellen Ausdrücke gelegentlich vergißt oder im Quelltext überliest, weil sich %
nun mal
unauffälliger liest als \%
. Im Falle von Prozent, Kaufmanns-Und (&) und anderen reservierten Zeichen wird im Editor normalerweise hervorgehoben, daß etwas nicht stimmt. Doch was
ist mit Quellcode, den man sonst nicht sieht? Etwa die eingebundene .bib-Datei für die Literatur? Also auch dort sollte man prüfen, ob nicht einzelnstehende &, %, $, _ und all die anderen
reservierten Zeichen ohne entsprechendes Escape-Zeichen davor gespeichert sind.
Kommt man einer skurrilen LaTeX-Fehlerwarnung trotz mehrfachen Durchsehens des Quellcodes nicht auf die Schliche, hat sich immer der folgende Kniff bewährt:
Man beendet vorzeitig das Dokument (d.h. mitten im Dokument) mit
\end{document}
und beobachtet, ob der Fehler immer noch auftritt. Tritt beim Kompilieren der gleiche Fehler immer noch auf, heißt das, daß sich die Quelle des Fehlers oberhalb vom testweise
eingefügten \end{document}
befindet. Tritt kein Fehler auf, weiß man, daß das Dokument bis hierher »sauber« ist und die Fehlerquelle erst irgendwo später im Dokument
kommt. Auf diese Weise läßt sich die Fehlerquelle »eingrenzen«.
Gelegentlich kämpft man mit zahlreichen »overfull boxes«-Meldungen, d.h. der Blocksatz kann durch überlange Wörter oder nicht anwendbare Worttrennungsmuster nicht sauber hergestellt werden. Wörter ragen dann über das Zeilenende heraus. Beim Durchscrollen der erzeugten PDF-Datei sieht man die Übeltäter rasch, zumindest, wenn sie lang genug sind. Ragen die Wörter aber nur 1 oder 2 pt über das Zeilenende heraus, kann man zunächst nicht sehen und nachvollziehen, warum und wo es an dieser Stelle eine »overfull box« gibt. Abhilfe schafft die Option »draft«, die der Dokumentklasse zeitweilig hinzugefügt wird:
\documentclass[a4paper,11pt,draft]{scrartcl}
Nun werden im kompilierten PDF alle »overfull boxes« mit einem schwarzen Rechteck am Seitenrand gekennzeichnet und können einzeln durch Umstellungen im Satzbau oder manuelle Trennstellen korrigiert werden.
Wer das microtype
-Paket nicht verwendet, sollte es spätestens jetzt tun! Damit erledigen sich die meisten box-Probleme. Unter XeTeX, das microtype
nur
unvollständig unterstützt, kann mit sich mit dem Befehl \sloppy
am Dokumentanfang behelfen.
Achtung! Niemals alle »overfull boxes« gleichzeitig editieren! Angenommen, es gibt in einem Absatz 7 »overfull boxes«-Meldungen, dann wird zunächst die erste »overfull box« z.B. durch Wortumstellung korrigiert. Beim anschließenden Kompilieren kann es durchaus sein, daß aufgrund der Verschiebung der Wortfolgen aus den restlichen 6 »overfull boxes« nur noch 2 werden!