\pageref не синхронизирован с \label

\pageref не синхронизирован с \label

Я \pagerferуказал на листинг кода на следующей странице. Листинг снабжен \label. Когда я генерирую PDF из файла TeX с помощью

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, чтобы перекрестная ссылка на объект, с которым не связан автоматический счетчик, все равно привела вас в нужное место в документе.

Связанный контент