当使用扩展定理名称时,如何禁用 \autoref 的定理计数器?

当使用扩展定理名称时,如何禁用 \autoref 的定理计数器?

我正在写一篇论文,我需要引用一位数学家的定理,我们称他为天才。这个定理已经有了一个众所周知的名字,比如天才的特殊定理。我想在我的论文中多次引用这个定理,但我很难做到这一点,因为定理计数器会随处弹出。这是我的工作示例:

\documentclass{amsart}
\usepackage{hyperref}

\newtheorem{Thm}{Theorem}
\newtheorem{Genius}{Genius' Special Theorem}

\newcommand{\Thmautorefname}{Theorem}
\newcommand{\Geniusautorefname}{Genius' theorem}

% ----------

\begin{document}

Let us begin with the following theorem.

\begin{Thm}
Blah, blah, blah.
\end{Thm}

Now, we have the following theorem discovered by Genius.

\begin{Genius} \label{Genius}
Ha, ha, ha.
\end{Genius}

More text here.

According to \autoref{Genius}, we get...

\end{document}

当我预览 PDF 文档时,我看到

根据天才定理 1,我们得到...

然而,我想要的是

根据天才定理,我们得到...

因为这是我在论文中唯一要用到的 Genius 定理。我尝试使用 来解决这个问题\newtheorem*{Genius}{Genius' Special Theorem},但结果却

根据定理1,我们得到......

不知何故,星号导致\autoref忽略该命令Genius并导致其锁定该命令Thm

有人能解决这个问题吗?非常感谢!

答案1

的目的\autoref是将计数器的名称(或任何代替计数器名称的名称)添加到数字中。对于你的情况,你只需要\ref

\documentclass{amsart}
\usepackage{hyperref}

\newtheorem{Thm}{Theorem}
\newtheorem*{innerGenius}{Genius' Special Theorem}
\makeatletter
\newenvironment{Genius}
  {\innerGenius\phantomsection\def\@currentlabel{Genius' Theorem}}
  {\endinnerGenius}
\makeatother
\newcommand{\Thmautorefname}{Theorem}

% ----------

\begin{document}

Let us begin with the following theorem.

\begin{Thm}
Blah, blah, blah.
\end{Thm}

Now, we have the following theorem discovered by Genius.

\begin{Genius} \label{Genius}
Ha, ha, ha.
\end{Genius}

More text here.

According to \ref{Genius}, we get...

\end{document}

在此处输入图片描述

请注意,\newtheorem*需要amsthm由 自动加载amsart,因此您应该将 其他类一起添加\usepackage{amsthm}

请注意,仅使用\newtheorem*不会创建引用。因此,通过手动设置\label在环境中创建引用,还添加用于创建锚点。Genius\@currentlabel\phantomsection

相关内容