|
Kürzlich trat ein Arbeitskollege mit dem Wunsch an mich heran, dass er in seinem Dokument vor dem eigentlichen Inhaltsverzeichnis ein verkürztes Inhaltsverzeichnis abdrucken möchte, dass auf die obersten Gliederungsebenen (bis \section) reduziert ist. So etwas lässt sich ganz leicht realisieren: man liest einfach das bereits vorhandene Inhaltsverzeichnis seines Dokuments ein (die Datei \jobname.toc) und überschreibt die Makros, die für die Ausgabe der tieferen Gliederungsebenen verantwortlich sind, mit einem »Tue-nichts-Befehl«.
\newcommand\shorttoc{\bgroup
\def\l@section##1##2{\relax}
\def\l@subsection##1##2{\relax}
\section*{Grobe Inhaltsübersicht}
\@input{\jobname.toc}
\egroup}
|
Der Aufruf im Dokument erfolgt dann einfach wie folgt:
...
\begin{document}
...
\shorttoc
\tableofcontents
...
\end{document}
|
Wichtig dabei ist, dass \shorttoc nur vor dem tableofcontents-Befehl angewendet werden kann. Das hängt mit der Arbeitsweise von LaTeX bei der Erzeugung eines Inhaltsverzeichnisses zusammen. Vereinfacht ausgedrückt legt LaTeX während der Übersetzung alle Inhaltsverzeichnis-relevanten Einträge in einer extra Datei ab, der TOC-Datei. Diese Datei wird beim Auftreten des tableofcontents-Befehls in das Dokument eingefügt und im Laufe der nun folgenden Übersetzung aktualisiert. Das heißt, man sieht in einem Dokument eigentlich immer nur das Inhaltsverzeichnis, dass bei der vorletzten Compilierung erzeugt wurde. Für die Aktualisierung wird die TOC-Datei durch den tableofcontents-Befehl zum Schreiben geöffnet und erst nach \end{document} wieder geschlossen. Daher kann nach dem Auftreten von \tableofcontents die TOC-Datei auch nicht mehr ausgelesen werden.
|