不久前,Alan Munn 提出了一个问题,并给出了一致的回答关于删除括号的问题来自 biblatexauthoryear
样式的引用。不幸的是,lockstep 的解决方案将不需要的引用注入\addperiod\space
到“破折号”引用中。例如,给定 Author, A. 引用两次:
\documentclass{article}
\usepackage[style=authoryear]{biblatex}
\usepackage{xpatch}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{A01,author={Author, A.},year={2001},title={Alpha}}
@misc{A02,author={Author, A.},year={2001},title={Beta}}
\end{filecontents}
\addbibresource{\jobname.bib}
\nocite{*}
\begin{document}
\printbibliography
\xpatchbibmacro{date+extrayear}{%
\printtext[parens]%
}{%
\addperiod\space%
\printtext%
}{}{}
\printbibliography
\end{document}
我们得到:
我尝试使用类似构造来构建解决方案,\usebibmacro{bbx:dashcheck}
但没有成功。那么,如何基于 lockstep 的基于 nice 的xpatch
方法,有条件地\addperiod\space
仅在“非破折号”引用的情况下才包含它?
答案1
单位的输出应该在命令内部完成\setunit
。
\xpatchbibmacro{date+extrayear}{%
\printtext[parens]%
}{%
\setunit{\addperiod\space}%
\printtext%
}{}{}