
我的文檔中有一個目錄。正如我所發現的,插入一個 ( \tableofcontents
) LaTeX後\clearpage
預設會執行 a 操作。
忽略的方法\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
\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