使用多个参考书目时,超级引用至正确的条目

使用多个参考书目时,超级引用至正确的条目

这是本期包含多个参考书目和反向引用。我想生成两个书目,开头是简短的,结尾是完整的。所有条目都出现在完整的书目中,有些条目同时出现在两个目录中。根据那里的有用答案,代码如下所示:

\documentclass{report}
\usepackage{hyperref}
\usepackage[backref=true, hyperref=true, backend=biber]{biblatex}
\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@misc{A01, author = {Author, A.}, year = {2001}, title = {Alpha Title}, keywords = {self}}
@misc{B02, author = {Author, B.}, year = {2002}, title = {Beta Title}, keywords = {other}}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}
\begingroup\renewbibmacro{pageref}{}
\printbibliography[heading=bibintoc, keyword=self, title={Previous Work}]
\endgroup

\chapter{First}
Some text \cite{A01, B02}.

\printbibliography[heading=bibintoc, title={References}]

\end{document}

使用 hyperref 时,单击 B02 链接会转到后面的参考文献。但问题是,另一个 A01 链接指向前面的参考书目,这不一致,并且无法使用 backref 返回到文本页面。

我正在寻找一种方法来刷新第一个参考书目之后的超链接目标,以便所有链接都只转到完整的参考书目,而不会破坏超链接的其余部分。

答案1

如果您在第一个参考书目中只包含某些参考文献,那么包含编号 [1], [2], ... 可能不是一个好主意。

在这种情况下,你可以用以下方法替换\printbibliography[heading=bibintoc, keyword=self, title={Previous Work}]

\printbibheading[heading=bibintoc,title={Previous Work}]
\fullcite{A01}.

这将避免您的超链接问题。


或者,这里有一个版本,其中第一个参考书目暂时禁用 hyperref。

\documentclass{report}
\usepackage{hyperref}
\usepackage[backref=true, hyperref=true, backend=biber]{biblatex}
\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@misc{A01, author = {Author, A.}, year = {2001}, title = {Alpha Title}, keywords = {self}}
@misc{B02, author = {Author, B.}, year = {2002}, title = {Beta Title}, keywords = {other}}
\end{filecontents}

\addbibresource{\jobname.bib}


\begin{document}
\begingroup\renewbibmacro{pageref}{}
\makeatletter
\let\blx@anchor\relax
\makeatother
\printbibliography[heading=bibintoc, keyword=self, title={Previous Work}]
\endgroup

\chapter{First}
Some text \cite{A01, B02}.

\printbibliography[heading=bibintoc, title={References}]

\end{document}

相关内容