软件包 footmisc 导致 pdfTeX 错误

软件包 footmisc 导致 pdfTeX 错误

使用 footmisc 包时,它会导致我的论文中出现许多 PdfTeX 错误:

pdfTeX warning (dest): name{Hfootnote.1} has beend referenced but does not exist, replaced by a fixed one

以下是 MWE:

\documentclass[12pt, oneside]{Thesis}

\usepackage[backend=biber, autocite=footnote, citestyle=authoryear-icomp, bibstyle=authoryear]{biblatex}
\usepackage[bottom, hang]{footmisc}
\usepackage{filecontents}

\begin{filecontents*}{jobname.bib}
    @book{SomeSource,
        author = {The Author},
        year = {2015},
        title = {The Title}
    }
\end{filecontents*}

\addbibresource{jobname.bib}

\begin{document}
Some Text.\autocite[][123]{SomeSource}{}
\printbibliography[]
\end{document}

我发现有几篇帖子说应该hyperref在所有其他包之后加载该包,但无论我是否加载该包,也无论其在代码中的位置如何,问题仍然存在。

有人有想法吗?

顺便说一句:我正在使用版本hyperref.sty 2012/11/06 v6.83m Hypertext links for LaTeXfootmisc.sty 2011/06/06 v5.5b a miscellany of footnote facilities

答案1

您使用的文档类的问题MastersDoctoralThesis在于它已经定义了 hyperref 的调用。如果添加,\usepackage[hyperfootnotes=false]{hyperref}您会收到包的选项类冲突错误hyperref

只需\PassOptionsToPackage{hyperfootnotes=false}{hyperref}在之前的行中使用(参见 MWE 的第 11 行)。使用此命令,您可以建议 LaTeX在调用时\documentclass将给定的选项添加hyperfootnotes=false到包中。hyperref

查看更正后的 MWE(我添加了您遗漏的包):

\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{SomeSource,
  author = {The Author},
  year   = {2015},
  title  = {The Title},
}
\end{filecontents*}


\PassOptionsToPackage{hyperfootnotes=false}{hyperref}
\documentclass[%
  english,
  12pt, 
  oneside
]{MastersDoctoralThesis}

%\usepackage[english]{babel}
\usepackage{csquotes}

\usepackage[%
  backend=biber, 
  autocite=footnote, 
  citestyle=authoryear-icomp, 
  bibstyle=authoryear
]{biblatex}
\addbibresource{\jobname.bib}

\usepackage[bottom, hang]{footmisc}
%\usepackage[hyperfootnotes=false]{hyperref}


\begin{document}
Some Text.\autocite[][123]{SomeSource}{}

\printbibliography[]
\end{document}

要测试,只需注释掉第 11 行并删除%第 30 行:您的警告将返回...

在第 7 页的包装手册中footmisc您可以阅读:

hyperref hyperref 软件包的目标是从脚注标记到相应的脚注主体建立超链接;这自然会给 footmisc 带来麻烦,不幸的是,目前还没有已知的补救措施。如果您使用 foot-misc,请通过以下方式加载来抑制 hyperref 的超脚注:\usepackage[hyperfootnotes=false,...]{hyperref} 建议对这两个软件包之间的交互进行进一步研究,但尚未安排。

相关内容