Гиперссылка на LaTeX ведет на неправильную страницу
Я пытаюсь создать ссылку на число с плавающей точкой, которое не использует заголовок. Если я включаю \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 ответа
\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}
бессмысленно.
Прямо перед меткой используйте \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}
:)
Загрузка caption
пакет должен подавлять вывод заголовков пустых подписей. Метки для поплавков всегда определяются командой заголовка, предшествующей команде метки.