使用逻辑和 DeclareCiteCommand 与 biblatex 自定义引用命令

使用逻辑和 DeclareCiteCommand 与 biblatex 自定义引用命令

我正在使用 overleaf 和 biblatex,需要自定义引用样式以符合我所在大学的引用指南。

基本原则是每个引用都需要一个脚注。此外,这是一个“3 格事物”;意思是:

  • 如果这是第一次引用此参考文献,请在脚注中显示完整参考文献(作者、标题、年份、页数)
  • 如果此参考文献在文档的前面某处被引用,则仅打印作者的姓氏和头衔
  • 如果某参考文献被连续引用 2 次,则将第二个脚注显示为“重复,请参阅上面的脚注”

我尝试使用 biblatex 文档(我几乎不懂)并在这里寻找解决方案。我大致想到了这一点:

\DeclareCiteCommand{\myfootercitation}[\mkbibfootnote]
  {
    \usebibmacro{prenote}
  }
  {\ifciteibid{REPEATED.}{
  \ifciteindex{\indexfield{indextitle}}{}%
   \textit{\usebibmacro{author}: }
   \printfield[citetitle]{labeltitle},
   \usebibmacro{year},
   \usebibmacro{pages},
   \printfield[cite]{}
   \setunit{\adddot\space}
   }}
  {\multicitedelim}
  {\usebibmacro{postnote}}

我还认为我需要\ifciteseen检查该引用是否以前使用过,并\ifciteibid找出重复引用的情况。但我就是无法将所有内容整合在一起,也无法在 DeclareCiteCommand 上找到好的教育材料。

答案1

这或多或少就是verbose-ibid风格确实如此。它写着“同上。”而不是“重复,见上面的脚注”(我以前从未见过,觉得很奇怪),但可以更改。

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[backend=biber, style=verbose-ibid]{biblatex}

\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem \autocite{sigfridsson}
ipsum \autocite{nussbaum}
dolor \autocite{sigfridsson}
sit \autocite{sigfridsson}

\printbibliography
\end{document}

1 Emma Sigfridsson 和 Ulf Ryde。《从静电势和力矩推导原子电荷的方法比较》。《计算化学杂志》19.4(1998 年),第 377-395 页。doi:10.1002/(SICI)1096-987X(199803)19:4<377::AID-JCC1>3.0.CO;2-P。2 Martha Nussbaum。亚里士多德的《动物运动论》。普林斯顿:普林斯顿大学出版社,1978 年。3 Sigfridsson 和 Ryde,“从静电势和力矩推导原子电荷的方法比较”。4 同上。

如果您需要“重复,请参阅上面的脚注”,您可以应用以下重新定义。相关宏可以在verbose-ibid.cbx\DeclareCiteCommand。手册中没有太多相关文档biblatex,但通过查看代码你可以学到很多东西。

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[backend=biber, style=verbose-ibid]{biblatex}

\NewBibliographyString{fnabove}
\DefineBibliographyStrings{english}{
  ibidem  = {repeated},
  fnabove = {see footnote above},
}

\makeatletter
\renewbibmacro*{cite:ibid}{%
  \printtext[bibhyperlink]{\bibstring[\mkibid]{ibidem}}%
  \iffootnote
    {\setunit{\addcomma\space}%
     \bibstring{fnabove}}
    {}%
  \ifloccit
    {\global\toggletrue{cbx:loccit}}
    {}}
\makeatother

\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem \autocite{sigfridsson}
ipsum \autocite{nussbaum}
dolor \autocite{sigfridsson}
sit \autocite{sigfridsson}

\printbibliography
\end{document}

与上面输出相同,但脚注 4 现在是“4 重复,请参阅上面的脚注”。

相关内容