古典/阿拉伯作家例外

古典/阿拉伯作家例外

我正在使用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因此可能会产生意外的结果。

相关内容