在我的文档中,有几份参考文献具有相同的参考文献。我用它biblatex
来打印参考文献,并hyperref
制作可点击的引文。正如biblatex
文档中所写,链接会重定向到整个文档中第一次打印的参考文献。但是,我希望链接重定向到文档末尾的参考文献表。我该如何实现呢?
以下是 MWE:
\documentclass{article}
\usepackage[backend=biber,bibstyle=numeric]{biblatex}
\usepackage{hyperref}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Goossens:1994:LC:561206,
author = {Goossens, Michel and Mittelbach, Frank and Samarin, Alexander},
title = {The LaTeX Companion},
year = {1994},
publisher = {Addison-Wesley Longman Publishing Co., Inc.}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\printbibliography[title={Front references}]
\vfill Here is a story with references \cite{Goossens:1994:LC:561206}. \vfill
\printbibliography[title={Back references}]
\end{document}
输出看起来像
当我单击超链接 (1) 时,我被重定向到“前面的引用”,但我想被重定向到“后面的引用”。我使用的是 MikTeX 2.9 中的 PDFLaTeX 和 Biber。
答案1
根据您的文档设置,有两个简单的选项。
关闭第一个书目的链接(以及除最后一个要链接的书目的所有其他书目的链接)。
\documentclass{article} \usepackage[backend=biber,bibstyle=numeric]{biblatex} \usepackage{hyperref} \addbibresource{biblatex-examples.bib} \makeatletter \def\turnoffbiblinks{\let\blx@anchor\@empty} \makeatother \begin{document} \AtNextBibliography{\turnoffbiblinks} \printbibliography[title={Front references}] \vfill Here is a story with references \cite{sigfridsson}. \vfill \printbibliography[title={Back references}] \end{document}
关闭所有链接,然后重新打开以获取最后的参考书目。
\documentclass{article} \usepackage[backend=biber,bibstyle=numeric]{biblatex} \usepackage{hyperref} \addbibresource{biblatex-examples.bib} \makeatletter \AtBeginDocument{% \let\saved@blx@anchor\blx@anchor \let\blx@anchor\@empty \def\turnonbiblinks{\let\blx@anchor\saved@blx@anchor}% } \makeatother \begin{document} \printbibliography[title={Front references}] \vfill Here is a story with references \cite{sigfridsson}. \vfill \AtNextBibliography{\turnonbiblinks} \printbibliography[title={Back references}] \end{document}
\defbibenvironment
也可以通过用而不是来定义单独的参考书目环境来实现\AtNextBibliography
。如果您正在查看包含许多参考书目的文档,这可能是最干净的解决方案。