Is there a program or a script to check BibTeX files against compliance against a standard (e.g. APA style)?

  1. For example, author with two initials should be stored with the two initials separated by a space, e.g. Alistair Balthasar Smith should be stored as Smith, A. B., not Smith, A.B. However, Google Scholar always returns the two initials together without the space between them, and causes the reference section in the output to miss the second initial.
  2. Another example: APA style requires both the start and end pages for a journal article, but Google Scholar sometimes does not return the end page.
  3. A third example: all words in the name of a journal should be capitalized but once in a while it is not formatted as so.
  4. A fourth (new) example: I found that in a very small number of references I had "---" instead of "--" in the page number field, turning it into a long dash.

I have been doing the checks myself manually but am hoping for an automated solution.

  • 3
    Technically, in your .bib file, Alistair Balthasar Smith should be stored as "Alistair Balthasar Smith", and the .bst file should do the extraction of initials as needed. May 1, 2012 at 18:59
  • is the apa style defined as a series of symbolic-logic expressions? if so, all you need is a robust semantic parser of a bibtex file, which will reduce it to the same sort of thing, and then a pretty trivial script. oddly, the parser might well be easier to find: the rigorous statement of apa style seems to me deeply unlikely. May 1, 2012 at 20:47
  • @Mike Renfro True, but it is harder to find citation records with full first names. I know citeulike.org does that but I found Google Scholar much quicker/easier to use. May 1, 2012 at 21:04
  • @wasteofspace It shouldn't be too difficult to write such a script. But I'd rather find one than to write one from scratch. Plus the existing script (if exists) might take care of issues that I haven't thought of. May 1, 2012 at 21:05
  • @ceilingcat Have you written a solution now? Dec 1, 2012 at 23:34


Browse other questions tagged .