我有一份很長的目錄,由tocloft
。它足夠長,可以運行到第二頁。然後我得到的是(例如)第 2 節位於第一頁的末尾,第 2.1 節位於第二頁的開頭。
理想情況下,我想將目錄中的部分和小節分組,這樣如果它們被這樣的頁面分割,那麼它就會被推送到新頁面。最終結果是第一頁將以第 1.X 節結束,第二頁以第 2 節開始(依此類推...)。
有沒有辦法配置這個?
MWE 說明了這個問題。
\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}
答案1
以下是該軟體包使用者指南第 6 頁的摘錄tocloft
:
您可能會在目錄中出現不需要的分頁符號。例如,您可能有一個很長的多行節標題,並且在目錄中,行之間有一個分頁符號。文件穩定後,您可以
\addtocontents
在文件正文中的適當位置使用調整目錄中的分頁符號。舉例來說:
\addtocontents{toc}{\protect\newpage}
強制分頁。
\addtocontents{toc}{\protect\enlargethispage{2\baselineskip}}
使頁面更長。
\addtocontents{toc}{\protect\needspace{2\baselineskip}}
指定如果頁面上沒有留下兩條基線的垂直空間,則開始一個新頁面。 (該\needspace
巨集在套件中定義needspace
。)
順便請注意,這些建議並不依賴tocloft
正在載入的套件。
對於您的文檔,最佳操作是插入指令
\addtocontents{toc}{\protect\newpage}
就在之前
\section{A Second Section}
在文檔正文中。
最後,請注意「在您的文件穩定之後」限定詞。當然,除非您的文件基本上完成,否則不要進行這些微調操作。
答案2
答案3
在...的幫助下土撥鼠,我可以用一個簡單的命令將我的標題推送到下一頁\enlargethispage{-0.5cm}
。這不是最理想的解決方案,因為它非常手動且針對問題,但至少它確實有效。
從上面的MWE,我交換了
\tableofcontents
和
{%
\enlargethispage{-0.5cm}
\tableofcontents
}
產生了下面的輸出。