Uso del rango de subsecciones para la numeración de secciones

Uso del rango de subsecciones para la numeración de secciones

Bien, esta podría ser una pregunta poco convencional.

Quiero utilizar el rango de las subsecciones (o subsecciones por motivos de formato) como mi número de sección.

Entonces para:

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

Me gustaría obtener el título de la sección y la entrada de ToC:

§1 - §3 First section

Básicamente, utilice el texto de la primera (sub)subsección y el texto de la última (sub)subsección de una sección como la sección mostrada: "número".

No me importaría declarar explícitamente este número al principio de cada sección, si no se puede hacer automáticamente.

Respuesta1

Su problema consta de algunos subproblemas distinguibles:

  1. Consigue el número subsubsectionsen bookclase:\setcounter{secnumdepth}{3}

  2. Numeración continua de subsubsections: Esto se puede hacer usando remresetel paquete para evitar el reinicio del subsubsectioncontador.

  3. Para contar subsubsectionspor capítulo, xcntperchapse puede utilizar el paquete.

  4. Para formatear los títulos sectiony subsubsection, utilicé el titlesecpaquete


\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}

ingrese la descripción de la imagen aquí

Respuesta2

Resolví esto introduciendo contadores personalizados.

\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}

Aunque esta solución introduce números de página incorrectos en el ToC debido a la línea addcontents después de la última subsección. No sabía cómo arreglar ese anclaje incorrecto, así que decidí usar la primera cláusula y agregarle la "ff" en alemán. para "y lo siguiente" al ToC.

El contador de inicio de sección es solo para facilitar la lectura y se puede omitir si el código ToC de la sección se mueve a la primera cláusula.

\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}

información relacionada