我有一个文档,其中我想使用 tcolorbox 包来格式化定理,并使用 amsthm 包中的默认格式来格式化命题。
但是,我还希望我的定理和命题有一个共享的计数器并使用一致的编号方案(例如,如果在第 2 节中我有一个定理然后有一个命题,则该定理应标记为定理 2.1,而该命题应标记为命题 2.2)。
通常,我会定义定理环境,然后写
\newtheorem{proposition}[theorem]{Proposition}
但这样做会产生一条错误消息:“LaTeX 错误:没有定义计数器‘定理’。”
由于上述方法不起作用,我应该如何设置我的定理和命题以确保它们具有共享编号?
下面是我正在使用的包和环境的一个小示例:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{tcolorbox}
\usepackage{hyperref}
\usepackage{cleveref}
\theoremstyle{definition}
\tcbuselibrary{theorems}
\newtcbtheorem
[number within=section, Crefname={Theorem}{Theorems}]% init options
{theorem}% name
{Theorem}% title
{colframe=gray!40!black}% options
{theorem}% prefix
\newtheorem{proposition}{Proposition}
%% Using below command produces "LaTeX Error: No counter 'theorem' defined."
% \newtheorem{proposition}[theorem]{Proposition}
\begin{document}
\section{First Section}
\section{Second Section}
\begin{theorem}{Example Theorem}{referencing}
A major result.
\end{theorem}
\begin{proposition}
A minor result.
\end{proposition}
\end{document}
答案1
您可以查看文件.aux
并发现 tcolorbox 用于您的定理的计数器名为tcb@cnt@theorem
:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{tcolorbox}
\usepackage{hyperref}
\usepackage{cleveref}
\theoremstyle{definition}
\tcbuselibrary{theorems}
\newtcbtheorem
[number within=section, Crefname={Theorem}{Theorems}]% init options
{theorem}% name
{Theorem}% title
{colframe=gray!40!black}% options
{theorem}% prefix
\makeatletter
\newtheorem{proposition}[tcb@cnt@theorem]{Proposition}
\makeatother
\begin{document}
\section{First Section}
\section{Second Section}
\begin{theorem}{Example Theorem}{referencing}
A major result.
\end{theorem}
\begin{proposition}
A minor result.
\end{proposition}
\end{document}