
Mi documento tiene una tabla de contenido. Como descubrí, después de insertar uno ( \tableofcontents
), LaTeX lo hace \clearpage
de forma predeterminada.
Un método a ignorar \clearpage
es el comando \let\clearpage\relax
, que lo ignora hasta el final del documento. Aunque no tengo ningún otro comando en mi documento, se borró mi última página. Entonces quiero reaccionar \clearpage
inmediatamente después de que se generó el toc.
Estoy buscando algo como:
\let\clearpage\relax
\tableofcontents
\*reactive it*
Un intento de hacerlo \begingroup
falló.
\begingroup
\let\clearpage\relax
\tableofcontents
\endgroup
¿Algunas ideas?
Respuesta1
Al menos con la clase de documento book
, las pruebas rápidas sugieren que\tableofcontents
noinserta un \clearpage
, pero\chapter
hace. Por lo tanto, debes colocar tu grupo \let\clearpage\relax
alrededor del primer \chapter
comando (o lo que sea similar) después de tu \tableofcontents
. El siguiente ejemplo, por ejemplo, compone una página:
\documentclass{book}
\begin{document}
\tableofcontents
\begingroup
\let\clearpage\relax
\chapter{Hello, world!}
\endgroup
And goodbye.
\end{document}
La respuesta anterior, que responde a la pregunta formulada pero no resuelve el problema (y de todos modos, normalmente deberías usar \begingroup
... \endgroup
en su lugar).
Puedes guardar y restaurar \clearpage
:
\let\oldclearpage\clearpage
\let\clearpage\relax
\tableofcontents
\let\clearpage\oldclearpage
\let
simplemente define un comando como un duplicado de uno existente, entonces:
\let\oldclearpage\clearpage
hace\oldclearpage
equivalente a\clearpage
.\let\clearpage\relax
hace\clearpage
equivalente a\relax
, que es un comando que no hace nada.\tableofcontents
se ejecuta, sin\clearpage
hacer nada.- Finalmente,
\let\clearpage\oldclearpage
hace\clearpage
equivalente a\oldclearpage
, que es equivalente al original\clearpage
.
Respuesta2
\let\standardclearpage\clearpage
\let\clearpage\relax
\tableofcontents
%\*reactive it*
\let\clearpage\standardclearpage