[Tex/LaTex] can I make apacite citation always use et al. for more than two authors

apa-styleauthor-numberbibliographies

The apacite package documentation here:

http://anorien.csc.warwick.ac.uk/mirrors/CTAN/biblio/bibtex/contrib/apacite/apacite.pdf

states that whenever citing more than two authors (but less than six), the first time the full will appear, but from thereon, citing again the paper will lead to an et al suffix after the first author.

Is there a way to make apacite use et al. already from the beginning whenever citing more than two authors?

Also, is there a way to make apacite use "and" instead of "&" between author names?

Best Answer

I don't think there is a universal flag that can be set to control whether or not a full list of authors is used the first time. The list of authors is controlled by the \BCA macro in \@@cite. A relatively simple patch is all that is required. We need to change

\def\BCA##1##2{{\@BAstyle ##1}}%

into

\def\BCA##1##2{{\@BAstyle ##2}}%

You can just copied the macro and make the change, but I used the regexpatch.

As for replacing & with and. This is controlled by the \BBAA, \BBAB, and \BAnd macros:

\newcommand{\BBAA}{\&}  % between authors in parenthetical cites and ref. list
\newcommand{\BBAB}{and} % between authors in in-text citation
\newcommand{\BAnd}{\&}  % for ``Ed. \& Trans.'' in ref. list

You can change them with renewcommand, but you have to do the redefinition after begin{document} because the package loads language settings with AtBeginDocument.

\documentclass{article}
\usepackage{apacite}
\bibliographystyle{apacite}
\usepackage{regexpatch}

\makeatletter
\xpatchcmd{\@@cite}{\def\BCA##1##2{{\@BAstyle ##1}}}{\def\BCA##1##2{{\@BAstyle ##2}}}{}{}
\makeatother

\begin{document}
\renewcommand{\BBAA}{and}  % between authors in parenthetical cites and ref. list
\renewcommand{\BBAB}{and} % between authors in in-text citation
\renewcommand{\BAnd}{and}  % for ``Ed. \& Trans.'' in ref. list

\cite{inproceedings-full}

\cite{inproceedings-full}

\bibliography{xampl}

\end{document}