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가 있고 해당 Lemma 1.1 뒤에 보조정리를 추가하면 됩니다. 받아들일 수도 있습니다.
\newtheorem{lemma}{Lemma}[section]
\newtheorem{definition}{Definition}[section]
\newcommand{\lemmaautorefname}{Lemma}
\newcommand{\definitionautorefname}{Definition}