[Tex/LaTex] Temporarily change number of displayed authors for reference within text

biblatexcitingcross-referencing

I use biblatex with style=authoryear-icomp, maxbibnames=50 and maxcitenames=2. Therefore, usually, two authors are named for each reference via \cite. For most cases this is a perfect setting. However, for some calls of \cite I'd like to explicitly increase the number of displayed authors. And I'd like to let bibtex compact (group) the authors.

At the moment I get for "\cite{paper2001,paper2002,paper2003}":

"Author1, Author2, et. al 2001; Author5, Author6, et. al 2002, 2003"

But I'd like to have:

"Author1, Author2, Author3, and Author4 2001; Author5, Author6, Author7, and Author8 2002, 2003"

For single citations (just one paper), \AtNextCite can be used to modify the behaviour (see https://tex.stackexchange.com/a/142202).

Using the same trick with \AtNextMultiCite does not compress the output. Therefore, in the previous example, I would get two times the list of Authors 5-8 for the two referenced papers.

How can I temporarily (for one call of \cite) increase the number of displayed authors while maintaining the compression

MWEB:

\documentclass{article}
\usepackage{bbding}
\usepackage[
    sortcites=true,
    style=authoryear-icomp,    
    firstinits=true,
    uniquename=init,      
    maxbibnames=50,            
    maxcitenames=2,            
    autocite=inline,           
    block=space,                   
    date=short,                
    backend=biber,
    sorting=nyt,
    ]{biblatex} % For the bibliography
\addbibresource{\jobname.bib}
\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@article{paper2001,
  author = {Author1 and Author2 and Author3 and Author4},
  year = {2001},
  title = {paper1},
  publisher = {Publisher},
}

@article{paper2002,
  author = {Author5 and Author6 and Author7 and Author8},
  year = {2002},
  title = {paper2},
  publisher = {Publisher},
}

@article{paper2003,
  author = {Author5 and Author6 and Author7 and Author8},
  year = {2003},
  title = {paper3},
  publisher = {Publisher},
}
\end{filecontents}

\begin{document}
\noindent Usually I want to have the abbreviated version: \cite{paper2002,paper2003}.\Checkmark \\\\
\noindent But sometimes, I'd like to list all authors like in the References. Instead I get:\\
\cite{paper2001,paper2002,paper2003}

\printbibliography

\end{document}

Best Answer

You can use

\AtNextCite{\AtEachCitekey{\defcounter{maxnames}{999}}}

to make sure that all citations in the next \cite use the full name lists.

This is the method used in blx-natbib.def, see also https://github.com/plk/biblatex/issues/354

Related Question