Depending on the context, I might prefer to use superscript-style citations (i.e. a recent paper\cite{paper} said XYZ
–> a recent paper1 said XYZ) or author-year-style citations (i.e. \citet{paper} said XYZ
–> John Smith (1990) said XYZ) in the same document. How can I do this with natbib
?
I am aware that using \usepackage[super]{natbib}
allows me to have superscript-citations with the \cite
command. But this causes the \citet
command to print "John Smith1 said XYZ" instead of the above, and causes the \citep
command to print "1 said XYZ".
Is there any way I can sometimes use superscript-style citations, and sometimes use authoryear-style citations, using the natbib
interface/some workaround?
Here's a quick example:
\documentclass[11pt]{article}
\usepackage[margin=0.5in]{geometry}
\usepackage[super,comma]{natbib}
\bibliographystyle{plainnat} % most basic and widely used bibliography style
\begin{filecontents}{\jobname.bib}
@article{ref1,
author = {Smith, John},
journal = {Very Important Journal},
title = {Very Important Paper},
year = {2000}
}
@article{ref2,
author = {Smith, John},
journal = {Another Very Important Journal},
title = {Another Very Important Paper},
year = {2001}
}
\end{filecontents}
% Body
\begin{document}
Results from \citep{ref1} and \citet{ref2} imply XYZ\cite{ref1,ref2}.
\bibliography{\jobname}
\end{document}
which produces
Best Answer
As you've discovered, if the
super
option of thenatbib
package is in place, both\cite
and\citep
generate just superscript-style numeric citation call-outs, while\citet
generates a hybrid name-superscript citation call-out.If
natbib
'ssuper
option is in effect, the commands\citename
and\citeyear
remain available. The following example document defines the macros\citeA
,\citeY
,\citeAYp
, and\citeAYt
to help you achieve your formatting needs. Note that I would recommend against redefining the behavior of the package's\cite
,\citep
, and\citet
directly.