Version: 5.3
3 Bibliographies
This library provides support for bibliography management in a Scribble
document. The define-cite form is used to bind procedures
that create in-line citations and generate the bibilography in the
document.
Individual bibliography entries are created with the make-bib
function. See below for an example.
#lang scribble/base |
|
@(require scriblib/autobib) |
|
@(define-cite ~cite citet generate-bibliography) |
|
@(define plt-tr1 |
(make-bib |
#:title "Reference: Racket" |
#:author (authors "Matthew Flatt" "PLT") |
#:date "2010" |
#:location (techrpt-location #:institution "PLT Inc." |
#:number "PLT-TR-2010-1") |
#:url "http://racket-lang.org/tr1/")) |
|
Racket is fun@~cite[plt-tr1]. |
|
@(generate-bibliography) |
(define-cite ~cite-id citet-id generate-bibliography-id | option ...) |
|
|
option | | = | | #:style style-expr | | | | | | #:disambiguate disambiguator-expr | | | | | | #:render-date-bib render-date-expr | | | | | | #:render-date-cite render-date-expr | | | | | | #:date<? date-compare-expr | | | | | | #:date=? date-compare-expr |
|
|
|
Binds ~cite-id, citet-id, and
generate-bibliography-id, which share state to accumulate and
render citations.
The function bound to ~cite-id produces a citation referring
to one or more bibliography entries with a preceding non-breaking
space, by default sorting the entries to match the bibliography order.
It has the contract
(->* (bib?) (#:sort? any/c) #:rest (listof bib?) element?)
The function bound to citet-id generates an element suitable
for use as a noun—referring to a document or its author—for one
or more bibliography entries which share an author. It has the contract
(->* (bib?) () #:rest (listof bib?) element?)
The function bound to generate-bibliography-id generates the
section for the bibliography. It has the contract
(->* () (#:tag string? #:sec-title string?) part?)
The default value for the #:tag argument is "doc-bibliography"
and for #:sec-title is "Bibliography".
The optional style-expr determines the way that citations and
the bibliography are rendered.Programmer-defined styles
may be supported in the future. Currently, two built-in style are
provided, and author+date-style is the default.
For author+date-style,
if two citations’ references would render the same (as judged by equal
authors and dates that are considered the same) but are different, the
optionally provided function from disambiguator-expr is used
to add an extra element after the date; the default disambiguator adds
a, b, etc. until z, and anything more
ambiguous raises an exception. Date comparison is controlled by
date-compare-exprs. Dates in citations and dates in the
bibliography may be rendered differently, as specified by the
optionally given render-date-expr functions.
Returns
#t if
v is a value produced by
make-bib or
in-bib,
#f otherwise.
Produces a value that represents a document to cite. Except for
is-book? and
url, the arguments are used as
elements, except that
#f means that the information is not
supplied. Functions like
proceedings-location,
author-name, and
authors help produce elements in a
standard format.
Dates are internally represented as date values, so a date
may be given, or a number or string that represent the year.
An element produced by a function like author-name tracks
first, last names, and name suffixes separately, so that names can be
ordered and rendered correctly. When a string is provided as an author
name, the last non-empty sequence of alphabetic characters or
- after a space is treated as the author name, and the
rest is treated as the first name.
Extends a bib value so that the rendered citation is suffixed with
where, which might be a page or chapter number.
Combines elements to generate an element that is suitable for
describing a paper’s location within a conference or workshop
proceedings.
Combines elements to generate an element that is suitable for
describing a paper’s location within a journal.
Combines elements to generate an element that is suitable for
describing a book’s location.
Combines elements to generate an element that is suitable for
describing a technical report’s location.
|
institution : edition = any/c |
degree : any/c = "PhD" |
Combines elements to generate an element that is suitable for
describing a dissertation.
Combines elements to generate an element that is suitable for
describing an author’s name, especially where the last name is not
merely a sequence of ASCII alphabet letters or where the name has a
suffix (such as “Jr.”).
Combines multiple author elements into one, so that it is rendered and
alphabetized appropriately. If a
name is a string, it is
parsed in the same way as by
make-bib.
Converts an element for an organization name to one suitable for use
as a bib-value author.
Generates an element that is suitable for use as a “others” author.
When combined with another author element via
authors, the
one created by
other-authors renders as “et al.”
Takes an author-name element and create one that represents the editor
of a collection. If a
name is a string, it is parsed in the
same way as by
make-bib.