![tcbtheorem 参考文献的编号](https://linux22.com/image/472177/tcbtheorem%20%E5%8F%82%E8%80%83%E6%96%87%E7%8C%AE%E7%9A%84%E7%BC%96%E5%8F%B7%20.png)
对于我的文档,我喜欢将所有定理环境连续计为定义 1、定义 2、...、定理 1、定理 2、...。
我创建了一个 tcb 定理环境来执行此操作,但是,每当我引用一个定理时,它只会给出该定理所在的部分 + 小节。
\documentclass[reqno, 11pt]{amsart}
\usepackage[margin=0.75in]{geometry}
\usepackage{tcolorbox}
\usepackage{hyperref}
\usepackage{nameref}
\tcbuselibrary{theorems}
\hypersetup{
colorlinks = true,
linkcolor={red!50!black}
}
\newtcbtheorem[auto counter]{thm}{Theorem}
{theorem style=plain,colframe=red!50!black,colback=red!5!white,
coltitle=red!50!black,fonttitle=\upshape\bfseries,fontupper=\itshape,boxrule=0.5pt}{}
\begin{document}
\section{First Section}
\subsection{Subsection One} \hfill
\begin{thm}{Theorem 1 Name}{} \label{thm:1}
Theorem here
\end{thm}
\begin{thm}{Theorem 2 name}{} \label{thm:2}
Theorem here
\end{thm}
By Theorem ~\ref{thm:1}, ... By Theorem ~\ref{thm:2},...
\end{document}
在这个例子中,参考文献将定理 1 和 2 的数值都渲染为 1.1。我希望它对定理 1 渲染 1,对定理 2 渲染 2。我显然希望在进入另一个部分时不要重置它。
答案1
定理环境中的第二个参数(您将其留空)实际上是用于标签的。您可以像thm
定义定理环境时一样指定前缀(最后一个参数,您也将其留空),这样就不必在每个标签中重复它:
\documentclass[reqno, 11pt]{amsart}
\usepackage[margin=0.75in]{geometry}
\usepackage{tcolorbox}
\usepackage{nameref}
\tcbuselibrary{theorems}
\usepackage{hyperref}
\hypersetup{
colorlinks = true,
linkcolor={red!50!black}
}
\newtcbtheorem[auto counter]{thm}{Theorem}
{theorem style=plain,colframe=red!50!black,colback=red!5!white,
coltitle=red!50!black,fonttitle=\upshape\bfseries,fontupper=\itshape,boxrule=0.5pt}{thm}
\begin{document}
\section{First Section}
\subsection{Subsection One} \hfill
\begin{thm}{Theorem 1 Name}{duck}
Theorem here
\end{thm}
\begin{thm}{Theorem 2 name}{bear}
Theorem here
\end{thm}
By Theorem ~\ref{thm:duck}, ... By Theorem ~\ref{thm:bear},...
\end{document}