![更改章节标题内的字体 - 例如第一部分为黑色,第二部分为红色](https://linux22.com/image/389890/%E6%9B%B4%E6%94%B9%E7%AB%A0%E8%8A%82%E6%A0%87%E9%A2%98%E5%86%85%E7%9A%84%E5%AD%97%E4%BD%93%20-%20%E4%BE%8B%E5%A6%82%E7%AC%AC%E4%B8%80%E9%83%A8%E5%88%86%E4%B8%BA%E9%BB%91%E8%89%B2%EF%BC%8C%E7%AC%AC%E4%BA%8C%E9%83%A8%E5%88%86%E4%B8%BA%E7%BA%A2%E8%89%B2.png)
由于我经常以两种形式使用同一份文档,比如说形式 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}