将与章节相关的颜色添加到目录中

将与章节相关的颜色添加到目录中

我想根据章节在目录中添加不同的颜色。我为每章的标题、章节子节设置了颜色(第一章为红色,第二章为蓝色等等...)。使用此代码,我可以更改章节名称、章节和子节的颜色,但此样式适用于所有目录:

\usepackage[svgnames]{xcolor}

\makeatletter

\let\stdl@section\l@section

\renewcommand*{\l@subsection}[2]{%
  \stdl@subsection{\it\bf\textcolor{DarkGreen}{#1}}{\it\bf\textcolor{DarkGreen}{#2}}}
\makeatother

我是新手,我想进行实验"if chapter==1 \textcolor{DarkGreen}" "if chapter==2 \textcolor{Red}"...有什么想法吗?

先感谢您。

答案1

您可以尝试以下操作:

\documentclass{book}

\usepackage[svgnames]{xcolor}
\newcounter{chapcntr}
\setcounter{chapcntr}{-1}
\newcommand*\toccolor{%
    \ifcase\value{chapcntr}%
         \color{red}%----- 0 --
    \or  \color{blue}%---- 1 --
    \or  \color{green}%--- 2 --
    \or  \color{cyan}%---- 3 --
    \else \color{black}%-- default
    \fi}

\usepackage{tocloft}
\renewcommand*\cftchapfont{\stepcounter{chapcntr}\toccolor\bfseries}
\renewcommand*\cftchappagefont{\toccolor\bfseries}

\renewcommand*\cftsecfont{\toccolor}
\renewcommand{\cftsecleader}{\toccolor\cftdotfill{\cftsecdotsep}}
\renewcommand*\cftsecpagefont{\toccolor}

\begin{document}
\frontmatter
\tableofcontents
\mainmatter
  \chapter{First chapter}
  \section{A section}
  \section{Another section}
  \chapter{Second chapter}
  \section{A section}
  \section{Another section}
\appendix
  \chapter{First appendix}
  \section{A section}
  \section{Another section}
\backmatter
\end{document}

导致

在此处输入图片描述

相关内容