natbib is the standard package for getting author–year citations while still using classic BibTeX. It reimplements the standard \cite, distinguishing a textual \citet that reads as part of the sentence (Jones et al. (1990)) from a parenthetical \citep ((Jones et al., 1990)). It handles both author–year and numeric styles, and ships with the dedicated styles plainnat, abbrvnat, and unsrtnat. This page covers its rich family of citation commands with output examples, the options that change brackets and separators, and how it relates to the newer biblatex.
Loading and bibliography styles
Load natbib in the preamble with \usepackage{natbib}. Choose the look of the reference list with \bibliographystyle, normally one of natbib’s own plainnat, abbrvnat, or unsrtnat. These are the natbib counterparts of the standard plain, abbrv, and unsrt, and crucially work in both author–year and numeric modes. Bibliographic data lives in a .bib file, pulled in with \bibliography{filename}.
\documentclass{article}
\usepackage{natbib}
\bibliographystyle{plainnat}
\begin{document}
The design of \TeX{} is described in detail by \citet{knuth1986}.
This result has been confirmed elsewhere \citep{lamport1994}.
\bibliography{refs}
\end{document}The workflow is the same as plain BibTeX. Run latex (or pdflatex) → bibtex → latex → latex — that is, LaTeX, then BibTeX, then LaTeX twice — and both the citations and the reference list resolve. For Japanese references, use pbibtex / upbibtex in place of bibtex. See the BibTeX page for the details.
The two basic commands — \citet and \citep
natbib turns on two commands: the textual \citet and the parenthetical \citep. \citet{key} prints the author name as part of the sentence and puts only the year in parentheses (Jones et al. (1990)), so you can use it as a subject: “Jones et al. (1990) showed that…”. \citep{key} wraps the whole thing in parentheses ((Jones et al., 1990)), the form you append at the end of a sentence. The plain \cite behaves like \citet in author–year mode but like \citep in numeric mode, so with natbib it is **safest to avoid \cite**.
Optional arguments attach a note. A single note becomes a post-note (after the citation): \citep[chap.~2]{key} prints (Jones et al., 1990, chap. 2). Two notes give a pre-note and a post-note: \citep[see][p.~5]{key} yields (see Jones et al., 1990, p. 5). For a pre-note only, leave the post-note empty — \citep[see][]{key} gives (see Jones et al., 1990). The ~ is a non-breaking space that keeps the note from wrapping.
The algorithm is due to \citet{knuth1986}.
It runs in linear time \citep[Theorem~3]{knuth1986}.
See the discussion of line breaking \citep[see][chap.~2]{knuth1986}.
Similar ideas appear elsewhere \citep{knuth1986,lamport1994}.The family of citation commands
Starting from \citet / \citep, natbib provides purpose-built variants. The table below shows the output in author–year mode (the key jon90 stands for Jones, Baker, and Williams, 1990). The starred forms \citet* / \citep* print the full author list rather than abbreviating with “et al.”, while \citealt / \citealp print the same content without the brackets. \citeauthor gives the author name alone, \citeyear the year alone, and \citeyearpar the year in parentheses.
| Command | Example output | Use |
|---|---|---|
\citet{jon90} | Jones et al. (1990) | Textual; author as subject |
\citep{jon90} | (Jones et al., 1990) | Parenthetical citation |
\citet*{jon90} | Jones, Baker, and Williams (1990) | Full author list (textual) |
\citep*{jon90} | (Jones, Baker, and Williams, 1990) | Full author list (parenthetical) |
\citealt{jon90} | Jones et al. 1990 | No brackets, textual |
\citealp{jon90} | Jones et al., 1990 | No brackets; parenthetical content only |
\citeauthor{jon90} | Jones et al. | Author name only |
\citeauthor*{jon90} | Jones, Baker, and Williams | Full author list only |
\citeyear{jon90} | 1990 | Year only |
\citeyearpar{jon90} | (1990) | Year in parentheses |
\citealp is, as its name suggests, \citep with the brackets removed, and it accepts notes too: \citealp[chap.~2]{jon90} prints Jones et al., 1990, chap. 2. To mix free text and citations inside the parentheses, \citetext{...} is handy — \citetext{priv.\ comm.} gives (priv. comm.). \citefullauthor{key} returns the full author list, equivalent to \citeauthor*.
Capitalizing at the start of a sentence — \Citet / \Citep
When an author name has a von part such as “van der” or “della”, \citet{dRob98} prints it lowercase — della Robbia (1998). At the start of a sentence you want it capitalized, so natbib offers capitalized variants that force the first letter to uppercase. Use the capitalized names \Citet, \Citep, \Citealt, \Citealp, and \Citeauthor (starred forms exist too).
| Command | Example output | |
|---|---|---|
\citet{dRob98} | della Robbia (1998) | — ordinary (stays lowercase) |
\Citet{dRob98} | Della Robbia (1998) | — for sentence start |
\Citep{dRob98} | (Della Robbia, 1998) | |
\Citealt{dRob98} | Della Robbia 1998 | |
\Citealp{dRob98} | Della Robbia, 1998 | |
\Citeauthor{dRob98} | Della Robbia |
Multiple citations and numeric mode
You can cite several works at once, comma-separated. In author–year mode, adjacent entries by the same author differing only in year are merged without repeating the name. \citep{jon90,jam91} gives (Jones et al., 1990; James et al. 1991), \citep{jon90,jon91} gives (Jones et al., 1990, 1991), and same author plus same year, \citep{jon90a,jon90b}, gives (Jones et al., 1990a,b).
Switching the same manuscript to a numeric style needs no edits to the body with natbib. Pass an option such as \usepackage[numbers]{natbib}, or use \setcitestyle{numbers}, and \citet / \citep switch to numbers. In numeric mode \citet{jon90} becomes Jones et al. [21], \citep{jon90} becomes [21], and the noted \citep[chap.~2]{jon90} becomes [21, chap. 2]. Choose \usepackage[super]{natbib} for superscript numbers as used by journals like Nature. Note that multiple citations in \citet are not recommended in numeric mode.
Options for brackets and separators
The look of citations — bracket type and separators — can be set globally as package options. Brackets: round (the default round parentheses), square, curly, angle. The separator between multiple citations: semicolon (the default) or comma. The mode: authoryear (default), numbers, or super. There are also sort to order numbers into the list-of-references sequence, sort&compress to compress consecutive runs into ranges (e.g. 3–6, 15), and compress to compress without sorting.
\usepackage[square,numbers,sort&compress]{natbib}Other options include longnamesfirst, which prints the full author list only on the first citation of each work, and sectionbib, which (with chapterbib) makes the reference list a \section*. The option colon is the same as semicolon — a leftover from an early terminology mistake.
To change the style after loading, use \setcitestyle{...} (added in natbib 8), passing a comma-separated list of keywords. Mode: authoryear / numbers / super; brackets: round / square or open={(} and close={)}; separator: semicolon / comma or citesep={;}; between author and year aysep={,}; between years yysep={,}; before a post-note notesep={, }. So you can fine-tune with, for instance, \setcitestyle{square,aysep={},yysep={;}}.
The older \bibpunct does the same job. Use it in the preamble; it takes one optional plus six mandatory arguments: in order, the opening bracket, the closing bracket, the separator between multiple citations, the mode (n for numeric, s for superscript, anything else for author–year), the punctuation between author and year, and the punctuation between years when authors are shared. The default is \bibpunct{(}{)}{;}{a}{,}{,} (the leading optional argument is the character before a post-note). Since \setcitestyle is easier to read, prefer it for new documents.
natbib and biblatex
natbib has long served as the bridge from classic BibTeX to author–year citations. Its strength is that you keep using your existing .bib files, .bst styles, and the BibTeX program unchanged, and many societies and publishers still assume natbib.
The newer alternative is biblatex (paired with the biber backend). biblatex controls sorting and formatting flexibly on the LaTeX side and is designed for multilingual and localized output. If you can choose freely on a new project, biblatex is a strong option — but where the submission rules require natbib (or a specific .bst), use natbib. The two cannot be combined, so pick one or the other. See the biber / biblatex page for the details.