Ich benutze eine recht gute und umfangreiche Präambel für meine Bachelorarbeit, von der ich nach einigen Anpassungen meinerseits ausgehe, dass sie funktioniert. Leider habe ich das Problem das meine Bilder nicht im Abbildungsverzeichnis sowie Tabellen nicht im Tabellenverzeichnis auftauchen und ich einfach nicht verstehe was ich falsch mache. Die .lof-Datei enthält die entsprechenden Informationen, eine Überschrift wird erstellt, nur der Rest wird nicht in die PDF überschrieben. Es taucht außerdem auch keine Fehlermeldung auf und das Literaturverzeichnis funktioniert z.B. einwandfrei.

Allerdings habe ich bei dem Versuch die entsprechende Passage gefunden, die den Fehler auslöst. Sie befindet sich im Anhang:

\addtocontents{toc}{\protect\setcounter{tocdepth}{-1}}

Die Anhang.tex mit dem obigen Befehl steht nach den beiden Verzeichnissen und wird via \input eingebunden. Vorher steht der tocdepth-Zähler auf 3, aber warum wird die Erstellung der beiden Verzeichnisse trotzdem unterdrückt?

Weiß jemand Rat?

gefragt 01 Jul '13, 22:08

relaXxX's gravatar image

relaXxX
85336
Akzeptiert-Rate: 0%

bearbeitet 03 Jul '13, 20:12

stefan's gravatar image

stefan ♦♦
18.3k163148

Ich nehme an, Du hast mehrfach kompiliert? Kannst Du bitte ein Minimalbeispiel (mit Schwerpunkt auf minimal: nur die Teile der Präambel, die nötig für das Problem sind, und im Text wird wohl eine Demo-Tabelle reichen) in Deine Frage editieren, mit der wir das Problem reproduzieren können?

(01 Jul '13, 22:27) cgnieder

@relaXxX Ich möchte Dich noch einmal auf Clemens Bitte um ein vollständiges Minimalbeispiel hinweisen. Dazu bitte keine Antwort verfassen, sondern Deine Frage bearbeiten. Je genauer Du bei der Frage bist, desto genauer kann eine Antwort sein.

(03 Jul '13, 18:16) saputello
(08 Aug '14, 12:15) gast3

Der Zähler tocdepth legt fest, bis zu welcher Gliederungsebene, die Einträge aus den Verzeichnisdateien auch im jeweiligen Verzeichnis ausgegeben werden sollen. Verzeichnisdateien sind Hilfsdateien, die am Ende eines LaTeX-Laufs aus den Informationen der aux-Datei erzeugt werden. Diese Informationen stammen letztlich aus expliziten oder impliziten \addtocontents-Befehlen. Bekannte Beispiele dafür sind:

  • *.toc: Die Datei mit den Inhaltsverzeichniseinträgen.
  • *.lof: Die Datei mit den Abbildungsverzeichniseinträgen.
  • *.lot: Die Datei mit den Tabellenverzeichniseinträgen.
  • *.lst: Die Datei mit den Listingsverzeichniseinträgen (siehe Paket listings)

Der tocdepth-Wert -1 steht in der Regel für den Teil (\part), 0 für das Kapitel (\chapter), 1 für den Abschnitt (\section), 2 für den Unterabschnitt (\subsection), 3 für den Unterunterabschnitt (\subsubsection), 4 für die Spitzmarke (\paragraph) und 5 für die zweite Spitzmarke (\subparagraph). Die Werte sind jedoch nicht in LaTeX selbst, sondern in den Klassen festgelegt. Diese Zuordnung gilt daher nur für die Klassen, die sich dabei an den Standardklassen orientieren.

Wenn man die Gliederungstiefe im Inhaltsverzeichnis nur für bestimmte Teile des Dokuments ändern möchte, findet man im Internet häufig Vorschläge wie

\addtocontents{toc}{\protect\setcounter{tocdepth}{0}}

Mit dieser Anweisung wird an der entsprechenden Stelle im Dokument die Anweisung

\setcounter{tocdepth}{0}

ins Inhaltsverzeichnis geschrieben. Damit wird also der LaTeX-Zähler tocdepth während des Einlesens der toc-Datei zum Erzeugen des Inhaltsverzeichnisses auf den Wert 0 gesetzt. Ab dieser Stelle des Inhaltsverzeichnisses werden also nur noch die Ebene Teil (\part) und Kapitel (\chapter) in Verzeichnissen ausgegeben.

Hat man jedoch nach dem Inhaltsverzeichnis beispielsweise noch ein Abbildungs- oder ein Tabellenverzeichnis, so bleiben diese Verzeichnisse leer. Der Grund ist einfach, dass Tabellen- und Abbildungseinträge in diesen Verzeichnissen in der Regel mit der Ebene 1 erzeugt werden. Da tocdepth aber 0 und damit kleiner ist, werden diese Einträge nicht mehr ausgegeben. Das Problem kann man auf verschiedene Weise lösen.

Zum einen kann man sich vor dem Inhaltsverzeichnis merken, welchen Wert tocdepth hat und diesen Wert danach wieder herstellen:

\begingroup
  \edef\TiefeVorDemInhaltsverzeichnis{\the\value{tocdepth}}
  \tableofcontents
  \setcounter{tocdepth}{\TiefeVorDemInhaltsverzeichnis}
\endgroup

Die Gruppierung mit \begingroup und \endgroup dient hier lediglich dazu \TiefeVordemInhaltsverzeichnis lokal zu halten. Da \setcounter immer global wirkt, hat sie keine Auswirkung auf die Änderungen des Zählers tocdepth.

Desweiteren kann man statt \setcounter zu verwenden, den mit tocdepth korrespondierenden TeX-Zähler lokal zum Verzeichnis ändern, indem man die \addtocontents-Anweisung abändert:

\addtocontents{toc}{\protect\value{tocdepth}=0\relax}

Damit hat tocdepth dann nach dem Inhaltsverzeichnis wieder den Wert davor. Dabei wird die Tatsache ausgenutzt, dass LaTeX die Inhaltsverzeichnisdatei innerhalb einer Gruppe lädt.

Eine elegante Möglichkeit bietet das Paket tocvsec2. Statt direkt mit \addtocontents Anweisungen zur Manipulation des Zählers in die Datei zu schreiben, kann man dort mit der Anweisung \settocdepth die Einstellung für das Inhaltsverzeichnis entsprechend ändern und mit \resettocdepth wieder den ursprünglichen Wert herstellen. Dabei sind mehrere Schachtelungen möglich. Näheres ist der Anleitung zum Paket zu entnehmen.

Permanenter link

beantwortet 02 Jul '13, 12:23

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 03 Jul '13, 18:33

Vielen Dank erstmal für die auführliche Aufklärung. Ich habe deine Gruppierung mal bei mir eingefügt. setcounter{tocdepth}{-1} kann ich dann im Anhang einfügen und es werden trotzdem Abbildungs- und Tabellenverzeichnis erstellt. Allerdings werden die Tabellen aus dem Anhang trotzdem im Tabellenverzeichnis eingefügt. Mit dem addtocontents -Befehl komme ich da auch nicht weiter. Hast du da vielleicht noch eine Idee?

(02 Jul '13, 16:32) relaXxX

@relaXxX: \setcounter{tocdepth}{-1} im Anhang einzufügen bringt nichts. Der Zähler beeinflusst nicht, was in die Verzeichnisdateien geschrieben wird, sondern was beim Lesen der derselben ausgegeben wird. Wenn Du also ab dem Anhang keine Abschnitte mehr im Inhaltsverzeichnis haben willst, musst Du entweder die letzte Anweisung aus meiner Antwort verwenden (und danach min. 2* LaTeX laufen lassen) oder das von mir empfohlene Paket. Und bitte präzisiere Deine obige Frage.

(03 Jul '13, 18:13) saputello

Ich werde eine neue Frage erstellen, das eigentliche Problem hat sich ja gelöst. ;)

(06 Jul '13, 14:17) relaXxX

Ergänzend zur Antwort von @saputello sei noch erwähnt, dass wenn man die Kapitel des Anhangs mit \include statt \input einliest, das Problem noch etwas dadurch erschwert wird, dass \addtocontents mit \write statt \immediate\write arbeitet, während \include selbst mit \immediate\write arbeitet und zusätzlich nach dem Laden der Datei ein \clearpage einfügt. Das führt dazu, dass ein \addtocontents vor \include eventuell zu spät und ein \addtocontents nach dem letzten \include eventuell gar nicht mehr ausgeführt wird. Daher sollte man \addtocontents statt unmittelbar vor einem \include besser an den Anfang der entsprechenden Datei und ein \addtocontents unmittelbar nach einem \include in der Regel besser an das Ende der entsprechenden Datei verschieben.

Das Problem tritt bei \input nicht auf, da diese Anweisung selbst keine \clearpage einfügt.

(08 Aug '14, 12:29) gast3
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×24

gestellte Frage: 01 Jul '13, 22:08

Frage wurde gesehen: 15,610 Mal

zuletzt geändert: 25 Aug '14, 17:31