パッケージによって提供される長い目次がありますtocloft
。これは 2 ページ目にも及ぶほど長いです。つまり、(たとえば) セクション 2 は 1 ページ目の最後にあり、セクション 2.1 は 2 ページ目の先頭にあります。
理想的には、目次内のセクションとサブセクションをグループ化して、ページによって分割された場合に新しいページにプッシュされるようにします。最終結果は、最初のページがセクション 1.X で終了し、2 番目のページがセクション 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}}
ページに 2 つのベースラインの垂直スペースが残っていない場合に新しいページを開始するように指定します。(マクロはパッケージ\needspace
で定義されていますneedspace
。)
ちなみに、これらのアドバイスは、tocloft
ロードされるパッケージに依存しないことに注意してください。
あなたの文書の場合、最適なアクションは、次の指示を挿入することです。
\addtocontents{toc}{\protect\newpage}
直前
\section{A Second Section}
文書の本文に。
最後に、「ドキュメントが安定した後」という限定語に注意してください。ドキュメントがほぼ完成するまで、これらの微調整操作を行わないでください。
答え2
答え3
の助けを借りてマーモット簡単なコマンドでタイトルを次のページにプッシュすることができました\enlargethispage{-0.5cm}
。これは非常に手動で、問題に固有のものであるため、最適な解決策ではありませんが、少なくとも機能します。
上記のMWEから、私は
\tableofcontents
と
{%
\enlargethispage{-0.5cm}
\tableofcontents
}
以下の出力が生成されました。