Unterabschnittsbereich zur Abschnittsnummerierung verwenden

Unterabschnittsbereich zur Abschnittsnummerierung verwenden

Okay, das ist vielleicht eine unkonventionelle Frage.

Ich möchte den Bereich der Unterabschnitte (oder Unterunterabschnitte aus Formatierungsgründen) als meine Abschnittsnummer verwenden.

So für:

\section{First section}
\subsubsection{\S1}
\subsubsection{\S2}
\subsubsection{\S3}

Ich möchte die Abschnittsüberschrift und den Inhaltsverzeichniseintrag erhalten:

§1 - §3 First section

Verwenden Sie also grundsätzlich den Text des ersten (Unter-)Unterabschnitts und den Text des letzten (Unter-)Unterabschnitts eines Abschnitts als angezeigte Abschnitts-„Nummer“.

Ich hätte nichts dagegen, diese Nummer am Anfang jedes Abschnitts explizit anzugeben, wenn dies nicht automatisch erfolgen kann.

Antwort1

Ihr Problem besteht aus einigen unterscheidbaren Unterproblemen:

  1. subsubsectionsLassen Sie sich im Unterricht nummerieren book:\setcounter{secnumdepth}{3}

  2. Fortlaufende Nummerierung von subsubsections: Dies kann mithilfe eines Pakets erfolgen, remresetum das Zurücksetzen des subsubsectionZählers zu verhindern.

  3. Um die subsubsectionspro Kapitel zu zählen, xcntperchapkann das Paket verwendet werden

  4. Zur Formatierung der sectionund subsubsectionTitel habe ich das titlesecPaket verwendet


\documentclass{book}

% numbered subsubsections in book class
\setcounter{secnumdepth}{3}

% number subsubsections continiously
\usepackage{remreset}
\makeatletter
    \@removefromreset{subsubsection}{chapter}
    \@removefromreset{subsubsection}{section}
    \@removefromreset{subsubsection}{subsection}
\makeatother

% count subsubsections per chapter
\usepackage{xcntperchap}
\RegisterTrackCounter{section}{subsubsection}

% format subsubsection titles
\usepackage[explicit]{titlesec}
\titleformat{\subsubsection}{\bfseries}{%
    \S \arabic{subsubsection}
}{0pt}{}

% Format section
\newcounter{start}
\newcounter{stop}

\titleformat{\section}{\bfseries}{%
    \setcounter{start}{\value{subsubsection}}%
    \addtocounter{start}{1}%
    \setcounter{stop}{\ObtainTrackedValueExp[\value{section}]{section}{subsubsection}}%
    \addtocounter{stop}{\value{start}}%
    \addtocounter{stop}{-1}%
    \ifnum\ObtainTrackedValueExp[\value{section}]{section}{subsubsection}>0
        \S \arabic{start} -- \S \arabic{stop}
    \fi
    #1
}{0pt}{}

\begin{document}

\section{First section}
\subsubsection{} 
\subsubsection{} 
\subsubsection{} 

\section{Second section}
\subsubsection{} 
\subsubsection{} 

\section{Third section}

\end{document}

Bildbeschreibung hier eingeben

Antwort2

Ich habe dieses Problem gelöst, indem ich benutzerdefinierte Zähler eingeführt habe

\newcounter{clause}
\newcounter{sectionstart}
\newcounter{sectionend}

\begin{document}
\setcounter{sectionstart}{\value{clause}}
\section*{Section 1}
\refstepcounter{sectionstart}
\refstepcounter{clause}
\subsubsection{\textbf{\S\arabic{clause}}}

\refstepcounter{clause}
\subsubsection{\textbf{\S\arabic{clause}}}

\setcounter{sectionend}{\value{clause}}
\addcontentsline{toc}{section}{\S\arabic{sectionstart}\enspace\textendash\enspace\S\arabic{sectionend}\quad Section 1}
\end{document}

Allerdings führt diese Lösung aufgrund der addcontentsline nach dem letzten Unterabschnitt zu falschen Seitenzahlen im Inhaltsverzeichnis. Ich wusste nicht, wie ich diesen falschen Anker beheben sollte, also habe ich beschlossen, einfach die erste Klausel zu verwenden und das deutsche „ff.“ für „und Folgendes“ an das Inhaltsverzeichnis anzuhängen.

Der Abschnittsstartzähler dient nur der Lesbarkeit und kann übersprungen werden, wenn der Inhaltsverzeichniscode des Abschnitts in die erste Klausel verschoben wird.

\newcounter{clause}
\newcounter{sectionstart}

\begin{document}
\setcounter{sectionstart}{\value{clause}}
\refstepcounter{sectionstart} % increase by 1 as section should have at least 1 clause
\section*{Section 1}
\addcontentsline{toc}{section}{\S\arabic{sectionstart}\space ff.\enspace Section 1}

\refstepcounter{clause}
\subsubsection{\textbf{\S\arabic{clause}}}

\refstepcounter{clause}
\subsubsection{\textbf{\S\arabic{clause}}}

\end{document}

verwandte Informationen