我的biblatex
选择如下
\usepackage[
style=authoryear, % author-year style in references
citestyle=authoryear-icomp, % compact author-year in cites
url=false, % clicable urls in ref.
uniquelist=false,
uniquename=false, % turn off auto-disambiguaty
backref=true, % auto backrefs in ref.
datezeros=true, % dates with leading zeros
maxcitenames=1, % et al. with two or more authors
%indexing, % to create an index of persons
sortcites=false,
sorting=nyt,
%defernumbers=true, % numbers in any bibliography
backend=biber] % use biber for compiling
{biblatex}
我怎样才能在文中仅引用一次完整的作者姓名和年份,例如
格拉德威尔、马尔科姆、约翰·多伊和约翰·史密斯(2005)?
@book{Gladwell2005,
author = {Gladwell, Malcolm and Doe, John and Smith, John},
address = {New York, NY},
publisher = {Back Bay Books},
title = {Blink: The Power of Thinking Without Thinking},
year = {2005},
}
给出的所有其他解决方案都对LaTeX stack exchange
我没有任何帮助。
答案1
您可以为此定义一个新命令\extcite
\DeclareCiteCommand{\extcite}
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\begingroup
\defcounter{maxnames}{999}%
\DeclareNameAlias{labelname}{given-family}%
\usebibmacro{cite}%
\endgroup}
{}
{\usebibmacro{cite:postnote}}
或者,只需这样做即可
\AtNextCite{\AtEachCitekey{\defcounter{maxnames}{999}\DeclareNameAlias{labelname}{given-family}}}
在要更改的引用之前。当然,您可以将其包装成命令:
\newcommand*{\extendnextcite}{%
\AtNextCite{%
\AtEachCitekey{%
\defcounter{maxnames}{999}%
\DeclareNameAlias{labelname}{given-family}}}}
然后使用它作为
\extendnextcite\cite{sigfridsson}