1

Problem statement

After my recent upgrade to TeXLive 2018 (and hence to Biblatex version 3.11), the presence of a \textsc command inside a double-braced author field of a bibliography entry causes a compilation error due to an extra } in the .bbl file

This error did not occur in previous versions of Biblatex. I am looking for a workaround to this problem, ideally without having to change a significant number of entries in my .bib file.

Minimal (non-)working example (MWE)

.tex file

Save the following to my.tex:

\documentclass{article}

\usepackage[style=authoryear]{biblatex}
\addbibresource{my.bib}

\begin{document}

\cite{Foo}
\printbibliography

\end{document}

.bib file

Save the following to my.bib:

@misc{Foo,
        author = {{\textsc{Foo} bla}},
        title = {Bla},
        date = {1901},
}

Compilation and error message

Compile via

pdflatex my
biber my
pdflatex my

which yields the following error message:

(./my.bbl
! Extra }, or forgotten \endgroup.

Upon inspection, the offending code in the .bbl file seems to indeed feature one } too many:

[...]
\name{author}{1}{}{%
{{uniquename=0,uniquepart=base,hash=4e64a6262beef2c23e5c3d6f48023844}{%
           family={{\textsc{Foo} bla}},
           familyi={\textsc{Foo} bla}\bibinitperiod}}}%
}
[...]

Conditions under which error occurs

The error only occurs

  • If the author field is enclosed by double braces: author = {{...}},
  • In the presence of a \textsc{} (or \scshape) command within such an author field
  • In Biblatex 3.11 (it did not occur before the recent upgrade)
Florian H.
  • 691
  • 3
  • 9
  • 1
    See https://tex.stackexchange.com/q/425947/35864 – moewe May 20 '18 at 19:02
  • 1
    I have updated my answer to the linked question with a workaround in case you can not refrain from using macros in name fields. – moewe May 20 '18 at 19:31
  • May I ask what the real-world use case is here? Maybe there is an altogether more elegant method to do away with the macro entirely (there probably is not, but I'm still intrigued). – moewe May 20 '18 at 19:33
  • The primary use case is that I'd like to \textsc company names in author fields, e.g., author = {{\textsc{Akg} Acoustics}} as opposed to author = {{AKG Acoustics}}. I have a hard time thinking about a way to entirely prevent the macro in this case - how else would one be able to define which part of the company name \textsc applies to? – Florian H. May 20 '18 at 20:04
  • 1
    No in that case a macro really is the only sensible solution. I just wanted to make sure that you are not doing terrible things like author = {{\textsc{Elk}, Anne}}. Or used the macro in ways where they could be removed as in author = {{\textsc{NASA}}} (you could use a name annotation to tell us that we are dealing with an acronym and act accordingly). – moewe May 20 '18 at 20:14
  • Right, thanks for checking that :) Also, I can now confirm that author = {family={\textsc{Akg} Acoustics}}, works as a workaround (as you suggested at https://tex.stackexchange.com/a/425950/38212) – Florian H. May 20 '18 at 20:19

0 Answers0