35

I'd like to generate a linked citation with a full author's name.

For instance, if I use

According to \citet{bob2000} apples are tasty.

And run with hyperref, I get the author's last name and a nice hyperlink to the bibliography. But I want the author's full name!

How can I achieve this? (BibLaTeX is also an option, but equally mysterious on this point.)

1

2 Answers 2

34

As it turned out, in this particular instance it worked well enough for me to modify the BibTeX source itself:

@misc{bob2000,
  title={An exposition on the tastiness of apples},
  author={{Bob T. Smith}}
}

Note the double brackets {{ and }} in the entry, which cause display of the full author string, rather than some formatting thereof.

2
  • 17
    Congrats on finding this solution. The method you've found is called treating the author's name as if it were the name of a corporation. While it'll work to create the citation in the way you need, you may not like the fact that this author will now be listed in the references under B for Bob rather than under S for Smith. A solution is available, fortunately: see tex.stackexchange.com/a/31411/5001 for an example. Just insert an instruction such as \noop{smith} in the author field rather than in the year field.
    – Mico
    Commented Dec 8, 2012 at 11:26
  • 11
    The solution method proposed in this answer has two potentially severe drawbacks. First, it requires that every name in every bib entry be modified using double braces. Second, if alphabetical sorting of the entries by surname rather than by first name is required, a suitable \noopsort{...} instruction has to be prefixed to every author field. Finally, if the formatting requirements should ever change, all the preceding edits of the author fields must be undone. In general, it seems like a much better idea to pursue a solution that modifies the bibliography style file suitably.
    – Mico
    Commented Apr 29, 2016 at 14:18
13

Define your own command where the labelname, the one printed by biblatex on \citeauthor, becomes given-family, that is, the first and the last name.

\newrobustcmd*{\citefirstlastauthor}{\AtNextCite{\DeclareNameAlias{labelname}{given-family}}\citeauthor}

Example:

result of main.tex compiling

The main.tex file

\documentclass{article}
\usepackage[natbib=true,sortcites=no]{biblatex}

%\citeauthor prints only the last name. This command prints first and last name.
\newrobustcmd*{\citefirstlastauthor}{\AtNextCite{\DeclareNameAlias{labelname}{given-family}}\citeauthor}

\addbibresource{library.bib}

\begin{document}

This is a citation from \citefirstlastauthor{knuth2001things}:

``The assumption that the Bible is God's word is an unprovable axiom%
  that I tend to find confirmed as I look at it.'' \citeauthor[p. 191]{knuth2001things}

\printbibliography

\end{document}

The library.bib file

@book{knuth2001things,
  title={Things a computer scientist rarely talks about},
  author={Knuth, Donald Ervin},
  year={2001},
  publisher={Csli Publications Stanford, CA}
}
3
  • 2
    As I'm using a different citation style, the author name appears in all caps and surrounded by parenthesis. Is it possible to get the author name in another style?
    – LEo
    Commented Dec 4, 2020 at 20:29
  • Excellent answer! Works perfectly (and without parenthesis or all caps) with \usepackage[style=alphabetic, backend=bibtex]{biblatex} and even with \textcite instead of \citeauthor.
    – F1iX
    Commented Jun 22, 2023 at 18:32
  • @F1iX Glad to hear my posted answer was a blessing to you. Thanks for thanking. God bless you! Commented Jun 28, 2023 at 20:07

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .