Biblatex:使用引用跟踪器来引用首次出现的次数

Biblatex:使用引用跟踪器来引用首次出现的次数

我想使用自定义脚注引用样式来实现文档中第二次及后续出现的引用的以下行为:

乳胶:

Sample Text\footcite{foo}. Some more dummy text.\footcite{bar} Lorem ipsum\footcite{foo}.

输出:

示例文本^1。更多虚拟文本。^2 Lorem ipsum^3。

附有以下脚注内容:

^1 \cite 命令的标准输出,用于输入如样式中所定义。

^2 \cite 命令的标准输出酒吧如样式中所定义。

^2 参见脚注 1。

\footcites如果可能的话,如果这种行为也适用于包含尚未引用的 bib 条目的命令,那就太好了。

我希望我的问题已经足够清楚,并且我对这个没有找到任何结果的主题的研究是全面的。

答案1

biblatex已经有一些实现如下行为的样式:verbose-noteverbose-inote

\documentclass[british]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber,style=verbose-note]{biblatex}
\addbibresource{biblatex-examples.bib}

\begin{document}
  Lorem\autocite{sigfridsson}
  ipsum\autocite{worman}
  dolor\autocite{cicero}       
  sit\autocite{sigfridsson}       
  amet\autocite{sigfridsson}

  \printbibliography
\end{document}

MWE 的脚注


所需的基础设施是一个保存脚注编号的宏

\newbibmacro*{footcite:save}{%
  \csxdef{cbx@f@\thefield{entrykey}}{\the\value{instcount}}%
  \label{cbx@\the\value{instcount}}}

此宏需要在第一次引用作品时执行(并且只能在那时执行)。

然后利用这个宏,相关部分footcite:note

  \printtext{%
    \bibstring{seenote}\addnbspace
    \ref{cbx@\csuse{cbx@f@\thefield{entrykey}}}%
    \iftoggle{cbx:pageref}
      {\ifsamepage{\the\value{instcount}}
                  {\csuse{cbx@f@\thefield{entrykey}}}
         {}
         {\addcomma\space\bibstring{page}\addnbspace
          \pageref{cbx@\csuse{cbx@f@\thefield{entrykey}}}}}
      {}}

(全部复制自verbose-note.cbx。)

相关内容