biber 中多个编辑器的特定“byeditor”字符串

biber 中多个编辑器的特定“byeditor”字符串

我定义了一个宏来更改 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不是需要更改的内容,因为这只是介绍名称的字符串,例如“编辑者”或类似的短语。您需要做的是更改编辑器名称本身的显示方式,以便在显示名称时使用和字符串editoreditors我认为以下内容可以满足您的要求。

\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}

代码输出

相关内容