3

My biblatex options look like this

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

How can I cite one time only in the text full author names and year, like

Gladwell, Malcolm, John Doe and John Smith (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},
}

All the other solutions given on LaTeX stack exchange have not helped me.

  • When you say 'one time', do you meant that you want the first citation in this format, or do you want a new command that you can use at will? – moewe Mar 9 '17 at 8:17
  • style=authoryear, citestyle=authoryear-icomp is the same as style=authoryear-icomp. Both settings will automatically set sorting=nyt, so you don't need to do that yourself. sortcite=false is a somewhat bad idea with style=authoryear-icomp, you lose some of the compressing features. – moewe Mar 9 '17 at 8:20
  • I meant just once in the text (somewhere I determine). Not first citation. Thank you for the option input. I activated sortcites=false, because I want the cites in the text chronological, so (Joe 2015; Smith 2016), not (Smith 2016; Joe 2015). – Til Hund Mar 9 '17 at 8:24
2

You can define a new command for that \extcite

\DeclareCiteCommand{\extcite}
  {\usebibmacro{cite:init}%
   \usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \begingroup
     \defcounter{maxnames}{999}%
     \DeclareNameAlias{labelname}{given-family}%
     \usebibmacro{cite}%
   \endgroup}
  {}
  {\usebibmacro{cite:postnote}}

Alternatively, it is enough to just do

\AtNextCite{\AtEachCitekey{\defcounter{maxnames}{999}\DeclareNameAlias{labelname}{given-family}}}

right before the citation you want to change. You can of course wrap this into a command:

\newcommand*{\extendnextcite}{%
  \AtNextCite{%
    \AtEachCitekey{%
       \defcounter{maxnames}{999}%
       \DeclareNameAlias{labelname}{given-family}}}}

and then use that as

\extendnextcite\cite{sigfridsson}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.