Renovación de las distancias del índice de contenidos, saltos en negrita para los números de página de las secciones y de los títulos

Renovación de las distancias del índice de contenidos, saltos en negrita para los números de página de las secciones y de los títulos

Parece un problema sencillo pero no está claro cómo solucionarlo.

Considera esto

\renewcommand{\thesection}{\arabic{section} ABCXYZ}
...
\tableofcontents
\section{The title of the section}

producirá una superposición entre el número "1" y "El título de la sección" y ABCXYZ.

La distancia entre el número y el título está fijada por el índice. No es variable. No puedes poner nada allí. Por supuesto, es el mismo problema que cuando el número de sección es demasiado largo en comparación con la distancia fija:\setcounter{section}{1000}

La siguiente solución

\makeatletter\renewcommand*\l@section{\@dottedtocline{1}{...}{...}}\makeatother

Funciona más o menos.

Sin embargo, parece restablecer algunos de los parámetros toc normales.

Al menos restablece visiblemente los números de sección y los títulos de las secciones en negrita, mientras que los mosaicos de las subsecciones y los títulos de las subsubsecciones no están en negrita. Los números de página de las secciones también dejan de estar en negrita. Conviértase en números de página como subsecciones en el toc.

Eso es malo.

envolviendo

\textbf{arabic{section}}adentro\renewcommand{\thesection}

funciona. Pero... no puede llegar al título de la sección.

\section{\textbf{TITLE IS HERE}}

no es ideal por varias razones.

P: ¿Cómo recuperamos el resto de la negrita y el formato normal del índice predeterminado después de renovar la sección *l@?

Sin ningún paquete por favor.

Una subpregunta es esta: defino una longitud y establezco su ancho para que sea la longitud de ```\arabic{section} ABCXYZ'' y ahora, después de haber establecido la distancia toc de la sección bastante grande, deseo restar esta distancia variable .

El resultado sería que el número de sección, al ser pequeño, no tiene un espacio grande entre él y el título. Parece que \renewcommand{\thesection}{...}no es el lugar adecuado para ponerlo. No afectaría el espaciado del título de la sección.

P: ¿Qué más es necesario renovar y cuál es el lugar correcto para pegar un objeto hspace{\correction} para afectar el título de la sección tal como aparece en la tabla de contenido?

Probablemente este sea exactamente el mismo lugar donde también se puede reconstruir el formato predeterminado.

Respuesta1

La definición de \l@sectionproviene de la clase de documento, por lo que no es un paquete, pero no forma parte exactamente de LaTeX. te sugiero que pongas

\makeatletter \show\l@section \makeatother

en su documento para ver la definición preexistente.

Supongo que estás utilizando la clase de documento "artículo", donde \l@sectionse usa negrita y no se usa \@dottedtoclineen absoluto. En la definición que se encuentra en el artículo.cls, hay una configuración misteriosa de

\setlength\@tempdima{1.5em}%

y ese es el ancho del número de sección (usado por \numberline).

No publicaré la definición completa porque no tengo la última versión. Pero tal vez quieras reconsiderar el uso de un paquete para formatear el toc.

¡Una alternativa es redefinir \numberlinepara que simplemente no se superponga el número y el título!

\makeatletter
\renewcommand\numberline[1]{%
\begingroup
 \sbox\@tempboxa{#1 }%
 \ifdim\wd\@tempboxa<\@tempdima
  \wd\@tempboxa=\@tempdima
 \fi
 \usebox\@tempboxa
\endgroup
}

Respuesta2

Sé que dijiste que no deseas usar ningún paquete, pero a continuación he usado el tocloftpaquete para indicar lo que se puede hacer. El único cambio en el ToC es el espacio para los números de sección. Si desea otros cambios, el paquete ofrece muchas funciones ( texdoc tocloft).

    % tocprob5.tex SE 533343 section numbers
\documentclass{article}
\renewcommand{\thesection}{\arabic{section} ABCXYZ}
\usepackage{tocloft}
\newlength{\mylen} 
\settowidth{\mylen}{\textbf{99 ABCXYZ}} % the space required for the section number
\setlength{\cftsecnumwidth}{\mylen} % set space for section number
\setlength{\cftsubsecnumwidth}{\mylen} % set space for subsection number
\begin{document}
\tableofcontents
\section{Section}
\subsection{Subsection}
\section{Another section}
\end{document}

Espero que no utilice su ejemplo de redefinición \thesectionen su documento real, ya que entonces el primero \subsectiondel primero \sectionse numerará como "1 ABCXYZ.1", lo que a mí me parece realmente extraño. Quizás desee redefinir un poco la numeración de las subsecciones.

información relacionada