我使用biblatex
。csquotes
如果我间接引用,我会使用\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
“引用命令 - 它发生在一个组内。