„\clearpage“ in LaTeX reaktivieren, nachdem es mit „\let\clearpage\relax“ deaktiviert wurde

„\clearpage“ in LaTeX reaktivieren, nachdem es mit „\let\clearpage\relax“ deaktiviert wurde

Mein Dokument enthält ein Inhaltsverzeichnis. Wie ich herausgefunden habe, \tableofcontentsführt LaTeX nach dem Einfügen eines ( ) \clearpagestandardmäßig ein aus.

Eine zu ignorierende Methode \clearpageist der Befehl \let\clearpage\relax, der es bis zum Ende des Dokuments ignoriert. Obwohl ich keinen anderen Befehl in meinem Dokument habe, wurde meine letzte Seite gelöscht. Daher möchte ich \clearpagegleich nach der Generierung des Inhaltsverzeichnisses reagieren.

Ich suche nach etwas wie:

\let\clearpage\relax
\tableofcontents
\*reactive it*

Ein Versuch, dies zu tun, schlug \begingroupfehl.

\begingroup
\let\clearpage\relax
\tableofcontents
\endgroup

Irgendwelche Ideen?

Antwort1

Zumindest bei der Dokumentklasse booklassen schnelle Tests darauf schließen, dass\tableofcontents nichtfüge ein ein \clearpage, aber\chapter tut. Daher müssen Sie Ihre Gruppe mit \let\clearpage\relaxum den ersten \chapterBefehl (oder was auch immer Sie haben, das ähnlich ist) nach Ihrem setzen \tableofcontents. Das folgende Beispiel wird beispielsweise auf einer Seite gesetzt:

\documentclass{book}

\begin{document}

\tableofcontents

\begingroup
\let\clearpage\relax
\chapter{Hello, world!}
\endgroup
And goodbye.

\end{document}

Das obige Dokument wird auf einer Seite wiedergegeben (ohne Seitenzahl).


Die alte Antwort, die die gestellte Frage beantwortet, aber das Problem nicht löst (und normalerweise sollten Sie stattdessen sowieso \begingroup… verwenden \endgroup).

Sie können Folgendes speichern und wiederherstellen \clearpage:

\let\oldclearpage\clearpage
\let\clearpage\relax
\tableofcontents
\let\clearpage\oldclearpage

\letdefiniert einen Befehl einfach als Duplikat eines vorhandenen, also:

  1. \let\oldclearpage\clearpageist \oldclearpagegleichbedeutend mit \clearpage.
  2. \let\clearpage\relaxist \clearpagegleichwertig mit \relax, einem Nichtstun-Befehl.
  3. \tableofcontentsläuft, wobei sein \clearpages nichts tut.
  4. Schließlich \let\clearpage\oldclearpageergibt sich \clearpagedas Äquivalent zu \oldclearpage, was dem ursprünglichen entspricht \clearpage.

Antwort2

\let\standardclearpage\clearpage
\let\clearpage\relax
\tableofcontents
%\*reactive it*
\let\clearpage\standardclearpage

verwandte Informationen