8

Is there some variant or option for \citet{} directive that will give me the author's full first name? But only when I need it?

In similar questions people have suggested editing the author field in the .bib file, but that brings more problems than help. We want:

@book{smith13,
Author = {Waldo Smith},
Title = {Real Given Names},
Publisher = {Foobar Press},
Address = {Erewhon},
Year = {2013}
}

And in the \bibliography{} section:

Smith, W. 1993. \emph{Real Given Names}. Erewhon: Foobar Press.

But some variant of \citet{} (or something) that will generate in the body text:

Waldo Smith (1993) demonstrated conclusively that it is possible to generate full names using BibTex.

Currently I'm typing in Waldo \citet{smith13} but it would be nice to get BibTeX to do this.

Note that we only do this the first time we refer to Waldo Smith; later on (even with different references), "Smith (1999)" is just fine. And, when we have multiple authors, we always use surnames only ("Brown and Miller (2013) showed, on the other hand, that…"). So anything heavy-handed that modifies the .bib file is not going to be The Answer.

5
  • 4
    Is biblatex an option? There're many ways to do this... – jon Apr 3 '14 at 19:11
  • Something that might help: tex.stackexchange.com/questions/101689/… (bibtex hack which redefines \citet* to print full name) – remus Apr 3 '14 at 20:23
  • If biblatex is an option, see tex.stackexchange.com/questions/24979/… – pst Apr 3 '14 at 21:00
  • Biblatex is currently not an option, although that may change in future (and this point is one reason to make the change). The \citet* hack would be brilliant, except we currently need long-form citations for their original purpose. – Peter Castine Apr 16 '14 at 20:44
  • 1
    If you're willing to add a field to your entries, you can use the usebib package and its \newbibfield command. But what is the benefit? If you are already going to need to know the entries well enough to know whether to use regular commnds for multiple author entries or some special command for single-author entries, you probably know the entries well enough to just type the first names in the first place. – jon Jul 18 '15 at 21:34
3

Bibtex in combination with natbib does the trick.

\usepackage[natbibapa]{apacite}
% or you can also use
% \usepackage{natbib}   

\citet*{smith13} demonstrated conclusively that it is possible to generate full names using BibTex.

The example above results in:

Waldo Smith (1993) demonstrated conclusively that it is possible to generate full names using BibTex.
3
  • See also for example this reference sheet. – rvaneijk Apr 19 '15 at 18:50
  • Does this really produce the indicated text for you? The reference sheet suggests that it will print "Smith, Smythe and Smithe", rather than "Smith et al.", but not that it will print the full name of a single author. Certainly when I try this, I don't get the full name. – John Doucette Apr 14 '16 at 14:54
  • Yes, it does, I use the solution for my PhD-Thesis. – rvaneijk Nov 28 '16 at 10:51
2

If you want to do it for a few cases, a simpler solution is to define an alias and use \citealias.

For your example, in the preamble, define:

\defcitealias{smith13}{Waldo Smith (2013)}

And in the text use:

\citetalias{smith13}

The result will be Waldo Smith (2013) in the text, with the reference added in the same way as the other references. If you use \citet{smith13}, you return to the usual Smith (2013).

The command \citetalias is available with the package natbib. So, you have to include \usepackage{natbib} in the preamble.

Note: this question is related to Natbib: cite in text with first name or initial

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.