Typeset one citation with all authors
To change maxnames
for one citation only you may use the counter:
\AtNextCite{\defcounter{maxnames}{99}}\fullcite{Reference:1994}
This sets both maxcitenames
and maxbibnames
but in your case this is not probably the problem. Unfortunately there is no maxcitenames
counter in biblatex
.
You may also define a dedicated command for such citations:
\newcommand{\longfullcite}{%
\AtNextCite{\defcounter{maxnames}{99}}%
\fullcite}
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
Here's a kind of hacky way to do this. Because of the complexity of the arguments of the \cite
commands, it's not easy to wrap code around them. So the following solution assumes that you will just use \fullcite
with a single argument and none of its optional arguments. I'd be interested in seeing a more elegant way to do this.
\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, mincitenames=1, maxbibnames=999,
minbibnames=999]{biblatex}
\addbibresource{\jobname.bib}
\makeatletter
\newcommand{\upmax}{\def\blx@maxcitenames{99}}
\newcommand{\dnmax}{\def\blx@maxcitenames{1}}
\makeatother
\newcommand\myfullcite[1]{\upmax\fullcite{#1}\dnmax} % does not allow pre or postnotes
\begin{document}
\autocite{Reference:1994}
\myfullcite{Reference:1994}
\autocite{Reference:1994}
\printbibliography
\end{document}