Alterar temporariamente o número de autores exibidos para referência no texto

Alterar temporariamente o número de autores exibidos para referência no texto

Eu uso biblatex com style=authoryear-icomp, maxbibnames=50 e maxcitenames=2. Portanto, normalmente, dois autores são nomeados para cada referência via \cite. Na maioria dos casos, este é um cenário perfeito. No entanto, para algumas chamadas de \cite eu gostaria de aumentar explicitamente o número de autores exibidos. E eu gostaria de deixar o bibtex compactar (agrupar) os autores.

No momento eu pego "\cite{paper2001,paper2002,paper2003}":

"Autor1, Autor2, et. al 2001; Autor5, Autor6, et. al 2002, 2003"

Mas eu gostaria de ter:

"Autor1, Autor2, Autor3 e Autor4 2001; Autor5, Autor6, Autor7 e Autor8 2002, 2003"

Para citações únicas (apenas um artigo), \AtNextCite pode ser usado para modificar o comportamento (vejahttps://tex.stackexchange.com/a/142202).

Usar o mesmo truque com \AtNextMultiCite não compacta a saída. Portanto, no exemplo anterior, eu obteria o dobro da lista de Autores 5 a 8 para os dois artigos referenciados.

Como posso aumentar temporariamente (para uma chamada de \cite) o número de autores exibidos enquanto mantenho a compactação

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}

Responder1

Você pode usar

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

para garantir que todas as citações a seguir \citeusem as listas de nomes completos.

Este é o método usado emblx-natbib.def, Veja tambémhttps://github.com/plk/biblatex/issues/354

informação relacionada