答案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
。