我对作者的名字有两个疑问,我认为两个疑问都可以通过相同的答案来解决。
我在某处读到,我应该使用括号(“{”和“}”)来明确选择biblatex
应将哪个作者姓名视为姓氏,或用于该作者的名字。因此,我的所有作者都声明如下例所示:
@Article{article1,
title = {{T}itle of the {A}rticle {N}umber 1},
author = {John Smith {Doe} and Fulano Ciclano da {Silva}},
year = {1966},
...
}
@Article{article2,
title = {{A}wesome {T}itle of {A}rticle {N}umber 2},
author = {Jonathan Lee {Kriggs} Junior and Someone {Else} and Pedro Paulo Costa {Silva}},
year = {2016},
...
}
这本来是为了消除biblatex
文档定义为前缀名称(例如“Fulano Ciclano”中的“da”大Silva) 和后缀名(如“Jonathan Lee Kriggs”中的“Junior”初级“。
我的序言使用以下biblatex
命令:
\usepackage[backend = biber, citestyle = authoryear, sorting = none, uniquename=mininit, maxnames=3, minnames=3, maxbibnames=5, minbibnames=3]{biblatex}
对于以下文本:
Some text is written about some article \parencite{article1} and some newer article \parencite{article2}.
根据强制在括号之间使用作者姓名的规则 biblatex
,应该输出:
一些文字是关于一些文章(Doe and Silva,1966)和一些较新的文章(Kriggs,Else and Silva,2016)。
相反,这是我得到的输出:
一些文字是关于一些文章(Doe 和 Silva,1966)和一些较新的文章(Junior、Else 和 Costa Silva,2016)。
前缀名称工作正常(“富拉诺·西克拉诺·达·席尔瓦“被引用为”席尔瓦“;前缀”大“被忽略,正如预期的那样)。另一方面,引用的是后缀名称,而不是括号中所示的名称(“乔纳森·李·克里格斯“被引用为”初级“, 代替 ”克里格斯“)。
比后缀更糟糕的是,最后一位作者的中间名和姓氏都被引用了(“佩德罗·保罗·科斯塔{席尔瓦}“ 是 ”科斯塔·席尔瓦“)。“Pedro Paulo” 是一个双名,就像“Mark Anthony”或“John Paul”。我不知道这是否会影响任何事情(我不这么认为),但我选择了这个例子来了解它是否确实如此。还想到也许它显示错误,因为后缀已经破坏了这个引用(再次,不要抱太大希望)。
有没有办法明确选择biblatex
显示的名称?
或者忽略最后放置的后缀名称,这些名称的写法与 Biblatex 的预期不同(例如“Jonathan Lee Kriggs Junior”而不是“Kriggs, Jr., Jonathan Lee”)。我想避免摆弄我的 bib 文件,因为它有超过一千个参考文献,而且如果所有作者姓名都以某种方式排列,而只有几个作者在整个文件中的组织方式不同,那就很奇怪了。
答案1
总结
有一些影响在引文和参考书目中哪个(部分)名称以何种方式显示的方法,但通常只有在文件中正确指定名称(根据 BibTeX 规则)时才能正常工作.bib
。
尝试.bib
通过临时修改姓名格式来修复文件中的错误输入是没有意义的。而且这样做可能也收效甚微。
只有当括号内的内容包含空格时,括号才能够真正帮助您完成操作。
完整情况
我应该如何在 bib 文件中输入作者姓名?解释 BibTeX 和 Biber 如何解析姓名。粗略地说,姓名分为姓氏、名字、前缀(“von part”)和后缀(“junior part”)。您可以选择如何在参考书目和引文中排列这些姓名部分,但如果您坚持使用常规姓名输入,那么您对于姓名的哪一部分被解析为哪个姓名部分的影响就非常有限。
有biblatex
多种方法可以通过字段覆盖引文中显示的名称shortauthor
。shortautor
再次解析为普通名称字段。因此在
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=authoryear]{biblatex}
\begin{filecontents}{\jobname.bib}
@book{elk,
author = {Anne Elk},
shortauthor = {Barbara Zelk},
title = {A Theory on Brontosauruses},
year = {1972},
publisher = {Monthy \& Co.},
location = {London},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Lorem \autocite{elk}
\printbibliography
\end{document}
实际作者姓名是,family=Elk, given=Anne,
但在引用中biblatex
使用family=Zelk, given=Barbara,
和表现。当然,这可以与比 Elk/Zelk 更少发散的示例一起使用,以强制在引用中对复杂名称进行特定输出,请参阅让 biblatex 将文本引用中的不同作者姓名视为同一作者或者BibTeX 中作者字段中的贵族头衔。此字段的另一个常见用途是缩写较长的公司类型作者姓名(Biblatex:在引文中缩写作者组织)。
如果您使用biblatex
Biber,则可以使用扩展名称格式明确指定名称的每一位。如果您想在本地覆盖正常的解析规则(例如,参见仅使用姓氏作为 namepartfamily,而不是前缀后的所有内容和使用 Biblatex 查找参考书目中的两个或三个字母的首字母(再次)),但除非你声明新的名称部分并使用它们(根据冰岛语系统编制的书目,Bibtex/Biber:如何使用埃塞俄比亚惯例引用作者?,CJK 书目问题,Biblatex-Chicago 作者日期样式)事情仍然必须符合四个名称部分的方案,所以你通常<prefix> <family>, <suffix>, <given>
在格式中指定名称不会带来太多好处。
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=authoryear, giveninits]{biblatex}
\begin{filecontents}{\jobname.bib}
@book{book1,
author = {family=Doe Roe, given=Charles, given-i={Ch}},
title = {An Important Book},
publisher = {Publisher},
date = {2012},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Lorem \autocite{book1}
\printbibliography
\end{document}
我应该如何在 bib 文件中输入作者姓名?没有明确提到,但用空格分隔的名称部分周围的花括号对于您感兴趣的名称解析没有相关区别。如果您想“保护”带有空格的名称(或名称部分)不被分开,花括号尤其重要(请参阅在书目条目的“作者”字段中使用“公司作者”(完整拼写出姓名))。
所以
Fulano Ciclano da {Silva}
几乎与
Fulano Ciclano da Silva
将名称拆分成不同部分时,区别仅在于名称部分增加了花括号
\name{author}{1}{}{%
{{un=0,uniquepart=base,hash=fa2fe34e8e6f02735fb558279b21902f}{%
family={{Silva}},
familyi={S\bibinitperiod},
given={Fulano\bibnamedelima Ciclano},
giveni={F\bibinitperiod\bibinitdelim C\bibinitperiod},
givenun=0,
prefix={da},
prefixi={d\bibinitperiod},
prefixun=0}}%
}
(由于括号过多,首字母生成存在一些问题:! 段落在 \name 完成之前结束)对比
\name{author}{1}{}{%
{{un=0,uniquepart=base,hash=fa2fe34e8e6f02735fb558279b21902f}{%
family={Silva},
familyi={S\bibinitperiod},
given={Fulano\bibnamedelima Ciclano},
giveni={F\bibinitperiod\bibinitdelim C\bibinitperiod},
givenun=0,
prefix={da},
prefixi={d\bibinitperiod},
prefixun=0}}%
}
假设富拉诺·西克拉诺·达·席尔瓦这富拉诺·西克拉诺bit 是给定的名称,大名称前缀和席尔瓦姓氏,输入
Fulano Ciclano da Silva
是正确的。
但是,带有两个姓氏的西班牙裔姓名并不那么简单,因为 BibTeX 和 Biber 假设一个人只有一个姓氏,而不是两个。因此,如果姓名实际上是family=Ciclano da Silva, given=Fulano,
但仅被引用为Silva
,事情会变得更加棘手,您可能不得不求助于shortauthor
或定义新的姓名部分来说明西班牙裔姓名习俗。
对于带有初级或者高级的部分,唯一正确的输入是
von Last, Jr, First
所以
Jonathan Lee Kriggs Junior
将不会按预期进行解析,必须将其作为
Kriggs, Junior, Jonathan Lee
我知道通过数据库来更改这一点很烦人,但如果您希望正确解析名称,恐怕您必须坚持使用正确的格式。理论上,您可以尝试上面建议的一些解决方法来强制获得所需的输出,但这可能同样需要大量工作(如果不是更多的话),绝对不建议这样做。
我无法重现科斯塔·席尔瓦问题。
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[
backend = biber,
citestyle = authoryear,
sorting = none,
uniquename=mininit,
maxnames=3, minnames=3,
maxbibnames=5, minbibnames=3,
]{biblatex}
\begin{filecontents}{\jobname.bib}
@Article{article1,
title = {Title of the Article Number 1},
author = {John Smith {Doe} and Fulano Ciclano da {Silva}},
year = {1966},
}
@Article{article2,
title = {Awesome Title of Article Number 2},
author = {Jonathan Lee {Kriggs} Junior and Someone {Else}
and Pedro Paulo Costa {Silva}},
year = {2016},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Some text is written about some article \parencite{article1}
and some newer article \parencite{article2}.
\printbibliography
\end{document}
给出
对我来说,这是意料之中的。
一般来说,当名字弹出引用时,选项uniquename
(biblatex,authoryear 样式:文内引用显示某些参考书目条目的名字首字母)是相关的。(一个相关的选项是uniquelist
,这通常是不喜欢的人接下来uniquename
要问的事情:在 biblatex 中使用“et al.”时,限制为一位作者)。但你显然已经知道这个选项,我不认为这个选项可以解释科斯塔·席尔瓦在引文中弹出,因为它会添加名字的首字母或名字,这Pedro Paulo Costa {Silva}
对于佩德罗·保罗·科斯塔不仅仅是科斯塔。