---- title: Beastie: an experimental BibTeX processor SPDX-FileCopyrightText: 2024 Norman Gray SPDX-License-Identifier: BSD-2-Clause Beastie is an experiment in parsing and processing BibTeX files. Beastie is: * A parser for `.bib` files, amongst others. * A implementation of the `.bst` BibTeX Style Language. * That `.bst` implementation is hosted in a dialect of Scheme, extended with suitable parsing and processing primitives. The goals of this project are: * to explore ways of processing `.bib` files which _aren't_ exclusively based on `.bst`; * to provide a second implementation of the BST language; and * to initiate some sort of conversation about BibTeX standards, broadly construed. The `.bst` language counts as rather _niche_. It has substantial amusement value, but expertise could hardly be said to be widespread (of course, one could complain that [Scheme][] has some niche aspects, but it also has its _numerous_ compensating virtues). The implementation of the `.bst` language is intended to be fairly complete, in the sense that it is nearly a drop-in replacement for the `bibtex` program, and deviations from that program are bugs, where they are not noted as deliberate exceptions. Beastie also provides a framework for writing alternative bibliography tools. The ‘experimental’ status means that it is not yet fully-featured in that respect. The fact that it implements the `.bst` language confirms its scope, and acts as some indicator of ‘correctness’, and the [`examples/`](examples/index.xhtml) directory in the distribution illustrates how one would go about writing a from-scratch style file, but there isn't (yet) a drop-in Scheme-based alternative to, for example, `plain.bst`. It is a goal of Beastie to go slightly beyond BibTeX, and to make it a little easier to use `.bib` files to generate HTML or other formats, or for the output of beastie to be ingested into other processing pipelines. This has informed some of the choices made. Features ======== * Programmatic manipulation of BibTeX bibliographies in a high-level language. And using that... * An implementation of the `.bst` BibTeX style language. * `.bib`, `.bst`, `.aux`. and Markdown parser/converters. * A few minor extensions to the `.bst` language. * Slightly more informative error handling. * Parsing of `.bib` files promptly expands a selection of `{\"u}`-style escapes into the corresponding characters (this makes it easier to use this tool for generating HTML and other non-LaTeX bibliographies). * Unicode-aware throughout, in terms of case-folding and word-boundary recognition (with some qualifications). The project has a few deliberate limitations, discussed, along with tentative future plans, in the [main documentation](beastie.xhtml). Most of this is implemented in an embedded copy of s7, from [ccrma.stanford.edu][s7]. Resources ========= * The Beastie home page is – please use this in any long-term references to the software. * Repository and issues list (currently): (note that this has changed several times in the past, most recently mid-2026, and it's not impossible it will change again in future, so use the above URL as a long-term reference to the program). * The distribution should soon be available on [CTAN][]. * The [main documentation](beastie.xhtml) contains a more detailed description of the program, including the functions exposed to the Scheme programs, and release notes. There is also a collection of [examples](examples/index.xhtml). * The [manpage](beastie.1.txt). * There was an article about Beastie v0.12 in TUGBoat, 46:2, pp.220–227 (2025), doi:[10.47397/tb/46-2/tb143gray-beastie](https://doi.org/10.47397/tb/46-2/tb143gray-beastie). The program is distributed under the terms of the 2-clause BSD licence, and includes some material with different licences. See the file `LICENCE.txt` for details. [scheme]: https://en.wikipedia.org/wiki/Scheme_(programming_language) [s7]: https://cm-gitlab.stanford.edu/bil/s7 [s7-docs]: https://ccrma.stanford.edu/software/snd/snd/s7.html [markdown]: https://daringfireball.net/projects/markdown/syntax [csl]: https://citationstyles.org [ctan]: https://www.ctan.org/tex-archive/biblio