暂时更改文中引用的显示作者数量

暂时更改文中引用的显示作者数量

我使用 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

相关内容