Tengo una ToC larga proporcionada por el tocloft
paquete. 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}
Respuesta1
Aquí hay un extracto de la página 6 de la guía del usuario del tocloft
paquete:
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
\addtocontents
en 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\needspace
macro está definida en elneedspace
paquete).
Tenga en cuenta, dicho sea de paso, que estos consejos no dependen del tocloft
paquete 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 \nopagebreak
sección posterior a los títulos. Con tocloft
esto 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:
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.