내 하이퍼참조 링크가 amsart에서 작동하지 않는 이유는 무엇입니까?

내 하이퍼참조 링크가 amsart에서 작동하지 않는 이유는 무엇입니까?

pdflatex 또는 latex와 dvipdf를 사용하여 아래 파일을 처리할 때 결과 PDF 파일의 1페이지에 있는 링크가 예상대로 Lemma 1로 이동하지 않습니다.

\documentclass{amsart}

\usepackage{hyperref}
\newtheorem{lem}{Lemma}

\begin{document}

See Lemma~\ref{testlemma} below.
\pagebreak

\begin{lem}\label{testlemma}
  \begin{enumerate}
  \item Testing!
  \end{enumerate}
\end{lem}

\end{document}

pdflatex를 사용하면 다음과 같은 경고가 나타납니다.

pdfTeX warning (dest): name
{lem.1} has been referenced but does not exist, replaced by a fixed one

\documentclass{amsart}다음 으로 바꾸면 \documentclass{article}링크가 예상대로 작동합니다.

를 사용하여 PDF 파일의 하이퍼참조 링크를 작동시키려면 이 테스트 파일을 어떻게 수정해야 합니까 amsart?

나는 pdfTeX 3.1415926-1.40.10-2.2 (TeX Live 2009/Debian)를 사용하고 있습니다.

답변1

정리 클래스 환경의 참조 카운터가 에 의해 적절하게 액세스되려면 \label무언가가 다음을 따라야 합니다.\begin{<환경>}수평 모드에서. 이 예의 다음 항목은 이므로 \begin{enumerate}수평 모드가 입력되지 않으며 레이블이 손실됩니다. (정확히는 모르겠지만어떻게손실되지만 이것이 순 효과입니다.)

이 상황을 처리하는 데는 다양한 접근 방식이 있습니다. 모두 목록을 시작하기 전에 수평 모드로 무언가를 삽입하는 것과 관련이 있습니다. 실제 텍스트를 추가하는 것 외에 가장 자주 제안되는 것은 \leavevmode또는 입니다 $ $. 단일 "슬래시 공백"도 작동합니다. 그러나 이들 모두로 인해 목록이 실행되는 것이 아니라 다음 줄에서 시작됩니다.

다음과의 상호 작용은 아니지만 관련 상황을 다루는 두 가지 다른 질문이 있습니다 \label.

첫 번째 항목의 번호를 수동으로 입력하고 두 번째 항목으로 "실제" 열거를 시작하는 다소 다른 접근 방식이 있습니다. 이 답변의 증명에 적용되지만 모든 정리 클래스 개체와도 잘 작동합니다. 장점 - 이는 정리를 가리키는 레이블이 올바른 값을 갖도록 허용합니다. 단점 - 첫 번째 항목에 대한 상호 참조가 불가능할 수 있습니다.

답변2

\leavevmode환경 전에 추가하면 enumerate문제가 해결됩니다.

\documentclass{amsart}
\newtheorem{lem}{Lemma}

\usepackage{hyperref}

\begin{document}

\section{test}\label{sec:1}

See Lemma~\ref{testlemma} or rather Lemma~\ref{testlemma2} below.

\begin{lem}
\label{testlemma}
  \begin{enumerate}
  \item Testing!
  \end{enumerate}
\end{lem}

\begin{lem}
\label{testlemma2}
\leavevmode
  \begin{enumerate}
  \item Testing!
  \end{enumerate}
\end{lem}

\begin{lem}
\label{testlemma3}
\leavevmode  
  \begin{enumerate}
  \item Testing!
  \end{enumerate}
\end{lem}

lemma \ref{testlemma2}

section \ref{sec:1}

lemma \ref{testlemma3}

reference to lemma \ref{testlemma} does not work.
\end{document}

관련 정보