【问题标题】:LaTeX hyperref link goes to wrong pageLaTeX hyperref 链接转到错误的页面
【发布时间】:2010-04-30 15:37:57
【问题描述】:

我正在尝试创建对不使用标题的浮动的引用。如果我在浮点数中包含 \label{foo} 并使用 \pageref{foo} 引用它,正确的页码会显示在我的 pdf 文档中,但 hyperref 包创建的超链接链接到不同的页面(部分)。如果我在浮动中的标签之前包含标题,则超引用链接会转到正确的页面。

有没有办法让超引用链接正常工作而不在浮动中包含标题?或者有没有办法抑制标题的显示,这样我就可以在不显示的情况下包含一个标题?

下面是一个最小的例子。如果我使用 pdflatex 处理它,我会得到三页。 “图”显示在第二页,第三页正确地写着“参见第 2 页的图”。但是“2”上的超链接显示“转到第 1 页”,如果我点击它,我会转到第 1 页。

如果我在 \label{foo} 之前放置一个空的 \caption{},那么超链接可以正常工作,但我不想为我的浮动显示标题。

\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}

【问题讨论】:

  • 我认为这在浮动标题中按预期工作?
  • 正确 -- 如果我包含标题,超链接会转到正确的页面。
  • 您是否在浮动中将 \caption 放在 \label 之前?否则,LaTeX 会产生错误的数字。请发布一个最小的示例,以便我们尝试。

标签: latex hyperref


【解决方案1】:

\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} 没有意义。

【讨论】:

    【解决方案2】:

    在标签之前,使用 \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}
    

    :)

    【讨论】:

    • 与@Meinersbur 使用\refstepcounter 的解决方案相比,它的优势在于,例如,当使用\autoref 引用标签时,它会保留正确的编号。 (\autoref 仍然不会将其显示为“Figure”,它将使用分配给 \sectionautorefname 的任何文本。)
    【解决方案3】:

    加载caption 包应该抑制空字幕的字幕输出。浮点数的标签始终由标签命令之前的标题命令确定。

    【讨论】:

    • 如果我不包含标题,为什么 \pageref 的页码会正确显示?只有超链接不正确。我刚刚尝试加载字幕包,但不幸的是它没有抑制字幕输出。它仍然显示为“图 0.1:”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多