將章節和小節放在目錄中

將章節和小節放在目錄中

我有一份很長的目錄,由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}

MWE插圖

答案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

另一個不需要最終確定文件設定的 l̶e̶s̶s̶ ̶h̶a̶c̶k̶y 版本是新增一個\nopagebreak後節標題。可以透過tocloft以下方式完成

\renewcommand{\cftsecafterpnum}{\nopagebreak}

(如果您想手動將其新增至單一部分,則需要新增\protect\nopagebreak

在您的範例中,這按預期工作:

toc 在正確的位置有中斷

答案3

在...的幫助下土撥鼠,我可以用一個簡單的命令將我的標題推送到下一頁\enlargethispage{-0.5cm}。這不是最理想的解決方案,因為它非常手動且針對問題,但至少它確實有效。

從上面的MWE,我交換了

\tableofcontents

{%
    \enlargethispage{-0.5cm}
    \tableofcontents
}

產生了下面的輸出。

固定目錄範例

相關內容