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