使用 biblatex 在具有多个中间名首字母的作者之间添加空格

使用 biblatex 在具有多个中间名首字母的作者之间添加空格

我在 biblatex 中使用 IEEE 样式。我有一篇文章,作者有多个中间名首字母。不幸的是,中间名首字母之间的间距丢失了:

JRRA Martins 等等

这是一个最小的例子。

\documentclass{article}
\usepackage[style=ieee,backend=bibtex]{biblatex}
\begin{filecontents*}{test.bib}
@Article{Martins2003,
    author  = {Martins, Joaquim R. R. A. and Sturdza, Peter and Alonso, Juan J.},
    title   = {The complex-step derivative approximation},
    journal = {ACM Transactions on Mathematical Software},
    year    = {2003},
    volume  = {29},
    number  = {3},
    pages   = {245--262}
}
\end{filecontents*}
\renewrobustcmd*{\bibinitdelim}{\addnbthinspace}
\addbibresource{test.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}

答案1

这是biblatex3.11 及更早版本中的一个错误,已在 3.12 中得到解决biblatex。请参阅https://github.com/plk/biblatex/issues/806https://github.com/plk/biblatex/pull/808。如果您遇到此问题,请更新您的 TeX 发行版。

您应该能够使用 来控制所有姓名首字母之间的空格\bibinitdelim,但正如您的 MWE 所示,这并不总是有效。

使用 BibTeX 编译时,.bbl文件包含

giveni={J\bibinitperiod\bibinitdelim R\bibinitperiod
  R\bibinitperiod\bibinitdelim A\bibinitperiod},

这意味着由于某种原因,BibTeX 没有\bibinitdelim在两个Rs 之间添加 a。

在内部,发生的情况是,BibTeX 的正常名称解析和缩写例程添加 .~.(一个.和一个空格),然后分别将其转换回\bibinitperiod\bibinitdelim\bibinitperiodbtxhak解释说 BibTeX 会自行决定是否放置空格或不间断空格(第 9 页):

BibTeX 将默认字符串放在名称部分的标记之间:对于整个标记,它使用空格或领带,具体取决于它认为哪一个最好;对于缩写标记,它使用句点后跟空格或领带。

如果我使用 Biber 编译你的例子,我会得到

giveni={J\bibinitperiod\bibinitdelim R\bibinitperiod\bibinitdelim R\bibinitperiod\bibinitdelim A\bibinitperiod}

并因此\bibinitdelim按预期工作。

因此,这似乎是与 BibTeX 后端一起使用时出现的问题biblatex-bst,我已经在 bugtracker 上打开了有关此问题的问题biblatexhttps://github.com/plk/biblatex/issues/806

目前我只能建议使用 Biber

\documentclass{article}
\usepackage[style=ieee,backend=biber]{biblatex}
\begin{filecontents*}{\jobname.bib}
@Article{Martins2003,
    author  = {Martins, Joaquim R. R. A. and Sturdza, Peter and Alonso, Juan J.},
    title   = {The complex-step derivative approximation},
    journal = {ACM Transactions on Mathematical Software},
    year    = {2003},
    volume  = {29},
    number  = {3},
    pages   = {245--262}
}
\end{filecontents*}
\renewrobustcmd*{\bibinitdelim}{\addnbthinspace}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}

“JRRA Martins、P. Sturdza 和 JJ Alonso,《复数阶导数近似》,ACM Transactions on Mathematical Software,第 29 卷,第 3 期,第 245-262 页,2003 年。”所有首字母之间都有细空格

相关内容