作者年份引用中“ibid”后的控制标点

作者年份引用中“ibid”后的控制标点

我希望在作者年份脚注引文中用冒号作为年份和页码之间的分隔符。但在“ibid”一词后面,我希望用逗号代替冒号。

最小工作示例

\documentclass[12pt]{article}

\usepackage[
autocite=footnote,
bibstyle=authoryear-ibid,
citestyle=authoryear-ibid,
]{biblatex}

\renewcommand*{\postnotedelim}{\addcolon\space}
\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{multipostnote}{#1}

\begin{filecontents*}[overwrite]{bibliography.bib}
@book{book,
  title={Fabulous Book},
  author={Fred Smith},
  year={2006},
}
\end{filecontents*}
\addbibresource{bibliography.bib}

\begin{document}

\autocite[5]{book}
\autocite[6]{book}

\end{document}

目前,由于设置的原因,它在单词“ibid”后面加了一个冒号。有没有办法让单词“ibid”后面的分隔符只变成逗号?

在此处输入图片描述

答案1

您可以使用以下构造。

我们不能简单地测试\ifciteibid中的postnotedelim,因为当最终打印后记时,引用跟踪器可能已经处于不同的状态。所以我们必须通过辅助切换器,在每个引用中明确切换。

\documentclass[12pt]{article}

\usepackage[
  style=authoryear-ibid,
  autocite=footnote,
]{biblatex}

\newtoggle{cbx:isibid}

\AtEveryCitekey{\global\togglefalse{cbx:isibid}}

\renewbibmacro*{cite:ibid}{%
  \global\toggletrue{cbx:isibid}%
  \printtext[bibhyperref]{\bibstring[\mkibid]{ibidem}}%
  \ifloccit
    {\global\booltrue{cbx:loccit}}
    {}}

\DeclareDelimFormat*{postnotedelim}{%
  \iftoggle{cbx:isibid}
    {\addcomma}
    {\addcolon}%
  \space}

\DeclareFieldFormat{postnote}{\mknormrange{#1}}
\DeclareFieldFormat{volcitepages}{\mknormrange{#1}}

\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem \autocites[5]{sigfridsson}
ipsum \autocites[6]{sigfridsson}
dolor \autocites[5]{nussbaum}
sit \autocites[6]{sigfridsson}
amet \autocites[6]{sigfridsson}
\end{document}

1 Sigfridsson 和 Ryde 1998:5。//2 同上,6。

相关内容