9

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.

7
  • 4
    Is biblatex an option? There're many ways to do this...
    – jon
    Apr 3, 2014 at 19:11
  • Something that might help: tex.stackexchange.com/questions/101689/… (bibtex hack which redefines \citet* to print full name)
    – remus
    Apr 3, 2014 at 20:23
  • If biblatex is an option, see tex.stackexchange.com/questions/24979/…
    – pst
    Apr 3, 2014 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. Apr 16, 2014 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, 2015 at 21:34

2 Answers 2

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, 2015 at 18:50
  • 1
    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. Apr 14, 2016 at 14:54
  • Yes, it does, I use the solution for my PhD-Thesis.
    – rvaneijk
    Nov 28, 2016 at 10:51
3

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

You must log in to answer this question.

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