我文件中的某些部分有一些长标题{book}
。
在 TOC 中我收到以下内容:
I Paaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaart pagenum
我希望它如下所示:
I Paaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaart pagenum
(因此,我想在文本前的第二行留出一些空间)
您知道该怎么做吗?我尝试添加\hspace{}
标题,但没有帮助。
LaTeX 对章节和部分采用这种格式,但对部分则不然。
另一个小问题:我使用tocloft
包装进行设计。我想在目录中的零件编号前添加单词“Part”(使用\cftpartpresnum
),但我只想为编号的零件添加它。例如,我想要:
Intro ..... 1 Part I Lalala ...2 Part II Lalalala...4 Conclusion ....6
有可能吗?\cftpartpresnum
添加到所有部分。
答案1
tocloft
您可以通过重新定义\@part
和命令(后者实际上排版了目录中的部分条目)来实现您想要的效果,而无需使用\l@part
;下面是此类重新定义的一个示例(我不确定所需的对齐和缩进,但您可以轻松更改这些设置):
\documentclass{book}
\makeatletter
\def\@part[#1]#2{%
\ifnum \c@secnumdepth >-2\relax
\refstepcounter{part}%
\addcontentsline{toc}{part}{\protect\numberline{\thepart}#1}%NEW
\else
\addcontentsline{toc}{part}{#1}%
\fi
\markboth{}{}%
{\centering
\interlinepenalty \@M
\normalfont
\ifnum \c@secnumdepth >-2\relax
\huge\bfseries \partname\nobreakspace\thepart
\par
\vskip 20\p@
\fi
\Huge \bfseries #2\par}%
\@endpart}
\renewcommand*\l@part[2]{%
\ifnum \c@tocdepth >\m@ne
\addpenalty{-\@highpenalty}%
\vskip 1.0em \@plus\p@
\setlength\@tempdima{3.3em}%NEW: indentation for lines 2,3,... change according to your needs
\begingroup
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
\leavevmode\large\bfseries
\advance\leftskip\@tempdima% NEW: comment out if no indentation required for lines 2,3,...
\hskip -\leftskip
#1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
\penalty\@highpenalty
\endgroup
\fi}\makeatother
\begin{document}
\tableofcontents
\part{Test part one with a really really long title spanning two lines}
\part{Test part two with a really really long title spanning two lines}
\part{Test part three with a really really long title spanning two lines}
\part{Test part four with a really really long title spanning two lines}
\end{document}