This is a collection of bibtex functionality for LAML.
One main part of this collection provides a parsing function of a bibtex file, leaving the result as
a list of Lisp association lists.
Another part accesses information in parsed bibtex file.
The last part has HTML/LAML presentation functions for bibtex.
Please notice that this is still not a complete bibtex parser. We currently support only the
most common and most used constructs. The Bibtex presentation functions are not complete either.
The LAML bibtex parser is not very fast. So we envision that the
parser is activated every now and then on a bibtex file f.bib, in
order to produce the parsed lisp file f.lsp. We recommend that you
place an LAML command file together with you bibtex file which does
that job.
You can read such files using the function read-parsed-bibtex-files.
Usage:
It is possible to parse a bibtex file and get
the list bibtex entries represented as association lists. This is done by parse-bibtex-file. The variable
parse-result will contain the entries.
As an example, the parser is can be activated by
(parse-bibtex-file "file")
where "file" is the file name without the bib extionsion.
Given the existence of a list of bibtex entries represented as a list
of association lists bibtex-list, say parse-result, it is possible to HTML present this list by for instance
(present-bibtex-entries parse-result (p))
Often it will be useful to extract some subset of a bibtex list. This
can, of course, be done be filtering, but the following methods makes
it possible to extract a subset given a key-list, for instance via
(bibtex-entries key-list bibtex-list warn-if-non-existing-entry)
The keylist itself can be produced from a bibtext-list via the following call:
(key-list-matching "normark" bibtex-list)
Besides the general library, this library requires the collect-skip parsing library (not loaded by bibtex).
The presentation part also assumes that the HTML mirrors are loaded.
There exists a function called bibtex in laml.scm which activates the bibtex parser, and which in addition
presents the bibtex entries in HTML via LAML. The bibtex function should be activated in an interactive
LAML session (from a Scheme prompt with LAML loaded).