我想使用自定义脚注引用样式来实现文档中第二次及后续出现的引用的以下行为:
乳胶:
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-note
和verbose-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}
所需的基础设施是一个保存脚注编号的宏
\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
。)