我定义了一个宏来更改 biblatex 中指定编辑器的字符串,以便打印“Ed。”。当条目有多个编辑器时,我尝试打印“Edd。”。
以下是一个例子:
\documentclass[12pt, a4paper, openright, twoside]{memoir}
\usepackage[italian]{babel}
\usepackage[style = ext-verbose-trad2]{biblatex}
\begin{filecontents*}{\jobname.bib}
@book{AuthorBou,
author = {Bougaev, S. and Bucci, A.},
title= {Livre en Francois},
editor = {Antoni, A.},
date = {1985},
}
@book{AuthorBuc,
author = {Bucci, S.},
title= {Libro degli errori},
editor = {Bugatti, B and Antoni, A.},
date = {1985},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\DefineBibliographyStrings{italian}{%
byeditor = {\autocap{e}d\adddot},
}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
这使:
在第二个条目中我想要“Edd.”而不是“Ed.”。由于没有byeditors
要定义的 BibliographyString,我找不到解决方案...
答案1
字符串byeditor
不是需要更改的内容,因为这只是介绍名称的字符串,例如“编辑者”或类似的短语。您需要做的是更改编辑器名称本身的显示方式,以便在显示名称时使用和字符串editor
。editors
我认为以下内容可以满足您的要求。
\documentclass[12pt, a4paper, openright, twoside]{memoir}
\usepackage[italian]{babel}
\usepackage[style = ext-verbose-trad2]{biblatex}
\begin{filecontents*}{\jobname.bib}
@book{AuthorBou,
author = {Bougaev, S. and Bucci, A.},
title= {Livre en Francois},
editor = {Antoni, A.},
date = {1985},
}
@book{AuthorBuc,
author = {Bucci, S.},
title= {Libro degli errori},
editor = {Bugatti, B and Antoni, A.},
date = {1985},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\DefineBibliographyStrings{italian}{%
editor = {\autocap{e}d\adddot},
editors= {\autocap{e}dd\adddot}
}
\renewbibmacro*{byeditor+others}{%
\ifnameundef{editor}
{}
{\usebibmacro{editor+othersstrg}%
\setunit{\addspace}%
\printnames[byeditor]{editor}%
\clearname{editor}%
\newunit}%
\usebibmacro{byeditorx}%
\usebibmacro{bytranslator+others}}
\renewbibmacro*{byeditor}{%
\ifnameundef{editor}
{}
{\usebibmacro{editor}%
\setunit{\addspace}%
\printnames[byeditor]{editor}%
\newunit}%
\usebibmacro{byeditorx}}
\begin{document}
\nocite{*}
\printbibliography
\end{document}