我使用biblatex
样式authoryear-icomp
并希望引用同一作者同一年创作的两部作品。 的当前输出\citet{examplea, exampleb}
是
约翰(1991a,b)
但我更愿意添加一个额外的空间,从而
约翰(1991a,b)。
我已经尝试重新定义\multicitedelim
并\compcitedelim
通过
\renewcommand{\multicitedelim}{\addcomma\addspace}
\renewcommand{\compcitedelim}{\addcomma\addspace}
但没有达到预期的效果。
平均能量损失
\documentclass{article}
\usepackage[backend=biber, natbib, style=authoryear-icomp]{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@MISC{examplea,
author = {John, Doe},
title = {MyBook A},
date = {1991}
}
@MISC{exampleb,
author = {John, Doe},
title = {MyBook B},
date = {1991}
}
\end{filecontents*}
\bibliography{\jobname.bib}
\begin{document}
\citet{examplea, exampleb}
\end{document}
答案1
这种行为的罪魁祸首是 bibmacro textcite
......
在序言中添加以下几行(xpatch
需要软件包)
\xpatchbibmacro{textcite}
{\setunit{\addcomma}}
{\setunit{\addcomma\addspace}}
{}
{}
解决了问题。
完整代码(我也改成\bibliography
了\addbibresource
)
\documentclass{article}
\usepackage[backend=biber, natbib, style=authoryear-icomp]{biblatex}
\usepackage{xpatch}
\xpatchbibmacro{textcite}
{\setunit{\addcomma}}
{\setunit{\addcomma\addspace}}
{}
{}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@MISC{examplea,
author = {John, Doe},
title = {MyBook A},
date = {1991}
}
@MISC{exampleb,
author = {John, Doe},
title = {MyBook B},
date = {1991}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\citet{examplea, exampleb}
\end{document}
输出: