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