在定理环境中,通常存在 cref 和颜色名称问题

在定理环境中,通常存在 cref 和颜色名称问题

我尝试\cref在定理环境中使用 cleveref 包。我还希望我的定理名称有颜色,比如红色。现在如果有人尝试\cref在有色环境中使用,例如

\documentclass{article}
\usepackage{amsthm}
\usepackage[usenames,dvipsnames]{color}
\usepackage[capitalize, nameinlink]{cleveref}

\newtheorem{redthm}{{\color{red}Theorem}}

\begin{document}

\begin{redthm} \label{thm1} Assume ABC.  Then D.
\end{redthm}

{\color{red} \ref{thm1}}

\end{document}

我得到了错误

./tmp.tex:13: LaTeX Error: Undefined color 'RED'.

我可能想要一个解决方案,但我可以接受这一点:我真正想要做的是将 \cref 与我的“红色定理”环境一起使用。例如,将上面的\cref行替换为:

\begin{redthm} Under assumptions of \cref{thm1}, E.
\end{redthm}

即使定理主体实际上没有颜色,这也会产生相同的错误。那么有人能给我以下一个或两个问题的解决方案吗?

  1. 我们如何\cref在彩色环境中使用?
  2. \cref我们如何才能创建一个定理环境,使得“定理”这个词是有颜色的,但与定理主体内部却不冲突。

(我也很高兴听到这些错误发生的原因的解释,请记住我对 tex 或这些包的内部结构一无所知。)

答案1

最好\protect\color{red}Theorem在这里使用,因为首先看到capitalize的选项会错误地将其转换为颜色,而这里没有定义。是一个脆弱的命令,因此可以防止这里的“分裂”。cleveref\color{red}RED\color\protect

\documentclass{article}
\usepackage{amsthm}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage[capitalize,nameinlink]{cleveref}

\newtheorem{redthm}{\protect\color{red}Theorem}

\begin{document}

\begin{redthm} \label{thm1}  Under assumptions of \cref{thm1}
Assume ABC.  Then D.
\end{redthm}

{\color{red} \ref{thm1}}

\end{document}

在此处输入图片描述

相关内容