Я использую biblatex
стиль authoryear-icomp
и хочу процитировать две работы одного автора, написанные в один и тот же год. Текущий \citet{examplea, exampleb}
вывод
Джон (1991а,б)
но я бы предпочел добавить дополнительное пространство, в результате чего
Джон (1991а, б).
Я уже пытался переопределить \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}
Выход: