Гиперссылка на LaTeX ведет на неправильную страницу - PullRequest
14 голосов
/ 30 апреля 2010

Я пытаюсь создать ссылку на число с плавающей запятой, которое не использует заголовок. Если я включаю \ label {foo} в число с плавающей точкой и ссылаюсь на него с помощью \ pageref {foo}, правильный номер страницы отображается в моем pdf-документе, но гиперссылка, созданная пакетом hyperref, ссылается на другую страницу (первая страница раздел). Если я добавлю заголовок перед меткой в ​​плавающей точке, гиперссылка перейдет на правильную страницу.

Есть ли способ заставить гиперссылку работать корректно, не добавляя заголовок в float? Или же есть способ подавить отображение заголовка, чтобы я мог включить заголовок без его отображения?

Ниже приведен минимальный пример. Если я обработаю его с помощью pdflatex, я получу три страницы. «Цифра» показана на второй странице, а на третьей странице правильно написано «См. Рисунок на странице 2». Но гиперссылка на «2» гласит «Перейти на страницу 1», и, если я щелкну по ней, я перейду к странице 1.

Если я поставлю пустой \ caption {} перед \ label {foo}, то гиперссылка будет работать правильно, но я не хочу показывать заголовок для моего float.

\documentclass[11pt]{memoir}

\usepackage{hyperref}

\begin{document}

some text
\clearpage


\begin{figure}
  a figure
  \label{foo}
\end{figure}

more text
\clearpage


See figure on page \pageref{foo}.

\end{document}

Ответы [ 3 ]

15 голосов
/ 01 мая 2010

Команда \label ссылается на последний вызов \refstepcounter. \caption распознает, что оно находится в среде фигуры, и вызывает \refstepcounter{figure}. Вы можете позвонить \refstepcounter самостоятельно.

Чтобы не пропускать число в серии цифр, вы можете создать собственный бессмысленный счетчик с \newcounter{dummy}. Результат:

\documentclass{scrreprt}
\usepackage{hyperref}
\newcounter{dummy}
\begin{document}

\chapter{First}

\newpage
\begin{figure}
{\Huge FIGURE}
\refstepcounter{dummy}
\label{fig:figure}
\end{figure}

\chapter{Second}

Goto \pageref{fig:figure}

\end{document}

Создает гиперссылку на конец рисунка. (работает на моей машине :-) Обратите внимание, что \ref{fig:figure} не имеет смысла.

7 голосов
/ 19 апреля 2016

Прямо перед меткой используйте \ phantomsection, вот так:

\documentclass{memoir}
\usepackage{hyperref}
\begin{document}
some text
\clearpage
\begin{figure}
a figure
\phantomsection
\label{foo}
\end{figure}
more text
\clearpage
See figure on page \pageref{foo}.
\end{document}

:)

0 голосов
/ 30 апреля 2010

Загрузка пакета caption должна подавлять вывод заголовков пустых заголовков. Метки для чисел с плавающей запятой всегда определяются командой заголовка, предшествующей команде метки.

...