使用 csquotes 引用时自动填充空的 prenote 字段

使用 csquotes 引用时自动填充空的 prenote 字段

我使用biblatexcsquotes如果我间接引用,我会使用\autocite,如果我直接引用,我会使用。如果省略或为空, csquotes \blockcqute我想将预定义文本插入到(或 csquotes 命令)prenote的字段中 - 因此这类似于编写。我发现我可以重新定义 biblatex 的 postnote 宏:\blockcqute\blockcquote[][55]{Author}{Quote}\blockcquote[See][55]{Author}{Quote}

\renewbibmacro*{prenote}{%
    \iffieldundef{prenote}
    {% true
        \printtext{See}%
    }{% false
        \printfield{prenote}}%
        \setunit{\prenotedelim%
    }%
}

但这样写作Some text \autocite[][55]{Author}也会变得类似,Some text \autocite[See][55]{Author}而这不是我想要达到的效果。

那么,是否有像 biblatex 的 prenote 宏那样的钩子我可以修改?

答案1

一个非常简单的方法是加入\mkccitation并添加你对prenote宏的重新定义

\renewcommand{\mkccitation}[1]{
  \renewbibmacro*{prenote}{%
    \iffieldundef{prenote}
      {\printtext{See}}
      {\printfield{prenote}}%
    \setunit{\prenotedelim}}%
    \space#1}

这种重新定义将仅限于csquotes“引用命令 - 它发生在一个组内。

相关内容