URLs in BibTeX bibliographies

There is no citation type for URLs, per se, in the standard BibTeX styles, though Oren Patashnik (the author of BibTeX) is believed to be considering developing one such for use with the long-awaited BibTeX version 1.0.

The actual information that need be available in a citation of an URL is discussed at some length in the publicly available on-line extracts of ISO 690–2; the techniques below do not satisfy all the requirements of ISO 690–2, but they offer a solution that is at least available to users of today’s tools.

Until the new version of BibTeX arrives, the simplest technique is to use the howpublished field of the standard styles’ @misc function. Of course, the strictures about typesetting URLs still apply, so the entry will look like:

@misc{...,
  ...,
  howpublished = "\url{http://...}"
}
A possible alternative approach is to use BibTeX styles other than the standard ones, that already have URL entry types. Candidates are: You can also acquire new BibTeX styles by use of Norman Gray’s urlbst system, which is based on a Perl script that edits an existing BibTeX style file to produce a new style. The new style thus generated has a webpage entry type, and also offers support for url and lastchecked fields in the other entry types. The Perl script comes with a set of converted versions of the standard bibliography styles.

Another possibility is that some conventionally-published paper, technical report (or even book) is also available on the Web. In such cases, a useful technique is something like:

@techreport{...,
  ...,
  note = "Also available as \url{http://...}"
}
There is good reason to use the url or hyperref packages in this context: BibTeX has a habit of splitting lines it considers excessively long, and if there are no space characters for it to use as ‘natural’ breakpoints, BibTeX will insert a comment (‘%’) character … which is an acceptable character in an URL. Any current version of either of the url or hyperref packages detects this “%–end-of-line” structure in its argument, and removes it.
babelbib bundle
babelbib
custom-bib bundle
custom-bib
harvard.sty
harvard
hyperref.sty
hyperref
natbib styles
natbib
url.sty
url
urlbst
urlbst