具有不同颜色和背景的目录章节编号

具有不同颜色和背景的目录章节编号

我是 LaTex 新手,需要一些帮助。我想制作一个目录,其中章节号具有背景颜色,并且颜色与章节标题不同。我还想在目录中每个 1 级章节的顶部添加边框。

下面是一张可以说明我的意思的图片:

在此处输入图片描述

希望有人能帮助我。提前谢谢。

答案1

在文章类中,使用宏呈现目录中的部分条目\l@section

$ latexdef l@section

\l@section:
macro:#1#2->\ifnum \c@tocdepth >\z@ \addpenalty \@secpenalty \addvspace {1.0em \@plus \p@ }\setlength \@tempdima {1.5em}\begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth \leavevmode \bfseries \advance \leftskip \@tempdima \hskip -\leftskip #1\nobreak \hfil \nobreak \hb@xt@ \@pnumwidth {\hss #2}\par \endgroup \fi 

此外, #1将以\numberline{<section number>}

$ latexdef numberline

\numberline:
macro:#1->\hb@xt@ \@tempdima {#1\hfil }

基于此,人们可以\numberline在执行期间进行破解\l@section,然后插入所需的代码以获得图形结果。为此,我使用了低级编码。请参阅tocloft包说明,了解 LaTeX 默认如何对目录进行硬编码。包tocloft提供了对此的钩子,这可能会简化此处的任务,但我没有尝试过。但是,如果您想要比我在此处实现的更多自定义,则可能需要使用它。使用包,您etoc可以获得任何所需的外观,但需要完成所有操作(即,\l@section上面的东西没有用钩子丰富,而只是使用用户提供的编码完全重写\etocsetstyle{section}{}{}{}{}。)但是,文档中的示例可以作为起点。

\documentclass{article}

\usepackage{color}
\usepackage{etoolbox}

\usepackage{hyperref}% to check compatibility
\makeatletter

\patchcmd{\l@section}{\begingroup}{\begingroup\hacknumberline}{}{}

\newcommand\hacknumberline{\let\numberline\my@numberline}

\def\my@numberline #1%
   {\vbox{\hbox{\kern-\fboxsep
                \color{red}%
                \rlap{\rule{\dimexpr\linewidth+\fboxsep}{1pt}}%
                \kern\fboxsep
                }%
          \nointerlineskip
          \hb@xt@ \@tempdima
              {\kern-\fboxsep\colorbox{red}{\color{white}#1.}% I added a dot here
               \hfil}%
         }%
    }

\makeatother

\begin{document}

\tableofcontents

\section{Objekt und Zweck}

\section{Normen}

\subsection{Allgemeine Legislative Einleitung}

\end{document}

在此处输入图片描述

相关内容