hyperref 产生的 \label 链接目标不正确

hyperref 产生的 \label 链接目标不正确

在下面的代码中,命令\label{my}出现在第 4 页,也\pageref{my}显示“4”,但超链接指向第 1 页。这是为什么呢?

\documentclass{book}
\usepackage{hyperref}
\usepackage{lipsum}

\begin{document}

  % Four pages of text.
  \lipsum[1-20] 

  % The label is on fourth page.
  \label{my}    

  % Buggy pageref. It produces the number 4, but the link leads to the first page.
  \pageref{my} 

\end{document}

答案1

这不是一个错误;没有锚点;\label它本身不会放置超链接锚点,因此显然您的超链接不会将您带到放置的位置\label;您可以使用它\phantomsection在给定位置创建锚点:

\documentclass{book}
\usepackage{hyperref}
\usepackage{lipsum}

\begin{document}

\lipsum[1-20] 

\phantomsection\label{my}\newpage 

\pageref{my} 

\end{document}

相关内容