Sie sind hier

Eine Gliederungsübersicht zusätzlich zum Inhaltsverzeichnis

Bild von Markus Kohm

Bei einigen wissenschaftlichen Verlagen ist es üblich, zusätzlich zu einem sehr ausführlichen Inhaltsverzeichnis, das alle Gliederungsebenen zeigt eine kurze Gliederungsübersicht anzugeben, in der nur die Kapitel und Abschnitte aufgeführt werden. Die erste Idee zur Lösung dieses Problem, nämlich \tableofcontents zweimal mit unterschiedlicher Einstellung für tocdepth aufzurufen, scheitert, weil LaTeX am Ende von \tableofcontents das Inhaltsverzeichnis neu zum Schreiben öffnet und der zweite Aufruf von \tableofcontents auf eine leere Datei trifft.
Man benötigt zur Lösung dieses Problems also beispielsweise eine Anweisung, die wie \tableofcontents arbeitet, aber auf das Öffnen der Datei mit dem Inhaltsverzeichnis zum Schreiben verzichtet. Mit einem kleinen Trick gelingt dies recht einfach: LaTeX verwendet intern den Schalter \if@filesw, um zu ermitteln, ob Hilfsdateien geschrieben werden soll. Ist das nicht der Fall wird auch das Inhaltsverzeichnis nicht zum Schreiben geöffnet. Also kann man durch lokales setzen von \@fileswfalse das gewünschte Verhalten erreichen:

\documentclass{book}
\usepackage{blindtext}
\newcommand*{\showtableofcontents}{%
  \begingroup
    \edef\EndGroup{\endgroup
      \noexpand\setcounter{tocdepth}{\the\value{tocdepth}}}%
    \csname @fileswfalse\endcsname
    \setcounter{tocdepth}{1}%
    \def\contentsname{Chapters and Sections}%
    \tableofcontents
  \EndGroup
}
\begin{document}
\showtableofcontents
\tableofcontents
\blinddocument\blinddocument\blinddocument
\end{document}

Unschön bei dieser Lösung ist, dass man peinlich darauf achten muss, dass \showtableofcontents nur bis zum ersten Aufruf von \tableofcontents in der gewünschten Weise funktioniert und danach dieselben Probleme hat, wie ein weiteres \tableofcontents hätte.

Das experimentelle Pakete tocstyle, das seit einiger Zeit Alpha-Bestandteil von KOMA-Script ist, bietet eine allgemeinere Lösung. Dabei wird nicht die eine Verzeichnisdatei mehrfach gelesen, sondern LaTeX wird angewiesen, Kopien der toc-Datei anzulegen und mit diesen zu arbeiten. Damit spielt die Reihenfolge keine Rolle mehr:

\documentclass{book}
\usepackage{blindtext}
\usepackage{tocstyle}
\newcommand*{\showtableofcontents}{%
  \begingroup
    \edef\EndGroup{\endgroup
      \noexpand\setcounter{tocdepth}{\the\value{tocdepth}}}%
    \csname @fileswfalse\endcsname
    \setcounter{tocdepth}{1}%
    \chapter*{Chapters and Sections}%
    \showtoc{toc}%
  \EndGroup
}
\begin{document}
 
\showtableofcontents
\tableofcontents
\blinddocument\blinddocument\blinddocument
\showtableofcontents% and one more chapters and sections at the end
\end{document}

Die hier verwendete Anweisung \showtoc erwartet als Argument die Dateierweiterung des zu zeigenden Verzeichnisses. Tatsächlich wird dann eine nummerierte Kopie dieser Datei angelegt und diese Kopie angezeigt. Man kann sie auf alle Dateien anwenden, die per \addtocontents befüllt werden, also auch auf das Tabellen- oder das Abbildungsverzeichnis.

Die Anweisung \showtoc ist bisher nicht dokumentiert. Die Anleitung zu tocstyle macht jedoch selbst reichen Gebrauch von dieser Anweisung. Es ist daher davon auszugehen, dass die Funktionalität – ggf. unter anderem Namen – auch zukünftig von tocstyle bereit gestellt wird.

Comments for "Eine Gliederungsübersicht zusätzlich zum Inhaltsverzeichnis" abonnieren