我希望能夠使用 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
和環境definition
後hyperref
和包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}