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:
Consigue el número
subsubsections
enbook
clase:\setcounter{secnumdepth}{3}
Numeración continua de
subsubsections
: Esto se puede hacer usandoremreset
el paquete para evitar el reinicio delsubsubsection
contador.Para contar
subsubsections
por capítulo,xcntperchap
se puede utilizar el paquete.Para formatear los títulos
section
ysubsubsection
, utilicé eltitlesec
paquete
\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}
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}