Hallo,

ich habe immer wieder das Problem, dass ich für meine Augen relativ kryptische Fehlermeldungen erhalte und diese nicht genau zuordnen und den Fehler deshalb nur mühsam selbst beheben kann.

Bsp.: Ich erhalte nach einigen Änderungen im Index eine Fehlermeldung. Diese resultiert nach einigen Test eindeutig aus einem angelegten Unterverzeichnis \newindex[Personenregister]{Personen}. Ich habe in der Datei ca. 77 Einträge, die ich alle gesichtet habe und den Fehler nicht entdecken konnte.

Ich erhalte folgende Fehlermeldung:

Open in writeLaTeX
! Output loop---100 consecutive dead cycles.
\break

 ->\penalty -\@M

l.61 \end{theindex}

I've concluded that your \output is awry; it never does a
\shipout, so I'm shipping \box255 out myself. Next time
increase \maxdeadcycles if you want me to be more patient!

[29
! Undefined control sequence.
\reserved@a ->\@nil

l.61 \end{theindex}

The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Use of \@BOOKMARK doesn't match its definition.
\@ifnextchar ...eserved@d =#1\def \reserved@a {#2}
                                                  \def \reserved@b {#3}\futu...
l.61 \end{theindex}

If you say, e.g., `\def\a1{...}', then you must always
put `1' after `\a', since control sequence names are
made up of letters only. The macro here has not been
followed by the required stuff, so I'm ignoring it.

! Undefined control sequence.
<argument> \@@BOOKMARK 
                       [1][-]
l.61 \end{theindex}

The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

Runaway argument?
{\ila@prologueplus }\reserved@b \fi \fi \reserved@c 
! Paragraph ended before \mult@@cols was complete.
<to be read again> 
                   \par 
l.61 \end{theindex}

I suspect you've forgotten a `}', causing me to apply this
control sequence to too much text. How can we recover?
My plan is to forget the whole thing and hope for the best.

! Undefined control sequence.
\GenericError  ...                                
                                                    #4  \errhelp \@err@     ...
l.61 \end{theindex}

The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Undefined control sequence.
\GenericError  ...                                
                                                  \let \@err@               ...
l.61 \end{theindex}

Als Laie sehe ich nur

Open in writeLaTeX
I suspect you've forgotten a `}'

Diesen Fehler finde ich aber nach zweistündigen Suchen in meinem Dokument nicht. Meine Frage lautet daher wie im Header beschrieben. Gibt es systematische Fehlerverzeichnisse? Mit googlen komme ich oft nur schwer weiter.

gefragt 20 Mai '14, 17:24

Tischa's gravatar image

Tischa
92531953
Akzeptiert: 71%

bearbeitet 20 Mai '14, 17:30

Clemens's gravatar image

Clemens
19.0k113060

1

Am besten könnte man Dir mit einem Minimalbeispiel, das den Fehler reproduziert, helfen. Wenn ich die Fehlernachricht richtig deute, dann hat TeX 100 mal versucht, eine Seite zu setzen, und hat es jedes mal nicht geschafft, bis es eben (nach 100 Versuchen) einen Fehler verursacht. Ohne Minimalbeispiel lässt sich die Ursache aber schlecht finden.

(20 Mai '14, 17:39) Clemens

Der »LaTeX Begleiter« (siehe auch Den LaTeX Companion gibt’s jetzt als eBook) listet im Anhang alle LaTeX-Fehlermeldungen auf. Auch Nicola Talbots »LaTeX for Complete Novices« hat einen Anhang mit den wichtigsten LaTeX-Fehlermeldungen. Beide enthalten allerdings diesen Fehler nicht, da er nicht von LaTeX sondern von TeX stammt...

(21 Mai '14, 03:46) Clemens

Ich kenne kein zentrales Fehlerverzeichnis. Man muss auch ein wenig zwischen Fehlermeldungen von Klassen, Paketen, LaTeX und TeX selbst unterscheiden. Die Fehlermeldungen von Klassen, Paketen und LaTeX sind meist recht zielführend. Bei einigen Paketen gibt es in der Anleitung auch eine Liste der Fehlermeldungen, die von dem Paket ausgegeben werden können. In manchen Büchern, beispielsweise »The LaTeX Companion«, gibt es ebenfalls Verzeichnisse von Fehlern (im genannten Buch zu LaTeX-Fehlermeldungen).

Die Fehlermeldungen von TeX sind ein anderes Kaliber. Diese sind nicht immer zielführend. Teilweise muss man schon ein gewisses Tiefenverständnis für die Arbeitsweise von TeX haben, um sie zu verstehen. Manchmal sind sie auch eher verwirrend.

Die Meldung bezüglich output dead cycles besagt beispielsweise, dass die output-Routine von TeX mehr als \maxdeadcycles (Standardwert ist 100) aufgerufen wurde, ohne dass tatsächlich eine Ausgabe erfolgte. Man kann das einfach provozieren, indem man mehr als 100 \clearpage nacheinander aufruft. So etwas deutet meist darauf hin, dass irgend etwas im Dokument eine Ausgabeschleife auslöst, ohne dass Material produziert wird, etwa

Open in writeLaTeX
\@whilenum \value{page}<100\do {\clearpage}

Hier fehlt zur reinen Demonstration schlicht in der geschweiften Klammer eine Ausgabe, wodurch zwar das erste \clearpage ggf. noch eine Seite ausgibt, dann aber keine Seite mehr ausgegeben wird, weil kein Material zur Ausgabe mehr vorhanden ist, wodurch auch page nicht mehr hochgezählt wird und so die Schleife auch nie abbricht (außer man war bereits auf einer Seite >= 100, als das Unglück geschah). Eine reine Erklärung zu diesem Fehler hilft Dir aber tatsächlich nicht weiter, weil es eigentlich nur die Erklärung zu einem Symptom wäre, die eigentliche Ursache dadurch aber leider nicht klar wird.

Die Fehlermeldung bezüglich undefined contol sequence besagt eigentlich, dass ein Befehl (der, der in den angegebenen Code-Zeilen vor dem Umbruch steht) zwar verwendet wurde, aber nicht definiert ist. Im Fall von \@nil ist diese Fehlermeldung aber irreführend. \@nil ist eigentlich nie definiert und soll es auch nicht sein, sondern wird bei einigen internen Befehlen als Markierung für das Ende des Arguments verwendet. Wenn dieser Fehler auftritt, bedeutet das entweder, dass ein Befehl schlecht implementiert ist oder dass er nicht in vorgesehener Weise verwendet wird und daher etwas zerbricht. Auch hier handelt es sich also nur um die Fehlermeldung zu einem Symptom, aber nicht zur eigentlichen Ursache.

In anderen Fällen stimmen Symptom und Ursache bei der »undefined control sequence«-Fehlermeldung aber mehr oder weniger überein, das heißt: Oftmals hat sich tatsächlich der Anwender selbst bei einem Befehl vertippt. Daher sollte bei diesem Fehler der Anwender immer genau hinschauen, welcher Befehl hier bemängelt wird. Wie gesagt: Wird \@nil angemahnt liegt die Ursache tiefer. Das trifft häufig auch zu, wenn ein anderer interner Befehl (zu erkennen am @) als nicht definiert gemeldet wird.

Im Index kommt es zu solchen Fehlern nach meiner Erfahrung hauptsächlich, wenn zerbrechliche Befehle in den Index geschrieben werden. Siehe dazu: Was sind zerbrechliche Befehle und bewegliche Argumente?. Auch bei der falschen Verwendung der Seitenzahlformatierung (meist durch | eingeleitet) kann so ein Fehler AFAIK auftreten.

Wenn viele Fehler zu derselben Zeilennummer oder unmittelbar folgenden Zeilennummern angezeigt werden, handelt es sich dabei übrigens fast immer um Folgefehler. Das sind Fehler, die dadurch entstehen, dass TeX in einem Fehlerzustand weitermacht, als wäre nicht passiert. So würde etwa bei

Open in writeLaTeX
\begin{itmize}
\item foo
\end{itemize}

nicht nur ein Fehler wegen des Tippfehlers in der ersten Zeile gemeldet. Auch die zweite Zeile wäre nun ein Fehler, weil \item nur in Listenumgebungen verwendet werden darf, aber eben wegen des Fehlers in der ersten Zeile keine solche geöffnet wurde. Selbst die letzte Zeile würde als Fehler gemeldet, weil das Ende der Umgebung nun nicht mehr zum falschen Anfang passt. Dennoch muss man hier nicht alle drei Fehler beheben, sondern nur den ersten. Die beiden anderen Fehler sind Folgefehler.

Genaueres kann man ggf. nach Anfertigung eines vollständigen Minimalbeispiels ermitteln.

Permanenter link

beantwortet 21 Mai '14, 02:12

Bes's gravatar image

Bes
1411516

bearbeitet 21 Mai '14, 04:27

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×83

Frage gestellt: 20 Mai '14, 17:24

Frage wurde angeschaut: 4,641 Mal

Zuletzt aktualisiert: 21 Mai '14, 04:27