11

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?

David Zureick-Brown
  • 695
  • 1
  • 7
  • 13

3 Answers3

8

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

Norman Ramsey
  • 198,648
  • 61
  • 360
  • 533
  • 1
    This is actually a fairly common convention, endorsed by Chicago: cf. CMoS 16.39. So at least some of the gods will let you do this. – Charles Stewart Dec 31 '09 at 10:08
  • 1
    "BibTeX uses one of the world's worst programming languages" - it's actually Not Bad, when its purpose is considered: most .bst files are easy enough to read. The main problem with bibtex, one that justifies "world's worst" is if your style calls for you to parse entries from your .bib file... But then tex is hardly pleasant for this kind of task. – Charles Stewart Dec 31 '09 at 10:13
  • I'd avoid "key" for something that is visible: I reserve such names as key, alternate-key, keys, &c for keys that .bib-file processing programs manipulate to influence what key latex uses from the .bbl file; some others do the same. – Charles Stewart Dec 31 '09 at 10:20
  • 3
    @Charles: As a specialist in programming languages with wide experience of simple postfix languages as well as more general programming languages, I stand by my claim about BibTeX. Oren would have done much better simply to adopt PostScript wholesale (although that might have required a little time travel). Good suggestion on `key` though. – Norman Ramsey Dec 31 '09 at 21:24
  • 1
    @Norman: Let me put it this way: I don't number the limitations of the .bst language among the main defects of bibtex. This is not to defend the .bst language as an example of how to design a concatenative language, where I defer to your superior knowledge. – Charles Stewart Jan 01 '10 at 10:47
  • 1
    @Charles: Thanks for that clarification. Finding defects in bibtex is like shooting fish in a barrel. http://packages.debian.org/search?keywords=nbibtex – Norman Ramsey Jan 01 '10 at 20:01
  • 1
    I still think (despite of any personal taste) that there is a valid desire to have short and "crispy" citation keys. Here's an example where bibtex fails miserably: Citing "{International Color Consortium}" and "{{International Commission on Illumination}}" are both cited as "Int##" (where ## is the year) with `\bibliographystyle{alpha}`. I'd prefer the first to be cited as "ICC##", and the second as "CIE##". – U. Windl Nov 09 '19 at 22:26
3

You can modify the .bst program so that it looks for an additional field, say shown-key, and if it is set uses that rather than the usual.

Charles Stewart
  • 11,661
  • 4
  • 46
  • 85
1

If you are willing to use a different bib style there is a way pointed out by this answer. Using the abstract style, the bibtex key is used as the cite key. Then, you edit each key in the bib file anyway you want it.

A straightforward disadvantage of this approach is that you will have to edit every item in your bib file, however I believe that it is a fair price to pay for such flexibility.

I've seen other possible solutions involving natbib or biblatex, but I wanted to avoid those packages as I sometimes get compilation problems when using them.

Community
  • 1
  • 1
João Matos
  • 6,102
  • 5
  • 41
  • 76