@Section
@Title { Constructing database entries }
@Tag { entries }
@Begin
@PP
Here is the complete, fixed list of options that you may give to the
@Code "@Reference" symbol:
@ID @Tab
vmargin { 0.5vx }
@Fmta { @Col @Code A ! @Col B }
{
@Rowa
A { "{ @Reference" }
@Rowa
A { " @Tag {}" }
B { Used to cite this reference }
@Rowa
A { " @Type {}" }
B { The type of reference, for example {@Code Book}, {@Code Article} }
@Rowa
A { " @Abstract {}" }
B { Not used, intended to hold an abstract }
@Rowa
A { " @Address {}" }
B { The address of a publisher, organization, or institution }
@Rowa
A { " @Annote {}" }
B { Not used, intended for annotations }
@Rowa
A { " @Author {}" }
B { The author(s) or editor(s) }
@Rowa
A { " @Day {}" }
B { The day of the month, for newspaper articles }
@Rowa
A { " @Edition {}" }
B { The edition, for example @Code "Second Edition" }
@Rowa
A { " @HowPublished {}" }
B { How something strange has been published }
@Rowa
A { " @InAuthor {}" }
B { The author of the work that the cited work appears within }
@Rowa
A { " @InTitle {}" }
B { The title of the work that the cited work appears within }
@Rowa
A { " @Institution {}" }
B { The institution or school }
@Rowa
A { " @Journal {}" }
B { The journal name }
@Rowa
A { " @Keywords {}" }
B { Not used, intended to hold keywords }
@Rowa
A { " @Label {}" }
B { The label of a labelled reference }
@Rowa
A { " @Month {}" }
B { The month of publication or writing }
@Rowa
A { " @Note {}" }
B { Any additional helpful information }
@Rowa
A { " @Number {}" }
B { The number of a technical report }
@Rowa
A { " @Organization {}" }
B { The organization sponsoring the work }
@Rowa
A { " @Page {}" }
B { Page number if only one, for example @Code "23" }
@Rowa
A { " @Pages {}" }
B { Page numbers if more than one, for example @Code "23--47" }
@Rowa
A { " @Pinpoint {}" }
B { A point or part of the work, for example @Code "Chapter VI" }
@Rowa
A { " @Publisher {}" }
B { The publisher of the work }
@Rowa
A { " @Title {}" }
B { The title of the work }
@Rowa
A { " @TitleNote {}" }
B { Additional title information (series, editor, etc.) }
@Rowa
A { " @TRType {}" }
B { The type of a technical report, for example @Code "Research Note" }
@Rowa
A { " @URL {}" }
B { The URL of the reference }
@Rowa
A { " @Volume {}" }
B { The volume of a journal }
@Rowa
A { " @Year {}" }
B { The year of publication or writing }
@Rowa
A { "}" }
}
Every reference may contain any of these options, although, depending
on the {@Code "@Type"} option, only some will be printed. You can't give
an option twice; in particular, multiple authors must be placed
within one @Code "@Author" option, arranged as you want them to appear. Here
is the complete set of values that you may give to the @Code "@Type" option:
@ID @Tab
vmargin { 0.5vx }
@Fmta { @Col @Code A ! @Col @Code B ! @Col @Code C ! @Col @Code D }
{
@Rowa
A { Book }
B { TechReport }
C { Article }
D { InBook }
@Rowa
A { Proceedings }
B { MastersThesis }
C {}
D { InProceedings }
@Rowa
A { PhDThesis }
B { Misc }
C {}
D {}
}
Each column represents one broad category of reference type: the first
contains large works; the second contains small works not appearing
within anything else (although possibly part of a series); the third
contains small works appearing within an ongoing forum for such works;
and the fourth contains small works appearing within large works. In each
case, the reference may be to the work as a whole, or to one point or part
of it (known as pinpointing).
@PP
Some care is needed when choosing the @Code "@Tag" option, since references
are both cited and sorted by tag. It is best to choose a three-part
tag consisting of the first author's surname and possibly initial, the
year of publication, and a brief reminder of the contents:
@ID @Code "@Tag { kingston1995lout.expert }"
Keep to lower-case letters, since mixed cases confuse the sorting, and
give the full four digits of the year to avoid trouble in the year
2000. Multi-word tags are possible but not recommended.
@PP
Unusually for Lout, you can have unquoted @Code "/" and @Code "~"
characters inside the @Code "@URL" option:
@ID @Code "@URL { ftp://ftp.cs.su.oz.au/jeff/lout }"
In fact it is better not to use quotes because then Lout will
be able to break lines at @Code "/" characters, which is very useful
since URLs tend to be long and prone to causing bad line breaks.
@PP
Since the types within each broad category are similar, our plan is to
give one example of each and briefly note how the others differ. Here
is a @Code Book entry showing all its options:
book.ref.type @Index { @Code Book reference type }
@ID @OneRow @Code {
"{ @Reference"
" @Tag { homer.odyssey }"
" @Type { Book }"
" @Author { Homer }"
" @Title { The Odyssey }"
" @TitleNote { Translated by E. V. Rieu }"
" @Pinpoint { Chapter VI }"
" @Pages { 102--111 }"
" @Page { 102 }"
" @Publisher { Penguin Books }"
" @Address { Harmondsworth, Middlesex }"
" @Edition { Penguin Classics Edition }"
" @Month { August }"
" @Year { 1942 }"
" @Note { The date of composition is unknown,"
"but is thought to be about the tenth century BC. }"
"}"
}
And here is what it produces:
@ID @RefPrint homer.odyssey
The only compulsory options are {@Code "@Tag"}, {@Code "@Type"}, and
{@Code "@Title"}, and Lout will carefully adjust the formatting to the
right thing when you omit others. A basic book would have just
{@Code "@Tag"}, {@Code "@Type"}, {@Code "@Author"}, {@Code "@Title"},
{@Code "@Publisher"}, and {@Code "@Year"} options.
@PP
@Code Proceedings is similar, except you
proceedings.ref.type @Index { @Code Proceedings reference type }
may have an @Code "@Organization" or @Code "@Institution" option for
the sponsoring organization if you wish, and the author will either be
absent or an editor:
@ID @Code "@Author { P. W. Lamb, editor }"
There is no option specifically for editors, translators, and so forth.
@PP
@Code PhDThesis is very similar again, with @Code "@Institution"
phdthesis.ref.type @Index { @Code PhDThesis reference type }
instead of {@Code "@Publisher"}, and the phrase `Ph.D. thesis'
appearing by magic in the right spot. Like all words and phrases
introduced automatically by Lout, it will be translated into the current
language if this is not English.
@PP
Moving now to the second broad category, here is a typical {@Code TechReport}:
techreport.ref.type @Index { @Code TechReport reference type }
@ID @OneRow @Code {
"{ @Reference"
" @Tag { christofides1976tsp }"
" @Type { TechReport }"
" @Author { Christofides, N. }"
" @Title { Worst-case analysis of a new heuristic"
"for the travelling salesman problem }"
" @Number { 388 }"
" @Institution { Graduate School of Industrial"
"Administration, Carnegie-Mellon University }"
" @Address { Pittsburgh, PA }"
" @Year { 1976 }"
"}"
}
Here is the result:
@ID @RefPrint christofides1976tsp
The two novelties here are the @Code "@Number" option, which is the
number of the report, and the `Tech. Rep.' phrase. If you
need some other phrase instead, use the @Code "@TRType" option:
@ID @Code "@TRType { Programmer's Manual }"
or whatever. The phrase will be `Master's Thesis' in the
current language for type {@Code MastersThesis}, and absent in type
mastersthesis.ref.type @Index { @Code MastersThesis reference type }
misc.ref.type @Index { @Code Misc reference type }
{@Code Misc}. You may use the pinpointing options ({@Code "@Pinpoint"},
{@Code "@Page"}, and {@Code "@Pages"}) and {@Code "@TitleNote"},
{@Code "@Month"}, and {@Code "@Note"} in the same way as for books.
@PP
Journal articles are referenced by journal name, volume, number, and
page(s):
article.ref.type @Index { @Code Article reference type }
@ID @OneRow @Code {
"{ @Reference"
" @Tag { kingston1993lout.design }"
" @Type { Article }"
" @Author { Jeffrey H. Kingston }"
" @Title { The design and implementation of the"
"Lout document formatting language }"
" @Journal { Software---Practice and Experience }"
" @Volume { 23 }"
" @Pages { 1001--1041 }"
" @Year { 1993 }"
"}"
}
The result of this is
@ID @RefPrint kingston1993lout.design
All are optional, as usual. Notice that @Code "@Pages" and @Code "@Page"
refer to the whole article so are not available for pinpointing here,
but you may still use {@Code "@Pinpoint"}.
@PP
Finally, small works that appear within large works have @Code "@Author"
inbook.ref.type @Index { @Code InBook reference type }
and @Code "@Title" options for the work itself, and @Code "@InAuthor" and
@Code "@InTitle" for the work that it appears within:
@ID @OneRow @Code {
"{ @Reference"
" @Tag { rieu1942intro }"
" @Type { InBook }"
" @Author { E. V. Rieu }"
" @Title { Introduction to @I { The Odyssey } }"
" @InAuthor { Homer }"
" @InTitle { The Odyssey }"
" @Publisher { Penguin }"
" @Year { 1942 }"
"}"
}
@Code "@InAuthor" would often be absent or an editor. The result is
@ID @RefPrint rieu1942intro
The other options are as for large works. Type @Code InProceedings is
inproceedings.ref.type @Index { @Code InProceedings reference type }
similar to {@Code InBook}.
@PP
A database usually has a long life, and some day it might find itself
used in a document whose language is not the one its original compiler
had in mind. For this reason, a truly meticulous compiler of database
entries would enclose @I all language-specific options in
@Code "@Language" symbols:
@ID @OneRow @Code {
"{ @Reference"
" @Tag { zimand1986size.sets.strings }"
" @Type { Article }"
" @Author { French @Language { M. Zimand } }"
" @Title { English @Language { On the topological size of sets of random strings } }"
" @Journal { German @Language { Zeitschr. f. math. Logik und Grundlagen d. Math. } }"
" @Volume { 32 }"
" @Pages { 81--88 }"
" @Year { 1986 }"
"}"
}
(My apologies to M. Zimand if he or she is not French.) This ensures
correct hyphenation whatever the language of the document in which the
reference appears.
@End @Section