目录 - 仅在编号部分之前包含“部分”

目录 - 仅在编号部分之前包含“部分”

我使用以下代码生成了以下目录。有没有办法不在非编号部分条目前包含“部分”?

在此处输入图片描述

\documentclass[a4paper, 12pt]{report}

\setcounter{tocdepth}{1}
\usepackage[titles]{tocloft}

\renewcommand{\thepart}{\Roman{part} :}
\renewcommand\cftpartpresnum{Part~}

\begin{document}

\tableofcontents

\cleardoublepage
\addcontentsline{toc}{part}{Non Numbered part}
\part*{Non Numbered part}

\part{Numbered part}
\chapter{Chap 1}

\part{Numbered part}

\chapter{Chap 1}
\chapter{Chap 2}

\end{document}

答案1

这是一个将\cftpartpresnum 本地重新定义为空的解决方案。

\documentclass[a4paper, 12pt]{report}

\setcounter{tocdepth}{1}
\usepackage[titles]{tocloft}

\renewcommand{\thepart}{\Roman{part} :}
\renewcommand\cftpartpresnum{Part~}

\newcommand{\addparttoc}[1]{%
\addtocontents{toc}{\begingroup\def\protect\cftpartpresnum{}}
\addcontentsline{toc}{part}{#1}
\addtocontents{toc}{\endgroup}}



\begin{document}


\tableofcontents

\cleardoublepage
\addparttoc{Non Numbered part}

\part*{Non Numbered part}

\part{Numbered part}
\chapter{Chap 1}

\part{Numbered part}

\chapter{Chap 1}
\chapter{Chap 2}


\end{document}

在此处输入图片描述

答案2

您的 MWE 的缩写版本可以有效地满足您的要求(在您纠正我的任何拼写错误之后)。

\documentclass{report}
\usepackage[titles]{tocloft}
\renewcommand{\thepart}{\Roman{part} :}
\begin{document}
\tableofcontents

\addcontentsline{toc}{part}{Unnumbered}
\part*{Unnumbered}

\addtocontents{toc}{%
  \protect\renewcommand{\protect\cftpartpresnum}{Part~}}
\part{Numbered Part}

\part{Second numbered part}

\end{document}

使用默认的 ToC 条目样式不会打印您不想要的未编号部分。对于编号部分,您必须将更改插入Part~ToC 文件本身。

相关内容