如何在 tocloft 格式的目录中突出显示特定条目

如何在 tocloft 格式的目录中突出显示特定条目

我正在使用类编写文档book,并使用tocloft来自定义目录的外观。到目前为止,该包在大多数自定义方面都做得很好,但有一件事除外:我试图\part用灰色框突出显示书籍部分(使用 创建)的目录条目。有什么办法吗?

我找到了\colorbox用于soul突出显示文本的一般解决方案,但我不知道如何将它们应用于部分的目录条目。

答案1

tikz以下是使用和 的解决方案tocloft。它将隐藏节点放置在 的tocloft格式化命令中part,然后使用 的overlay函数tikz绘制框。

\documentclass{book}
\usepackage{tocloft}
\usepackage[svgnames]{xcolor}
\usepackage{tikz}
% command to make a hidden node
\newcommand*{\hnode}[1]{%
    \tikz[remember picture] \node[minimum size=0pt,inner sep=0pt,outer sep=5pt] (#1) {};}
% create a node at the beginning of the part entry
\renewcommand{\cftpartfont}{\hnode{P1}\bfseries\Large}
\renewcommand{\cftpartpagefont}{\bfseries}
% create a node at the end of the part page number and draw the gray box
\renewcommand{\cftpartafterpnum}{%
  \hnode{P2}\tikz[remember picture,overlay] 
  \draw (P1.north west)  [line width={25pt}, gray,opacity=.2] -- (P2.north east);}
\begin{document}
\tableofcontents

\part{First part}
\chapter{A chapter}
\section{A section}
\part{Second Part}
\chapter{Another chapter}
\end{document}

代码输出

请注意,您需要编译文档两次才能使覆盖正确对齐。

相关内容