使用 titlesec 包时在 Toc 中的编号前添加“Part”

使用 titlesec 包时在 Toc 中的编号前添加“Part”

根据这里和互联网上其他地方的其他答案,要在目录中的零件编号前添加“零件”,请执行以下操作:

\usepackage{tocloft}
\renewcommand\cftpartpresnum{Part~}

但是,我花了两个小时试图弄清楚为什么它对我不起作用,最终发现这是因为我正在使用该titlesec包。以下是显示问题的 MWE:

\documentclass{book}

\usepackage{titlesec}
\usepackage{tocloft}
\renewcommand\cftpartpresnum{Part~}

\begin{document}

\tableofcontents

\part{Beginnings}

\chapter{Things}
\chapter{More Things}

\end{document}

删除\usepackage{titlesec}即可修复。

鉴于我正在使用titlesec样式来设置章节和部分标题,如何在目录中的部分编号前添加“Part~”文本?

答案1

您要避免同时使用 titletoc/titlesec 和 tocloft。选择其中一个。这是一个您可以适应的模型。

\documentclass{book}

\usepackage{titlesec,titletoc}
%\usepackage{tocloft}
%\renewcommand\cftpartpresnum{Part~}

\titlecontents{part}%
[0pt]{\sffamily\bfseries\large\protect\addvspace{15pt}\titlerule\addvspace{1.5ex}}%remove rule if you like
{}{\partname~}
{\hfill\contentspage}%replaced with {} if don't want page number for parts
[\addvspace{0.7ex}\titlerule\addvspace{1.5ex}]%remove rule if you like

\begin{document}

\tableofcontents

\part{Beginnings}

\chapter{Things}
\chapter{More Things}

\end{document}

相关内容