[Tex/LaTex] APA6: \citeauthor adds only the first author when citing a source for the first time

apa6biblatexciting

When citing a group of 3 to 5 authors for the first time in a paper using the document class apa6, the command \citeauthor adds only the first author followed by "et al.". The APA manuscript guidelines (6th version) require to refer to all authors in the first citation of the document. \textcite and \parencite work as expected, though.

This is what I get:

wrong

This is how it should look like:

right

Here my example:

\documentclass[man]{apa6}

\usepackage[american]{babel}
\usepackage[utf8]{inputenc}

\usepackage[style=apa, backend=biber,doi,url]{biblatex}
\DeclareLanguageMapping{american}{american-apa}

\begin{filecontents}{literature.bib}
@article{foobar,
  Author = {Foo, A. and Bar, B. and Baz, C.},
  Journal = {Journal of Foo},
  Pages = {1--2},
  Title = {Foo is bar},
  Volume = {1},
  Year = {1999}
}
\end{filecontents}
\addbibresource{literature.bib}

\shorttitle{foo}

\begin{document}

\citeauthor{foobar}
% \textcite{foobar}


\end{document}

Best Answer

You can try the following definition. I used the default definition of the bib macro cite and the command cite and removed the date.

\makeatletter
\newbibmacro*{cite:author}{%
  \iffieldequals{namehash}{\cbx@lasthash}
% Multiple cites in one command
   {\setunit{\compcitedelim}%
    \usebibmacro{cite:plabelyear+extrayear}}%
% Single cite
   {\ifthenelse{\ifnameundef{labelname}\OR\iffieldequalstr{entrytype}{patent}}
% No author/editor
     {\usebibmacro{cite:noname}%
%       \setunit{\nameyeardelim}%
%       \usebibmacro{cite:plabelyear+extrayear}%
       \savefield{namehash}{\cbx@lasthash}}
% Normal cite
     {\ifnameundef{shortauthor}
        {\printnames[labelname][-\value{listtotal}]{labelname}}
        {\ifciteseen
          {\printnames{shortauthor}}
          {\printnames[labelname][-\value{listtotal}]{author}\addspace\printnames[sabrackets]{shortauthor}}}%
%      \setunit{\nameyeardelim}%
%      \usebibmacro{cite:plabelyear+extrayear}%
      \savefield{namehash}{\cbx@lasthash}}}%
   \setunit{\multicitedelim}}

\DeclareCiteCommand{\citeauthor}
  {\usebibmacro{cite:init}%
   \usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite:author}}
  {}
  {\usebibmacro{postnote}}

\makeatother