\AtEndPreamble 钩子打破了超链接与参考书目的关系

\AtEndPreamble 钩子打破了超链接与参考书目的关系

过去我使用钩子\usepackage{hyperref}\AtEndPreamble{}没有问题。至少我认为如此。但是,最近钩子破坏了我的参考书目的链接。这是错误还是我做错了?我在自定义类文件中使用钩子,但在主文档文件中加载了其他包,并希望在序言末尾保持对 hyperref 的加载。

在以下 MWE 中,没有钩子一切正常,而有了钩子链接就消失了。

\begin{filecontents}{bla.bib}
@article{Orwell,
    author  = "George Orwell and Aldous Huxley and William Shakespeare and Oscar Wilde",
    title   = "1984",
    year    = "1948",
    journal = "Books about big brothers",
}
\end{filecontents}

\documentclass{article}

\usepackage[style=alphabetic]{biblatex}
\addbibresource{bla.bib}

\AtEndPreamble{
    \usepackage{hyperref}
}

\begin{document}

\cite{Orwell}
\printbibliography

\end{document}

答案1

在这种情况下,您需要手动激活 biblatex 对 hyperref 的支持:

\begin{filecontents}{bla.bib}
@article{Orwell,
    author  = "George Orwell and Aldous Huxley and William Shakespeare and Oscar Wilde",
    title   = "1984",
    year    = "1948",
    journal = "Books about big brothers",
}
\end{filecontents}

\documentclass{article}

\usepackage[style=alphabetic,hyperref=manual]{biblatex}
\addbibresource{bla.bib}

\AtEndPreamble{
    \usepackage{hyperref}
    \BiblatexManualHyperrefOn
}

\begin{document}

\cite{Orwell}
\printbibliography

\end{document}

另请参阅此处的讨论https://github.com/plk/biblatex/issues/585

相关内容