5.3.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. Any of
name or
names
that are strings are
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.