通过不同的命名进行编辑

通过不同的命名进行编辑

我正在尝试根据我所在大学的标准设置“编辑”。它通常会显示姓氏、名字(Hg.)(年份):...。这可以正常工作。但是,如果我在书籍类型条目中有一个作者和编辑,它看​​起来会像这样: 测试图像(忽略“Übers”处的红色标签。)在这种情况下,省略括号是正确的,但是不说“Hrsg。”而应该简单地说“Hg。” - 有谁知道如何实现这一点,因为我已经在 MWE 中定义了编辑器的拼写?

\documentclass[12pt,a4paper,headings=standardclasses,numbers=noenddot]{scrartcl}
\usepackage[left=2.50cm, right=2.50cm, top=2.50cm, bottom=2.00cm, footskip=1cm]{geometry}
\usepackage[main=ngerman, english]{babel}
\usepackage[babel, german=quotes]{csquotes}
\usepackage[ngerman]{isodate}
\usepackage[ngerman]{datetime}

\usepackage[
  backend=biber,
  style=ext-authoryear,
  sorting=nyvt,
  maxnames=25,
  innamebeforetitle=true,
  usetranslator=true,
  alldates=terse,
  labeldate=year,
  dashed=false,
  isbn=false
]{biblatex}
\usepackage[hidelinks]{hyperref}

\DefineBibliographyStrings{german}{%
  andothers = {et al\adddot},
  editor    = {Hg\adddot},
  editors   = {Hg\adddot},
  urlseen = {letzter Abruf},
}

\usepackage{xpatch}
\xpatchbibdriver{online}
  {\usebibmacro{byeditor+others}}
  {\usebibmacro{online:editor+maintitle}}
  {}{}
\xpatchbibmacro{editorstrg}{\bibstring}{\bibcpstring}{}{}
\xpatchbibmacro{editorstrg}{\bibstring}{\bibcpstring}{}{}

\renewcommand{\mkbibnamefamily}[1]{%
  \ifitemannotation{journalauthor}
    {\mkbibemph{#1}}
    {\textsc{#1}}}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Berry.2006,
 year = {2006},
 title = {Japan in Print},
 volume = {12},
 publisher = {{University of California Press}},
 maintitle = {Asia: Local Studies / Global Themes},
 author = {Berry, Mary Elizabeth},
 subtitle = {Information and Nation in the Early Modern Period},
 location = {Berkeley and California and London},
 translator = {Test, Name},
 editor = {Wasserstrom, Jeffrey N. and Wigen, K{\"a}ren and Tai, Hue-Tam Ho}
}

\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*} 
\clearpage
\printbibliography[heading=bibintoc,title={Literaturverzeichnis}]
\end{document}

答案1

您需要重新定义字符串byeditor

尝试这个:

\DefineBibliographyStrings{german}{%
  andothers = {et al\adddot},
  byeditor    = {Hg\adddotspace von},
  editor    = {Hg\adddot},
  editors   = {Hg\adddot},
  urlseen = {letzter Abruf},
}

这给出了 MWE 的输出:

MWE 输出

相关内容