tocloft \cftpartpresnum 无法与 titlesec 配合使用

tocloft \cftpartpresnum 无法与 titlesec 配合使用

我遇到了一个奇怪的问题:我想\part按照与以下相同的方式更改目录中的数字\chapter

在此处输入图片描述

我使用以下命令来实现章节标题:

\renewcommand{\cftchappresnum}{\color{myred}}

我也用它来改变我的和标题titlesec的外观。当我现在尝试使用\part\chapter

\renewcommand\cftpartpresnum{\color{myred}}

更改\part数字,什么都没发生,我得到了上面的输出。我没有收到任何错误。我整理了一个 MWE,在那里我能够重现这个问题。我觉得很奇怪,titlesectocloft不兼容。

我找到了一种解决方法,但会产生一个问题,即现在 pdf 书签带有我使用的“颜色代码”。这显然并不理想。因此,我现在不想通过尝试覆盖书签名称来解决这个问题,而是想解决和之间的这个tocloft问题titlesec

\renewcommand{\thepart}{\color{myred}\Roman{part}\color{black}} 

在此处输入图片描述

我将包括 MWE 和我用来修改我的\part使用的代码titlesec

梅威瑟:

\documentclass{book}
\usepackage{titlesec}

\usepackage[dvipsnames]{xcolor}
   \definecolor{myred}{RGB}{239, 0, 0}
   \definecolor{myblue}{RGB}{0,0,200}
\PassOptionsToPackage{pdfpages}{xcolor}

\usepackage{tocloft}
        \renewcommand\cftpartpresnum{\color{myred}}

        \renewcommand{\cftchappresnum}{\color{myblue}}

\begin{document}
 \tableofcontents
    \part{Trial name of Part}
    this is a blind text

    \chapter{Trial chapter}
    this is more blind text

    \section{Trial section}
\end{document}

修改代码:

    \usepackage{titlesec}
\titleformat{\part}[display]
{\Huge\fontsize{30pt}{60pt}\filcenter}{\partname{} \color{myred}\thepart}{0em}
\makeatother

答案1

由于您使用titlesec,我建议您titletoc在以下位置加载其配套包tocloft

  \documentclass{book}
\usepackage[showframe]{geometry} 

\usepackage[newparttoc] {titlesec}
\titleformat{\part}[display]
{\Huge\fontsize{30pt}{60pt}\filcenter}{\partname{} \color{myred}\thepart}{0em}
\makeatother
\usepackage{titletoc}
\usepackage[dvipsnames, pdfpages]{xcolor}
   \definecolor{myred}{RGB}{239, 0, 0}
   \definecolor{myblue}{RGB}{0,0,200}
\titlecontents{part}[1.5em]{\large\bfseries}
{\contentslabel[\color{myred} \thecontentslabel]{1.1em}}
{}
{\hfill\contentspage}

\begin{document}
 \tableofcontents
    \part{Trial name of Part}
    this is a blind text

    \chapter{Trial chapter}
    this is more blind text

    \section{Trial section}

\end{document} 

在此处输入图片描述

相关内容