A BibTeX system in Common Lisp

CL-BibTeX is a replacement for the BibTeX program, written in Common Lisp. The aim is to enable the user to format bibliographic entries using Common Lisp programs, rather than using the stack language of BibTeX style files.

It is released under the terms of version 2.1 of the GNU Lesser General Public License as published by the Free Software Foundation or any later version, as clarified for use with Common Lisp programs by the preamble found in COPYING-preamble.txt.

Update 2015: Development now takes place on GitHub at https://github.com/mkoeppe/cl-bibtex.

Obsolete:

Development pages on savannah.gnu.org

Download

Reasons

A powerful tool is needed for dealing with citations in scientific documents. BibTeX is good for formatting bibliographies, but customizing the format is a pain because it requires writing/changing a program in BAFLL (BibTeX Anonymous Forth-Like Language -- Drew McDermott in comp.lang.lisp):
FUNCTION {tie.or.space.connect}
{ duplicate$ text.length$ #3 <
    { "~" }
    { " " }
  if$
  swap$ * *
}
Other citation-related processing like producing a list of authors and citation indices is usually done with a combination of BibTeX, TeX macros, and ad-hoc scripting with perl or awk.

The new cl-bibtex system aims to replace all this.

Status

CL-BibTeX is a compatible and stable re-implementation of the BibTeX program, which was written by Oren Patashnik in the WEB language.

It consists of the following components:

Thus CL-BibTeX allows to both use existing BibTeX style files, and to write new BibTeX styles in Common Lisp.

In addition to this, CL-BibTeX contains:

Matthias Koeppe
$Id: index.html,v 1.16 2015/05/13 05:14:20 mkoeppe Exp $