具有多个参考书目的文档中的链接消歧义

具有多个参考书目的文档中的链接消歧义

在我的文档中,有几份参考文献具有相同的参考文献。我用它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

根据您的文档设置,有两个简单的选项。

  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}
    
  2. 关闭所有链接,然后重新打开以获取最后的参考书目。

    \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。如果您正在查看包含许多参考书目的文档,这可能是最干净的解决方案。

相关内容