为文档中的每个章节名称添加颜色

为文档中的每个章节名称添加颜色

我的问题与使用创作包进行后期处理直接相关,例如etoolbox。我已将包包含如下内容:

\usepackage{etoolbox}

我尝试做的是将其添加到整个文档中的\color{myColor}每个命令前面。我正在使用:\chapter

\preto\chapter{\color{myColor}}

这确实可行,但不仅会给我的章节着色,还会给之后的所有文本着色\chapter命令(因此我的所有文档..)。

是否有某种方法可以将颜色仅包装到每个章节?

附言:我正在使用报告类

答案1

使用的示例sectsty包裹:

\documentclass{book}
\usepackage{xcolor}
\usepackage{sectsty}

\chapterfont{\color{red}}

\begin{document}

\chapter{Test Chapter}
test

\end{document}

在此处输入图片描述

现在使用titlesec包裹:

\documentclass{book}
\usepackage{xcolor}
\usepackage{titlesec}

\titleformat{\chapter}[display]
  {\normalfont\huge\bfseries\color{red}}{\chaptertitlename\ \thechapter}{20pt}{\Huge}

\begin{document}

\chapter{Test Chapter}
test

\end{document}

如我所见,您添加了正在使用文档类的信息report;我的示例代码也适用于此类。

答案2

您可能可以添加一个结束组,但需要小心不要干扰章节标题的查找方式*或可选参数。此外,在章节命令之前立即添加颜色命令很可能会影响垂直间距。

最好在添加字体时添加颜色。在书籍类中,章节标题定义为

\def\@makechapterhead#1{%
  \vspace*{50\p@}%
  {\parindent \z@ \raggedright \normalfont
    \ifnum \c@secnumdepth >\m@ne
      \if@mainmatter
        \huge\bfseries \@chapapp\space \thechapter
        \par\nobreak
        \vskip 20\p@
      \fi
    \fi
    \interlinepenalty\@M
    \Huge \bfseries #1\par\nobreak
    \vskip 40\p@
  }}

所以我会这么做

\def\@makechapterhead#1{%
  \vspace*{50\p@}%
  {\parindent \z@ \raggedright \normalfont
    \ifnum \c@secnumdepth >\m@ne
      \if@mainmatter
        \huge\bfseries \textcolor{myColor}{\@chapapp\space \thechapter}%
        \par\nobreak
        \vskip 20\p@
      \fi
    \fi
    \interlinepenalty\@M
    \Huge \bfseries \textcolor{myColor}{#1}\par\nobreak
    \vskip 40\p@
  }}

这避免了在垂直模式下添加颜色。


我看到您添加了一条评论,说明您正在使用报告,因此您可以对以下内容进行相同的添加:

\def\@makechapterhead#1{%
  \vspace*{50\p@}%
  {\parindent \z@ \raggedright \normalfont
    \ifnum \c@secnumdepth >\m@ne
        \huge\bfseries \@chapapp\space \thechapter
        \par\nobreak
        \vskip 20\p@
    \fi
    \interlinepenalty\@M
    \Huge \bfseries #1\par\nobreak
    \vskip 40\p@
  }}

答案3

仅出于完整性考虑:如果您使用 KOMA-Script,则可以简单地使用字体元素。使用chapter仅影响\chapter标题或disposition更改所有部分级别。

\documentclass{scrreprt}

\usepackage{xcolor}

\addtokomafont{disposition}{\color{red}}
\addtokomafont{chapter}{\color{blue}}

\begin{document}
\chapter{My Chapter}
\section{My Section}
\subsection{My Subsection}
Text
\end{document}

彩色章节

答案4

自从\color{myColor} 开始给“从现在开始”的文字着色,你可能想做类似的事情

\preto\chapter{\begingroup\color{myColor}}
\appto\chapter{\endgroup}

这绝对不是一种干净的方法,但应该可行。相反,我会使用或类似的包/类fncychap来寻找解决方案。memoir

相关内容