我知道我们可以使用包中提供的默认颜色shadethm
,例如\definecolor{shadethmcolor}{HTML}{F7F8E0}
。但如果我想以上述方式为不同的环境使用不同的颜色,我该怎么办?例如,假设我有:
\newshadetheorem{env1}
\newshadetheorem{env2}
\definecolor{shadethmcolor}{HTML}{F7F8E0}
并且我只希望在第一个环境中使用这种颜色,在另一种环境中使用第二种颜色。
答案1
有一种可能性是:
\documentclass{article}
\usepackage{xcolor}
\usepackage{xparse}
\usepackage{shadethm}
\newshadetheorem{env1}{Theorem}
\newshadetheorem{env2}{Lemma}
\newshadetheorem{env3}{Proposition}
\NewDocumentEnvironment{lemma}{o}
{\definecolor{shadethmcolor}{RGB}{244,156,124}%
\IfNoValueTF{#1}
{\begin{env2}}
{\begin{env2}[#1]}
}
{\end{env2}}
\NewDocumentEnvironment{proposition}{o}
{\definecolor{shadethmcolor}{HTML}{F7F8E0}%
\IfNoValueTF{#1}
{\begin{env3}}
{\begin{env3}[#1]}
}
{\end{env3}}
\begin{document}
\begin{env1}
A test shaded theorem
\end{env1}
\begin{lemma}
A test shaded theorem
\end{lemma}
\begin{proposition}
A test shaded theorem
\end{proposition}
\end{document}
结果:
不过,我想建议你使用一种更通用的方法thmtools
或tcolorbox
thmtools
。下面是使用交互的示例shadethm
:
\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{amsthm}
\usepackage{thmtools}
\definecolor{mycolor}{HTML}{F7F8E0}
\declaretheorem[shaded={bgcolor=Lavender}]{theorem}
\declaretheorem[shaded={bgcolor=mycolor}]{proposition}
\declaretheorem[shaded={bgcolor=green!80!black!30}]{lemma}
\begin{document}
\begin{theorem}
A test shaded theorem
\end{theorem}
\begin{lemma}
A test shaded theorem
\end{lemma}
\begin{proposition}
A test shaded theorem
\end{proposition}
\end{document}