Menu

HowTo_TocAppendixPrefix

Wie im Inhaltsverzeichnis bei Kapiteleinträgen des Anhangs der Nummer ein „Anhang“ vorangestellt werden kann

In »Wie im Inhaltsverzeichnis bei Kapiteleinträgen der Nummer ein „Kapitel“ vorangestellt werden kann« werden sowohl normale Kapitel als auch Anhangskapitel im Inhaltsverzeichnis mit einem Präfix versehen. Teilweise wird dies aber nur für den Anhang gewünscht. Dies ist also vergleichbar zur Verwendung von Option appendixprefix=true für die Gliederungsüberschriften im Text.

Letztlich funktioniert dies auf die gleiche Weise, wie im oben verlinkten Beitrag bereits gezeigt. Allerdings muss man hier Einträgen im Anhang und Einträgen außerhalb des Anhangs unterscheiden. Diese Unterscheidung nehmen wir über eine passende Definition von \appendixmore vor:

\newcommand*{\tocchapapp}{}
\newcommand*{\appendixmore}{%
  \renewcommand*{\tocchapapp}{\chapapp\ }%
  \addtocontents{\csname ext@toc\endcsname}{%
    \string\DeclareTOCStyleEntry[numwidth+=5em]{chapter}{chapter}%
  }%
}

Hier wird also durch Aufruf von \appendix zum einen der Befehl \tocchapapp passend neu, nämlich mit Präfix zuzüglich nachfolgendem Leerzeichen, definiert. Zum anderen wird in die aktuelle Inhaltsverzeichnisdatei, die durch \ext@toc definiert ist, eine Veränderung der Breite für die Nummerierung geschrieben.

Was dann noch fehlt, ist das Ersetzen von \chapapp\ durch das neue \tocchapapp. Das erste Beispiel ändert sich dadurch zu:

\documentclass{scrbook}
\usepackage{blindtext}

\newcommand*{\tocchapapp}{}
\newcommand*{\appendixmore}{%
  \renewcommand*{\tocchapapp}{\chapapp\ }%
  \addtocontents{\csname ext@toc\endcsname}{%
    \string\DeclareTOCStyleEntry[numwidth+=5em]{chapter}{chapter}%
  }%
}
\renewcommand*{\addchaptertocentry}[2]{%
  \IfArgIsEmpty{#1}{% keine Nummer:
    \addtocentrydefault{chapter}{#1}{#2}% wie bisher
  }{% mit Nummer:
    \addtocentrydefault{chapter}{\tocchapapp#1}{#2}%
  }%
}

\begin{document}
\tableofcontents
\blinddocument
\addchap{Heading of not numbered chapter}
\blindtext
\appendix
\blinddocument
\addchap{Heading of not numbered appendix}
\blindtext
\end{document}

Beim zweiten Beispiel, bei dem auch nicht nummerierte Einträge mit dem Präfix versehen werden sollen, ergibt das ganze eigentlich keinen Sinn. Trotzdem will ich den passenden Code hier zeigen:

\documentclass[toc=numberline]{scrbook}
\usepackage{blindtext}

\newcommand*{\tocchapapp}{}
\newcommand*{\appendixmore}{%
  \addtocontents{\csname ext@toc\endcsname}{%
    \string\DeclareTOCStyleEntry[numwidth+=5em,
      entrynumberformat=\string\appendixprefixformat]{chapter}{chapter}%
  }%
}
\newcommand*{\appendixprefixformat}[1]{\appendixname\ #1}

\begin{document}
\tableofcontents
\blinddocument
\addchap{Heading of not numbered chapter}
\blindtext
\appendix
\blinddocument
\addchap{Heading of not numbered appendix}
\blindtext
\end{document}

Related

Wiki (Deutsch): HowTo_ToCConfiguration
Wiki (Deutsch): HowTo_TocChapterPrefix

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.