Natural Sciences Citations and References

(Author–Year and Numerical Schemes)

Patrick W. Daly

This paper describes package natbib version 6.8 from 1998/02/19

Abstract

The natbib package is a reimplementation of the L^{A}TEX \cite command, to work with both author–year and numerical citations. It is compatible with the standard bibliographic style files, such as plain.bst, as well as with those

for harvard, apalike, chicago, astron, authordate, and of course natbib.

In contrast to the packages listed above, the natbib package supports not only the various author–year bibliography styles, but also those for standard numerical citations. In fact, it can also produce numerical citations even with an author–year bibliographic style, something that permits easy switching between the two citation modes. To this end, replacements for the standard L^{A}TEX .bst files are also provided.

It is possible to define the citation style (type of brackets and punctuation between citations) and even to associate it with the name of the bibliographic style so that it is automatically activated. Citation styles can be defined for local .bst files by means of a configuration file natbib.cfg.

It is compatible with the packages: babel, index, showkeys, chapterbib, hyperref, koma and with the classes amsbook and amsart. It can also emulate the sorting and compressing functions of the cite package (with which it is otherwise incompatible).

The natbib package therefore acts as a single, flexible interface for most of the available bibliographic styles.

Contents

1 Introduction 3

2 Previous Solutions 3 2.1 The natsci.bst Style . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 The apalike.bst Style . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3 The newapa Style . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.4 The Harvard Family . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.5 The Astronomy Style . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.6 The authordate Style . . . . . . . . . . . . . . . . . . . . . . . . . 5

3 The natbib System 6

4 Using this Package 7 4.1 Basic Citation Commands . . . . . . . . . . . . . . . . . . . . . . . 7 4.2 Extended Citation Commands . . . . . . . . . . . . . . . . . . . . 8 4.3 Selecting Citation Punctuation . . . . . . . . . . . . . . . . . . . . 9 4.4 Priority of Style Commands . . . . . . . . . . . . . . . . . . . . . . 11 4.5 Other Formatting Options . . . . . . . . . . . . . . . . . . . . . . . 12 4.6 Automatic Indexing of Citations . . . . . . . . . . . . . . . . . . . 12 4.7 HyperTEX Compatibility . . . . . . . . . . . . . . . . . . . . . . . . 13 4.8 Multiple Bibliographies in One Document . . . . . . . . . . . . . . 13

4.8.1 Special Considerations for natbib and chapterbib . . . . . 14 4.9 Sorting and Compressing Numerical Citations . . . . . . . . . . . . 14 4.10 Long Author List on First Citation . . . . . . . . . . . . . . . . . . 14

5 Numerical Citations with Author–Year Styles 15 5.1 New Coding for 6.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 5.2 Selecting Numerical Mode . . . . . . . . . . . . . . . . . . . . . . . 15 5.3 New Bibliography Styles . . . . . . . . . . . . . . . . . . . . . . . . 16

6 Local Configuration 16

7 Options with L^{A}TEX 2ε 17

8 As Module to Journal-Specific Styles 18

9 Reference Sheet 18

10 Options with docstrip 18

1 Introduction

The first problem of using author–year literature citations with standard L^{A}TEX is that the two forms of citations are not supported. These are:

textual: … as shown by Jones et al. (1990) …

parenthetical: It has been shown (Jones et al., 1990) that …

There is only one \cite command to do both jobs.

A second problem is that the thebibliography environment for listing the references insists on including the labels in the list. These labels are normally the numbers, needed for referencing. In the author–year system, they are superfluous and should be left off. Thus, if one were to make up a bibliography with the author–year as label, as

      \begin{thebibliography}{...}
      \bibitem[Jones et al., 1990]{jon90}
      Jones, P. K., . . .
      \end{thebibliography}

then \cite{jon90} produces the parenthetical citation [Jones et al., 1990], but there is no way to get the textual citation. Furthermore, the citation text will also be included in the list of references.

The final problem is to find a BibTEX bibliography style that will be suitable.

2 Previous Solutions

This section may not be of interest to all users. To find out how to use natbib without reading about the historical background, go to Section 4.

Although the author–year citation mode is not supported by standard L^{A}TEX, there are a number of contributed packages that try to solve this problem. The various bibliographic styles (.bst files) that exist are usually tailored to be used with a particular L^{A}TEX package.

I have found a large number of .bst files on file servers that may act as indicators of the various systems available.

2.1 The natsci.bst Style

What gave me my first inspiration was Stephen Gildea’s natsci.bst for use with his agujgr.sty file. This showed me that the problem was solvable. However, Gildea’s style formats \bibitem just as I illustrated above: with an optional label consisting of abbreviated authors and year. Thus only parenthetical citations can be accommodated. The list of references, however, is fixed up in his style files.

2.2 The apalike.bst Style

Oren Patashnik, the originator of BibTEX and the standard .bst files, has also worked on an author–year style, called apalike.bst with a corresponding apalike.sty to support it. Again, only the parenthetical citation is provided. Except for the fact that his style works with version 0.99 of BibTEX, its functionality is identical to that of the natsci files.

Patashnik does not like author–year citations. He makes this very clear in his BibTEX manuals and in the header to apalike.bst. Nevertheless, one should respect his work in this area, simply because he should be the best expert on matters of BibTEX. Thus apalike.bst could be the basis for other styles.

The form of the thebibliography entries in this system is

     \bibitem[Jones et al., 1990]{jon90}...

the same as I illustrated earlier. This is the most minimal form that can be given. I name it the apalike variant, after Patashnik’s apalike.bst and apalike.sty. However, there could be many independent .bst files that follow this line.

The bibliography style files belonging to this group include:

     apalike, apalike2, cea, cell, jmb, phapalik, phppcf, phrmp

2.3 The newapa Style

A major improvement has been achieved with newapa.bst and the accompanying newapa.sty files by Stephen N. Spencer and Young U. Ryu. Under their system, three separate items of information are included in the \bibitem label, to be used as required. These are: the full author list, the abbreviated list, and the year. This is accomplished by means of a \citeauthoryear command included in the label, as

     \bibitem[\protect\citeauthoryear{Jones, Barker,
       and Williams}{Jones et al.}{1990}]{jon90}...

Actually, this only illustrates the basic structure of \citeauthoryear; the newapa files go even further to replace some words and punctuation with commands. For example, the word ‘and’ above is really \betweenauthors, something that must be defined in the .sty file. Of course, \citeauthoryear is also defined in that file. A number of different \cite commands are available to print out the citation with complete author list, with the short list, with or without the date, the textual or parenthetical form.

Thus the \citeauthoryear entry in \bibitem is very flexible, permitting the style file to generate every citation form that one might want. It is used by a number of other styles, with corresponding .sty files. They all appear to have been inspired by newapa.bst, although they lack the extra punctuation commands.

Bibliographic style files belonging to the newapa group include

     newapa, chicago, chicagoa, jas99, named

Note: the last of these, named.bst, uses \citeauthoryear in a slightly different manner, with only two arguments: the short list and year.

2.4 The Harvard Family

The same effect is achieved by a different approach in the Harvard family of bibliographic styles. Here a substitute for \bibitem is used, as

     \harvarditem[Jones et al.]{Jones, Baker, and
        Williams}{1990}{jon90}...

The accompanying interface package file is called harvard.sty and is written by Peter Williams and Thorsten Schnier. It defines \harvarditem as well as the citation commands \cite, for parenthentical, and \citeasnoun, for textual citations. The first citation uses the long author list, following ones the shorter list, if it has been given in the optional argument to \harvarditem.

Bibliography styles belonging to the Harvard family are

     agsm, dcu, kluwer

This package has been updated for L^{A}TEX 2ε, with many additions to add flexibility. The result is a powerful interface that should meet most citation needs. (It does not suppress repeated authors, though, as natbib does.)

2.5 The Astronomy Style

Apparently realizing the limitations of his apalike system, Oren Patashnik went on to develop a ‘true’ apa bibliographic style, making use of the method already employed by an astronomy journal. This is actually very similar to the newapa label but with only the short list of authors:

     \bibitem[\protect\astroncite{Jones et al.}{1990}]{jon90}
        ...

It requires the package file astron.sty or any other style that defines \astroncite appropriately.

Bibliographic styles belonging to the astronomy group are

     apa, astron, bbs, cbe, humanbio, humannat, jtb

This is as good as the \citeauthoryear command, although not as flexible since the full list of authors is missing.

2.6 The authordate Style

Finally, I have also found some packages making use of a label command called

\citename in the form
     \bibitem[\protect\citename{Jones et al., }1990]{jon90}
         ...

This is not a good system since the author list and date are not cleanly separated as individual arguments, and since the punctuation is included in the label text. It is better to keep the punctuation fully removed, as part of the definitions in the .sty file, for complete flexibility.

Bibliographic styles belonging to this group are

     authordate1, authordate2, authordate3, authordate4, aaai-named

with accompanying style file authordate1-4.sty.

3 The natbib System

The form of the \bibitem entry that I have used for all my bibliographic styles is only slightly more complicated than the minimal one, but allows a clean separation between authors and date:

     \bibitem[Jones et al.(1990)]{jon90}...

or alternatively

     \bibitem[Jones et al.(1990)Jones, Baker,
         and Williams]{jon90}...

(One weakness of the natbib format is that it fails if the author list itself contains parentheses! This may be fixed up if the author list is grouped in curly braces.)

I wanted to name the system something like ‘natural sciences bibliography’, intending it to be a variant of natsci.sty. Since that name was already taken, I resorted to the rather cryptic, and definitely ugly, natbib.

The natbib.sty package^{1} supports not only my own \bibitem format, but also all the others described here, plus numerical citation modes. The additional questions of citation style (type of brackets, commas or semi-colons between citations) can be defined once and for all for each .bst file and need never be specified explicitly in the source text. The use of \cite is the same for all citation styles, meaning that the additional features that might be available in the ‘proper’ .sty file will be missing. (This could be changed later.) The result is a single L^{A}TEX package to handle all the bibliographic styles in a uniform manner.

New to version 6.0: (1995 Sep 29)

In previous versions, each .bst file was either numerical or author– year only. Applying the wrong mode led to grotesque results, and the mode could not always be selected automatically. With version 6.0, all the author–year bibliographic style files can also be used for numerical citations, by simply selecting the mode in one of the ways described in Sections 4.3 and 7. It is not possible to employ author-year citations with pure numerical .bst files, and never will be.

See Section 5 for more information.

1Formerly called a style file in the older L^{A}TEX 2.09 terminology.

4 Using this Package

In this paper, I distinguish between the citation mode (author–year or numerical) and citation style (the type of punctuation used for citations). The citation style is something that is independent of the bibliography style and is not programmed in the .bst files.

4.1 Basic Citation Commands

\citet The natbib package has two basic citation commands, \citet and \citep for tex- \citep tual and parenthetical citations, respectively. There also exist the starred versions

\citet* and \citep* that print the full author list, and not just the abbreviated one. All of these may take one or two optional arguments to add some text before and after the citation.

\citet{jon90}  ⇒ Jones et al. (1990)
\citet[chap.~2]{jon90}  ⇒ Jones et al. (1990, chap. 2)
\citep{jon90}  ⇒ (Jones et al., 1990)
\citep[chap.~2]{jon90}  ⇒ (Jones et al., 1990, chap. 2)
\citep[see][]{jon90}  ⇒ (see Jones et al., 1990)
\citep[see][chap.~2]{jon90} ⇒ (see Jones et al., 1990, chap. 2)
\citet*{jon90}  ⇒ Jones, Baker, and Williams (1990)
\citep*{jon90}  ⇒ (Jones, Baker, and Williams, 1990)

The starred versions can only list the full authors if the .bst file supports this feature; otherwise, the abbreviated list is printed.

In standard L^{A}TEX, the \cite command can only take a single optional text for a note after the citation; here, a single optional text is a post-note, while two are the pre- and post-notes. To have only a pre-note, it is necessary to provide an empty post-note text, as shown above.

More complex mixtures of text and citations can be generated with the allpurpose \citetext command in Section 4.2.

Multiple citations may be made as usual, by including more than one citation key in the \cite command argument. If adjacent citations have the same author designation but different years, then the author names are not reprinted.

\citet{jon90,jam91}  ⇒ Jones et al. (1990); James et al. (1991)
\citep{jon90,jam91}  ⇒ (Jones et al., 1990; James et al. 1991)
\citep{jon90,jon91}  ⇒ (Jones et al., 1990, 1991)

      \citep{jon90a,jon90b} ⇒ (Jones et al., 1990a,b)

These examples are for author–year citation mode. In numerical mode, the results are different.

\citet{jon90}  ⇒ Jones et al. [21]

      \citet[chap.~2]{jon90}  ⇒ Jones et al. [21, chap. 2]
      \citep{jon90}  ⇒ [21]
      \citep[chap.~2]{jon90}  ⇒ [21, chap. 2]
      \citep[see][]{jon90}  ⇒ [see 21]
      \citep[see][chap.~2]{jon90} ⇒ [see 21, chap. 2]
      \citep{jon90a,jon90b}  ⇒ [21, 32]

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 L^{A}TEX. In this case, \citet prints “(author?) [21].”

\cite In the original versions of natbib, the traditional \cite command was used for both textual and parenthetical citations. The presence of an empty optional text in square brackets signalled parenthetical. This syntax has been retained for compatibility, but is no longer encouraged.

This means that \cite (without notes) is the same as \citet in author–year mode, whereas in numerical mode, it is the same as \citep. The starred version, as well as the one or two optional notes, may also be used.

It is possible to have multiple citations sorted into the same sequence as they appear in the list of references, regardless of their order as arguments to the \cite commands. The option sort is required for this feature. See Section 4.9.

Some publishers require that the first citation of any given reference be given with the full author list, but that all subsequent ones with the abbreviated list. Include the option longnamesfirst to enable this for natbib. See Section 4.10.

4.2 Extended Citation Commands

\citealt As an alternative form of citation, \citealt is the same as \citet but without

\citealp
\citetext

any parentheses. Similarly, \citealp is \citep with the parentheses turned off. Multiple references, notes, and the starred variants also exist.

      \citealt{jon90}  ⇒ Jones et al. 1990

\citealt*{jon90}  ⇒ Jones, Baker, and Williams 1990
\citealp{jon90}  ⇒ Jones et al., 1990
\citealp*{jon90}  ⇒ Jones, Baker, and Williams, 1990
\citealp{jon90,jam91}  ⇒ Jones et al., 1990; James et al., 1991

      \citealp[pg.~32]{jon90} ⇒ Jones et al., 1990, pg. 32
      \citetext{priv.\ comm.} ⇒ (priv. comm.)

The \citetext command (new to version 6.8) allows arbitrary text to be placed in the current citation parentheses. This may be used in combination with \citealp. For example,

 \citetext{see \citealp{jon90},
   or even better \citealp{jam91}}

to produce (see Jones et al., 1990, or even better James et al., 1991).

\citeauthor In author–year schemes, it is sometimes desirable to be able to refer to the

\citeyear
\citeyearpar
\citefullauthor

authors without the year, or vice versa. This is provided with the extra commands

      \citeauthor{jon90} ⇒ Jones et al.

\citeauthor*{jon90} ⇒ Jones, Baker, and Williams

      \citeyear{jon90}  ⇒ 1990
      \citeyearpar{jon90} ⇒ (1990)

There also exists a command \citefullauthor which is equivalent to \citeauthor* (the starred version was added at version 6.6).

If the full author information is missing, then \citeauthor* is the same as \citeauthor, printing only the abbreviated list. This also applies to the starred versions of \citet and \citep.

If the author or year information is missing (as is the case with the standard L^{A}TEX .bst files), these commands issue a warning.

Note: as of version 6.0, these commands may also be used with numerical citations, provided an author–year .bst file is being employed.

Note: as of version 6.6, all \cite.. commands have the same syntax, allowing multiple citations and up to two notes (there is, however, no starred \citeyear variant). It does not really make much sense to add notes to \citeyear and \citeauthor, especially with multiple citations; however, this can be done, there will be no error message, but the results are sometimes strange. For example, in numerical mode, the notes are fully ignored, while in author–year mode, only the post-note is accepted. Multiple citations in \citet are also not recommended (nor are they in my opinion meaningful), but if they are used with notes, the pre-note will appear before each year, and the post-note only after the last year. These are admittedly bugs, but the effort to remove them is not justified by the questionable usefulness of these features.

In summary, notes are only intended for \citep but they may also be used with \citet in author–year mode, with single citations. In any other situation, the results are unpredictable.

4.3 Selecting Citation Punctuation

\bibpunct The above examples have been printed with the default citation style. It is possible to change this, as well as to select numerical or author–year mode, by means of the \bibpunct command, which takes one optional and 6 mandatory arguments. The mandatory ones are:

1. the opening bracket symbol, default = (

2. the closing bracket symbol, default = )

3. the punctuation between multiple citations, default = ; 4. the letter ‘n’ for numerical style, or ‘s’ for numerical superscript style, any

other letter for author–year, default = author–year; note, it is not necessary to specify which author–year interface is being used, for all will be recognized;

5. the punctuation that comes between the author names and the year (parenthetical case only), default = ,

6. the punctuation that comes between years or numbers when common author lists are suppressed (default = ,); if both authors and years are common, the citation is printed as ‘1994a,b’, but if a space is wanted between the extra letters, then include the space in the argument, as {,~}.

For numerical mode, \citet{jon90,jon91} produces ‘Jones et al. [21, 22]’ with this punctuation between the numbers. A space is automatically included for numbers, but not for superscripts.

The optional argument is the character preceding a post-note, default is a comma.

The \bibpunct command must be issued in the preamble, that is, before \begin{document}. (Note: in versions 5.4 or earlier, this declaration had to be given after the preamble!)

Example 1, \bibpunct{[}{]}{,}{a}{}{;} changes the output of

     \citep{jon90,jon91,jam92}

into [Jones et al. 1990; 1991, James et al. 1992].

   Example 2, \bibpunct[;]{(}{)}{,}{a}{}{;} changes the output of
     \citep[and references therein]{jon90}

into (Jones et al. 1990; and references therein).

\bibstyle@xxx Usually the citation style is determined by the journal for which one is writing, and is as much a part of the bibliography style as everything else. The natbib package allows punctuation definitions to be directly coupled to the \bibliographystyle command that must always be present when BibTEX is used. It is this command that selects the .bst file; by adding such a coupling to natbib for every .bst file that one might want to use, it is not necessary to add \bibpunct explicitly in the document itself, unless of course one wishes to override the preset values.

Such a coupling is achieved by defining a command \bibstyle@bst, where bst stands for the name of the .bst file. For example, the American Geophysical Union (AGU) demands in its publications that citations be made with square brackets and separated by semi-colons. I have an agu.bst file to accomplish most of the formatting, but such punctuations are not included in it. Instead, natbib has the definition

     \newcommand{\bibstyle@agu}{\bibpunct{[}{]}{;}{a}{,}{,~}}

These style defining commands may contain more than just \bibpunct. Some numerical citation scheme require even more changes. For example, the journal Nature not only uses superscripted numbers for citations, it also prints the numbers in the list of references without the normal square brackets. To accommodate this, natbib contains the style definition

      \newcommand{\bibstyle@nature}{\bibpunct{}{}{,}{s}{}{\textsuperscript{,}}%
           \gdef\NAT@biblabelnum##1{##1.}}

The redefined \NAT@biblabelnum command specifies how the reference numbers are to be formatted in the list of references itself. The redefinition must be made

with \gdef, not \def or \renewcommand.

The selected punctuation style and other redefinitions will not be in effect on the first L^{A}TEX run, for they are stored to the auxiliary file for the subsequent run.

The user may add more such definitions of his own, to accommodate those journals and .bst files that he has. He may either add them to his local copy of natbib.sty, or better put them into a file named natbib.cfg. This file will be read in if it exists, adding any local configurations. Thus such configurations can survive future updates of the package. (This is for L^{A}TEX 2ε only.)

Note: with version 6.0, any explicit call to \bibpunct has priority over the predefined citation styles.

\citestyle A preprogrammed citation style is normally invoked by the command \bibliographystyle, as described above. However, it may be that one wants to apply a certain citation style to another bibliography style. This may be done with \citestyle, given before \begin{document}. For example, to use the plainnat bibliography style (for the list of references) with the Nature style of citations (superscripts),

     \documentclass{article}
     \usepackage{natbib}
     . . . . .
     \citestyle{nature}
     \begin{document}
     \bibliographystyle{plainnat}
     . . . . .

Note: for versions 5.5 and later, all changes to the citation style, including punctuation, must be made before \begin{document}, which freezes the citation style.

4.4 Priority of Style Commands

The citation style (punctuation and mode) can be selected by means of the \bibpunct, \citestyle, and predefined \bibstyle@bst commands. They can also be selected by L^{A}TEX 2ε options (Section 7). What happens if there are several conflicting selections?

The lowest priority is assigned to the predefined \bibstyle@bst commands, since they are implicit and not obvious to the user. The L^{A}TEX 2ε options have the next priority. Finally, any selection by \bibpunct and/or \citestyle overrides those of the other methods.

4.5 Other Formatting Options

\bibsection The list of references normally appears as a \section* or \chapter*, depending on the main class. If one wants to redesign one’s own heading, say as a numbered section with \section, then \bibsection may be redefined by the user accordingly.

\bibfont The list of references is normally printed in the same font size and style as the main body. However, it is possible to define \bibfont to be font commands that are in effect within the thebibliography environment.

\bibhang The list of references for author–year styles uses a hanging indentation format: the first line of each reference is flush left, the following lines are set with an indentation from the left margin. This indentation is 1 em by default but may be changed by redefining (with \setlength) the length parameter \bibhang.

\bibsep The vertical spacing between references in the list, whether author–year or numerical, is controlled by the length \bibsep. If this is set to 0 pt, there is no extra line spacing between references. The default spacing depends on the font size selected in \documentclass, and is almost a full blank line. Change this by redefining \bibsep with \setlength command.

4.6 Automatic Indexing of Citations

(New to version 6.0; applies to L^{A}TEX 2ε only)

\citeindextrue If one wishes to have the citations entered in the .idx indexing file, it is only \citeindexfalse necessary to issue \citeindextrue at any point in the document. All following

\cite commands, of all variations, then insert the corresponding entry to that file. With \citeindexfalse, these entries will no longer be made.

The \bibitem commands in the thebibliography environment will also make index entries. If this is not desired, then issue \citeindexfalse before

\bibliography or \begin{thebibliography}.

Of course, \makeindex must also be issued in the preamble to activate indexing, as usual. Otherwise, no indexing is done at all.

Make sure that the document has been processed at least twice after the last BibTEX run before running the makeindex program.

\NAT@idxtxt The form of the index entries is set by the internal \NAT@idxtxt, which can be redefined by hackers if wanted (in the natbib.cfg file please). By default, it prints the short author list plus date in the current parenthesis style.

The natbib package can also be used with the index package of David M. Jones. The order in which the packages are loaded is not important.

\citeindextype In that package, multiple index lists may be made by means of a \newindex command. For example, it may be desirable to put all the citation indexing into a separate list. First that list must be initiated with, e.g.,

     \newindex{cite}{ctx}{cnd}{List of Citations}

and then the automatic citation indexing associated with this list with the natbib command

     \renewcommand{\citeindextype}{cite}

See the documentation for index.sty for details.

4.7 HyperTEX Compatibility

As of version 6.4, natbib is compatible with the hyperref package of Sebastian Rahtz and Yannis Haralambous, for use with HyperTEX. The compatibility is of a mutual nature: both packages contain coding that interact with that of the other. Thus the version of hyperref must be more recent than 1996 Oct 8, and preferably later than 1997 Oct 27.

4.8 Multiple Bibliographies in One Document

As of version 6.4, natbib is compatible with the chapterbib package of Donald Arseneau and Niel Kempson,^{2} which makes it possible to have several bibliographies in one document. The usual application is to have bibliographies in each chapter of a book, especially if they have been written by different authors.

The chapterbib package works in a very natural way for the author; only the editor who puts all the chapters together into one book has to do some extra work.

The package makes use of the \include command, and it is in fact every \included file that has its own bibliography. For large books, it makes very good sense to take advantage of this feature in any case.

To review the use of \include, recall that the main file

   \documentclass{...}
   \includeonly{ch2}
   \begin{document}
     \include{ch1}
     \include{ch2}
     \include{ch3}
   \end{document}

will process only the file ch2.tex as though the files ch1.tex and ch3.tex were also present. That is, all counters, especially the page and section numbers, as well as cross-referencing definitions, will function as if the whole document were processed. The trick is that each \included file has it own .aux file containing these definitions, and they are all read in every time, even if the corresponding .tex file is not. The .aux files also contain the citation information for BibTEX, something that the chapterbib package exploits.

If \usepackage{chapterbib} has been given, the keys in each \cite and \bibitem command are associated with the current \included file and are distinguished from the identical key in a different file. Each of these files must contain its own \bibliography and \bibliographystyle commands. One processes BibTEX on each file separately before processing it under L^{A}TEX (at least twice).

2I have used version 1.5 from 1995/10/09; cannot guarantee earlier versions.

4.8.1 Special Considerations for natbib and chapterbib

The order in which the chapterbib and natbib packages are loaded is unimportant.

The chapterbib package provides an option sectionbib that puts the bibliography in a \section* instead of \chapter*, something that makes sense if there is a bibliography in each chapter. This option will not work when natbib is also loaded; instead, add the option to natbib. (The sectionbib option can always be given, but it only has meaning for the book and report classes, or for classes derived from them.)

Every \included file (with citations) must contain its own \bibliography command where the bibliography is to appear. The database files listed as arguments to this command can be different in each file, of course. However, what is not so obvious, is that each file must also contain a \bibliographystyle command, preferably with the same style argument. If different bibliography styles are specified for different files, then the preprogrammed citation style (punctuation and citation mode) will be that of the first bibliography style given. The preprogrammed citation styles can only be changed in the preamble (see Section 4.4), something that guarantees a uniform style for the entire document.^{3}

4.9 Sorting and Compressing Numerical Citations

Another package by Donald Arseneau, cite.sty, reimplements the entire (numerical) citation system such that one can control the punctuation and citation format, all of which is done by natbib as well. However, it also can sort and compress numerical citations, something that is required by some journals.

What this means is that when multiple citations are given with a single \cite command, the normal order of the numbers is in the sequence given. This is usually a wild list of numbers, such as [4,2,8,3]. With the cite package, this list becomes [2–4,8].

It is impossible to make the cite and natbib packages compatible, since both reimplement \cite from scratch. Instead, I have taken over some of the coding from cite.sty, modifying it for natbib. This coding is activated by including one of the options sort or sort&compress in the \usepackage command.

For author–year citations, the option sort orders the citations in a single \citep or \citet command into the sequence in which they appear in the list of references. This is normally alphabetical first, year second. This should avoid citations of the type: “James et al. (1994b,a)”. For author–year mode, the sort&compress option is identical to sort.

4.10 Long Author List on First Citation

A feature that has often been requested by otherwise happy users of natbib is one that is found in the harvard package as standard: with the first citation of any reference, the full author list is printed, and afterwards only the abbreviated list. One can control this with \citet* for the first citation, and \citet or \citep thereafter. However, the automatic feature is very desired.

3It would be relatively easy to allow changes in style anywhere in the document, but this strikes me as bad policy. However, it is provided for with the docstrip option nopreonly.

This can be activated (version 6.7 and later) with the option longlistfirst.

\shortcites Some references have so many authors that you want to suppress the automatic long list only for them. In this case, issue

     \shortcites{⟨key-list⟩}

before the first citations, and those included in key-list will have a short list on their first citation.

Full author lists can still be forced at any time with the starred variants.

5 Numerical Citations with Author–Year Styles

(New to version 6.0)

In earlier versions, each .bst file could be used either for numerical or author– year citation mode, without any possibility of switching. Obviously numerical .bst files can never be used for author–year citations (the information is missing in the auxiliary file) but there is no reason why the converse should not work.

I have been frequently asked if I could implement this feature, and I at first replied that it would be quite easy. That was a mistake. The numerical information was missing in the auxiliary files, so the \cite commands could never access it.

5.1 New Coding for 6.0

I have now recoded natbib so that the separation of author and year information comes before the information is written to the auxiliary file, and furthermore, a sequential number is also written. This permits numerical citations with any of the author–year bibliographic style files.

The recoding has made fewer internal changes than I expected. Any users who have local redefinitions of my internals should be aware that of the citation commands, only \NAT@citexnum has been altered. Otherwise the changes are in the parsing commands \NAT@parse and \NAT@parse@date. Of the external commands, \bibitem is completely redefined, and \citeauthor, \citeyear, and

\citefullauthor are different.

Version 5.5 actually made far more internal changes: all internal commands were renamed to conform to recommended L^{A}TEX coding practices.

5.2 Selecting Numerical Mode

By default, natbib is in author–year mode. This can be changed by

1. selecting a numerical bibliography style with predefined citation style, defined either in the package or in the local configuration file; 2. giving options numbers or super to the \usepackage command;

3. issuing \bibpunct with the 4th mandatory argument set to n or s;

4. issuing \citestyle with the name of a predefined numerical bibliography style.

The methods are listed in order of increasing priority.

The natbib package will automatically switch to numerical mode if any one of the \bibitem entries fails to conform to the possible author–year formats. There is no way to override this, since such an entry would cause trouble in the author–year mode.

There are certain special ‘numerical’ styles, like that of the standard alpha.bst, which include a non-numerical label in place of the number, in the form

     \bibitem[ABC95]{able95}

As far as natbib is concerned, this label does not conform to the author–year possibilities and is therefore considered to be numerical. The citation mode switches to numerical, and \cite{able95} prints [ABC95].

5.3 New Bibliography Styles

I provide three new .bst files to replace the standard L^{A}TEX numerical ones:

     plainnat.bst     abbrvnat.bst     unsrtnat.bst

These produce reference lists in the same style as the corresponding standard .bst file, but can only be used with natbib. The advantage is that they can be used in both numerical and author–year mode.

In fact, unsrtnat.bst is rather silly for author–year citations: the references are listed in the order they were cited, which makes it difficult to find them. It is only included in case an author wishes to switch from plainnat (author– year) to the unsorted numerical mode, retaining the \citeauthor and \citeyear commands in his paper.

It is not possible to produce a modified version of alpha.bst since it would conflict with the \bibitem format of natbib.

The sample bibliography style file natbib.bst will no longer be distributed. It merely represented a demonstration of the \bibitem syntax for natbib, a function that is now taken over by plainnat.bst and friends.

6 Local Configuration

For L^{A}TEX 2ε, it is possible to add a local configuration file natbib.cfg, which is read in, if it exists, at the end of the package. It may thus contain coding to supecede that in the package, although its main purpose is to allow the user to add his own \bibstyle@bst definitions to couple citation punctuation with local bibliography styles.

7 Options with L^{A}TEX 2ε

One of the new features of L^{A}TEX 2ε is options for the packages, in the same way as main styles (now called classes) can take options. This package is now installed with

     \documentclass[..]{...}
     \usepackage[options]{natbib}

The options available provide another means of specifying the punctuation for citations: round (default) for round parentheses; square for square brackets; curly for curly braces; angle for angle brackets; colon (default) to separate multiple citations with colons; comma to use commas as separaters; authoryear (default) for author–year citations; numbers for numerical citations; super for superscripted numerical citations, as in Nature; sort orders multiple citations into the sequence in which they appear in the list

of references; sort&compress as sort but in addition multiple numerical citations are compres-

sed if possible (as 3–6, 15); longnamesfirst makes the first citation of any reference the equivalent of the

starred variant (full author list) and subsequent citations normal (abbreviated list);

sectionbib redefines \thebibliography to issue \section* instead of \chapter*;

valid only for classes with a \chapter command; to be used with the

     chapterbib package.

If any of the formatting options are selected, the predefined citation styles in the commands \bibstyle@bst will be no longer be effective. If either \bibpunct or \citestyle is given in the preamble, the above punctuation options will no longer hold.

8 As Module to Journal-Specific Styles

Although natbib is meant to be an all-purpose bibliographic style package, it may also be incorporated as a module to other packages for specific journals. In this case, many of the general features may be left off. This is allowed for with docstrip options that not only leave off certain codelines, but also include extra ones. So far, options exist for

subpack produces a basic version with author–year only, fixed citation punctuation, no \bibpunct nor \citestyle nor predefined styles;

subpack,egs for journals of the European Geophysical Society, in particular Nonlinear Processes in Geophysics;

subpack,agu for American Geophysical Union journals.

The subpack option must always be used with package.

Previous options jgr and grl have become obsolete due to revisions in these journals; they have been replaced by the more general agu option.

9 Reference Sheet

A summarization of the main points on using natbib can be obtained by L^{A}TEXing the file natnotes.tex, which is extracted from the main source file natbib.dtx with the docstrip option notes. This is intended to act as a handy reference sheet.

This file should be extracted automatically by the supplied installation file,

natbib.ins.

10 Options with docstrip

The source .dtx file is meant to be processed with docstrip, for which a number of options are available:

all includes all of the other interfaces;

apalike allows interpretation of minimal apalike form of \bibitem;

newapa allows \citeauthoryear to be in the optional argument of \bibitem along with the punctuation commands of newapa.sty;

chicago is the same as newapa;

harvard includes interpretation of \harvarditem;

astron allows \astroncite to appear in the optional argument of \bibitem;

authordate adds the syntax of the \citename command.

This package file is intended to act as a module for other class files written for specific journals, in which case the flexible \bibstyle@bst commands are not wanted. Punctuation and other style features are to be rigidly fixed. These journal options are

agu for journals of the American Geophysical Union;

egs for journals of the European Geophysical Society, in particular Nonlinear Processes in Geophysics.

The remaining options are:

package to produce a .sty package file with most comments removed;

209 (together with package) for a style option file that will run under the older L^{A}TEX 2.09;

subpack (together with package) for coding that is to be included inside a larger package; even more comments are removed, as well as L^{A}TEX 2ε option handling and identification; produces a basic natbib package for author–year only, fixed citation style (punctuation);

notes extracts a summary of usage to be used as a reference sheet; the resulting file is to be L^{A}TEXed;

nopreonly allows \citestyle and \bibpunct to be called anywhere in the text; this is considered possibly useful with the chapterbib package where different chapters might have different bibliography and citation styles; is only provided in case I change my mind about this feature, but for now I refuse to implement it;

driver to produce a driver .drv file that will print out the documentation under L^{A}TEX 2ε. The documentation cannot be printed under L^{A}TEX 2.09.

The source file natbib.dtx is itself a driver file and can be processed directly by L^{A}TEX 2ε.