6

I'm using the IEEE style with biblatex. I have an article with an author with multiple middle initials. Unfortunately, the spacing between the middle initials are lost:

J. R.R. A. Martins etc.

Here is a minimal example.

\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}
2
  • 1
    Interesting. It doesn't happen with biber. Perhaps it's a bug. Can you switch away from bibtex? Commented Sep 23, 2018 at 5:39
  • Good observation. I can use biber instead.
    – ipswitch
    Commented Sep 23, 2018 at 17:48

1 Answer 1

5

This was a bug in biblatex 3.11 and earlier which has been resolved in biblatex 3.12. See https://github.com/plk/biblatex/issues/806 and https://github.com/plk/biblatex/pull/808. Update your TeX distribution if you are having troubles with this issue.

You should be able to control the space between all name initials with \bibinitdelim, but as your MWE shows this does not always work.

When compiled with BibTeX the .bbl file contains

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

which means that for some reason BibTeX does not add a \bibinitdelim between the two Rs.

Internally, what happens is that BibTeX's normal name parsing and abbreviating routine adds .~ or . (a . and a space) and that is then transformed back into \bibinitperiod\bibinitdelim or \bibinitperiod, respectively. btxhak explains that BibTeX decides itself whether to put a space or a non-breaking space (p. 9):

BibTeX puts default strings between tokens of a name part: For whole tokens it uses either a space or a tie, depending on which one it thinks is best, and for abbreviated tokens it uses a period followed by either a space or a tie.

If I compile your example with Biber, I get

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

and consequently \bibinitdelim works as expected.

So this seems to be an issue with the BibTeX backend when used with biblatex-bst, I have opened an issue about this at the biblatex bugtracker: https://github.com/plk/biblatex/issues/806

For now I can only advise to use 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}

"J. R. R. A. Martins, P. Sturdza, and J. J. Alonso, “The complex-step derivative approximation,” ACM Transactions on Mathematical Software, vol. 29, no. 3, pp. 245–262, 2003." with thin spaces between all initials

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .