我写了一本很长的教科书,我想在不改变正文太多的情况下,在定理、引理等周围添加彩色框。目前,每个定理环境都以通常的方式定义,例如,
\theoremstyle{plain}
\newtheorem{theorem}{Theorem}[section]
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem*{proposition*}{Proposition}
要添加颜色框,我当然可以使用 tcolorbox,如下所示这个答案。我的问题是 tcolorbox 的定理定义如下
\begin{theorem}{theorem name}{reference}
而我的 1000 页教科书使用
\begin{theorem}{theorem name}\label{reference}
我的问题是:
有什么办法可以解决这个问题吗?例如,重新定义定理环境,以便我仍然能够使用通常的 \label{reference} 来引用定理?
提前谢谢了!
答案1
如果您接受将您的定理重命名为其他名称,则可以用来tcolorboxenvironment
改变定理方面并保留以前的标记机制。
\documentclass{article}
\usepackage[skins]{tcolorbox}
\usepackage{amsmath, amsthm}
\theoremstyle{plain}
\newtheorem{theorem}{Theorem}[section]
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem*{proposition*}{Proposition}
\newenvironment{mytheorem}{\begin{theorem}}{\end{theorem}}
\tcolorboxenvironment{mytheorem}{colback=blue!30, colframe=blue!70!black}
\begin{document}
\section{One}
\begin{mytheorem}{One theorem}\label{OneTheorem}
some words
\end{mytheorem}
Reference to theorem~\ref{OneTheorem}
\end{document}
更新:muzimuzhi 的更简单的解决方案
似乎任何先前存在的环境都可以tcbcolorized
,我们不需要像我在原始答案中那样重命名它。
\documentclass{article}
\usepackage[skins]{tcolorbox}
\usepackage{amsmath, amsthm}
\theoremstyle{plain}
\newtheorem{theorem}{Theorem}[section]
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem*{proposition*}{Proposition}
%\newenvironment{mytheorem}{\begin{theorem}}{\end{theorem}}
\tcolorboxenvironment{theorem}{colback=blue!30, colframe=blue!70!black}
\begin{document}
\section{One}
\begin{theorem}{One theorem}\label{OneTheorem}
some words
\end{theorem}
Reference to theorem~\ref{OneTheorem}
\end{document}