▼ |  | Scriblib: Extra Scribble Libraries

1 | Examples Using the GUI Toolbox
2 | Figures
3 | Bibliographies
4 | Bib Te X Bibliographies
5 | Footnotes
6 | Conditional Content
7 | Book-Style Indexing

On this page:

define-bibtex-cite
define-bibtex-cite*
bibdb
path->bibdb
bibtex-parse

8.2
top ← prev up next →

### 4`` BibTeX Bibliographies

(require scriblib/bibtex) | package: scribble-lib

> > syntax

> > (define-bibtex-cite bib-pth ~cite-id citet-id generate-bibliography-id
> > option ...)

Expands into:

> (begin
> (define-cite autobib-cite autobib-citet generate-bibliography-id
> option ...)
> (define-bibtex-cite* bib-pth
> autobib-cite autobib-citet
> ~cite-id citet-id))

> > syntax

> > (define-bibtex-cite* bib-pth autobib-cite autobib-citet
> > ~cite-id citet-id)

Parses bib-pth as a BibTeX database, and augments autobib-cite and autobib-citet into ~cite-id and citet-id functions so that rather than accepting bib? structures, they accept citation key strings.

Each string is broken along spaces into citations keys that are looked up in the BibTeX database and turned into bib? structures.

The only BibTeX entries that are supported are: misc, book, article, inproceedings, webpage, mastersthesis, and techreport.

> > struct

> > (struct bibdb (raw bibs))

> raw : (hash/c string? (hash/c string? string?))
> bibs : (hash/c string? bib?)

Represents a BibTeX database. The raw hash table maps the labels in the file to hash tables of the attributes and their values. The bibs hash table maps the same labels to Scribble data-structures representing the same information.

> > procedure

> > (path->bibdb path) → bibdb?

> path : path-string?

Parses a path into a BibTeX database.

> > procedure

> > (bibtex-parse ip) → bibdb?

> ip : input-port?

Parses an input port into a BibTeX database.
top ← prev up next →