
私の文書には目次があります。調べたところ、1 つの ( \tableofcontents
) を挿入すると、LaTeX は\clearpage
デフォルトで を実行します。
無視する方法は、\clearpage
コマンドです\let\clearpage\relax
。このコマンドは、ドキュメントの最後まで無視します。ドキュメントに他のコマンドはありませんが、最後のページが消去されました。そのため、\clearpage
目次が生成された直後にリアクティブにしたいと考えています。
次のようなものを探しています:
\let\clearpage\relax
\tableofcontents
\*reactive it*
一度試してみましたが\begingroup
失敗しました。
\begingroup
\let\clearpage\relax
\tableofcontents
\endgroup
何か案は?
答え1
少なくともドキュメントクラスではbook
、簡単なテストで次のことが示唆されています。\tableofcontents
しないを挿入します\clearpage
が、\chapter
する\let\clearpage\relax
したがって、 の後の最初の\chapter
コマンド (または類似のコマンド)の前後にでグループを配置する必要があります\tableofcontents
。たとえば、次の例は 1 ページにタイプセットされます。
\documentclass{book}
\begin{document}
\tableofcontents
\begingroup
\let\clearpage\relax
\chapter{Hello, world!}
\endgroup
And goodbye.
\end{document}
古い回答。質問には答えますが、問題は解決しません (いずれにしても、通常は代わりに\begingroup
…を使用する必要があります\endgroup
)。
保存および復元できるもの\clearpage
:
\let\oldclearpage\clearpage
\let\clearpage\relax
\tableofcontents
\let\clearpage\oldclearpage
\let
既存のコマンドの複製としてコマンドを定義するだけなので、次のようになります。
\let\oldclearpage\clearpage
\oldclearpage
は と同等になります\clearpage
。\let\clearpage\relax
\clearpage
は と同等であり、\relax
何もしないコマンドです。\tableofcontents
は実行されますが、その\clearpage
s は何もしません。\let\clearpage\oldclearpage
最後に、\clearpage
は と同等に\oldclearpage
、これは元の と同等になります\clearpage
。
答え2
\let\standardclearpage\clearpage
\let\clearpage\relax
\tableofcontents
%\*reactive it*
\let\clearpage\standardclearpage