<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to HowTo_PartToC</title><link>https://sourceforge.net/p/koma-script/wiki-de/HowTo_PartToC/</link><description>Recent changes to HowTo_PartToC</description><atom:link href="https://sourceforge.net/p/koma-script/wiki-de/HowTo_PartToC/feed" rel="self"/><language>en</language><lastBuildDate>Tue, 30 Jun 2026 14:56:58 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/koma-script/wiki-de/HowTo_PartToC/feed" rel="self" type="application/rss+xml"/><item><title>HowTo_PartToC modified by Markus Kohm</title><link>https://sourceforge.net/p/koma-script/wiki-de/HowTo_PartToC/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="h-wie-man-teile-part-mit-einem-eigenen-inhaltsverzeichnis-versehen-kann"&gt;Wie man Teile (&lt;code&gt;\part&lt;/code&gt;) mit einem eigenen Inhaltsverzeichnis versehen kann&lt;/h1&gt;
&lt;p&gt;Das Standardvorgehen für Teil-Inhaltsverzeichnisse wäre die Verwendung des Pakets &lt;a href="https://www.ctan.org/pkg/minitoc" rel="nofollow"&gt;&lt;code&gt;minitoc&lt;/code&gt;&lt;/a&gt;. Allerdings gibt es im Zusammenspiel mit KOMA-Script dabei einige Hürden zu überwinden und es ist weder sichergestellt, dass dieses Paket mit KOMA-Script-Klassen einwandfrei funktioniert, noch dass die KOMA-Script-Klassen nach laden dieses Pakets noch einwandfrei funktionieren. Allerdings bieten die Klassen selbst im Zusammenspiel mit dem von ihnen verwendeten Paket &lt;code&gt;tocbasic&lt;/code&gt; bereits alles, was für Teil-Inhaltsverzeichnisse beispielsweise auf Ebene &lt;code&gt;\part&lt;/code&gt; notwendig ist.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hinweis: Die nachfolgend gezeigte Lösung funktioniert am besten mit LuaLaTeX. Bei Verwendung von PDFLaTeX oder dem für LaTeX nicht mehr empfohlenen XeLaTeX kann es leicht zu Fehlermeldungen wegen zu vieler &lt;code&gt;\newwrite&lt;/code&gt; kommen.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Zunächst definieren wir uns einen Befehl, der zwischen unterschiedlichen Inhaltsverzeichnissen umschalten kann. Als Endung für die Hilfsdatei wird dabei &lt;code&gt;.toc&amp;lt;Zusatz&amp;gt;&lt;/code&gt; verwendet, wobei &lt;code&gt;&amp;lt;Zusatz&amp;gt;&lt;/code&gt; einfach über das optionale Argument der Anweisung bestimmt werden kann. Ist das Argument nicht angegeben, wird wieder auf das Haupt-Inhaltsverzeichnis umgeschaltet. Aussehen könnte das so:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;\NewDocumentCommand&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\switchcontents&lt;/span&gt;&lt;span class="nb"&gt;}{&lt;/span&gt;o&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
  &lt;span class="k"&gt;\IfValueT&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;#1&lt;span class="nb"&gt;}&lt;/span&gt;
  &lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
    &lt;span class="k"&gt;\edef\ext@toc&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;toc#1&lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="c"&gt;% define new toc extension&lt;/span&gt;
  &lt;span class="nb"&gt;}{&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
    &lt;span class="k"&gt;\edef\ext@toc&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;toc&lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="c"&gt;% switch back to main ToC&lt;/span&gt;
  &lt;span class="nb"&gt;}&lt;/span&gt;
  &lt;span class="c"&gt;% If you do not want bookmarks for the following \chapter etc. remove&lt;/span&gt;
  &lt;span class="c"&gt;% the next three lines.&lt;/span&gt;
  &lt;span class="k"&gt;\scr@ifundefinedorrelax&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;hypersetup&lt;span class="nb"&gt;}{}{&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
    &lt;span class="k"&gt;\edef\reserved@a&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\noexpand\hypersetup&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;bookmarkstype=&lt;span class="k"&gt;\ext@toc&lt;/span&gt;&lt;span class="nb"&gt;}}&lt;/span&gt;&lt;span class="k"&gt;\reserved@a&lt;/span&gt;
  &lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
  &lt;span class="c"&gt;% Reserve the toc extension&lt;/span&gt;
  &lt;span class="k"&gt;\Ifattoclist&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\ext@toc&lt;/span&gt;&lt;span class="nb"&gt;}{}{&lt;/span&gt;&lt;span class="k"&gt;\addtotoclist&lt;/span&gt;&lt;span class="na"&gt;[toc]&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\ext@toc&lt;/span&gt;&lt;span class="nb"&gt;}}&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Die verwendeten KOMA-Script-Besonderheiten dabei sind:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Die KOMA-Script-Klassen schreiben nicht direkt in die Datei mit der Endung &lt;code&gt;toc&lt;/code&gt;. Stattdessen ist die Endung der Hilfsdatei für das Inhaltsverzeichnis über das Macro &lt;code&gt;\ext@toc&lt;/code&gt; definiert, das wiederum in der Voreinstellung &lt;code&gt;toc&lt;/code&gt; ist.&lt;/li&gt;
&lt;li&gt;Das Paket &lt;code&gt;tocbasic&lt;/code&gt; führt eine Liste der bekannten Endungen für Hilfsdateien. Mit &lt;code&gt;\Ifattoclist&lt;/code&gt; kann man abfragen, ob eine Endung bereits verwendet wird und mit &lt;code&gt;\addtotoclist&lt;/code&gt; kann man eine Endung der Liste der verwendeten Endungen hinzufügen.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Als nächstes definieren wir eine Anweisung, um auf ein Teil-Inhaltsverzeichnis umzuschalten. War das Teil-Inhaltsverzeichnis bei der Umschaltung noch nicht bekannt, so soll es außerdem ausgegeben werden. Als Voreinstellung für den &lt;code&gt;&amp;lt;Zusatz&amp;gt;&lt;/code&gt; wird hier die Ausgabe des Zählers &lt;code&gt;part&lt;/code&gt; verwendet:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;\newcommand*&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\partcontents&lt;/span&gt;&lt;span class="nb"&gt;}&lt;/span&gt;[1][&lt;span class="k"&gt;\thepart&lt;/span&gt;]&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
  &lt;span class="k"&gt;\Ifattoclist&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;toc#1&lt;span class="nb"&gt;}{&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
    &lt;span class="k"&gt;\switchcontents&lt;/span&gt;&lt;span class="na"&gt;[#1]&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
  &lt;span class="nb"&gt;}{&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
    &lt;span class="k"&gt;\switchcontents&lt;/span&gt;&lt;span class="na"&gt;[#1]&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
    &lt;span class="k"&gt;\listoftoc&lt;/span&gt;&lt;span class="na"&gt;[Contents of this Part]&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\ext@toc&lt;/span&gt;&lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="c"&gt;% show contents only for new extensions&lt;/span&gt;
  &lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Nun müssten wir also schlicht hinter einem &lt;code&gt;\part{…}&lt;/code&gt;, das ein Teil-Inhaltsverzeichnis erhalten soll, &lt;code&gt;\partcontents&lt;/code&gt; einfügen. Für nicht nummerierte Teile wäre als optionales Argument ein eindeutiger &lt;code&gt;&amp;lt;Zusatz&amp;gt;&lt;/code&gt; anzugeben.&lt;/p&gt;
&lt;p&gt;Allerdings wäre es natürlich wünschenswert, wenn wir die Wahl hätten, die Kapitel, Abschnitte etc. eines Teils, der über ein eigenes Teil-Inhaltsverzeichnis verfügt, auch im Hauptinhaltsverzeichnis zu sehen. Dazu ändern wir &lt;code&gt;\switchcontents&lt;/code&gt; leicht ab:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;\newif\ifparttocinmaintoc&lt;/span&gt;
&lt;span class="k"&gt;\NewDocumentCommand&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\switchcontents&lt;/span&gt;&lt;span class="nb"&gt;}{&lt;/span&gt;o&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
  &lt;span class="k"&gt;\IfValueTF&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;#1&lt;span class="nb"&gt;}&lt;/span&gt;
  &lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
    &lt;span class="k"&gt;\addtocontents&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\ext@toc&lt;/span&gt;&lt;span class="nb"&gt;}{&lt;/span&gt;&lt;span class="k"&gt;\protect\ifparttocinmaintoc\protect\InputIfFileExists&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\jobname&lt;/span&gt;.toc#1&lt;span class="nb"&gt;}{}{}&lt;/span&gt;&lt;span class="k"&gt;\protect\fi&lt;/span&gt;&lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="c"&gt;% conditionally load the part ToC into the main ToC&lt;/span&gt;
    &lt;span class="k"&gt;\edef\ext@toc&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;toc#1&lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="c"&gt;% define new toc extension&lt;/span&gt;
  &lt;span class="nb"&gt;}{&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
    &lt;span class="k"&gt;\edef\ext@toc&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;toc&lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="c"&gt;% switch back to main ToC&lt;/span&gt;
  &lt;span class="nb"&gt;}&lt;/span&gt;
  &lt;span class="c"&gt;% If you do not want bookmarks for the following \chapter etc. remove&lt;/span&gt;
  &lt;span class="c"&gt;% the next three lines.&lt;/span&gt;
  &lt;span class="k"&gt;\scr@ifundefinedorrelax&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;hypersetup&lt;span class="nb"&gt;}{}{&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
    &lt;span class="k"&gt;\edef\reserved@a&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\noexpand\hypersetup&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;bookmarkstype=&lt;span class="k"&gt;\ext@toc&lt;/span&gt;&lt;span class="nb"&gt;}}&lt;/span&gt;&lt;span class="k"&gt;\reserved@a&lt;/span&gt;
  &lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
  &lt;span class="c"&gt;% Reserve the toc extension&lt;/span&gt;
  &lt;span class="k"&gt;\Ifattoclist&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\ext@toc&lt;/span&gt;&lt;span class="nb"&gt;}{}{&lt;/span&gt;&lt;span class="k"&gt;\addtotoclist&lt;/span&gt;&lt;span class="na"&gt;[toc]&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\ext@toc&lt;/span&gt;&lt;span class="nb"&gt;}}&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Jetzt können wir &lt;em&gt;vor&lt;/em&gt; &lt;code&gt;\tableofcontents&lt;/code&gt; mit &lt;code&gt;\parttocinmaintoctrue&lt;/code&gt; dafür sorgen, dass alle Teil-Inhaltsverzeichnisse auch im Hauptinhaltsverzeichnis erscheinen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Achtung: Obige Erweiterung mit &lt;code&gt;\ifparttocinmaintoc&lt;/code&gt; funktioniert nur, wenn &lt;code&gt;\tableofcontents&lt;/code&gt; &lt;em&gt;vor&lt;/em&gt; dem ersten &lt;code&gt;\partcontents&lt;/code&gt; steht. Steht es erst nach &lt;code&gt;\partcontents&lt;/code&gt;, so sind die Teil-Inhaltsverzeichnisse zum Zeitpunkt, wenn sie in &lt;code&gt;\tableofcontents&lt;/code&gt; gelesen werden, bereits zum Schreiben geöffnet, aber noch leer.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Außerdem wäre es schön, wenn die Umschaltung auf das Haupt-Inhaltsverzeichnis bei jedem &lt;code&gt;\part&lt;/code&gt; automatisch erfolgen würde. Dafür bietet sich zum einen der KOMA-Script spezifische DoHook &lt;code&gt;heading/preinit/part&lt;/code&gt; an, der sehr weit am Anfang von &lt;code&gt;\part&lt;/code&gt; ausgeführt wird:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;\AddtoDoHook&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;heading/preinit/part&lt;span class="nb"&gt;}{&lt;/span&gt;&lt;span class="k"&gt;\switchcontents\@gobble&lt;/span&gt;&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Ähnliches kann man für &lt;code&gt;appendix&lt;/code&gt; über den Hook &lt;code&gt;\KOMAClassName/appendix&lt;/code&gt; erreichen:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;\AddToHook&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\KOMAClassName&lt;/span&gt;/appendix&lt;span class="nb"&gt;}{&lt;/span&gt;&lt;span class="k"&gt;\switchcontents&lt;/span&gt;&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Angenommen wir haben ein Dokument mit vier Teilen, wobei lediglich Teil II und Teil IV ein eigenes Inhaltsverzeichnis erhalten sollen. Dann könnte die Anwendung des ganzen so aussehen:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;\documentclass&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;scrreprt&lt;span class="nb"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;\usepackage&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;hyperref&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;\usepackage&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;mwe&lt;span class="nb"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;\newif\ifparttocinmaintoc&lt;/span&gt;
&lt;span class="k"&gt;\makeatletter&lt;/span&gt;
&lt;span class="k"&gt;\NewDocumentCommand&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\switchcontents&lt;/span&gt;&lt;span class="nb"&gt;}{&lt;/span&gt;o&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
  &lt;span class="k"&gt;\IfValueTF&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;#1&lt;span class="nb"&gt;}&lt;/span&gt;
  &lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
    &lt;span class="k"&gt;\addtocontents&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\ext@toc&lt;/span&gt;&lt;span class="nb"&gt;}{&lt;/span&gt;&lt;span class="k"&gt;\protect\ifparttocinmaintoc\protect\InputIfFileExists&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\jobname&lt;/span&gt;.toc#1&lt;span class="nb"&gt;}{}{}&lt;/span&gt;&lt;span class="k"&gt;\protect\fi&lt;/span&gt;&lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="c"&gt;% conditionally load the part ToC into the main ToC&lt;/span&gt;
    &lt;span class="k"&gt;\edef\ext@toc&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;toc#1&lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="c"&gt;% define new toc extension&lt;/span&gt;
  &lt;span class="nb"&gt;}{&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
    &lt;span class="k"&gt;\edef\ext@toc&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;toc&lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="c"&gt;% switch back to main ToC&lt;/span&gt;
  &lt;span class="nb"&gt;}&lt;/span&gt;
  &lt;span class="c"&gt;% If you do not want bookmarks for the following \chapter etc. remove&lt;/span&gt;
  &lt;span class="c"&gt;% the next three lines.&lt;/span&gt;
  &lt;span class="k"&gt;\scr@ifundefinedorrelax&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;hypersetup&lt;span class="nb"&gt;}{}{&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
    &lt;span class="k"&gt;\edef\reserved@a&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\noexpand\hypersetup&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;bookmarkstype=&lt;span class="k"&gt;\ext@toc&lt;/span&gt;&lt;span class="nb"&gt;}}&lt;/span&gt;&lt;span class="k"&gt;\reserved@a&lt;/span&gt;
  &lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
  &lt;span class="c"&gt;% Reserve the toc extension&lt;/span&gt;
  &lt;span class="k"&gt;\Ifattoclist&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\ext@toc&lt;/span&gt;&lt;span class="nb"&gt;}{}{&lt;/span&gt;&lt;span class="k"&gt;\addtotoclist&lt;/span&gt;&lt;span class="na"&gt;[toc]&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\ext@toc&lt;/span&gt;&lt;span class="nb"&gt;}}&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;\newcommand*&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\partcontents&lt;/span&gt;&lt;span class="nb"&gt;}&lt;/span&gt;[1][&lt;span class="k"&gt;\thepart&lt;/span&gt;]&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
  &lt;span class="k"&gt;\Ifattoclist&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;toc#1&lt;span class="nb"&gt;}{&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
    &lt;span class="k"&gt;\switchcontents&lt;/span&gt;&lt;span class="na"&gt;[#1]&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
  &lt;span class="nb"&gt;}{&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
    &lt;span class="k"&gt;\switchcontents&lt;/span&gt;&lt;span class="na"&gt;[#1]&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
    &lt;span class="k"&gt;\listoftoc&lt;/span&gt;&lt;span class="na"&gt;[Contents of this Part]&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\ext@toc&lt;/span&gt;&lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="c"&gt;% show contents only for new extensions&lt;/span&gt;
  &lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;\AddtoDoHook&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;heading/preinit/part&lt;span class="nb"&gt;}{&lt;/span&gt;&lt;span class="k"&gt;\switchcontents\@gobble&lt;/span&gt;&lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="c"&gt;% automatic switch back to main ToC at next \part&lt;/span&gt;
&lt;span class="k"&gt;\AddToHook&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\KOMAClassName&lt;/span&gt;/appendix&lt;span class="nb"&gt;}{&lt;/span&gt;&lt;span class="k"&gt;\switchcontents&lt;/span&gt;&lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="c"&gt;% automatic switch back to main ToC at \appendix&lt;/span&gt;
&lt;span class="k"&gt;\makeatother&lt;/span&gt;
&lt;span class="k"&gt;\parttocinmaintoctrue&lt;/span&gt;&lt;span class="c"&gt;% show the contents of the part ToC also in the main ToC&lt;/span&gt;
&lt;span class="c"&gt;%\parttocinmaintocfalse% don't show the contents of the part ToC in the main ToC&lt;/span&gt;

&lt;span class="k"&gt;\begin&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;document&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;\tableofcontents&lt;/span&gt;
&lt;span class="k"&gt;\part&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;First Part&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;\blinddocument&lt;/span&gt;

&lt;span class="k"&gt;\part&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;Second Part&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;\partcontents&lt;/span&gt;&lt;span class="c"&gt;% use \jobname.toc\thepart as new toc file and show the contents&lt;/span&gt;
&lt;span class="k"&gt;\blinddocument&lt;/span&gt;

&lt;span class="k"&gt;\part&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;Third Part&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;\blinddocument&lt;/span&gt;

&lt;span class="k"&gt;\part&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;Fourth Part&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;\partcontents&lt;/span&gt;&lt;span class="c"&gt;% use \jobname.toc\thepart as new toc file and show the contents&lt;/span&gt;
&lt;span class="k"&gt;\blinddocument&lt;/span&gt;

&lt;span class="k"&gt;\appendix&lt;/span&gt;
&lt;span class="k"&gt;\blinddocument&lt;/span&gt;
&lt;span class="k"&gt;\end&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;document&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Bevor die Frage kommt: Ja, man kann das Ganze auch für die Verwendung mit &lt;code&gt;\chapter&lt;/code&gt; statt mit &lt;code&gt;\part&lt;/code&gt; adaptieren:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;\newcommand*&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\chaptercontents&lt;/span&gt;&lt;span class="nb"&gt;}&lt;/span&gt;[1][&lt;span class="k"&gt;\thechapter&lt;/span&gt;]&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
  &lt;span class="k"&gt;\Ifattoclist&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;toc#1&lt;span class="nb"&gt;}{&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
    &lt;span class="k"&gt;\switchcontents&lt;/span&gt;&lt;span class="na"&gt;[#1]&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
  &lt;span class="nb"&gt;}{&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
    &lt;span class="k"&gt;\switchcontents&lt;/span&gt;&lt;span class="na"&gt;[#1]&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
    &lt;span class="k"&gt;\setuptoc&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;leveldown&lt;span class="nb"&gt;}{&lt;/span&gt;toc#1&lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="c"&gt;% the chapter toc is a section not a chapter&lt;/span&gt;
    &lt;span class="k"&gt;\listoftoc&lt;/span&gt;&lt;span class="na"&gt;[Contents of this Chapter]&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\ext@toc&lt;/span&gt;&lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="c"&gt;% show contents only for new extensions&lt;/span&gt;
  &lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="c"&gt;%&lt;/span&gt;
&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;\AddtoDoHook&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;heading/preinit/chapter&lt;span class="nb"&gt;}{&lt;/span&gt;&lt;span class="k"&gt;\switchcontents\@gobble&lt;/span&gt;&lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="c"&gt;% automatic switch back to main ToC at next chapter&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Werden in dem Dokument auch Teile verwendet, so ist der DoHook &lt;code&gt;heading/preinit/part&lt;/code&gt; beizubehalten. Anderenfalls kann er entfallen.&lt;/p&gt;
&lt;p&gt;Sowohl &lt;code&gt;\parttoc&lt;/code&gt; als auch &lt;code&gt;\chaptertoc&lt;/code&gt; zu verwenden, funktioniert so nicht. Dazu müsste man bei &lt;code&gt;heading/preinit/chapter&lt;/code&gt; zusätzlich wissen, ob man &lt;code&gt;\switchcontents&lt;/code&gt; oder &lt;code&gt;\switchcontents[\thepart]&lt;/code&gt; aufrufen muss. Das ist zwar eine bewältigbare Aufgabe, allerdings sollte man auch nicht zuviele Verzeichnisse verwenden.&lt;/p&gt;
&lt;p&gt;Auch die Verwendung unterschiedlicher &lt;code&gt;tocdepth&lt;/code&gt;-Einstellungen für das Haupt-Inhaltsverzeichnis und Teil-Inhaltsverzeichnisse ist lösbar (einfach entsprechende Zählereinstellungen an passender Stelle einfügen). Aber ich will hier einem zukünftigen Paket oder einer zukünftigen Erweiterung von KOMA-Script nicht zu sehr vorausgreifen.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Markus Kohm</dc:creator><pubDate>Tue, 30 Jun 2026 14:56:58 -0000</pubDate><guid>https://sourceforge.netbb775d58bdeb85018b9a5a38c33cea5dd5bce508</guid></item></channel></rss>