\documentclass{article}
\usepackage{xcolor,fancyhdr}
\pagestyle{fancy}
% This line causes error message "Package xcolor Error: Undefined color `RED'".
% If this line is removed, or replaced by \pagestyle{empty}, everything goes all right.
% Does that mean the fancy style and xcolor can not go together?
\begin{document}
\section{\color{red}AAA\hrule} %Removing "\color{red}" outside of \section causes the section number also be colored red, I only want the section text is in red.
section
\end{document}
答案1
这不是由fancyhdr
标准 LaTeX 类引起的,而是由标准 LaTeX 类引起的。这些类以适用于它们的方式定义标题\MakeUppercase
。这会将标题中的所有内容(包括“红色”)大写。为了表明这不是fancyhdr
s 的错误,请fancyhdr
从 中删除\usepackage
并改用\pagestyle{headings}
。它将给出相同的错误。
正如@UlrikeFischer 所说,您不应该将颜色直接放在章节标题中。这并不被禁止,但这是一种不好的做法,正如您的示例所示。
如果您不想听从 Ulrike 的建议使用类似的东西,titlesec
有两种方法可以解决它。但请注意,您可能仍会遇到其他问题。例如,您的\hrule
意志会干扰fancyhdr
s \headrule
。
- 定义
RED
为red
:\colorlet{RED}{red}
\sectionmark
通过重新定义或使用fancyhdr
s删除大写字母\nouppercase
。这将导致您的页面标题不为大写。当然,如果已经全部为大写,您将不会注意到这一点。
\documentclass{article}
\usepackage{xcolor,fancyhdr}
%\colorlet{RED}{red} % not necessary with \nouppercase
\pagestyle{fancy}
\fancyhead[R]{\nouppercase{\leftmark}}
\begin{document}
\section{\color{red}AAA\hrule} %Removing "\color{red}" outside of \section causes the section number also be colored red, I only want the section text is in red.
section
\end{document}