Ich habe es (ohne Erfolg) etwas erweitert: Ich möchte drei Inhaltsverzeichnisse (IV), wobei zwei auch noch verschachtelt sind.
- klassisches IV des Hauptdokuments, wobei für "Anhang" dort nur ein Eintrag auftaucht.
- IV des Anhangs zu Beginn des Anhangs
- Ein Abschnitt (nicht jeder!) des Anhangs bekommt nochmal ein eigenes IV. Dieser Abschnitt taucht im IV des Anhangs nur einmal auf und dessen Unterpunkte aber nicht. Die Unterpunkte sind hier in diesem dritten IV extra aufgeführt.
Der Code:
%% ------------------------------------------------------------------ %% | Beispiel für ein mehrere (verschachtelte) Inhaltsverzeichnisse | %% | XeLaTeX | %% basiert auf LPPL-lizensierten Beispielcode: <https://komascript.de/comment/3447#comment-3447> %% ------------------------------------------------------------------ %%% -- Preamble -- \documentclass[man, donotrepeattitle] % \title nicht im Inhaltsverzeichnis {apa6} \usepackage{xltxtra} \defaultfontfeatures{Mapping=tex-text} % \usepackage{hyperref} % \AfterLastShipout % Workaround damit \nameref mit apa6 wieder funktioniert % ein bekannter APA6-Bug % apa6-maintainer ist informiert; bisher ohne Reaktion \makeatletter \g@addto@macro{\appendix}{% \let\apasection\section \long\def\section#1{\apasection{#1}\def\@currentlabelname{#1}} } \makeatother % Sprache \usepackage{polyglossia} \setdefaultlanguage[spelling=new]{german} % deutsches APA \DeclareLanguageMapping{german}{german-apa} %%% -- Code fürs Anhangsverzeichnis -- %%% der folgende Code stammt nicht von mir selbst %%% direkter Urheber ist unbekannt \usepackage{tocstyle} \makeatletter % Die folgende Anweisung wird vermutlich irgendwann in scrlfile.sty eingebaut. % Bis dahin ist es notwendig, sie selbst zu definieren, damit man innerhalb % von \BeforeClosingMainAux \addtocontents verwenden kann: \providecommand{\protected@immediate@write}[3]{% \begingroup \let\thepage\relax #2% \let\protect\@unexpandable@protect \edef\reserved@a{\immediate\write#1{#3}}% \reserved@a \endgroup \if@nobreak\ifvmode\nobreak\fi\fi } % Die folgende Umgebung wird verwendet, um innerhalb der toc-Datei einzelne % Bereiche ein- und ausschalten zu können. In die toc-Datei wird die Umgebung % dabei jeweils als \begin{tocconditional}{BEREICH}...\end{tocconditional} % eingefügt. \newenvironment*{tocconditional}[1]{% \expandafter\ifx\csname if@toccond@#1\expandafter\endcsname \csname iftrue\endcsname \else \value{tocdepth}=-10000\relax \fi \typeout{tocdepth in `#1': \the\c@tocdepth}% }{% } % Gleich nach dem Öffnen der toc-Datei beginnen wir den Haupt-Bereich "main": \AtBeginDocument{% \addtocontents{toc}{\string\begin{tocconditional}{main}} } % Und der letzte Bereich endet am Ende der toc-Datei. \AfterLastShipout {% \begingroup \let\protected@write\protected@immediate@write \addtocontents{toc}{\string\end{tocconditional}}% \endgroup } % Hier können nun neue Bereiche definiert (wie man das % macht zeigen wir gleich im Anschluss) ... \newcommand*{\newtocconditional}[2][false]{% \expandafter\newif\csname if@toccond@#2\endcsname \csname @toccond@#2#1\endcsname } % ... und ein- oder ausgeschaltet werden. % (Beispiele für die Verwendung von \settocconditional sind % weiter unten bei der Definition von \appendixtableofcontents % zu finden.) \newcommand*{\settocconditional}[2]{% \csname @toccond@#1#2\endcsname } % Neben dem (bereits aktivierten) Hauptbereich ... \newtocconditional[true]{main} % ... definieren wir noch einen (noch nicht aktivierten) % Bereich für den Anhang. \newtocconditional{appendix} % Mit dem Anhang geben wir einerseits das Anhangsverzeichnis aus, % andererseits beenden wir den aktuellen Bereich in der toc-Datei und beginnen % den neuen Bereich "appendix". Damit im Haupt-Inhaltsverzeichnis ein Eintrag % für das Anhangsverzeichnis erscheint, verwenden wir \addchap und zwar noch % bevor der letzte Bereich geschlossen wird. Wenn wir es ganz sicher machen % wollten, müssten wir die auskommentierten Zeilen noch aktivieren. So % verlassen wir uns einfach darauf, dass vor dem appendix-Bereich der % main-Bereich lag. \g@addto@macro\appendix{% \addtocontents{toc}{\string\end{tocconditional}^^J \string\begin{tocconditional}{appendix}}% \appendixtableofcontents } % Jetzt definieren wir das Anhangsverzeichnis selbst als Alias für die % toc-Datei. Dabei wird aber der Hauptbereich "main" deaktiviert und der % Anhangsbereich "appendix" aktiviert. \newcommand*{\appendixtableofcontents}{% \showtoc[{ % \aliastoc{\tocstyleTOC}{toc}% \settocconditional{main}{false}% \settocconditional{appendix}{true}% }]{toc}% } % Auch wenn man einen Anhang normalerweise nicht beenden kann, so ist es % ggf. erwünscht, dass Literaturverzeichnis, Index etc. zwar nach den Kapiteln % des Anhangs kommen, aber dem Hauptverzeichnis zugeordnet werden sollen. Also % benötigen wir eine Anweisung, um in der toc-Datei den aktuellen Bereich zu % beenden und wieder einen Hauptbereich einzuschalten: \newcommand*{\postappendix}{% \addtocontents{toc}{\string\end{tocconditional}^^J% \string\begin{tocconditional}{main}}% \clearpage } \newtocconditional{protocol} \g@addto@macro\protocol{% \addtocontents{toc}{\string\end{tocconditional}^^J \string\begin{tocconditional}{protocol}}% \protocoltableofcontents } \newcommand*{\protocoltableofcontents}{% \showtoc[{ % \aliastoc{\tocstyleTOC}{toc}% \settocconditional{main}{false}% %\settocconditional{appendix}{false}% \settocconditional{protocol}{true}% }]{toc}% } \newcommand*{\postprotocol}{% \addtocontents{toc}{\string\end{tocconditional}^^J% %\string\begin{tocconditional}{main}}% }% \clearpage } %%% -- Titelseite -- \title{T} \shorttitle{ST} \author{A} \begin{document} \maketitle %%% -- Inhaltsverzeichnis -- \tableofcontents %%% -- Document -- \newpage \section{Section} \subsection{SubSection} xxx \cite{Beispiel2010} %%% -- Bibliography -- %newpage %\defbibheading{all}{\section{Literaturverzeichnis}} %printbibliography[heading=all] %%% -- Anhangsverzeichnis -- \newpage \section[Anhang]{Verzeichnis der Anhänge} %% Sorgt dafür, dass alles mit A, B, C, etc. nummeriert wird \renewcommand{\thesubsection}{Anhang~\Alph{subsection}} \appendix % Als Überschrift je Anhang muss \subsection verwendet werden % da diese im Layout aber eigentlich Überschriften 1. Ebene % also \section sein sollten, müssen diese auch so aussehen % folgender Code überschreibt die apa6.cls Definition für \subsection % entsprechend \makeatletter \renewcommand{\subsection}{\@startsection{subsection}{2}{\z@}% {\b@level@two@skip}{\e@level@two@skip}% {\centering\normalfont\normalsize\bfseries}} \makeatother \newpage \subsection{Erster Anhang} xxx \newpage \protocol \subsection{Protocol - Zweiter Anhang} xxx \postprotocol \subsection{Dritter Anhang} xxx \postappendix \end{document}