![在目录中的章节号周围绘制彩色框](https://linux22.com/image/341651/%E5%9C%A8%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E7%AB%A0%E8%8A%82%E5%8F%B7%E5%91%A8%E5%9B%B4%E7%BB%98%E5%88%B6%E5%BD%A9%E8%89%B2%E6%A1%86.png)
答案1
以下是使用该tocloft
包的解决方案:
\documentclass{scrbook}
\usepackage{hyperref}
\usepackage{lipsum}
\usepackage{calc}
\usepackage{tocloft}
\usepackage{xcolor}
\definecolor{myyellow}{HTML}{F0C000}
\renewcommand{\cftchappresnum}{%
\rlap{\color{myyellow}\rule[-\dp\strutbox]{\cftchapnumwidth}{\dp\strutbox+\ht\strutbox+0.4ex}}%
\hbox to \cftchapnumwidth\bgroup\color{white}\hss}
\renewcommand{\cftchapaftersnum}{\hss\egroup}
\renewcommand{\cftchapaftersnumb}{\hskip0.3em\relax}
\begin{document}
\tableofcontents
\chapter{Foo}
\section{Foo section}
\lipsum
\section{Foo section}
\lipsum
\chapter{Bar}
\section{Bar section}
\lipsum
\section{Bar section}
\lipsum
\end{document}
我们通过\cftchappresnum
和更改章节条目的数字部分\cftchapaftersnum
- 插入一个宽度为
\cftchapnumwidth
且高度/深度合适的黄色条,不考虑任何宽度(\rlap
),并且 - 围绕章节号创建一个新框,其宽度也是
\cftchapnumwidth
,并将内容置于框的中心。
此外,通过 在框后添加了一个小间隙\cftchapaftersnumb
。