将 biblatex 书目链接到引文而不打印反向引用

将 biblatex 书目链接到引文而不打印反向引用

在我的 biblatex 参考书目中,参考文献旁边有 [1] 这样的数字。当我点击引文 [1] 时,它会链接到参考书目 [1](感谢 hyperref 包)。有没有办法在相反的方向建立这样的链接?这样从参考书目中,我就能快速看到参考文献被引用的位置?此解决方案几乎就是我想要的,但它要求打印引用页码,而我不想这样。我意识到如果我多次引用参考文献,这就没有意义了,但对我来说这种情况很少见。

答案1

以下解决方案不使用backref,而是基于的链接verbose-inote

我们在每个引用处设置一个链接锚点,并将参考书目中的标签链接回第一个锚点(以便以后安全使用)。

这要求每个条目的第一次引用在 之前发生\printbibliography

平均能量损失

\documentclass{article}
\usepackage[backref=false]{biblatex}
\usepackage[colorlinks=false]{hyperref}

\makeatletter
\DeclareFieldFormat{bibhypertarget}{%
  \bibhypertarget{\thefield{entrykey}:\the\value{instcount}}{#1}}

\renewbibmacro*{cite}{%
  \printtext[bibhyperref]{%
    \printtext[bibhypertarget]{%
      \printfield{labelprefix}%
      \printfield{labelnumber}%
      \ifbool{bbx:subentry}
        {\printfield{entrysetcount}}
        {}}}%
  \usebibmacro{cite:save}}

\newbibmacro*{cite:save}{%
  \ifcsundef{cbx@\thefield{entrykey}}
    {\csxdef{cbx@\thefield{entrykey}}{\the\value{instcount}}}
    {}}

\newbibmacro{cbx:linktofirstcite}[1]{%
  \ifcsdef{cbx@\thefield{entrykey}}
    {\bibhyperlink
       {\thefield{entrykey}:\csuse{cbx@\thefield{entrykey}}}
       {#1}}
    {#1}}

\DeclareFieldFormat{labelnumberwidth}{%
  \usebibmacro{cbx:linktofirstcite}{\mkbibbrackets{#1}}}
\makeatother


\addbibresource{biblatex-examples.bib}

\begin{document}
\nocite{knuth:ct}
Some text \autocite{geer,worman}.
\clearpage
Some more text \autocite{cicero}.
\printbibliography
\end{document}

在此处输入图片描述

相关内容