我需要为文章标题的一部分添加颜色,但总是出错。以下是 MWE:
\documentclass{amsart}
\usepackage{xcolor}
\begin{document}
\title{ \protect\textcolor{red}{does not work in title}}
\maketitle
\textcolor{red}{work here}
\end{document}
以下是来自日志文件的错误:
! Package xcolor Error: Undefined color `RED'.
See the xcolor package documentation for explanation.
Type H <return> for immediate help.
...
l.5 \maketitle
Try typing <return> to proceed.
If that doesn't work, type X <return> to quit.
如果出现此问题,我在 linux mint 中的 Tex live 2022 下运行 pdflatex。
谢谢!
答案1
答案2
你可以做到\newcommand{\addred}[1]{\textcolor{red}{#1}}
,而且它会起作用。
\documentclass{amsart}
\usepackage{xcolor}
\newcommand{\addred}[1]{\textcolor{red}{#1}}
\begin{document}
\title{It \addred{works} in the title}
\maketitle
It also \addred{works} here
\end{document}
但是,由于您不知道您使用的某些包是否加载textcase
,因此最好添加\protect
额外的安全性。
解释:默认情况下,amsart
确实如此\uppercase
,但如果标题中包含非 ASCII 字符,它可能无法工作并textcase
会发挥作用;但它需要在其参数中包含强大的命令。
\title{It \protect\addred{works} in the title}
或者决定使其变得\addred
健壮,这可以通过不同的方式实现:
\DeclareRobustCommand{\addred}[1]{\textcolor{red}{#1}}
\NewDocumentCommand{\addred}{m}{\textcolor{red}{#1}}