使用 biblatex-chicago 包将脚注链接回原文

使用 biblatex-chicago 包将脚注链接回原文

我目前正在使用 Latex 和 Biber 制作电子书。我用于脚注的软件包是该biblatex-chicago软件包。

我可以成功地从某个段落链接到脚注,但我希望能够单击实际的脚注并返回到原始位置,从而创建反向引用。我查看了一些与类似主题相关的其他帖子,但似乎没有一个适用于biblatex-chicago我用来\autocite创建脚注的软件包。

平均能量损失

\documentclass[10pt, letterpaper]{book} 
\usepackage{palatino} 
\usepackage[notes,backend=biber]{biblatex-chicago} 
    \addbibresource{mweBib.bib} 
\usepackage{footnotebackref} 
\usepackage{tocloft} 
    \renewcommand{\cftchapleader}{\cftdotfill{\cftdotsep}} 
    \date{} \let\cleardoublepage\clearpage 
\usepackage{hyperref} 
\usepackage{color} 
    \hypersetup{colorlinks=true, linkcolor=blue, linktoc=all}
\begin{document} 
    This is a test for footnotebackref.\autocite[100]{test}
    \printbibliography
\end{document}

希望我已经清楚地说明了我的问题。任何帮助都将不胜感激!

答案1

确实biblatex-chicago得益于footnotebackref包裹不起作用。在 中biblatex-chicago.sty,我们发现

\renewcommand\@makefntext[1]{% Provides in-line footnote marks
      \setlength\parindent{1em}%
      \noindent
      \makebox[2.3em][r]{\@thefnmark.\,\,}#1}

每当我们加载非memoir文档类时,都会执行此宏。不幸的是,footnotebackref无法修改此宏,因此我们必须自己修改。

下面的代码甚至不需要加载footnotebackref,最重要的方面可以用几行代码来实现(这些代码取自footnotebackref包裹/Holle 的回答使用 hyperref 进行脚注反向引用冗长地)

\newcounter{BackrefHyperFootnoteCounter}
\makeatletter
\pretocmd{\footnote}    
    {\refstepcounter{BackrefHyperFootnoteCounter}%
     \edef\BackrefFootnoteTag{bhfn:\theBackrefHyperFootnoteCounter}%
     \label{\BackrefFootnoteTag}}
    {}{}
\renewcommand\@makefntext[1]{% Provides in-line footnote marks
  \setlength\parindent{1em}%
  \noindent
  \makebox[2.3em][r]{\hyperref[\BackrefFootnoteTag]{\@thefnmark}.\,\,}#1}
\makeatother

在最后几行,我们修改了biblatex-chicago宏以包含脚注的链接。

平均能量损失

\documentclass[10pt, letterpaper]{book}
\usepackage{palatino}
\usepackage[notes,backend=biber]{biblatex-chicago}
\usepackage{hyperref}
\addbibresource{biblatex-examples.bib}

\newcounter{BackrefHyperFootnoteCounter}
\makeatletter
\pretocmd{\footnote}    
    {\refstepcounter{BackrefHyperFootnoteCounter}%
     \edef\BackrefFootnoteTag{bhfn:\theBackrefHyperFootnoteCounter}%
     \label{\BackrefFootnoteTag}}
    {}{}
\renewcommand\@makefntext[1]{% Provides in-line footnote marks
  \setlength\parindent{1em}%
  \noindent
  \makebox[2.3em][r]{\hyperref[\BackrefFootnoteTag]{\@thefnmark}.\,\,}#1}
\makeatother

\begin{document}
This is a test for footnotebackref.\autocite[100]{wilde}

\printbibliography
\end{document}

脚注编号现在带有 backref

相关内容