我们知道,使用useprefix
选项时,名称前缀如冯,德拉等存在于参考书目中,使我们能够使用类似和类似的命令来更改名称排序以及将这些前缀大写\Citeauthor
。
现在,假设我想引用一位阿拉伯作家,例如阿布·哈米德·穆罕默德·安萨利。此名称由以下部分组成:
- 名:阿布·哈米德·穆罕默德(不完全正确,但我们假设它是)
- 姓:加扎利
- 定冠词:艾尔
问题:我想在文本中写出作者的名字\Citeauthor
,就像这样\citeauthor
,产生安萨里。但是,这并不合适(至少在我的语言中不合适),因为规则是:如果只引用姓氏,则定冠词必须大写。如果我们采用“姓氏,名字”方案,则参考书目也是如此。更不用说句子的开头了。
一种解决方案可能是定义自定义名称前缀。这将通过使用选项简单地解决大写问题useprefix
,但现在书目的排序会出错,因为名称应该按“G“(Ghazali),不属于”A“(al-Ghazali)。所以,这不是一个完美的解决方案,尽管它可能站得住脚,因为我总是可以使用该sortkey
领域。
那么,有人可以建议该怎么做吗(当然,除了“你应该手动写下他的姓氏,而不是使用引用命令”)?:-)
答案1
\autocap
最后!使用、shortauthor
字段 和字段的组合sortkey
可以达到目的:
- 在文本引用中始终排版为“Al-Ghazali”;
- 根据所选的命名方案,在参考书目中排版为“Al-Ghazali”或“al-Ghazali”;
在参考书目中归类于“Ghazali”。
\documentclass{article} \usepackage[style=authoryear]{biblatex} \usepackage{filecontents} \begin{filecontents}{\jobname.bib} @misc{B02, author = {Buthor, B.}, year = {2002}, title = {Bravo}, } @misc{Gha07, author = {\autocap{a}l-Ghazali, Abu Hamid}, shortauthor = {Al-Ghazali}, sortkey = {Ghazali}, year = {2007}, title = {Gulf}, } \end{filecontents} \addbibresource{\jobname.bib} \nocite{*} \begin{document} Some text \autocite{Gha07}. \Citeauthor{Gha07} showed that \dots \DeclareNameAlias{sortname}{first-last} \printbibliography[title={References with ``firstname--lastname'' scheme}] \DeclareNameAlias{sortname}{last-first} \printbibliography[title={References with ``lastname--firstname'' scheme}] \end{document}
编辑:对于不需要在引用中始终将“al-Ghazali”等名称大写,但仍然希望它们在参考书目中排在“Ghazali”之下的用户,请注意:如果您使用biber
作为后端biblatex
,则不是有必要在文件中添加sortname
字段.bib
。硬编码的默认配置biber
将“对姓名字段进行排序时忽略像‘al-’这样的前缀”(biber 手册,第 2.1 节)。