hyperref
当使用提供链接和书签的包与float
实现文档中浮动位置更改的包时,会出现问题。
加载两者会产生副作用,即 hyperref 生成的所有链接都指向文档的第一页,而不是相应的页面。以下 MWE 重现了该问题:
\documentclass{article}
\usepackage{lipsum}
\usepackage[pdftex,
bookmarks=true,
breaklinks,
pagebackref=true]{hyperref}
\usepackage{bookmark}
\usepackage{float}
\restylefloat{figure}
\restylefloat{table}
\begin{document}
\lipsum[20-27]
\begin{figure}
\centering
A figure.
\caption{Figure caption}
\label{label}
\end{figure}
\lipsum[3-8]
Link to figure: \ref{label}.
\lipsum[17]
\end{document}
在这个例子中,label
引用指向第一页,而不是图形实际所在的页面。
hyperref
我在或文档中都没有发现关于这一点的任何提及float
。
答案1
解决这个问题的方法是加载float
包前 hyperref
,发出影响浮点数的命令后加载中hyperref
:
(...)
\usepackage{float}
\usepackage[pdftex,
bookmarks=true,
breaklinks,
pagebackref=true]{hyperref}
\usepackage{bookmark}
\restylefloat{figure}
\restylefloat{table}
(...)
我不确定为什么会出现这种情况,但我可以假设其中有一些命令重新定义float
会破坏由 生成的链接hyperref
。