我正在使用biblatex-chicago
并且必须使用giveninits
我的论文风格。当涉及到古典阿拉伯语作者姓名时,这些姓名由许多“Abu”和“Ibn”组成(例如“Abu Hamid”),我想覆盖丑陋的名字缩写,
为了得到这份美丽,
因此,我一直在尝试\relax
按照其他地方的建议摆弄这个黑客程序,但后来我开始得到一个不想要的点。
如果我随后使用\nopunct
,则在参考书目中需要该点时,该点就会消失。
我不介意修改数据库条目。这里有一个 MWE 和另一个标题以供比较。理想情况下,英文作者应该缩写,但阿拉伯文作者不应该缩写。我想这个问题也适用于一些古典和中世纪作家;我想你不会想用“L. Vinci”代替“Leonardo da Vinci”。有没有简单的方法来绕过或覆盖这个giveninits
选项?
%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode
\documentclass{book}
\usepackage[notes,backend=biber,giveninits=true]{biblatex-chicago}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{ghazali1999,
title = "Ihya Ulum al-Din",
author = "{\relax \Abu Hamid} al-Ghazali",
% shortauthor = "al-Ghazali",
date = "1999",
publisher = "ITS"
}
@book{john1989,
title = "English Book",
author = "Johnny English",
date = "1989",
publisher = "Easy"
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Some text\footcite{ghazali1999} and some other text\footcite{john1989}
\nocite{*}
\printbibliography
\end{document}
答案1
您可以本地设置giveninits=false
阿拉伯名字。我们只需将giveninits
其定义为输入选项即可。
\documentclass{book}
\usepackage[notes,backend=biber,giveninits=true]{biblatex-chicago}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{ghazali1999,
title = "Ihya Ulum al-Din",
author = "Abu Hamid al-Ghazali",
options = {giveninits=false},
% shortauthor = "al-Ghazali",
date = "1999",
publisher = "ITS"
}
@book{john1989,
title = "English Book",
author = "Johnny English",
date = "1989",
publisher = "Easy"
}
\end{filecontents}
\addbibresource{\jobname.bib}
\DeclareEntryOption[boolean]{giveninits}[true]{%
\settoggle{abx@bool@giveninits}{#1}}
\begin{document}
Some text\footcite{ghazali1999} and some other text\footcite{john1989}
\nocite{*}
\printbibliography
\end{document}
如果这个选项默认可用,那就太好了,但首先需要理清一些细节。请参阅https://github.com/plk/biblatex/issues/760
根据这里发布的答案,uniquename
仍然只考虑带有 的条目的首字母,giveninits=false
因此可能会产生意外的结果。