biblatex - 每个人的姓氏 + 首字母,但模糊条目使用完整名字

biblatex - 每个人的姓氏 + 首字母,但模糊条目使用完整名字

我正在用 (3.16) 编制大型书目,biblatex并且正在努力将该uniquename功能应用于首字母和全名。(问题仅限于格式参考书目,因为该文档一致使用\nocite。)

我将作者引用为“Family, G.”(将其他角色引用为“G. Family”),其中“G.”是名字的缩写。(由于前缀也起着一定作用,因此我将相关代码包含在 MWE 中。)同姓氏的个人以及初始需要单独处理,因为“Family, G.”变得含糊不清。

这是臭名昭著的伯努利兄弟问题(尽管该问题bibtex没有涉及biblatex)。为了识别 Jacob 和 Johann Bernoulli,我需要使用他们的全名。

我觉得必须有一个选项来自动处理这个问题,但到目前为止,我无法让文档中的任何方法发挥作用。如果我执行选项giveninits,这会缩写所有名字。但是,它似乎也停用了功能uniquename,而这两个J·伯努利变得难以区分。但是,如果带有uniquename=full(或类似值)且不带有giveninits,则所有名称均未缩写,无论是否消除歧义。并且这个优雅的答案对我没用。

我想避免解决方法,例如 (1) 将名称括在括号中:({Bernoulli, Johann}顺便说一下,根据{Johann Bernoulli}角色需要将其反转为),或 (2) 完全投入giveinits并输入笨重的author = {family=Bernoulli, given=Johann, given-i={Johann\nopunct}}。这些解决方法是根据具体情况、逐个条目进行操作的,在添加新条目时不会涵盖潜在的新歧义,它们在大型参考书目中很容易出错。

我希望一般解决方案理想情况下应该:

  • 在参考书目中将给定的首字母缩写为“G.”,除非首字母“G.”对于不同的个体来说是共同的,否则输出“Given”。

  • 能够扫描不同的名单以查找重复项:假设其中一个伯努利是“作者”,另一个是“翻译”或其他风俗我们可能雇用的角色(我们在自定义条目类型中使用“通讯员” letter)。

这是我的 MWE:

\begin{filecontents}{uniquename.bib}
@book{translator-jac-bernoulli,
    author = {de Andrade, Mário},
    title = {A book translated by Jacob Bernoulli},
    translator = {Bernoulli, Jacob}}

@book{book-daniel-bernoulli,
    author = {Bernoulli, Daniel},
    title = {A book by Daniel Bernoulli}}

@collection{editor-joh-bernoulli,
    editor = {Bernoulli, Johann},
    title = {A collection edited by Johann Bernoulli}}

@book{book-jac-Bernoulli,
    author = {Bernoulli, Jacob},
    title = {A book by Jacob Bernoulli}}

@book{book-joh-bernoulli,
    author = {Bernoulli, Johann},
    title = {A book by Johann Bernoulli}}
\end{filecontents}{uniquename.bib}


\documentclass{article}
\usepackage[T1]{fontenc}

\usepackage[%
style=numeric,
giveninits,     % the desired look, though incompatible with uniquename
%uniquename=full,
backend=biber
]{biblatex}

\DeclareNameAlias{author}{family-given}

\ExecuteBibliographyOptions{useprefix=true}
\DeclareSortingNamekeyTemplate{
  \keypart{\namepart{family}}
  \keypart{\namepart{prefix}}
  \keypart{\namepart{given}}
  \keypart{\namepart{suffix}}}

\addbibresource{uniquename.bib}

\begin{document}
\nocite{*}
\printbibliography
\end{document}

答案1

我认为您需要一种新的名称格式。

\documentclass{article}
\usepackage[T1]{fontenc}

\usepackage[%
style=numeric,
uniquename=full,
backend=biber
]{biblatex}

\DeclareNameFormat{always-init}{%
\ifnumequal{\value{uniquename}}{2}
    {\usebibmacro{name:family-given}
      {\namepartfamily}
      {\namepartgiven}
      {\namepartprefix}
      {\namepartsuffix}}
    {\usebibmacro{name:family-given}
      {\namepartfamily}
      {\namepartgiveni}
      {\namepartprefix}
      {\namepartsuffix}}%
  \usebibmacro{name:andothers}}



\DeclareNameAlias{author}{always-init}
\DeclareNameAlias{editor}{always-init}

\ExecuteBibliographyOptions{useprefix=true}
\DeclareSortingNamekeyTemplate{
  \keypart{\namepart{family}}
  \keypart{\namepart{prefix}}
  \keypart{\namepart{given}}
  \keypart{\namepart{suffix}}}

\addbibresource{uniquename.bib}

\begin{document}
\nocite{*}
\printbibliography
\end{document}

在此处输入图片描述

相关内容