Mantenga la sección y la subsección juntas en la tabla de contenido

Mantenga la sección y la subsección juntas en la tabla de contenido

Tengo una ToC larga proporcionada por el tocloftpaquete. Es lo suficientemente largo como para pasar a una segunda página. Lo que tengo entonces es que (por ejemplo) la sección 2 está al final de la primera página y la sección 2.1 está al comienzo de la segunda página.

Idealmente, me gustaría agrupar secciones y subsecciones en el ToC de manera que si se dividen en una página como esa, simplemente se envíen a una nueva página. El resultado final sería que la primera página terminaría con la sección 1.X y la segunda página comenzaría con la sección 2 (y así sucesivamente...).

¿Hay alguna manera de configurar esto?


MWE que ilustra el problema.

\documentclass{article}
\usepackage{tocloft}

\begin{document}

\tableofcontents
\clearpage

\section{Section 1}
\subsection{A subsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsection{A subsection}
\subsection{A subsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsection{A subsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}

\section{A Second Section}
\subsection{A subsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}
\subsubsection{A subsubsection}

\section{A Third Section}
\subsection{A subsection}
\subsubsection{A subsubsection}

\end{document}

Ilustración MWE

Respuesta1

Aquí hay un extracto de la página 6 de la guía del usuario del tocloftpaquete:

Es posible que aparezcan saltos de página no deseados en el ToC. Por ejemplo, es posible que tenga un título de sección largo de varias líneas y en el ToC haya un salto de página entre líneas. Una vez que su documento esté estable, puede usarlo \addtocontentsen los lugares apropiados del cuerpo del documento para ajustar el salto de página en el ToC. Como ejemplos:

  • \addtocontents{toc}{\protect\newpage}para forzar un salto de página.

  • \addtocontents{toc}{\protect\enlargethispage{2\baselineskip}} para alargar la página.

  • \addtocontents{toc}{\protect\needspace{2\baselineskip}}para especificar que si no queda un espacio vertical de dos líneas de base en la página, comience una nueva página. (La \needspacemacro está definida en el needspace paquete).

Tenga en cuenta, dicho sea de paso, que estos consejos no dependen del tocloftpaquete que se esté cargando.

Entonces, para su documento, la acción óptima sería insertar la instrucción

\addtocontents{toc}{\protect\newpage}

inmediatamente antes

\section{A Second Section}

en el cuerpo del documento.

Finalmente, tome nota del calificador "después de que su documento esté estable". Por supuesto, no participe en estas operaciones de ajuste a menos y hasta que su documento esté prácticamente terminado.

Respuesta2

Otra versión de l̶e̶s̶s̶ ̶h̶a̶c̶k̶y que no requiere que la configuración del documento esté finalizada sería agregar una \nopagebreaksección posterior a los títulos. Con tocloftesto se podría hacer a través de

\renewcommand{\cftsecafterpnum}{\nopagebreak}

(si desea agregarlo manualmente a una sola sección, deberá agregar \protect\nopagebreak)

En su ejemplo, esto funciona según lo previsto:

toc con pausa en el lugar correcto

Respuesta3

Con la ayuda demarmota, Pude pasar mi título a la página siguiente con un simple \enlargethispage{-0.5cm}comando. No es la solución más ideal porque es muy manual y específica para el problema, pero al menos funciona.

Del MWE anterior, cambié

\tableofcontents

con

{%
    \enlargethispage{-0.5cm}
    \tableofcontents
}

que produjo el siguiente resultado.

Ejemplo de ToC fijo

información relacionada