새로운 정리에 대한 자동 참조

새로운 정리에 대한 자동 참조

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

lemmadefinition 환경이 정의되어 있는~ 후에및 패키지 hyperrefcleveref로드됩니다. \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}

관련 정보