更改 minitoc 中的规则颜色

更改 minitoc 中的规则颜色

我正拼命尝试改变 minitoc 中规则的颜色。

我尝试了不同的事情:

尝试 1:使用以下方法更改所有 hrule 颜色

\makeatletter
\let\old@rule\@rule
\def\@rule[#1]#2#3{\textcolor{blue}{\old@rule[#1]{#2}{#3}}}
\makeatother

结果:只更改了 minitoc 的结束规则。可能第一个不是 hrule。

编辑 : 尝试 2:禁用规则并自行绘制

结果:它有效,但规则处理得很糟糕,垂直间距是随机的......我设法做到了这一点:

\documentclass[12pt,a4paper,twoside,openright]{book}
\usepackage{xcolor}
\usepackage{minitoc}

\begin{document}
\pagestyle{empty}
\mtcsettitle{minitoc}{}
\mtcsetrules{minitoc}{off}
\mtcsetfeature{minitoc}{after}{\vspace{-25pt}}
\mtcsetfeature{minitoc}{before}{\vspace{-35pt}}

\dominitoc
%\tableofcontents

\chapter{My Chapter}
{\large \bfseries \textcolor{red}{Sommaire}}
\noindent \textcolor{red}{\rule{\textwidth}{0.4pt}}
\minitoc
\noindent \textcolor{red}{\rule{\textwidth}{0.4pt}}

\section{Section 1}
\subsection{Subsection 1}
\subsection{Subsection 2}
\subsection{Subsection 3}

\section{Section 2}
\subsection{Subsection 2.1}
\end{document}

在此处输入图片描述

我想删除“Sommaire”行和第一条规则之间的空格。你知道怎么做吗?

谢谢 !

答案1

由于缺少必要的包和命令,我无法编译您的 MWE。

两条线的设置不同。顶部的线可以使用 来着色\arrayrulecolor{red},底部的线可以调整清晰度。

\documentclass{book}

\usepackage{minitoc}
\usepackage{xcolor}
\usepackage{colortbl}

\makeatletter
\def\mtc@bottom@rule{%
  \ifx\mtc@rule\relax\relax\else
      \vskip -2.5ex
        \color{red}\rule[2.4\p@]{\columnwidth}{.4\p@}\vspace*{2.6\p@}\fi}    
\makeatother
\begin{document}

\faketableofcontents
\dominitoc

\chapter{Chapter}
\arrayrulecolor{red}
\minitoc

\section{Section}

\end{document}

在此处输入图片描述

相关内容