# Natbib: cite in text with first name or initial

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

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


My preamble looks like

\documentclass{article}
\usepackage{natbib}
\begin{document}
\bibliographystyle{plainnat}
\bibliography{mybib}
\end{document}


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}. –  Marco Daniel Mar 9 '13 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 Mar 9 '13 at 21:01
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 Mar 9 '13 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 Apr 5 '13 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 May 2 '13 at 23:46

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 :=  into "{ff~}{vv~}{ll}" format.name$ 't :=   %% added {ff~}

3. Save and close it.

Use it as normal:

\documentclass{article}
\usepackage{natbib}

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

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

% \bibliographystyle{plainnat}
\bibliographystyle{plainnat2}
\bibliography{test}
\end{document}


-