Is there a way to override a bibtex style file for a particular entry?

David Zureick-Brown picture David Zureick-Brown · Dec 30, 2009 · Viewed 7.1k times · Source

My preferred bibtex style file cites via author's initials. However, there are various texts which should be cited differently (for example, Elements Geometrie Algebrique should always be cited as [EGA]). I know how to modify this in the .bbl file that bibtex outputs, but then I have to do this for every file. Is there a way to do this from my .bib file?

Answer

Norman Ramsey picture Norman Ramsey · Dec 31, 2009

My preferred bibtex style file cites via author's initials. However, there are various texts which should be cited differently...

I hope I don't get flamed for this, but your preferred bibtex style file does not serve your readers very well. Part of my job is to review papers, and a jumble of initials like [GKS] is not nearly as helpful as a full author-date citation like [Guibas, Knuth, and Sharir 1990]. For a knowledgeable reader, the authors and date often make it unneccessary to refer to the bibliography. For a naïve reader, a group of names is much easier to remember then a group of letters, especially when one or more of the names may be familiar. These issues are discussed in detail by, e.g., the Chicago Manual of Style, which explains the proper way to cite from the professional literature.

I go on at such length because I believe you are solving the wrong problem. Although I believe your readers will quickly recognize [EGA], I would hope they would also recognize (Grothendieck 1960) or (Grothendieck and Dieudonné 1967).

Can I [modify the way a work is cited] by changing my .bib file?

Not if you want to use any of the standard BibTeX styles. BibTeX uses one of the world's worst programming languages, and the standard programs are very firm about using the author or editor of a work for form the citation key. If you really want to do this, I recommend the following procedure:

  1. Clone and modify something like the plainnat.bst file. This will enable you to create a new "bibliography style."

  2. Create a new type of BibTeX entry which will enable you to specify the citation key using a special field (key is a popular choice).

  3. Alter the calc.label function to do the right thing with your new type of entry. If you're lucky, changing calc.label will be enough to be sure the thing is sorted properly.

  4. Use your nonstandard type in your .bib file and use your nonstandard \bibliographystyle{...} in all your LaTeX documents.

The gods really don't want you to do this—and neither do your coauthors...