[Tex/LaTex] Which \bibliographystyle covers which BibTeX entries

bibtex

I fail in finding overview of default bibliography styles. I am curious which is covering which fields. So far I know that difference between alphaurl and alpha is field url. What are other differences between style ?
I am exporting my collection to bibtex file, so I'd like to know which fields are going to stay, which are going to disappear.

Best Answer

Indeed, there's a plethora of bibliography style files (extension .bst), but no central repository that lists what each of them does. The four "classic" .bst files -- thus-named because they came with the initial release of BibTeX -- are "plain.bst", "unsrt.bst", "alpha.bst", and "abbrv.bst"; see the BibTeX manual for information on these styles.

The "classic" style files were designed originally for numeric citation methods, but citation management packages such as harvard and natbib were developed that let you use these style files with author-year citation methods. The natbib package comes with abbrvnat.bst, unsrtnat.bst, and plainnat.bst, all of which recognize more fields -- including, you guessed it, the "url" field -- than the classic style files do.

The "classic" bst files recognize the following fields for an entry (of course, not all fields make sense for all entries):

address, author, booktitle, chapter, edition, editor, 
howpublished, institution, journal, key, month, note, 
number, organization, pages, publisher, school,
series, title, type, volume, year

The natbib bst files, in addition, recognize (i.e., "know what to do with") the following five fields:

doi, eid, isbn, issn, url

Assuming that quite a few of your entries will have url and doi fields, I recommend you go for one of the newer bst files rather than stick with the classic ones.

A big plus of the natbib package (which lets you do both numeric and auhor-year type citations, by the way) is that it works very well with the hyperref package. If hyperref is a package you're contemplating using, but if you're already using harvard and don't want to re-write all citation commands just to conform to the natbib syntax, don't despair: From now on, just load both the natbib and har2nat packages (and don't load the harvard package anymore). The har2nat package, you guessed it, translates the "harvard"-style citation commands into "natbib"-style citation commands...