목차에 섹션과 하위 섹션을 함께 유지

목차에 섹션과 하위 섹션을 함께 유지

패키지 에서 제공하는 긴 ToC가 있습니다 tocloft. 두 번째 페이지로 넘어갈 만큼 길어요. 그러면 내가 아는 것은 (예를 들어) 섹션 2가 첫 번째 페이지 끝에 있고 섹션 2.1이 두 번째 페이지 시작 부분에 있다는 것입니다.

이상적으로는 ToC의 섹션과 하위 섹션을 그룹화하여 페이지별로 분할되면 새 페이지로 푸시되도록 하고 싶습니다. 최종 결과는 첫 번째 페이지가 섹션 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.

ToC에서 원하지 않는 페이지 나누기가 발생할 수 있습니다. 예를 들어 긴 여러 줄 섹션 제목이 있고 ToC에서 줄 사이에 페이지 나누기가 있을 수 있습니다. 문서가 안정되면 \addtocontents문서 본문의 적절한 위치에서 ToC의 페이지 나누기를 조정할 수 있습니다. 예를 들면:

  • \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

문서 설정을 완료할 필요가 없는 또 다른 버전은 \nopagebreak섹션 제목 뒤에 추가하는 것입니다. 이를 tocloft통해 수행할 수 있습니다.

\renewcommand{\cftsecafterpnum}{\nopagebreak}

(단일 섹션에 수동으로 추가하려면\protect\nopagebreak .)

귀하의 예에서는 의도한 대로 작동합니다.

올바른 장소에서 휴식을 취하세요.

답변3

의 도움으로마모트, 간단한 명령으로 제목을 다음 페이지로 밀어 넣을 수 있었습니다 \enlargethispage{-0.5cm}. 매우 수동적이고 문제에 구체적이기 때문에 가장 이상적인 솔루션은 아니지만 적어도 작동합니다.

위의 MWE에서 교환했습니다.

\tableofcontents

~와 함께

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

아래 출력이 생성되었습니다.

고정 ToC의 예

관련 정보