更改章节标题内的字体 - 例如第一部分为黑色,第二部分为红色

更改章节标题内的字体 - 例如第一部分为黑色,第二部分为红色

由于我经常以两种形式使用同一份文档,比如说形式 1 和形式 2,我想在章节标题中相应地标记,并将各个部分设置为不同的颜色。因此问题是,如何更改章节标题中的颜色(我知道sectsty,但这似乎会影响整个章节标题?)?

下面的例子说明了我想要实现的目标,但它不起作用,因为标题中的简单文本颜色似乎不受支持。

\documentclass{book}
\usepackage[english]{babel}
\usepackage{xcolor}

\begin{document}
\chapter{Lions and Birds \textcolor{red}{(Document Form 1)}}
%
\newpage
%
\chapter{Alligators and Storks \textcolor{red}{(Document Form 1)}}
\end{document}

提前致谢,并致以最诚挚的问候,曼努埃尔

答案1

在此处输入图片描述

\ref\gls章节等标题中出现问题的原因与以下情况相同:标题处的章节标记的\textcolor宏转变为第一个,并扩展为其最终含义,试图应用一个名为的未定义(最有可能)的颜色。\MakeUppercase\textcolor{ref}{...}\textcolor{RED}{...}RED

为了防止这种情况,颜色变化必须隐藏在一个强大的宏中(或者一些以 为前缀的宏\protect,但这可能会变得乏味:

例如

\newrobustcmd{\redtext}[1]{%
  \textcolor{red}{#1}%
}

定义用于红色文本的宏。

另一种可能性是使用可选参数\chapter并省略那里的颜色变化,但这不会为目录中的文本着色。

请注意,文本中混合过多颜色可能会降低可读性。

\documentclass{book}
\usepackage{xcolor}
\usepackage{etoolbox}
\usepackage{blindtext}
\usepackage[english]{babel}

\newrobustcmd{\redtext}[1]{%
  \textcolor{red}{#1}%
}

\newrobustcmd{\bluetext}[1]{%
  \textcolor{blue}{#1}%
}


\begin{document}
\tableofcontents

\chapter{Lions and Birds \redtext{(Document Form 1)}}

\chapter{Cats and mice \bluetext{(Document Form 2)}}

\chapter[Cows and goats]{Cows and goats \textcolor{brown}{(Document Form 3)}}

\blindtext[5]

\end{document}

答案2

也许我漏掉了什么!我刚刚添加\usepackage{xcolor}到 OP MWE 序言中,得到了以下输出:

在此处输入图片描述

\documentclass{book}
\usepackage[english]{babel}
\usepackage{xcolor} % I add this line 

\begin{document}
\chapter{Lions and Birds \textcolor{red}{(Document Form 1)}}

\end{document}

相关内容