Временно изменить количество отображаемых авторов для ссылки в тексте

Временно изменить количество отображаемых авторов для ссылки в тексте

Я использую biblatex со style=authoryear-icomp, maxbibnames=50 и maxcitenames=2. Поэтому обычно для каждой ссылки через \cite указываются два автора. Для большинства случаев это идеальная настройка. Однако для некоторых вызовов \cite я хотел бы явно увеличить количество отображаемых авторов. И я хотел бы позволить bibtex уплотнить (сгруппировать) авторов.

На данный момент я получаю для "\cite{paper2001,paper2002,paper2003}":

"Автор1, Автор2 и др. 2001; Автор5, Автор6 и др. 2002, 2003"

Но мне бы хотелось иметь:

"Автор1, Автор2, Автор3 и Автор4 2001; Автор5, Автор6, Автор7 и Автор8 2002, 2003"

Для отдельных ссылок (только одна статья) можно использовать \AtNextCite для изменения поведения (см.https://tex.stackexchange.com/a/142202).

Использование того же трюка с \AtNextMultiCite не сжимает вывод. Поэтому в предыдущем примере я бы получил в два раза больше списка авторов 5-8 для двух ссылочных статей.

Как можно временно (за один вызов \cite) увеличить количество отображаемых авторов, сохранив при этом сжатие?

МВЕБ:

\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}

решение1

Вы можете использовать

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

чтобы убедиться, что все ссылки в дальнейшем \citeбудут содержать полные списки имен.

Это метод, используемый вblx-natbib.def, смотрите такжеhttps://github.com/plk/biblatex/issues/354

Связанный контент