[Tex/LaTex] get (author?) when I use \citet with natbib

bibtex

I would like to show the author names using \citet but I get just the reference number. Here is a minimal code:

\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{natbib}

\begin{document}

 The author \citet{toschi09} has shown that ..

\bibliographystyle{plain}
\bibliography{foo}

\end{document}

And here is foo.bib

@article{toschi09,
author = {Toschi, F. and Bodenschatz, E.},
title = {Lagrangian Properties of Particles in Turbulence},
journal = {Annual Review of Fluid Mechanics},
volume = {41},
number = {1},
pages = {375-404},
year = {2009}, 
}

What I get is:

The author (author?) [1] has shown that ..

Any help will be more than welcome, thank you!

Best Answer

The plain bibliography style is for numerical references only, while \citet only makes sense for author-year citations. Use natbibs own version of plain, called plainnat, instead, and this works fine. I.e. change to

\bibliographystyle{plainnat}

This is in fact documented on page 7 of natbibs manual:

The authors can only be listed if the .bst file supports author–year citations. The standard .bst files, such as plain.bst are numerical only and transfer no author–year information to LaTeX. In this case, \citet prints “(author?) [21].”

Related Question