Flexible Überschriften, mit / ohne Number im / nicht im ToC

Klassen und Pakete zur einfachen Umsetzung individueller Vorstellungen


Permutation
Forum-Anfänger
Forum-Anfänger
Beiträge: 24
Registriert: Mi 12. Jan 2022, 19:01

Flexible Überschriften, mit / ohne Number im / nicht im ToC

Beitrag von Permutation »

Hallo zusammen,

ich würde gerne meine Überschriften sehr flexibel gestalten, d.h. ich würde gerne normale Überschriften habe, d.h. mit Zahl und im ToC, und eben Kombinationen davon. Dies soll nicht nur für bestehende Überschriften, d.h. bei scrreprt von chapter bis subparagraph sondern auch für neu definierte Überschriften möglich sein. Des Weiteren sollen die Einstellungen nicht global gelten, sondern an jeder Stelle im Dokument möglich sein.

Mögliche Überschriften:

- mit Nummer und im ToC
- mit Nummer nicht im ToC
- ohne Nummer im ToC
- ohne Nummer nicht im ToC

Ich habe schon gesehen, dass es bei chapter \addchap, \addchap* und \chaptermark gibt, um vieles zu steuern. Jedoch schaffe ich es nicht damit alle Fälle abzudecken.

Meine Probleme:
- Für neu definierte Überschriften habe ich nicht die Möglichkeiten wie z.B. \addchap
- \chaptermark setzen und wieder rückgängig machen
\documentclass[a4paper,parskip,chapterentrydots=true,fontsize=10pt]{scrreprt}
\usepackage{scrlayer-scrpage}

\setcounter{tocdepth}{6}
\setcounter{secnumdepth}{6}
\DeclareNewSectionCommand[%
  style=section,%
  tocstyle=section,%
  level=6,%
  afterskip=-1em,%
  beforeskip=3.25ex plus 1ex minus .2ex,%
  indent=0pt,%
  afterindent=bysign,%
  runin=bysign,%
  font=\normalcolor\normalsize\bfseries\sffamily,%
  tocindent=14em,%
  tocnumwidth=7em,%
  counterwithin=subparagraph%
]{customSectionA}
\begin{document}

\tableofcontents

% mit Nummer und im ToC
\chapter{Chapter}
\section{Section}
\subsection{SubSection}
\subsubsection{Subsubsection}
\paragraph{Paragraph}
\subparagraph{Subparagraph}
\customSectionA{CustomSectionA}

% mit Nummer nicht im ToC
\chapter{Chapter} % ???
\section{Section} % ???
\subsection{SubSection} % ???
\subsubsection{Subsubsection} % ???
\paragraph{Paragraph} % ???
\subparagraph{Subparagraph} % ???
\customSectionA{CustomSectionA} % ???

% ohne Nummer im ToC
\addchap{Chapter}
\addsec{Section}
\subsection{SubSection} % ??? 
\subsubsection{Subsubsection} % ???
\paragraph{Paragraph} % ???
\subparagraph{Subparagraph} % ???
\customSectionA{CustomSectionA} % ???

% ohne Nummer nicht im ToC 
% normal mit * aber ich hab gelesen das dies zu Problemen führen kann 
\chapter{Chapter} % ???
\section{Section} % ???
\subsection{SubSection} % ???
\subsubsection{Subsubsection} % ???
\paragraph{Paragraph} % ???
\subparagraph{Subparagraph} % ???
\customSectionA{CustomSectionA} % ???

% mit Nummer und im ToC um zu sehen ob Änderungen wieder rückgängig gemacht wurden
\chapter{Chapter}
\section{Section}
\subsection{SubSection}
\subsubsection{Subsubsection}
\paragraph{Paragraph}
\subparagraph{Subparagraph}
\customSectionA{CustomSectionA}

\end{document}

Für Hinweise wäre ich sehr Dankbar

Schöne Grüße

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Re: Flexible Überschriften, mit / ohne Number im / nicht im ToC

Beitrag von KOMA »

Das ist alles kein Problem und es gibt sogar unterschiedliche Lösungsmöglichkeiten.

Zunächst die Dinge, die immer möglich sind:
  1. Überschriften mit Nummer und mit ToC-Eintrag gibt es bei der Normalform der Befehle \chapter … für alle Gliederungebenen, wenn secnumdepth und tocdepth entsprechend hoch eingestellt sind.
  2. Überschriften ohne Nummer mit ToC-Eintrag gibt es bei der Normalform der Befehle \chapter … für alle Gliederungebenen, wenn secnumdepth entsprechend niedrig und tocdepth entsprechend hoch eingestellt ist.
  3. Überschriften mit Nummer aber ohne TOC-Eintrag sind mit der Normalform der Befehle \chapter … für alle Gliederungsebenen möglich, wenn secnumdepth entsprechend hoch, tocdepth aber entsprechend niedrig eingestellt ist.
  4. Überschriften ohne Nummer und ohne TOC-Eintrag sind mit der Normalform der Befehle \chapter … für alle Gliederungebenen möglich, wenn secnumdepth und tocdepth entsprechend niedrig eingestellt sind. Darüber hinaus sind sie mit der Sternform der Befehle \chapter* … möglich. Diese haben aber den Nebeneffekt, dass der Kolumnentitel nicht angepasst wird. Da Du im Beispiel ohne Kolumnentitel (plain-Seitenstil) arbeitest, wäre das im gezeigten Beispiel kein Problem
Die Fälle 3 und 4 haben das Problem, dass nicht der Wert von tocdepth zählt, der bei Verwendung des Gliederungbefehls gilt, sondern der Wert, der bei Abarbeitung des Eintragsbefehls im Inhaltsverzeichnis gilt. Man müsste also Änderungen von tocdepth in die ToC-Datei schreiben, was mehr als lästig ist. Aber es gibt ja diese wunderschönen KOMA-Script-Erweiterungen, die alle in der Anleitung erklärt sind:
  • Überschriften ohne Nummer aber mit ToC-Eintrag sind auf chapter- und section-Ebene mit \addchap und \addsec möglich. Überschriften ohne Nummer und ohne ToC-Eintrag sind auf diesen Ebenen darüber hinaus mit den Sternformen \addchap* und \addsec* möglich. Diese setzen allerdings einen leeren Kolumnentitel.
  • Man kann bei KOMA-Script via Option headings=optiontotocandhead, headings=optiontoctoc oder headings=optiontohead eine erweiterte Behandlung der Gliederungbefehle aktivieren. Das optionale Argument kann dann zusätzliche Optionen enthalten, die für den jeweiligen Befehl gelten. Die Unterschied zwischen den drei Einstellungen sind bitte der Anleitung zu entnehmen.
  • Setzte man bei den Gliederungbefehlen über das optionale Argument einen leeren ToC-Eintrag, so erfolgt in Wirklichkeit kein ToC-Eintrag. Beispielsweise \subsection[]{Test} würde keinen Inhaltsverzeichniseintrag erzeugen. Man kann auch deutlicher werden und \subsection[tocentry={}]{…} verwenden.
  • Bei aktivierter erweiterter Behandlung kann man im optionalen Argument außerdem die Option nonumber=true verwenden, um die Nummerierung der Überschrift abzuschalten.
Insgesamt ergibt sich damit beispielsweise folgende Lösung:
\documentclass[parskip,chapterentrydots=true,fontsize=10pt,headings=optiontotocandhead]{scrreprt}% a4paper ist Voreinstellung
\usepackage{scrlayer-scrpage}% Bewirkt  fast nichts, solange man weder Option automark/manualmark noch einen Befehl zur Konfigurierung der Seitenstile verwendet.

\setcounter{tocdepth}{6}% Nicht empfehlenswert und wenn, dann ist symbolisch einfacher (nach Deklaration der neuen Ebene).
\setcounter{secnumdepth}{6}% Nicht empfehlenswert und wenn, dann ist symbolisch einfacher (nach Deklaration der neuen Ebene).
\DeclareNewSectionCommand[%
  style=section,%
  tocstyle=section,%
  level=6,% Wäre nicht \numexpr \subparagraphnumdepth+1\relax besser?
  afterskip=-1em,%
  beforeskip=3.25ex plus 1ex minus .2ex,%
  indent=0pt,%
  afterindent=bysign,%
  runin=bysign,%
  font=\normalcolor\normalsize\bfseries\sffamily,% Ergibt bei voreingestelltem Element disposition genau keine Änderung, das \normalcolor ohne \nobreak ist aber nicht ungefährlich.
  tocindent=14em,%
  tocnumwidth=7em,%
  counterwithin=subparagraph%
]{customSectionA}% Warum nicht subsubparagraph?
\begin{document}

\tableofcontents

% mit Nummer und im ToC
\chapter{Chapter im ToC}
\section{Section im ToC}
\subsection{SubSection im ToC}
\subsubsection{Subsubsection im ToC}
\paragraph{Paragraph im ToC}
\subparagraph{Subparagraph im ToC}
\customSectionA{CustomSectionA im ToC}

% mit Nummer nicht im ToC
\chapter[tocentry={}]{Chapter nicht im ToC}
\section[tocentry={}]{Section nicht im ToC}
\subsection[]{SubSection nicht im ToC}
\subsubsection[]{Subsubsection nicht im ToC}
\paragraph[]{Paragraph nicht im ToC}
\subparagraph[]{Subparagraph nicht im ToC}
\customSectionA[]{CustomSectionA nicht im ToC}

% ohne Nummer im ToC
\addchap{Chapter im ToC}
\addsec{Section im ToC}
\subsection[nonumber=true]{SubSection im ToC} 
\subsubsection[nonumber=true]{Subsubsection im ToC}
\paragraph[nonumber=true]{Paragraph im ToC}
\subparagraph[nonumber=true]{Subparagraph im ToC}
\customSectionA[nonumber=true]{CustomSectionA im ToC}

% ohne Nummer nicht im ToC 
\addchap[tocentry={}]{Chapter} % oder \addchap*{Chapter}, wenn der Kolumnentitel leer bleiben soll
\addsec[tocentry={}]{Section} % oder \addchap*{Section}, wenn der Kolumnentitel leer bleiben soll
\subsection*{SubSection}% Hier könnte man auch \subsection[tocentry={},nonumber]{Subsection} verwenden.
\subsubsection*{Subsubsection}% entsprechend
\paragraph*{Paragraph}% entsprechend
\subparagraph*{Subparagraph}% entsprechend
\customSectionA*{CustomSectionA}% entsprechend

% mit Nummer und im ToC um zu sehen ob Änderungen wieder rückgängig gemacht wurden
\chapter{Chapter im ToC}
\section{Section im ToC}
\subsection{SubSection im ToC}
\subsubsection{Subsubsection im ToC}
\paragraph{Paragraph im ToC}
\subparagraph{Subparagraph im ToC}
\customSectionA{CustomSectionA im ToC}

\end{document}
Natürlich könnte man auch \addchap und \addsec durch \chapter und \section mit entsprechendem optionalem Argument ersetzen. Der Unterschied ist, dass die beiden zusätzlichen Befehle auch ohne aktivierter Erweiterung für die Gliederungsbefehle funktionieren.

Übrigens, dass nonumber (ohne Wert) als alleine Option im Gegensatz zu nonumber=true nicht funktioniert liegt an der Implementierung. Über das Gleichheitszeichen wird erkannt, dass versucht wird, eine Option zu setzen, statt einfach einen Wert für ToC und/oder Head anzugeben. AFAIR ist das im KOMA-Script-Buch auch erklärt, aber ich bin gerade zu faul, nachzuschauen.

Anzumerken wäre ansonsten noch, dass es üblicherweise als stilistischer Mangel gilt, mehr als drei nummerierte Gliederungsebenen zu haben und die auch noch alle ins Inhaltsverzeichnis aufzunehmen. Ebenso ist es mehr als merkwürdig einige Überschriften derselben Ebene ins Inhaltsverzeichnis aufzunehmen und andere nicht. Und bei nicht nummerierten Überschriften verliert man sehr schnell die Ebene aus dem Blick, so dass man diese auch eher sparsam tief stapeln sollte. Aber ich weiß natürlich, dass es da draußen Disziplinen und Fakultäten gibt, die sich einen Dreck um gute Typografie oder guten Stil scheren. Daher habe ich auch gezeigt, wie man solche Dinge mit KOMA-Script sehr einfach realisieren kann. Ich warne nur davor, dergleichen ohne sehr guten Grund zu tun.

Permutation
Forum-Anfänger
Forum-Anfänger
Beiträge: 24
Registriert: Mi 12. Jan 2022, 19:01

Re: Flexible Überschriften, mit / ohne Number im / nicht im ToC

Beitrag von Permutation »

Vielen vielen Dank für die ausführliche Hilfe und die wertvollen Hinweise und Tipps. Bin mittlerweile mehr als überzeugt von KOMA, auch wenn ich noch nicht viel damit gemacht habe.

Ich selbst werde die Dinge in deinen Anmerkungen (stilistischer Mangel) nicht machen, jedoch schreibe ich gerade ein kleines Tool, das TeX-Dateien erzeugen kann. In diesem wollte ich diese Optionen anbieten, da es ja sein kann, dass jemand nur eines der Optionen wählt und nicht wild mischt.

Und nochmals vielen Dank.

Permutation
Forum-Anfänger
Forum-Anfänger
Beiträge: 24
Registriert: Mi 12. Jan 2022, 19:01

Re: Flexible Überschriften, mit / ohne Number im / nicht im ToC

Beitrag von Permutation »

Und hier die Antworten und Bemerkungen aus dem Beispiel:
\setcounter{tocdepth}{6}% Nicht empfehlenswert und wenn, dann ist symbolisch einfacher (nach Deklaration der neuen Ebene).
\setcounter{secnumdepth}{6}% Nicht empfehlenswert und wenn, dann ist symbolisch einfacher (nach Deklaration der neuen Ebene).
Hab gelesen, dass man das setzen muss, wenn man eine neue Ebene definiert und diese im ToC angezeigt werden soll, bzw. die Zähler bis zu dieser Ebene gehen. Aber die Position kann ich ändern bzw. schauen wie man es "richtig" macht
level=6,% Wäre nicht \numexpr \subparagraphnumdepth+1\relax besser?
Stimmt, dadurch kann man die "magic numbers" vermeiden. Und soweit ich gelesen habe, werden für neue Ebenen auch ein \Namenumdepth angelegt.
]{customSectionA}% Warum nicht subsubparagraph?
Der Code wird von einem Tool generiert und da es möglich ist auch n neue Ebenen einzuführen, wird der Name generiert: "customSection" + "A" (A==1, B==2, usw.).

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Re: Flexible Überschriften, mit / ohne Number im / nicht im ToC

Beitrag von KOMA »

Bezüglich Verwendung von Vorsilbe "sub" vs. nachgestelltem Buchstaben sei schlicht darauf hingewiesen, dass einige Einstellungen im Verzeichnis mit der "sub"-Vorsilbe automatisch ermittelt werden können, während das mit einem nachgestellten Buchstabe so nicht funktioniert. Das müsste in der Anleitung im tocbasic-Kapitel auch erklärt sein.

Wie du level und \setcounter verwendest, ist mir letztlich egal. Ich kann mir nur gewisse typografische Hinweise so wenig verkneifen wie den einen oder anderen mehr oder weniger versteckten Trick-17-Hinweis. Die muss man nicht alle übernehmen. Sie sollen eher zum Nachdenken anregen, als stumpf abgekupfert zu werden.

Permutation
Forum-Anfänger
Forum-Anfänger
Beiträge: 24
Registriert: Mi 12. Jan 2022, 19:01

Re: Flexible Überschriften, mit / ohne Number im / nicht im ToC

Beitrag von Permutation »

Und wieder Danke für den Hinweis. Ich werde mir den Abschnitt mal durchlesen und die Namensgenerierung anpassen. Dem Programm ist es egal wie sie heißen, aber wenn man Vorteile in TeX damit erlangt, dann sollte ich diese nutzen.

Kein Problem. Über Hinweise, Tricks oder konstruktive Kritik bin ich immer sehr dankbar.

Antworten