tcbtheorem 参考文献的编号

tcbtheorem 参考文献的编号

对于我的文档,我喜欢将所有定理环境连续计为定义 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}

相关内容