当 biblatex 中多个条目中的作者姓名具有不同的形式时,如何显示相同的作者姓名?

当 biblatex 中多个条目中的作者姓名具有不同的形式时,如何显示相同的作者姓名?

我有同一位作者的三篇条目,但每篇条目中作者名字的格式都不同:

爱德华多·蒙泰罗

爱德华多·恩里克·苏亚雷斯·蒙泰罗

爱德华多·HS·蒙泰罗

我想在我的 bib 文件中保留每篇文章中名称的显示方式,但我想在我的论文中只显示一种形式。我以为字段 shortauthor 会帮我做到这一点,但它不起作用。问题是如果我按原样使用它,在文本中每个条目都会被视为不同的作者:

(Eduardo HS MONTEIRO,2000 年;E. MONTEIRO,2006 年;Eduardo Henrique Soares MONTEIRO,2011 年)

如果我使用 shortauthor 字段:

(蒙特罗,2000 年;蒙特罗,2006 年;蒙特罗,2011 年)

参考文献:

蒙特罗,爱德华多。[...]

蒙特罗,爱德华多 HS [...]

蒙特罗,爱德华多·恩里克·苏亚雷斯。 [...]

我想知道的是,是否有一种方法可以在我的 bib 文件中保留每篇文章中出现的名称,但只显示一种形式,并被视为同一作者,如下所示:

在正文中:

(蒙特罗,2000 年;2006 年;2011 年)

在参考文献中

蒙特罗,爱德华多。[...]

______。 [...]

______。 [...]

我正在使用 biblatex-abnt。

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[brazil]{babel}

\usepackage[
    backend=biber,
    style=abnt,
    ittitles
]{biblatex}

\addbibresource{bibliography.bib}

\setlength\parindent{0cm}

\begin{document}

\cite{Monteiro2000, Monteiro2006, Monteiro2011}

\printbibliography[heading=none]

\end{document}

@Thesis{Monteiro2000,
  author       = {Eduardo H. S. Monteiro},
  title        = {Henrique Oswald (1852-1931)},
  type         = {Tese de Doutorado},
  institution  = {Université Paris-Sobonne},
  year         = {2000},
  subtitle     = {un compositeur brésilien audélà du natiomalisme musical l'exemple de sa musique de chambre avec piano},
  location     = {Paris},
  eventyear    = {2000},
}

@Article{Monteiro2006,
  author       = {Eduardo Monteiro},
  title        = {Henrique Oswald e os Românticos Brasileiros},
  journaltitle = {Textos do Brasil},
  date         = {2006-04-10},
  pages        = {68-71},
  url          = {http://dc.itamaraty.gov.br/imagens-e-textos/revista-textos-do-brasil/portugues/edicao-numero-12},
  urldate      = {2017-03-08},
  edition      = {12},
  location     = {Brasília},
  publisher    = {Departamento Cultural do Ministério das Relações Exteriores},
  subtitle     = {em busca do tempo perdido},
}

@Article{Monteiro2011,
  author       = {Eduardo Henrique Soares Monteiro},
  title        = {Por uma nova contextualização da obra de Henrique Oswald},
  journal      = {OPUS - Revista Eletrônica da ANPPOM},
  year         = {2011},
  pages        = {9-42},
  url          = {http://www.anppom.com.br/revista/index.php/opus/article/view/198},
  volume       = {17},
  number       = {2},
  issn         = {1517-7017},
}

答案1

您可以使用 Biber 的源映射来规范化名称

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map[foreach={author, editor, translator}]{
      \step[fieldsource=\regexp{$MAPLOOP},
            match=\regexp{Eduardo\s+(H.\s+S.|Henrique\s+Soares)+\s*Monteiro},
            replace={Eduardo Monteiro}]
    }
  }
}

这会将您提到的通过正则表达式捕获的所有版本标准化为字段authoreditor和中的“Eduardo Monteiro” translator。您可以轻松地在 中添加更多名称字段foreach

相关内容