[Tex/LaTex] Typeset one citation with all authors

author-numberbiblatex

I'm using the authoryear style in biblatex with the following options name length options:

maxcitenames=1, mincitenames=1, maxbibnames=999, minbibnames=999

So citations (usually issued with \cite) are properly typeset with only one author like

Shakespeare et al, The…

However I want to typeset a single citation (via \fullcite) with all authors listed, eg.

W. Shakespeare, J. Austen and D. Adams, The…

How can I temporarily increase the values of maxcitenames and mincitenames? Or is there another way to typeset only the \fullcite citatation with all names?

Best Answer

If you want to be able to make full use of all of biblatex's features for \fullcite, namely pre- and postnotes, you might want to try this version.

We temporarily set maxcitenames to maxbibnames; apparently, there is no need to re-set the counter, because everything is wrapped in a group, so the assignment is locally.

A simpler solution than the below wrapper is

\makeatletter
\DeclareCiteCommand{\longfullcite}
  {\usebibmacro{prenote}}
  {\usedriver
     {\c@maxnames\blx@maxbibnames\relax
      \DeclareNameAlias{sortname}{default}}
     {\thefield{entrytype}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}
\makeatother

\makeatletter
\newcommand{\tempmaxup}[1]{\def\blx@maxcitenames{\blx@maxbibnames}#1}
\makeatother

\DeclareCiteCommand{\longfullcite}[\tempmaxup]
  {\usebibmacro{prenote}}
  {\usedriver
     {\DeclareNameAlias{sortname}{default}}
     {\thefield{entrytype}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

Unfortunately, I have found no better way of doing this than via that wrapper command.

The MWE

\begin{filecontents}{\jobname.bib}
@Article{Reference:1994,
  author           =  {First I. Last and Second Y. Author and Third Z. Author and Fourth Q. Author},
  title            = {This is the article title},
  journal          = {T Journal T},
  journallongtitle = {The Journal Title},
  year             = 1994,
  volume           = 50,
  number           = 6,
  pages            = {30--40},
}
\end{filecontents}

\documentclass{article}
\usepackage[style=authoryear, maxcitenames=1, maxbibnames=999]{biblatex}
\addbibresource{\jobname.bib}

\makeatletter
\newcommand{\tempmaxup}[1]{\def\blx@maxcitenames{\blx@maxbibnames}#1}
\makeatother

\DeclareCiteCommand{\longfullcite}[\tempmaxup]
  {\usebibmacro{prenote}}
  {\usedriver
     {\DeclareNameAlias{sortname}{default}}
     {\thefield{entrytype}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}


\begin{document}
\begin{tabular}{ l p{8cm} }
  \verb|\autocite| & \autocite{Reference:1994}\\
  \verb|\longfullcite| &\longfullcite{Reference:1994}\\
  \verb|\longfullcite| & \longfullcite[see][14]{Reference:1994}\\
  \verb|\fullcite| & \fullcite{Reference:1994}\\
  \verb|\autocite| &\autocite{Reference:1994}\\
\end{tabular}

\printbibliography
\end{document}
% end of file comment

yields

enter image description here