Natural Sciences Citations and References

(Author-Year and Numerical Schemes)

Patrick W. Daly

This paper describes package natbib version 5.4 from 1995/02/08

It is intended for L^{A}TEX 2ε (but does include a variant for L^{A}TEX 2.09)

Abstract

Journals in the natural sciences tend to use the author-year style of literature citations, in contrast to the numerical style supported by L^{A}TEX and BibTEX. A number of style options exist to accommodate this scheme, but with various new sets of \cite commands and a variety of ways of entering the information in the \bibitem entry. Instead, natbib.sty uses the \cite command almost exactly as provided in original L^{A}TEX, and yet can read in the \bibitem information in all the formats available.

Even those journals that do use numbered citations exhibit a variety of styles that are not so easy to reprogram into L^{A}TEX. This style option offers an interface for both author-year and numerical styles, with a means to redefine the citation format automatically based on the name of the style in the \bibliographystyle command. For example, by selecting the style nature, then the style of references is that of the journal Nature, i.e., as superscript numbers. It is easy to add new definitions to natbib.sty for other bibliographic styles. Alternatively, these local definitions may be stored in a configuration file natbib.cfg.

Thus natbib.sty can act as a single package for all bibliographic styles available.

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

Although the author-year citation style is not supported by standard L^{A}TEX, there are a number of private styles around that have worked on this problem. The various bibliographic styles (.bst files) that exist are usually tailored to be used with a particular L^{A}TEX style option.

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.

One serious drawback of natsci.bst is that it has been written for BibTEX version 0.98, which is no longer current. It could be converted to version 0.99 by replacing every occurrence of := by swap$ :=.

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 above. 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 new substitute for \bibitem is used, as

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

The accompanying interfacing style 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

     agms, 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 style file astron.sty (which I have not yet been able to obtain), 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 styles 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 by 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}...

(The second form is new to version 5.3.)

The separation can be done be using the parentheses as delimiters to an appropriate command. Parentheses are used no matter what characters are actually to surround the citation. The minimal (apalike) system can also have the authors and year separated, but only by assuming that the authors are divided from the year by comma and blank. If the author list itself contains a comma and blank, the separation will be incorrect.

My system, called natbib for ‘natural sciences bibliography’, admittedly does not contain the full author list in the citation label, something that I have never needed. However, its advantage over the newapa style is that for someone typing his thebibliography environment by hand, without BibTEX, there is less work to be done. This is of no importance if one uses BibTEX as one should!

My package,^{1} natbib.sty, supports my own \bibitem format, as well as all the others described here, plus numerical citation styles. The additional questions of punctuation (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 style file to handle all the bibliographic citation styles in a uniform manner.

As of version 5.1 (1994 June 22), the source file contains coding for a L^{A}TEX 2ε package file (the new standard) as well as that for an older L^{A}TEX 2.09 style option file. The latter is extracted with the docstrip option 209. (Version 5.0, issued before the official release of L^{A}TEX 2ε, could run under both 2.09 and the preliminary test release, but has some problems with the first official version of L^{A}TEX 2ε.)

3.1 Usage of this Package

\cite The natbib package makes use of the \cite command in precisely the same manner as in standard L^{A}TEX, unlike all the other author-year interface style options. The distinction between parenthetical and textual citations is made by means of the optional argument to \cite, which only has meaning in the parenthetical case. Thus a null optional argument indicates a citation in parentheses.

\cite{jon90}  ⇒ Jones et al. (1990)
\cite[]{jon90}  ⇒ (Jones et al., 1990)
\cite[chap.~2]{jon90} ⇒ (Jones et al., 1990, chap. 2)

A new feature not in standard L^{A}TEX is the possibility of adding a second optional text, for notes before and after the citation. (In earlier versions, I provided a single note either before or after, selectable with a docstrip option; this option is no longer needed.)

\cite[e.g.,][]{jon90}  ⇒ (e.g., Jones et al., 1990)
\cite[see][pg.~34]{jon90} ⇒ (see Jones et al., 1990, pg. 34)

Beware: a single optional note goes after the citation, as in normal L^{A}TEX; with two notes, the first goes before, the second after.

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.

\cite{jon90,jam91}  ⇒ Jones et al. (1990); James et al. (1991)
\cite[]{jon90,jam91}  ⇒ (Jones et al., 1990; James et al. 1991)
\cite[]{jon90,jon91}  ⇒ (Jones et al., 1990, 1991)

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

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

(The last possibility exists only in versions 5.4 or later.)

It is also possible to print the citation with the full author list, if that is supported by the bibliography style, by adding an asterisk, as \cite*.

\cite*[]{jon90,jam91} ⇒ (Jones, Baker, and Williams, 1990)

The asterisk can be added to any of the above variations of \cite.

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

\citeyear
\citefullauthor

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

      \citeauthor{jon90}  ⇒ Jones et al.

\citefullauthor{jon90} ⇒ Jones, Baker, and Williams

      \citeyear{jon90}  ⇒ 1990

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

The native natbib form of the \bibitem entry now (version 5.3) also supports the full author list.

Multiple citations are not allowed with these commands. Also, if they are used with a numerical citation scheme, they produce warning messages.

\bibpunct The above examples have been printed with the default set of punctuation. It is possible to change this, as well as to select numerical or author-year style, by means of the \bibpunct command, which takes 6 arguments:

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 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 {,~}.

The \bibpunct command must be issued before the first \cite command, and

after \begin{document}.
   Example, \bibpunct{[}{]}{,}{a}{}{;} would change the output from \cite[]{jon90,jon91,jam92}

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

\bibstyle@xxx Usually the punctuation style is determined by the journal for which one is writing, and is as much a part of the bibliography style as everything else. It would therefore make more sense if it could be included in the .bst file. This is conceivable, and may be considered as a future extension.

For now, however, in order to avoid having to specify the punctuation style explicitly in every document (and possibly having to change it if the article is submitted to another journal), natbib 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

     \def\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 uses superscripted numbers for citations. To accommodate this, natbib contains the style definition

      \def\bibstyle@nature{\bibpunct{}{}{,}{s}{}{}%
           \gdef\@biblabel##1{##1.}}

The redefined \@biblabel 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.

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.)

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

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

\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.

3.2 Options with L^{A}TEX 2ε

The new (mid-1994) L^{A}TEX standard replaces style options by packages, although both bear the extension .sty. Most style options written for the older L^{A}TEX 2.09 will run as packages under L^{A}TEX 2ε. Version 5.0 of natbib is intended to run under the newer standard, but will also run under the older one, at least if the docstrip option 209 has been used during the extraction.

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;

nobibstyle to ignore punctuation style specified by \bibliographystyle.

The last option, nobibstyle, is necessary if the punctuation specified by the options is to dominate over any pre-programmed ones given by a \bibstyle@xxx. For example, to use the plain.bst format for the bibliography with superscripted citations, one gives

     \documentclass{article}
     \usepackage[super,nobibstyle]{natbib}
     . . . . .
     \bibliographystyle{plain}

Any punctuation style set with \bibpunct always has topmost priority!

3.3 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 nlinproc for Nonlinear Processes in Geophysics,

agu for American Geophysical Union journals.

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

4 Summary

The natbib package offers a powerful interface for almost all existing BibTEX style files. It handles both numerical and author-year citations with a uniform usage of the \cite command. Additional modifications that depend on the .bst file selected, and which are normally included in separate style option files designed just for that bibliographic style, may easily be added to natbib for automatic implementation in the source text. Thus natbib represents a universal interface for all citation schemes.