目录中的标题内没有分页符

目录中的标题内没有分页符

在执行一个项目时,我有一个长达多页的目录。

我已经将章节级别格式化为如下格式:

\titlecontents{chapter}
              [0em]
              {\fontsize{13}{12}\selectfont \filcenter \addvspace{12pt}}%
              {\qquad \fontsize{10}{12}\selectfont Partie \enspace\thecontentslabel \\[-1.5ex] 
              \centerline{\rule{\linewidth}{.5pt}}\vspace{2mm}\\ \qquad}%
              {1em}%
              {}%

结果如下: 在此处输入图片描述

问题如下:在页面或栏的末尾,有时标题会被拆分:“Partie”和标尺在一页上,标题在下一页上。

我该如何避免这种情况?我试过了\\*\nobreak但没有成功……

附加问题:它看起来不是完全居中,有人知道为什么吗?

附言:抱歉,\fontsize{13}{12}它看起来很糟糕!这是我的错误,但奇怪的是它有效。

分数维:

\documentclass[12pt,twoside]{book}
\usepackage[paperheight=240mm,paperwidth=160mm, left=22mm, right = 20mm, top = 20mm, bottom = 22mm]{geometry}

\usepackage[cam,width=17.5truecm,height=25.54truecm,center,dvips,noinfo]{crop}
\usepackage[french]{babel}



\usepackage{fontspec}

\usepackage{lipsum}
\usepackage[newparttoc]{titlesec}%
\usepackage{titletoc}


% ToC


\usepackage{tocloft}

\usepackage[toc]{multitoc}

\renewcommand*{\multicolumntoc}{2}

\makeatletter
\addto\captionsfrench{\renewcommand\contentsname{\vspace{-2.04cm}\parbox{\linewidth}{\fontsize{18}{12}\selectfont \centerline{TABLE ANALYTIQUE}~\\[-0.5cm]\centerline{\fontsize{7}{12}\selectfont \itshape{Les chiffres renvoient aux num\'eros de pages}}}}}
\makeatother


% Little hack for the end of the ToC : I don't want it to be on both left and right columns but left then right.
\makeatletter
\renewcommand*{\@starttoc}[1]{%
   \ifthenelse{\boolean{@multitoc@toc}\and\equal{#1}{toc}}{%
      \begin{multicols*}{\multicolumntoc}%
         \@multitoc@starttoc{#1}%
      \end{multicols*}%
      }{}%
   }
\makeatother

\setlength\cftaftertoctitleskip{22pt}


\setcounter{tocdepth}{9}

\titlecontents{chapter}
              [0em]
              {\fontsize{13}{12}\selectfont \filcenter \addvspace{12pt}}%
              {\qquad \fontsize{10}{12}\selectfont Partie \enspace\thecontentslabel
              \\[-1.5ex]\centerline{\rule{\linewidth}{.5pt}}\vspace{2mm}\\\qquad}%
              {1em}%
              {}%


\begin{document}

\paragraph{Test}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}
\chapter{Aides d'etat}

\newpage
\tableofcontents

\end{document}

答案1

您的问题是,参数\qquad...\qquad是在水平模式下处理的,\vspace其行为类似于\vadjust{<space>},因此它不会离开水平模式。我们仅使用\titlecontents在垂直模式下处理的第三个参数。接下来的参数为空。

\titlecontents{chapter}[0em]
     {\fontsize{13}{15}\selectfont \addvspace{12pt}% your settings
      \leftskip=0pt plus1fill \rightskip=\leftskip % centering the paragraph
      \emergencystretch=40pt % narrow columns  
      \let\rightskip=\abovedisplayskip % trick: we don't want to re-declare \rightskip
      \centerline{\fontsize{10}{12}\selectfont Partie \enspace\thecontentslabel}
      % your title at center
      \nobreak\smallskip\hrule height.5pt \nobreak\medskip % rule + unreakable spaces 
     }
     {}{}
     {}

相关内容