27

How can I cite an authors full name (= first name + last name) in biblatex?

@book{Gladwell2005,
    author = {Gladwell, Malcolm},
    address = {New York, NY},
    publisher = {Back Bay Books},
    title = {Blink: The Power of Thinking Without Thinking},
    year = {2005},
}

I would then like to cite the book with Malcolm Gladwell's full name. So what I'm looking for is some sort of \citefullauthorname macro.

lockstep
  • 250,273
Thomas
  • 271

3 Answers3

25

One may use \DeclarenameAlias{labelname}{<whatever>} inside new author-citation commands.

\documentclass{article}

\usepackage{biblatex}

\DeclareCiteCommand{\citeauthorfirstlast}
  {\boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \DeclareNameAlias{labelname}{first-last}%
   \usebibmacro{prenote}}
  {\ifciteindex
     {\indexnames{labelname}}
     {}%
   \printnames{labelname}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\DeclareCiteCommand{\citeauthorlastfirst}
  {\boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \DeclareNameAlias{labelname}{last-first}%
   \usebibmacro{prenote}}
  {\ifciteindex
     {\indexnames{labelname}}
     {}%
   \printnames{labelname}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@book{Knu86,
  author = {Knuth, Donald E.},
  year = {1986},
  title = {The \TeX book},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}

\citeauthorfirstlast{Knu86}

\citeauthorlastfirst{Knu86}

\citeauthor{Knu86}

\printbibliography

\end{document}

enter image description here

lockstep
  • 250,273
  • 7
    Or just use: \newrobustcmd*{\citefirstlastauthor}{\AtNextCite{\DeclareNameAlias{labelname}{first-last}}\citeauthor}. – Audrey Sep 25 '12 at 15:51
  • 4
    Could someone expand Audrey's suggestion into a full MWE here? I'm not quite sure what the suggestions entails. – Sverre Mar 06 '14 at 12:24
  • I have tried and it does not work. – Guuk Oct 28 '17 at 18:26
  • 1
    @Audrey’s suggestion works perfectly well, but for some reason copy&pasting the code results in zero-width spaces at random positions, which breaks the code. You have to remove the zero-width spaces or just retype the code. – Toni Dietze Nov 29 '17 at 14:38
  • 4
    Name format 'first-last' deprecated.

    Use the following instead: \newrobustcmd*{\citefirstlastauthor}{\AtNextCite{\DeclareNameAlias{labelname}{given-family}}\citeauthor}

    – mrclrchtr Feb 26 '19 at 09:57
16

You can define your own cite commands, like this commands, which will print all names in full;

\DeclareCiteCommand*{\citeauthor}
{\defcounter{maxnames}{99}%
\defcounter{minnames}{99}%
\defcounter{uniquename}{2}%
\boolfalse{citetracker}%
\boolfalse{pagetracker}%
\usebibmacro{prenote}}
{\ifciteindex{\indexnames{labelname}}{}%
\printnames{labelname}}
{\multicitedelim}
{\usebibmacro{postnote}}

that you can use it like \citeauthor*{Gladwell2005} (be sure to use the starred version).

Source

lockstep
  • 250,273
6

Here's how I did it:

\nocite{reid1806analysis} Thomas Reid (1806, p.~91) pointed out the same problem
and reprimanded Aristotle severely for this and other errors.

Yes, this introduces redundancy and a chance of error if I change the Reid citation. But it generates the correct output, it required no debugging of LaTeX/BibTeX arcana, and I have a Ph.D. to finish.

  • 6
    I, too, have a Ph.D. to finish. So why am I leaving this comment? Anyway, I'd think the following would be a little better: Thomas \citet[91]{reid1806analysis} pointed out... – DHW May 10 '18 at 00:10
  • 2
    I hope you guys finished your PhD. If not yet, good luck! – hola Nov 28 '20 at 17:02
  • 1
    Thanks for the kind words, @hola! I'm just now finishing up the research and will soon be diving back into TeX… – Ben Kovitz Nov 29 '20 at 13:03
  • 3
    @BenKovitz Good luck, pal. There are multiple errors in my thesis (the PDF looks normal though), was scratching my head over this. Then I found your comment, "I have a Ph.D. to finish". I shrugged, and decided to ignore those. – hola Nov 29 '20 at 16:13