我正在用 (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}