首先,关于我的文档的一些一般细节:我正在使用scrbook
类和hyperref
包。文档被分成不同的源文件(尽管在这种情况下这个事实并不重要)。
我不断收到有关所有脚注(共 180 个)的警告:
Document.tex:0. name{Hfootnote.xx} has been referenced but does not exist, replaced by a fixed one.
其中,xx
由编译文档中的脚注编号替换,范围从 1 到 180(在我的情况下有 180 个脚注)。
脚注的编号是正确的,并且它们在编译的 PDF 中按应有的方式出现。
唯一的问题是,文档中的引用是错误的。单击脚注的索引(在文本中)总是会转到文档的第一页。
我已经尝试/检查了什么?
表格或标题中均无脚注
多次重新编译并不能解决任何警告
有些脚注确实包含
\url{}
但远非全部
有人能提示我还应该检查什么吗?
答案1
嗯,下面的方法很好用。所以你应该试着找出你的文档有什么不同。
\documentclass{scrbook}
\usepackage{hyperref}
\begin{document}
abc\newpage abc\footnote{blub}
\end{document}
我的猜测是,您没有遵循“将 hyperref 作为最后一个包加载”的规则,并且某些内容正在重新定义脚注。
答案2
我遇到了类似的问题。同样的警告,同样的结果(脚注链接始终指向第一页)。 setspace
事实证明和之间存在一些奇怪的相互作用hyperref
。 解决方案是确保setspace
已加载前 hyperref
:
\documentclass{book}
\usepackage{setspace}
\usepackage{hyperref}
\begin{document}
Hi.\footnote{Yolo}
\end{document}
否则,如果您交换顺序,就会引起同样的警告。
注意:在底层bookmark
也使用,所以即使您没有明确使用,也会出现类似的问题。hyperref
hyperref
答案3
我也遇到了这个问题,所以我按照\footnotemark[n]
放置脚注的位置进行操作,然后在文档的后面:\footnotetext[n]{text}
。
我认为这是因为我放置脚注的命令没有按预期工作。在tabular
和textit
括号之外,\footnote
工作正常。