[Tex/LaTex] biblatex messing up citation entry with lots of authors

biberbiblatexbibtex

Here is the citation:

@Article{boker2011,
  Author         = {Boker, S. and Neale, M. and Maes, H. and Wilde, M. and
                   Spiegel, M. and Brick, T. and Spies, J. and Estabrook,
                   R. and Kenny, S. and Bates, T. and others},
  Title          = {Open{M}x: {A}n open source extended structural
                   equation modeling framework},
  Journal        = {Psychometrika},
  Volume         = {76},
  Number         = {2},
  Pages          = {306--317},
  year           = 2011
}

Here is a test document:

\documentclass[doc]{apa6}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=apa,sortcites=true,sorting=nyt,apabackref=true,backend=biber]{biblatex}
\DeclareLanguageMapping{american}{american-apa}
\addbibresource{jpritikin.bib}

\shorttitle{IFA}

\begin{document}

OpenMx \parencite{boker2011}

\printbibliography

\end{document}

I obtain this mess: Boker, S. et al., Neale, M. et al., Maes, H., et al., Wilde, M., et al., Spiegel, M., et al., Brick,
T., et al., . . . Et al., et al., et al., Bates, T., et al. (2011). OpenMx: An open source
extended structural equation modeling framework. Psychometrika, 76 (2), 306–317.
(Cit. on p. 17).

I thought maybe I had a bad mix of versions. I tried "tlmgr update –all". I have biblatex 2.8 installed and I just installed biber 1.8 from http://biblatex-biber.sourceforge.net/. I still get too many "et al."

Suggestions?

Best Answer

This problem is due to biblatex-apa's (apa.bbx's) apaauthor name format; you might want to notify the author of this small bug.

The string and others in the author list sets ifmorenames to true. apaauthor checks for this case whenever a name is printed, not just at the very end of the list; consequently it prints the andothers string ("et al.") after each name.

The fix is to add the following lines to your preamble.

\DeclareNameFormat{apaauthor}{%
  \ifthenelse{\value{listcount}=\maxprtauth\AND\value{listcount}<\value{listtotal}}
    {\addcomma\addspace\ldots\addspace}
    {\ifthenelse{\value{listcount}>\maxprtauth\AND\value{listcount}<\value{listtotal}}
      {}
      {\ifthenelse{\iffieldequalstr{doubtfulauthor}{true}}
        {\mkbibbrackets{\usebibmacro{name:apa:last-first}{#1}{#3}{#4}{#5}{#7}?}}
        {\usebibmacro{name:apa:last-first}{#1}{#3}{#4}{#5}{#7}}}}%
  \ifthenelse{\value{listcount}=\value{listtotal}}% this test is new
    {\ifmorenames{\andothersdelim\bibstring{andothers}}{}}{}}

The MWE

\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@Article{boker2011,
Author = {Boker, S. and Neale, M. and Maes, H. and Wilde, M. and
Spiegel, M. and Brick, T. and Spies, J. and Estabrook,
R. and Kenny, S. and Bates, T. and others},
Title = {Open{M}x: {A}n open source extended structural
equation modeling framework},
Journal = {Psychometrika},
Volume = {76},
Number = {2},
Pages = {306--317},
year = 2011
}


\documentclass{apa6}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=apa,maxnames=999,sortcites=true,sorting=nyt,apabackref=true,backend=biber]{biblatex}
\DeclareLanguageMapping{american}{american-apa}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\DeclareNameFormat{apaauthor}{%
  \ifthenelse{\value{listcount}=\maxprtauth\AND\value{listcount}<\value{listtotal}}
    {\addcomma\addspace\ldots\addspace}
    {\ifthenelse{\value{listcount}>\maxprtauth\AND\value{listcount}<\value{listtotal}}
      {}
      {\ifthenelse{\iffieldequalstr{doubtfulauthor}{true}}
        {\mkbibbrackets{\usebibmacro{name:apa:last-first}{#1}{#3}{#4}{#5}{#7}?}}
        {\usebibmacro{name:apa:last-first}{#1}{#3}{#4}{#5}{#7}}}}%
  \ifthenelse{\value{listcount}=\value{listtotal}}
    {\ifmorenames{\andothersdelim\bibstring{andothers}}{}}{}}

\shorttitle{IFA}

\begin{document}

OpenMx \parencite{boker2011,aksin,wilde,murray}

\printbibliography
\end{document}

then yields

enter image description here

Update 2013-10: This has been corrected in biblatex-apa version 6.4 according to a comment below the question from user PLK.