Sie sind hier

Part zentriert mithilfe von tocbasic

In einem Post von 2015 (https://komascript.de/node/2000) hattest Du das Zentrieren der part-Überschriften im Inhaltsverzeichnis mittels einer Umdefinition von l@part beschrieben, meintest jedoch gleichzeitig, ab Version 3.20 werde es dann eine bessere Möglichkeit geben. So wie ich es verstanden habe, mittels eine Definition neuer Stile mithilfe von tocbasic.
Ich habe mir das in der Anleitung durchgelesen, aber es scheint alles andere als trivial zu sein. Du schreibst dort auch, es sei nur für Entwickler und nicht für Anwender gedacht.
Könntest Du evtl. die aktuell empfehlenswerte Lösung für das Problem beschreiben? (Am besten gleich eine Lösung ohne Ausgabe der Seitenzahl.)

\documentclass{scrbook}
\renewcommand*{\raggedsection}{\centering}
\usepackage[ngerman]{babel}
\begin{document}
\tableofcontents
\part{Eintrag erster Teil}
\end{document}

Danke!

PS: Dass Du entschieden davon abrätst, die Textausrichtung zu mischen, ist mir bekannt.

Bild von Markus Kohm

in der Antwort zum verlinkten Beitrag erwähnt, kann man inzwischen eigene Verzeichnisstile definieren. Ich bin allerdings derzeit noch in Rekonvaleszenz und deshalb nicht in der Lage das vorzuführen (schon die Eingabe der Tags ist am Tablet mehr als lästig). Je nachdem, wieviel Flexibilität man haben will, kann man eine \l@…-Definition aber recht einfach in eine verallgemeinerte Stil-Definition überführen. Siehe dazu beispielsweise die Definition der einfachen Stile dottedtocline und undottectocline oder auch largetocline.

Bild von Markus Kohm

Durch weite Auslegung der Möglichkeiten, kann man das im verlinkten Beitrag nachgefragte Zentrieren eines Eintrags ohne Seitenzahl auch so erreichen:

\makeatletter
\newcommand{\specialparttocentryformat}[1]{% Das Argument ist der Eintrag samt aller Formatierungen aber noch ohne die Seitenzahl.
  \centering% Eintrag insgesamt zentrieren
% \large\bfseries% falls die Einträge groß und fett werden sollen
  \let\numberline@box\mbox% Eintrags-Nummer ohne feste Breite
  \def\autodot{: }% Doppelpunkt und ein Leerzeichen nach der Nummer
  #1% nicht vergessen, den Eintrag auch auszugeben
}
\RedeclareSectionCommand[%
  tocnumwidth=0pt,% Keine feste Nummernbreite.
  tocindent=0pt,% Kein fester Einzug
  tocentryformat=\specialparttocentryformat,% s. o.
  toclinefill={},% Keine Füllzeichen zwischen Eintrag und Seitenzahl
  tocpagenumberbox=\@gobble,% Seitenzahl ignorieren
  tocpagenumberwidth=0pt,% Keine reservierte Breite für die Seitenzahl
  tocrightindent=0pt,% Kein fester Abstand nach rechts
  tocraggedpagenumber,% Seitenzahl muss auch nichts rechtsbündig sein.
]{part}
\makeatother
\renewcommand*{\addparttocentry}[2]{%
  \IfArgIsEmpty{#1}{%
    \addtocentrydefault{part}{#1}{#2}%
  }{%
    \addtocentrydefault{part}{\protect\partname~#1}{#2}% Hier wird das "Teil" vor die Nummer gesetzt, weil das an der Stelle leichter geht als in \numberline@box (falls es nicht nummerierte Einträge gibt und Feature numberline gesetzt ist).
  }%
}

Ein entscheidender Punkt dabei ist, dass man nicht nur \centering setzt, sondern auch die Füllung zwischen Eintragstext und Seitenzahl deaktiviert. Anderenfalls könnte das Zentrieren nicht funktionieren. Der Rest ist dann hauptsächlich Kosmetik bezüglich der weiteren Wünsche. So kann man durchaus auch die Umdefinierung von \numberline@box weglassen und dafür eine Breite für die Nummer angeben (beispielsweise 3.5em). Dann behalten die Nummern eine feste Breite. Man verstehe diesen Hinweis als Aufforderung mit den Parametern ein wenig zu spielen und zu sehen, was passiert.

Diese Lösung ist, so weit ich sehe, für meine Zwecke völlig ausreichend. (Es war lediglich noch die Umstellung auf serifenlose Schrift einzutragen, um die Standard-Formatierung zu erreichen.)
Mir ging es nur darum, dass ich das in einer allgemeinen Klasse definieren und dann in Unter-Klassen oder einzelnen Dokumenten einfach mithilfe von RedeclareSectionCommand individuelle Anpassungen, z.B. von tocbeforeskip, vornehmen kann. Dies war mit der im verlinkten Beitrag beschriebenen Methode nicht möglich.

Comments for "Part zentriert mithilfe von tocbasic" abonnieren