\pageref 与 \label 不同步

\pageref 与 \label 不同步

我已经\pagerfer指向下一页的代码清单。清单配备了\label。当我使用从 TeX 文件生成 PDF 时

latexmk -pdflatex='pdflatex -shell-escape -interaction nonstopmode' -pdf -bibtex -f %f

命令,参考资料会显示正确的页码,但单击时会跳转到错误的页面。我最初的问题是代码列表不适合页面的剩余空间,因此我在\newpage它前面添加了。这修复了中的数字\pageref,但没有修复行为。

以下是我认为与问题相关的“有趣”部分:

\subsection{Larger example}
\label{sec-2-3}

[...]

Whoa, this was a lot of code (see page \pageref{if_pressed}) [...]

\newpage

\begin{minted}[bgcolor=codebg,fontsize=\scriptsize]{prolog}
if_pressed(Button, modifiers(Playback, Position, Content, Mode), NextState):-
    ( ... ).
\end{minted}
\label{if_pressed}
\subsection{Queries}

答案1

我建议你插入指令

\phantomsection

\newpage和之间\begin{minted}。此指令的目的是为 hyperref 提供一种“锚点”,这样对没有与之关联的自动计数器的对象的交叉引用仍会将您带到文档中的预期位置。

相关内容