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