如何输入有姓氏和初级部分但没有名字的作者姓名?

如何输入有姓氏和初级部分但没有名字的作者姓名?

在 BibTeX 和 biblatex 中,众所周知,作者姓名最多可以包含四个部分 - 名字、von、姓氏和 Jr 部分。(von 部分与我的目的无关。)

如果某位作者的姓名包含 FirstName、SurName 和 Jr 部分,则可以轻松输入为

author = "SurName, Jr, FirstName",

然而,有些名字——例如“小普林尼”、“老加图”——有一个姓氏和一个 Jr 成分,但但没有 FirstName 组件问题:如何在 BibTeX 数据库中输入这样的名称?

自然的尝试,

author = "SurName, Jr.Component",

是不正确的,因为 BibTeX 将其解释Jr.componentFirstName。这很重要,因为有些书目样式会缩写名字,而 Jr 部分——据我所知——从不缩写。此外,有些书目样式将名字部分放在姓氏部分之前;据我所知,Jr. 部分从未被这样缩写过。我还发现

author = "SurName, Jr.Component, ",

即尝试提供一个“空”的 FirstName 组件,也不起作用,因为它会引发 BibTeX 错误。

我应该补充一点,姓氏和小组成部分的识别很重要分别地通过 BibTeX。因此,author = "{Pliny the Younger}"将姓名视为单个实体(实际上是姓氏)的 对我来说不起作用。


附录:引发此查询的用例相当不寻常。我在尝试帮助亚马逊雨林居民讲述的口述故事选集的编辑时发布了此查询。具体来说,任务是帮助组织和格式化参考文献和引文标注。

故事贡献者都只有一个名字(没有名字);一些贡献者是叙述者,其他人是翻译者等。图书编辑希望以以下形式列出作者

"XYZ, narrator and ABC, translator [remainder of formatted reference]" 

在参考文献中,并有“XYZ 和 ABC”形式的引文标注。请注意,“叙述者”和“翻译者”一词应仅出现在参考文献中(并且应使用逗号与名称分隔),但不是在引文标注中。

我最初的想法是使用四部分 bibtex 格式名称的 Jr 组件来保存作者的功能信息(叙述者、翻译者等):Jr 组件始终排版在名称之后,从不缩写(编辑使用书目样式,缩写名字,同时将其列在姓氏之前),并且用逗号将其与(姓氏)名称分开。不幸的是,这个想法没有奏效,因为故事讲述者只有单个名字,即没有单独的名字和姓氏组件...

最后,我想出了一个不同的解决方案:该natbib包允许设置引用别名。因此,该author字段可以定义为

author = "{XYZ, narrator} and {ABC, translator}",

并且引用标注可以设置为“XYZ 和 ABC”。呼!

答案1

这是我的解决方案:

@book{Surname:2015,
  author={Name {Surname Jr.}},
  title={Book Title},
  publisher={Publisher},
  year={2015}
}

答案2

随着即将推出的biblatex3.5/Biber 2.6,Biber 支持扩展格式来提供名称。您可以单独指定名称部分,而不必依赖 BibTeX 的名称解析。在那里,您只需使用

author = {family=XYZ, suffix=translator},

此格式可以与标准输入格式结合使用

author = {family=XYZ, suffix=translator and James Miller},

但您可以更高程度地利用扩展名称格式。(另请参阅根据冰岛语系统编制的书目仅使用姓氏作为 namepartfamily,而不是前缀后的所有内容Bibtex/Biber:如何使用埃塞俄比亚惯例引用作者?

在这里我遵循我的方法CJK 书目问题,Biblatex-Chicago

role我们可以使用.dbx

\ProvidesFile{mico.dbx}[2016/08/17 extended name format for biblatex]
\DeclareDatamodelConstant[type=list]{nameparts}{prefix,family,suffix,given,role}

然后我们只需要一个新的宏来打印角色的名称,比如说

\newbibmacro*{name:role}[3]{%
  \usebibmacro{name:delim}{#2#3#1}%
  \usebibmacro{name:hook}{#2#3#1}%
  \mkbibnamefamily{#1}%
  \ifdefvoid{#2}{}{\bibnamedelimd\mkbibnamegiven{#2}}%
  \ifdefvoid{#3}{}{\addcomma\space\mkbibnamerole{#3}}}

然后我们需要让我们的名称格式选择这个宏(如果存在role

\DeclareNameFormat{given-family}{%
  \ifdefvoid{\namepartrole}
    {\ifgiveninits
        {\usebibmacro{name:given-family}
           {\namepartfamily}
           {\namepartgiveni}
           {\namepartprefix}
           {\namepartsuffix}}
        {\usebibmacro{name:given-family}
           {\namepartfamily}
           {\namepartgiven}
           {\namepartprefix}
           {\namepartsuffix}}}
    {\usebibmacro{name:role}{\namepartfamily}{\namepartgiven}{\namepartrole}}%
  \usebibmacro{name:andothers}}

\DeclareNameAlias{sortname}{given-family}

平均能量损失

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage{filecontents}
\begin{filecontents*}{mico.dbx}
\ProvidesFile{mico.dbx}[2016/08/17 extended name format for biblatex]
\DeclareDatamodelConstant[type=list]{nameparts}{prefix,family,suffix,given,role}
\end{filecontents*}
\begin{filecontents*}{\jobname.bib}
@book{xyz,
  title  = {A Story},
  author = {family=XYZ, role=translator and family=ABC, role=narrator},
  year   = {2011},
}
\end{filecontents*}

\usepackage[style=authoryear, backend=biber, datamodel=mico]{biblatex}
\addbibresource{\jobname.bib}

\newbibmacro*{name:role}[3]{%
  \usebibmacro{name:delim}{#2#3#1}%
  \usebibmacro{name:hook}{#2#3#1}%
  \mkbibnamefamily{#1}%
  \ifdefvoid{#2}{}{\bibnamedelimd\mkbibnamegiven{#2}}%
  \ifdefvoid{#3}{}{\addcomma\space\mkbibnamerole{#3}}}

\DeclareNameFormat{given-family}{%
  \ifdefvoid{\namepartrole}
    {\ifgiveninits
        {\usebibmacro{name:given-family}
           {\namepartfamily}
           {\namepartgiveni}
           {\namepartprefix}
           {\namepartsuffix}}
        {\usebibmacro{name:given-family}
           {\namepartfamily}
           {\namepartgiven}
           {\namepartprefix}
           {\namepartsuffix}}}
    {\usebibmacro{name:role}{\namepartfamily}{\namepartgiven}{\namepartrole}}%
  \usebibmacro{name:andothers}}

\DeclareNameAlias{sortname}{given-family}

\begin{document}
  \cite{xyz}

  \printbibliography
\end{document}

引用

XYZ 和 ABC 2011

并在参考文献中

XYZ,翻译者和 ABC,叙述者(2011 年)。一个故事。

相关内容