新定理的 autoref

新定理的 autoref

我希望能夠使用 autoref 列印我自己的定理名稱。例如在

\begin{lemma}
\label{lemma_foo}
  Some lemma
\end{lemma}

\autoref{lemma_foo}

我想要列印類似“Lemma 3.2”的內容。

我目前的做法是:

\newtheorem{lemma}{Lemma}[chapter]
\newcommand{\lemmaautorefname}{Lemma}

\newtheorem{definition}[lemma]{Definition}
\newcommand{\definitionautorefname}{Definition}

定義與引理共享計數器,這是有意的,但它有副作用,即引用定義會導致它們被稱為引理。

我該如何解決?

答案1

只要定義了lemma和環境definitionhyperref和包cleveref已加載,使用\cref代替\autoref應該給你想要的。

在此輸入影像描述

\documentclass{report} % or 'book'?
\usepackage{ntheorem}  % or 'amsthm'?
\usepackage[colorlinks]{hyperref}
\usepackage[capitalize,nameinlink,noabbrev]{cleveref} % to emulate \autoref style

\newtheorem{lemma}{Lemma}[chapter]
\newcommand{\lemmaautorefname}{Lemma}
\newtheorem{definition}[lemma]{Definition}
\newcommand{\definitionautorefname}{Definition}

\setcounter{chapter}{1} % just for this example

\begin{document}
\begin{lemma}
\label{lemma_foo}
  Some lemma
\end{lemma}
\autoref{lemma_foo}  (correct) and \cref{lemma_foo} (correct) \dots

\begin{definition}
\label{definition_bar}
  A definition
\end{definition}
\autoref{definition_bar} (incorrect) and \cref{definition_bar} (correct) \dots

\end{document}

答案2

我設法讓它與 \autoref 一起使用,但它只允許計數器對每種類型進行計數。因此,您將擁有定義 1.1,然後是定義 1.2,並且如果您在引理 1.1 之後添加一個引理。或許可以接受。

\newtheorem{lemma}{Lemma}[section]
\newtheorem{definition}{Definition}[section]

\newcommand{\lemmaautorefname}{Lemma}
\newcommand{\definitionautorefname}{Definition}

相關內容