![在定理环境中,通常存在 cref 和颜色名称问题](https://linux22.com/image/318894/%E5%9C%A8%E5%AE%9A%E7%90%86%E7%8E%AF%E5%A2%83%E4%B8%AD%EF%BC%8C%E9%80%9A%E5%B8%B8%E5%AD%98%E5%9C%A8%20cref%20%E5%92%8C%E9%A2%9C%E8%89%B2%E5%90%8D%E7%A7%B0%E9%97%AE%E9%A2%98.png)
我尝试\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}
即使定理主体实际上没有颜色,这也会产生相同的错误。那么有人能给我以下一个或两个问题的解决方案吗?
- 我们如何
\cref
在彩色环境中使用? \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}