我正在尝试找出使用 biblatex 在书目条目中通过附加字段手动提供作者姓名转录/音译的最佳方法。例如以下定义:
@book{trubetskoy1960,
title = "Основы фонологии",
author = "Н. С. Трубецкой",
year = "1960",
publisher = "Иностранная литература",
address = "Москва",
newAliasField = "Trubetskoy"
}
我的要求如下:
具有此别名字段的来源的所有引文的作者姓名应完全用字段的内容替换作者姓名(但其他方面则以完全相同的方式格式化引文)。因此,对于上面的示例来源,使用各种引文命令我们通常会得到以下内容:
“图伯茨科 (1960)”、“(图伯茨科,1960)”、“图伯茨科 (1960, 第 118 页)”等。
我反而想得到这个:
《特鲁别茨科伊(1960)》、《(特鲁别茨科伊,1960)》、《特鲁别茨科伊(1960年,第118页)》等。
书目中的引用应该按照此字段排序,而不是按作者字段排序。
参考书目应该以某种方式包含此字段。因此默认值可能是这样的:
特鲁比科,Н。 С. (1960 年)。当代戏剧。莫斯科: 俄罗斯民谣。
我还没有决定具体细节,但我希望是这样的:
[特鲁别茨科伊] Трубецкой, Н. С. (1960)。当代戏剧。莫斯科: 俄罗斯民谣。
这些都不应该与我为参考书目和引文设置的其他选项冲突。我使用 XeLaTeX,目前正在使用 bibstyle
lsalike
,以及 biblatex 包的以下参数:backend=biber,citestyle=lsalike,bibstyle=lsalike,style=authoryear-icomp,maxbibnames=99,maxcitenames=2,uniquelist=false,uniquename=false,hyperref=true,bibencoding=utf8
这样做的目的是为了保留书目中原始语言和文字的参考资料(出于真实性和语言政策的原因,无法转录、音译或翻译整个书目条目),同时为无法阅读原文文字的人提供可以用我的文档语言阅读的引文。当然,两者之间需要保持联系。
答案1
根据@moewe的shortauthor
提示相关问题的答案,我能够找到一个适合我自己的解决方案。
这是我的新书目定义:
@book{trubetskoy1960,
shortauthor = "Trubetskoy",
sortkey = "Trubetskoy",
title = "Основы фонологии",
author = "Н. С. Трубецкой",
year = "1960",
publisher = "Иностранная литература",
address = "Москва",
}
除此之外,我还使用以下宏:
\makeatletter
\renewbibmacro*{begentry}{%
\ifkeyword{Key}{\sffamily}{}%
\iffieldundef{shorthand}
{}
{\global\undef\bbx@lasthash
\printfield{shorthand}%
\addcolon\space}%
\ifboolexpr{test {\usebibmacro{bbx:dashcheck}} or test {\ifnameundef{shortauthor}}}%
{}%
{[\printnames{shortauthor}%
]\addspace\space}}
\makeatother
通过这样做,我获得了格式如下的 bib 条目:
并根据其拉丁字母转录进行排序。