One of my references is J. Doe (1999). In the bib file it might looks like this:

 author="John Doe",
 title="Some Paper",
 journal="Some Journal",
 volume=1, number=1, pages={1--10}, year=1999}

My preamble looks like

\usepackage{hyperref}  % Hyperlinks bib references.
  Please see \cite{doe-1999}.

In the text, I normally cite it using \cite{doe-1999} and that's great. But there's one spot in my document where I'd like to include Doe's first initial (or his first name if I include it in the bib). I'm using natbib/plainnat author-year style. Is there a command that would help me get "J. Doe (1999)" or "John Doe (1999)" in the text and still have the whole thing hyperlinked by way of hyperref?

  • Please add a minimal working example (MWE) that illustrates your problem. It will be much easier for us to reproduce your situation and find out what the issue is when we see compilable code, starting with \documentclass{...} and ending with \end{document}. Commented Mar 9, 2013 at 19:43
  • My question isn't about a problem that occurs with a certain combination of documentclass and packages. I'm just asking for a command that would let me cite references in the text with the author's first and last name using natbib.
    – Dominique
    Commented Mar 9, 2013 at 21:01
  • 2
    While this can be independent of a particular class, providing example code to play with is the best way you can help who wants to help you.
    – egreg
    Commented Mar 9, 2013 at 23:36
  • 1. What should be shown when there are more than two authors of a reference? All author with their initials/first names? 2. Would it be enough when the long form you can get via \citet*{} will show the first names?
    – mafp
    Commented Apr 5, 2013 at 23:28
  • @mafp 1. My use for this feature is for references with a single author but I would say that when there are several authors, it would be best to show all first names. 2. Yes I think that would be exactly what I asked.
    – Dominique
    Commented May 2, 2013 at 23:46

2 Answers 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:


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 Author's full first name with citation-in-text (citet{} directives)


With the standard natbib styles, the \citet*{...} and \citep*{...} commands give complete author lists as opposed to the possibly abbreviated author lists that are obtained with \citet{...} and \citep{...}. We will modify this long author list to also contain first names.

  1. Make a copy of plainnat.bst, say plainnat2.bst, and put it in a place where BibTeX can find it.
  2. Open the copy in an editor, and locate the function format.full.names. It should be at line 306. Change the line

    "{vv~}{ll}" format.name$ 't :=


    "{ff~}{vv~}{ll}" format.name$ 't :=   %% added {ff~}
  3. Save and close it.

Use it as normal:


Short form: \citet{Ca04}, \citet{MeGa05}, \citet{MaGaJoGoAsFrFr00}.

Long form: \citet*{Ca04}, \citet*{MeGa05}, \citet*{MaGaJoGoAsFrFr00}.

% \bibliographystyle{plainnat}

sample output

You must log in to answer this question.

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