[Tex/LaTex] How to make apacite typeset ‘et al.’ for all entries with 3 or more authors in Beamer

apaciteauthorbeamer

The question that is closest to this one is here. The simplest solution is to use \shortcite provided in the apacite package. However, \shortcite is treated as an unknown command when I compile it alongside beamer.

These are my loaded packages:

\documentclass[11pt]{beamer}

\usefonttheme[onlymath]{serif}

\usepackage{beamerthemesplit}
\usepackage[T1]{fontenc} % Use 8-bit encoding that has 256 glyphs
\usepackage[natbibapa]{apacite}
\usepackage[english]{babel} % English language/hyphenation (avoids badboxes)
\usepackage{amsmath,amsfonts,amsthm} % Math packages
\usepackage{graphicx,color}
\usepackage{algorithm, algorithmic}
\usepackage{booktabs}
\usepackage{gensymb} % \degree symbol
\usepackage{color}

This is where the references are displayed

\subsection{Bibliography}
\begin{frame}[allowframebreaks]{References}
\tiny
%\bibliographystyle{IEEEtran}
\bibliographystyle{apacite}
\bibliography{GaitAnalysis}
\end{frame}

Why isn't \shortcite working? Is there any other alternative solution to the problem?

Best Answer

When you load apacite with the natbibapa option it does not implement the extended citation commands that apacite uses. So the \shortcite command is not available, only the natbib supplied citation commands.

Unfortunately natbib takes a different approach to this, and assumes that the short version is the default, and only provides citation commands to force the long version, but not the other way around.

So the simplest solution to your problem is to load apacite without the natbibapa option.

% !BIB TS-program = bibtex

\documentclass{beamer}
\begin{filecontents}{\jobname.bib}
@article{TestCite2000,
    Author = {Smith, R. and Jones, O. and Doe, J and Yang, X. and Silva, E.},
    Journal = {A Great Predatory Journal},
    Title = {A title},
    Volume = {3},
    Year = {2000}}
\end{filecontents}
\usepackage[]{apacite}
\begin{document}
\begin{frame}
\frametitle{A citation}
\shortcite{TestCite2000}
\end{frame}
\begin{frame}
\frametitle{References}
\bibliographystyle{apacite}
\bibliography{\jobname}
\end{frame}
\end{document}

output of code

Related Question