A BibTeX system in Common Lisp
I am writing a replacement for the BibTeX program 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.
Development
pages on savannah.gnu.org
Download
Unofficial
Debian package
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
Alpha. As of version 0.3.1 (released 2002-12-15), the system already
has:
- A reader for BibTeX style files (
.bst
),
- a reader for bibliography databases (
.bib
),
- a reader for
.aux
files,
- an implementation of BibTeX's built-in functions (like for parsing and
formatting names, etc.)
- an interpreter for the stack language of BibTeX style files,
- a compiler that transforms BibTeX style files into comprehensible
Common Lisp programs (using type analysis); see
amsalpha.bst
and the
resulting Common Lisp program amsalpha.lbst
- a command-line interface that emulates the BibTeX program
Missing so far:
- more precise handling of special characters (
{\'o}
),
- a library of useful subroutines commonly defined in BibTeX style files,
- a test-suite, consisting of database files and BibTeX style files,
for testing the correctness of
cl-bibtex
.
Matthias Koeppe
$Id: index.html,v 1.14 2003/01/21 12:59:19 mkoeppe Exp $