BIB - A Program for Formatting Bibliographies USD:31-1
BIB - A Program for Formatting Bibliographies
Timothy A. Budd
The University of Arizona
Department of Computer Science
Tucson, Arizona 85721
Bib is a program for collecting and formatting reference
lists in documents. It is a preprocessor to the nroff/troff
typesetting systems, (much like the tbl [.tbl.] and eqn [.eqn.]
programs) and an alternative to the refer [.lesk refer.] bibliog-
raphy program. Bib takes two inputs: a document to be formatted
and a library of references. Imprecise citations in the source
document are replaced by more conventional citation strings, the
appropriate references are selected from the reference file, and
commands are generated to format both citation and the referenced
item in the bibliography.
An imprecise citation is a list of words surrounded by the
characters [. .]. Words (which are truncated to six letters) in
the imprecise citation are matched against entries in the refer-
ence file, and if an entry is found that matches all words, that
reference is used. For example:
In Brooks's interesting book [. brooks mythical.] various
reasons ...
Multiple citations are indicated by simply placing a comma
in the imprecise citation:
In [.kernig tools, kernig elements.], Kernighan and Plauger
have ...
Embedded newlines, tabs and extra blanks within the impre-
cise citation are ignored.
Judicious use of the K (keyword) field in references in the
database can simplify citations considerably. Also additional
information can be placed into citations by surrounding text with
curly braces. The additional information is inserted verbatim
into the citation, e.g. [.dragon {, Chapter 6}.]. Note that it
April 27, 2013
USD:31-2 BIB - A Program for Formatting Bibliographies
may be desirable to use non-breakable spaces, in order that the
citation not be split across a line boundary by troff, for exam-
ple:
For a description of LR parsing, see [.dragon {,\ Chapter
6}.] by Aho and Ullman.
An alternative citation style can be used by surrounding the
imprecise citation with {. and .}. Most document styles just
give the raw citation, without the braces, in this case. This is
useful, for example, to refer to citations in running text.
For a discussion of this point, see reference {.dragon.}.
The algorithm used by bib scans the source input in two
passes. In the first pass, references are collected and the loca-
tion of citations marked. In the second pass, these marks are
replaced by the appropriate citation, and the entire list of
references is dumped following a call on the macro .[]. This
macro is left untouched. However, this can be altered to achieve
other typographic effects.
An exception to this process is made in those instances
where references are indicated in footnotes. In this case the
macro that generates the reference is placed immediately after
each line in which the reference is cited.
Reference files are prepared for bib using invert. By
default invert places an inverted index for the reference list in
the file INDEX. Unless the user specifies an alternative (see
the -p switch described below), this is the first file searched
by bib in attempting to locate a reference. If the entry is not
found in the user's file, a standard system-wide index is
searched. If the entry is still not found in the system file, a
warning message is produced and a blank citation is generated.
The format for entries in the reference file is described
more fully in the section `Reference File Formats'. This format
is similar to that used by refer with the following exceptions:
1. An F field, if present, overrides whatever citation string
would otherwise be constructed.
2. Certain defined names can be used, and will be expanded dif-
ferently by different document styles. For example, the
string CACM is expanded into `Communications of the ACM' by
some document styles, `Comm. ACM' by others, and `Comm. of
the Assoc. of Comp. Mach.' by yet others. Appendix 1 lists
the currently recognized names.
April 27, 2013
BIB - A Program for Formatting Bibliographies USD:31-3
3. The program automatically abbreviates names, reverses names,
and hyphenates strings of contiguous references, if
requested.
4. A reference can have more than one editor field, and
editor's names can be abbreviated, reversed, and/or printed
in cap/small caps style, independent of any processing done
to authors names.
Since the user's index is searched before the system index,
if the user wants to alter a specific entry in the system index
(say to change the name W. E. Howden to William E. Howden, for
example) it is a simple matter to copy the system information
into a private database and make the changes locally.
Citation formats are either determined by explicit switch
settings or, more generally, by using a predefined formatting
style. In the latter form, usage looks something like:
bib -tstyle [files]
where style is a citation style. Currently the following citation
styles are available:
stdn (standard numeric) numeric citation. Reference entries are
listed in citation order.
stdsn same as stdn, but references are sorted by senior author
followed by date.
stda (standard alphabetic) citations are three letters followed
by the last two digits of the date. For papers with a sin-
gle author, the letters are the first three letters of the
authors last name (e.g. Knu). In papers with two authors
the first two letters are from the first author followed by
one letter from the second (e.g. HoU). If three or more
authors are given the first letters from the first three
authors are used (e.g. AHU).
openn same as stdsn, only using an open reference format (each
major entry is on a new line1).
opena same as stda, but using an open format.
foot footnoted references.
supn same as stdn, but using superscripts.
spe format used by the journal Software-Practice and
_________________________
1. The open reference format is adapted from A Handbook
for Scholars, by Mary-Claire van Leunen, published by
Knopf, 1978.
April 27, 2013
USD:31-4 BIB - A Program for Formatting Bibliographies
Experience. Eventually there will be macro packages avail-
able for several journal styles.
It is possible to alter slightly the format of standard
styles. For example, to generate references in standard numeric
style, but abbreviate first names, the following can be used:
bib -tstdn -aa ...
If two reference items create the same citation string (this
can happen if two papers authored by the same person in a single
year are referred to in one paper) a disambiguating final letter
is added to the citation (i.e., Knu79 becomes Knu79a and Knu79b).
As noted previously, this can be altered by using the F field.
For the purposes of sorting by author, the last name is
taken to be the last word of the name field. This means some
care must be taken when names contain embedded blanks, such as in
`Hartley Rogers, Jr.' or `Mary-Claire van Leunen'. In these cases
a concealed space (\ ) should be used, as in `Hartley
Rogers,\ Jr.'.
bib knows very little about troff usage or syntax. This can
sometimes be useful. For example, to cause an entry to appear in
a reference list without having it explicitly cited in the text
the citation can be placed in a troff comment.
.\" [.imprecise citation.]
It is also possible to embed troff commands within a refer-
ence definition. See `abbreviations' in the section `Reference
Format Designer's Guide' for an example.
In some styles (superscripts) periods and commas should pre-
cede the citation while spaces follow. In other styles (brackets)
these rules are reversed. If a period, comma or space immedi-
ately precedes a citation, it will be moved to the appropriate
location for the particular reference style being used. This
movement is not done for citations given in the alternative
style.
The following is a complete list of options for bib:
-aa reduce author's first names to abbreviations.
-arnum reverse the first num author's names. If num is omitted
all names are reversed.
-ax print authors last names in Caps-Small Caps style. For
example Budd becomes BUDD.
-cstr build citations according to the template str. See the
reference format designer's guide for more information on
April 27, 2013
BIB - A Program for Formatting Bibliographies USD:31-5
templates.
-ea abbreviate editors' names
-ex places editors' names in Caps-Small Caps style. (see -x
)
-ernum reverse the first num editors' names. If num is omitted
all editors' names are reversed.
-f instead of dumping references following the call on .[],
dump each reference immediately following the line on
which the citation is placed (used for footnoted refer-
ences).
-h hyphenate runs of three or more contiguous references in
the citation string. (eg 2,3,4,5 becomes 2-5). This is
most useful for numeric citation styles, but works gen-
erally. The -h option implies the -o option.
-i file
-ifile include and process the indicated file. This is useful
for including a private file of string definitions.
-nstr turn off the indicated options. str must be composed of
the characters afhorx.
-o sort contiguous citations according to the order given by
the reference list. (This option defaults on).
-p file
-pfile instead of searching the file INDEX, search the indicated
reference file(s) before searching the system file. Mul-
tiple files are separated by commas.
-sstr sort references according to the template str.
-t type
-ttype use the standard macros and switch settings to generate
citations and references in the indicated style.
Reference File Formats
A reference file is a file containing any number of refer-
ence items. Reference items are separated by one or more blank
April 27, 2013
USD:31-6 BIB - A Program for Formatting Bibliographies
lines. There are no restrictions placed on the order of items in
a file, although imposing some order (such as sorting items
alphabetically) simplifies updates.
A reference item is a collection of field tags and values. A
field tag is a percent sign followed by a single letter.
Currently, the following field tags are recognized:
A Author's name
B Title of book containing item
C City of publication
D Date
E Editor(s) of book containing item
F Caption
G Government (NTIS) ordering number
I Issuer (publisher)
J Journal name
K Keys for searching
N Issue number
O Other information
P Page(s) of article
R Technical report number
S Series title
T Title
V Volume number
W Where the item can be found locally
X Annotations (not in all macro styles)
Author and editor fields can be repeated, as necessary, but
all other fields can occur at most once in any reference. The
field information is as long as necessary, and can extend onto
new lines. Lines that do not begin with a percent sign or a
period are treated as continuations of the previous line. The
order of fields is irrelevant, except that authors and editors
are listed in the order of occurrence.
Generally a reference falls into one of several basic
categories. An example of each and a brief comment is given
below. With less standard references (Archival Sources,
Correspondence, Government Documents, Newspapers) generally some
experimentation is necessary.
Books
A book is something with a publisher that isn't a journal
article or a technical report. Generally, books also have
authors and titles and dates of publication (although some
don't). For books not published by a major publishing house it
is also helpful to give a city for the publisher. Some govern-
ment documents also qualify as books, so a book may have a
government ordering number.
It is conventional that the authors names appear in the
reference in the same form as on the title page of the book.
April 27, 2013
BIB - A Program for Formatting Bibliographies USD:31-7
Note also that string definitions are provided for most of the
major publishing houses (PRHALL for Prentice-Hall, for example).
The string definition may include the city as part of the defini-
tion, depending on the database in use.
%A R. E. Griswold
%A J. F. Poage
%A I. P. Polonsky
%T The SNOBOL4 Programming Language
%I PRHALL
%D second edition 1971
Sometimes a book (particularly old books) will have no
listed publisher. The reference entry must still have an I field.
%A R. Colt Hoare
%T A Tour through the Island of Elba
%I (no listed publisher)
%C London
%D 1814
If a reference database contains entries from many people
(such as a departmental-wide database), the W field can be used
to indicate where the referenced item can be found; using the
initials of the owner, for example. Any entry style can take a W
field, since this field is not used in formatting the reference.
The K field is used to define general subject categories for
an entry. This is useful in locating all entries pertaining to a
specific subject area. Note the use of the backslash, to indicate
the last name is Van Tassel, and not simply Tassel.
%A Dennie Van\ Tassel
%T Program Style, Design, Efficiency,
Debugging and Testing
%I PRHALL
%D 1978
%W tab
%K testing debugging
Journal article
The only requirement for a journal article is that it have a
journal name and a volume number. Usually journal articles also
have authors, titles, page numbers, and a date of publication.
They may also have numbers, and, less frequently, a publisher.
(Generally, publishers are only listed for obscure journals).
Note that string names (such as CACM for Communications of
the ACM) are defined for most major journals. There are also
string names for the months of the year, so that months can be
abbreviated to the first three letters. Note also in this example
the use of the K field to define a short name (hru) that can be
used in searching for the reference.
April 27, 2013
USD:31-8 BIB - A Program for Formatting Bibliographies
%A M. A. Harrison
%A W. L. Ruzzo
%A J. D. Ullman
%T Protection in Operating Systems
%J CACM
%V 19
%N 8
%P 461-471
%D AUG 1976
%K hru
Article in conference proceedings
An article from a conference is printed as though it were a
journal article and the journal name was the name of the confer-
ence. Note that string names (SOSP) are also defined for the
major conferences (Symposium on Operating System Principles).
%A M. Bishop
%A L. Snyder
%T The Transfer of Information and Authority
in a Protection System
%J Proceedings of the 7th SOSP
%P 45-54
%D 1979
Article in book
An article in a book has two titles, the title of the arti-
cle and the title of the book. The first goes into the T field
and the second into the B field. Similarly the author of the
article goes into the A field and the editor of the book goes
into the E field.
%A John B. Goodenough
%T A Survey of Program Testing Issues
%B Research Directions in Software Technology
%E Peter Wegner
%I MIT Press
%P 316-340
%D 1979
If a work as more than one editor, they each get their own
%E field.
%A R. J. Lipton
%A L. Snyder
%T On Synchronization and Security
%E Richard A. DeMillo
%E David P. Dobkin
%E Anita K. Jones
%E Richard J. Lipton
%B Foundations of Secure Computation
%P 367-388
April 27, 2013
BIB - A Program for Formatting Bibliographies USD:31-9
%I ACPRESS
%D 1978
Sometimes the book is part of a multi-volume series, and
hence may contain a volume field and/or a series name.
%A C.A.R. Hoare
%T Procedures and parameters: An axiomatic approach
%B Symposium on semantics of algorithmic languages
%E E. Engeler
%P 102-116
%S Lecture Notes in Mathematics
%V 188
%I Springer-Verlag
%C Berlin-Heidelberg-New York
%D 1971
In any reference format, the O field can be used to give
additional information. This is frequently used, for example, for
secondary references.
%A A. Girard
%A J-C Rault
%T A Programming Technique for Software Reliability
%B Symposium on Software Reliability
%I IEEE
%C Montvale, New Jersey
%D 1977
%O (Discussed in Glib [32])
Compilations
A compilation is the work of several authors gathered
together by an editor into a book. The reference format is the
same as for a book, with the editor(s) taking the place of the
author.
%E R. A. DeMillo
%E D. P. Dobkin
%E A. K. Jones
%E R. J. Lipton
%T Foundations of Secure Computation
%I ACPRESS
%D 1978
Technical Reports
A technical report must have a report number. They usually
have authors, titles, dates and an issuing institution (the I
field is used for this). They may also have a city and a govern-
ment issue number. Again string values (UATR for `University of
Arizona Technical Report') will frequently simplify typing refer-
ences.
April 27, 2013
USD:31-10 BIB - A Program for Formatting Bibliographies
%A T. A. Budd
%T An APL Complier
%R UATR 81-17
%C Tucson, Arizona
%D 1981
If the institution name is not part of the technical report
number, then the institution should be given separately.
%A Douglas Baldwin
%A Frederick Sayward
%T Heuristics for Determining Equivalence of Program Mutations
%R Technical Report Number 161
%I Yale University
%D 1979
PhD Thesis
A PhD thesis is listed as if it were a book, and the insti-
tution granting the degree the publisher.
%A Martin Brooks
%T Automatic Generation of Test Data for
Recursive Programs Having Simple Errors
%I PhD Thesis, Stanford University
%D 1980
Some authors prefer to treat Master's and Bachelor theses
similarly, although most references on style instruct say to
treat a Master's degree as an article or as a report.
%A A. Snyder
%T A Portable Compiler for the Language C
%R Master's Thesis
%I M.I.T.
%D 1974
Miscellaneous
A miscellaneous object is something that does not fit into
any other form. It can have any of the the following fields; an
author, a title, a date, page numbers, and, most generally, other
information (the O field).
Any reference item can contain an F field, and the
corresponding text will override whatever citation would other-
wise be constructed.
%F BHS--
%A Timothy A. Budd
%A Robert Hess
%A Frederick G. Sayward
%T User's Guide for the EXPER Mutation Analysis system
%O (Yale university, memo)
April 27, 2013
BIB - A Program for Formatting Bibliographies USD:31-11
Reference Format Designer's Guide
This section need only be read by those users who wish to
write their own formatting macro packages.
The information necessary for generating citations and
references of a particular style is contained in a format file.
A format file consists of two parts; a sequence of format com-
mands, which are read and interpreted by bib, and a sequence of
text lines (usually troff macro definitions) which are merely
copied to output. The format file name is always prefixed with
the string bib. Thus the format file for a standard document
type, such as stdn, is found in a file called bib.stdn in the
standard library area.
When bib encounters a -t switch, the user's directory is
first searched for a format file matching the given name, before
the system area is examined. Thus the user can create individual
style database files.
Each formatting command is distinguished by a single letter,
which must be the first character on a line. The formatting com-
mands in a database file are similar to the command line options
for bib. The legal commands, and their arguments, are as fol-
lows:
# text
A line beginning with a sharp sign is a comment, and all
remaining text on the line is ignored.
A
The A command controls how authors' names are to be format-
ted. It can be followed by the following character sequences:
A Authors' names are to be abbreviated. (see abbrevia-
tions, below).
Rnum The first num authors' names are to be reversed. If num
is omitted, all authors' names are reversed.
X Authors' names are to be printed in Caps-Small Caps
style.
E
The E command is equivalent to the A command, except that it
controls the formatting of editors' names.
F
The F command indicates that references are to be dumped
April 27, 2013
USD:31-12 BIB - A Program for Formatting Bibliographies
immediately after a line containing a citation, such as when the
references are to be placed in footnotes.
S template
The S command indicates references are to be sorted before
being dumped. The comparison used in sorting is based on the tem-
plate. See the discussion on sorting (below) for an explanation
of templates.
C template
The template is used as a model in constructing citations.
See the discussion below.
D word definition
The word-definition pair is placed into a table. Before each
reference is dumped it is examined for the occurrence of these
words. Any occurrence of a word from this table is replaced by
the definition, which is then rescanned for other words. Words
are limited to alphanumeric characters, ampersand and underscore.
Definitions can extend over multiple lines by ending lines
with a backslash (\). The backslash will be removed, and the
definition, including the newline and the next line, will be
entered into the table. This is useful for including several
fields as part of a single definition (city names can be included
as part of a definition for a publishing house, for example).
I filename
The indicated file is included at the current point. The
included file may contain other formatting commands.
H
Three or more contiguous citations that refer to adjacent
items in the reference list are replaced by a hyphenated string.
For example, the citation 2,3,4,5 would be replaced by 2-5. This
is most useful with numeric citations. The H option implies the
O option.
O
Contiguous citations are sorted according to the order given
by the reference list.
R number
The first number author's names are reversed on output (i.e.
T. A. Budd becomes Budd, T. A.). If number is omitted all names
are reversed.
April 27, 2013
BIB - A Program for Formatting Bibliographies USD:31-13
T str
The str is a list of field names. Each time a definition
string for a named field is produced, a second string containing
just the last character will also be generated. See `Trailing
characters', below.
X
Authors' last names are to be printed in Caps/Small Caps
format (i.e., Budd becomes BUDD).
The first line in the format file that does not match a for-
mat command causes that line, and all subsequent lines, to be
immediately copied to the output.
File Naming Conventions
Standard database format files are kept in a standard
library area. The string BMACLIB in bib.h points to this direc-
tory (/usr/new/lib/bmac in the distribution). In addition, this
name is always defined when reading format files. There are three
types of files:
bib.xxx These files contain bib commands to format documents in
the xxx style.
bibinc.xxxThese files contain information (such as definitions)
used by more than one style database.
bmac.xxx These files are the troff macros to actually implement
a style. They are generally not examined by bib at all,
but are processed by troff in response to a .so com-
mand.
The first command output by bib defines the string l] to be
the standard macro database directory. This allows macro files
to be independent of where they are actually stored.
Naming Conventions
There is a simple naming convention for strings, registers
and macros used by bib. All strings, registers and macros are
denoted by two character names containing either a left or right
brace. The following are general rules:
[x If x is alphanumeric, the string contains the value of a
reference field. If x is nonalphanumeric, this is a format-
ting string preceding a citation.
]x If x is alphanumeric, this is the final character from a
reference field. If x is nonalphanumeric, the string is
April 27, 2013
USD:31-14 BIB - A Program for Formatting Bibliographies
formatting information within a citation.
x[ Strings in this format, where x is can be any character, are
defined by the specific macro package in use and are not
specified by bib.
x] If x is nonalphanumeric these strings represent formatting
commands following citations (the inverse of [x commands).
Other strings represent miscellaneous formatting commands,
such as the space between leading letters in abbreviated
names.
Sorting
The sort template is used in comparing two references to
generate the sorted reference list. The sort template is a
sequence of sort objects. Each sort object consists of an
optional negative sign, followed by a field character, followed
by an optional signed size. The leading negative sign, if
present, specifies the sort is to be in decreasing order, rather
than increasing. The field character indicates which field in
the reference is to be compared. The entire field is used,
except in the case of the `A' field, in which case only the
senior author's last name is used. A positive number following
the field character indicates that only the first n characters
are to be examined in the comparison. The negative value indi-
cates only the last n characters. Thus, for example, the tem-
plate AD-2 indicates that sorting is to be done by the senior
author followed by the last two characters of the date.
The sort algorithm is stable, so that two documents which
compare equally will be listed in citation order.
Note that in sorting, citation construction, and elsewhere,
if an author field is not present the senior editor will be used.
If neither author nor editor fields are present the institution
name will be used.
Citations
A citation template is similar to a sort template, with the
following exceptions: The field name `1' refers to the number
which represents the position of the reference in the reference
list (after sorting). The field name `2' generates a three char-
acter sequence; If the paper being referenced has only one
author, this is the first three characters of the author's last
name. For two author papers, this is the first two characters of
the senior author, followed by the first character of the second
author. For papers with three or more authors the first letter
of the first three authors is used. The field name `3' is used to
specify a format consisting of the authors' last names, or the
senior author followed by the text `et al' if more than four
authors are listed. The fields `4' through `9' are reserved to
be used to specify formats that cannot be produced using
April 27, 2013
BIB - A Program for Formatting Bibliographies USD:31-15
templates. These will be implemented either as local modifica-
tions to bib or in future releases.
In order to postpone the inevitable clash of local changes
versus new releases, it is suggested that local formatting styles
use numbers starting at 9 and working downward.
Each object can be followed by either of the letters `u' or
`l' and the field will be printed in all upper or all lower case,
respectively.
If necessary for disambiguating, the character `@' can be
used as a separator between objects in the citation template.
Any text which should be inserted into the citation uninterpreted
should be surrounded by either {} or <> pairs.
Citation Formatting
In the output, each citation is surrounded by the strings
\*([[ and \*(]] (\*([{ and \*(}] in the alternative style). Mul-
tiple citations are separated by the string \*(],. The text por-
tion of a format file should contain troff definitions for these
strings to achieve the appropriate typographic effect.
Citations that are preceded by a period, comma, space or
other puncuation are surrounded by string values for formatting
the puncuation in the approprate location. Again, troff commands
should be given to insure the appropriate values are produced.
The following table summarizes the string values that must
be defined to handle citations.
[[ ]] Standard citation beginning and ending
{[ }] Alternate citation beginning and ending
[. .] Period before and after citation
[, ,] Comma before and after citation
[? ?] Question mark before and after citation
[! !] Exclaimation Point before and after citation
[: :] Colon before and after citation
[; ;] Semi-Colon before and after citation
[" "] Double Quote before and after citation
[' '] Single Quote before and after citation
[< >] Space before and after citation
], Multiple citation separator
]- Separator for a range of citations
Name Formatting
Authors' (and editors') names can be abbreviated, reversed,
and/or printed in Caps-small Caps format. In producing the
string values for an author, formatting strings are inserted to
give the macro writer greater flexibility in producing the final
output. Currently the following strings are used:
April 27, 2013
USD:31-16 BIB - A Program for Formatting Bibliographies
a] gap between sucessive initials
b] comma between last name and initial in reversed text
c] comma between authors
n] and between two authors
m] and between last two authors
p] period following initial
For example, suppose the name `William E. Howden' is abbre-
viated and reversed. It will come out looking like
Howden\*(b]W\*(p]\*(a]E\*(p]
Reference Formatting
The particular style used in printing references is decided
by macros passed to troff. Basically, for each reference, bib
generates a sequence of string definitions, one for each field in
the reference, followed by a call on the formatting macro. For
example an entry which in the reference file looks like:
%A M. A. Harrison
%A W. L. Ruzzo
%A J. D. Ullman
%T Protection in Operating Systems
%J CACM
%V 19
%N 8
%P 461-471
%D 1976
%K hru
is converted into the following sequence of commands
.[-
.ds [F 1
.ds [A M. A. Harrison
.as [A \*(c]W. L. Ruzzo
.as [A \*(m]J. D. Ullman
.ds [T Protection in Operating Systems
.ds [J Communications of the ACM
.ds [V 19
.ds [N 8
.nr [P 1
.ds [P 461-471
.ds [D 1976
.][
Note that the commands are preceded by a call on the macro
`.[-'. This can be used by the macro routines for initialization,
for example to delete old string values. The string [F is the
citation value used in the document. Note that the string CACM
has been expanded.
April 27, 2013
BIB - A Program for Formatting Bibliographies USD:31-17
The strings c], n] and m] are used to separate authors. c]
separates the initial authors in multi-author documents (it is
usually a comma with some space before and after), n] separates
authors in two author documents (usually ` and '), and m]
separates the last two authors in multi-author documents (either
` and ' or `, and ').
If abbreviation is specified, the string a] is used to
separate initials in the author's first name.
The bib system provides minimal assistance in deciding for-
mat types. For example note that the number register [P has been
set of 1, to indicate that the article is on more than one page.
Similarly, in documents with editors, the register [E is set to
the number of editors.
Trailing Characters
There is a problem with fields that end with punctuation
characters causing multiple occurrences of those characters to be
printed. For example, suppose author fields are terminated with
a period, as in T. A. Budd. If names are reversed, this could be
printed as Budd, T. A.. Even if names are not reversed, abbrevi-
ations, such as in Jr. can cause problems.
To avoid this problem bib, if instructed, generates the last
character from a particular field as a separate string. The
string name is a right brace followed by the field character.
Macro packages should test this value before generating punctua-
tion.
Abbreviations
The algorithm used to generate abbreviations from first
names is fairly simple: Each word in the first name field that
begins with a capital is reduced to that capital letter followed
by a period. In some cases, this may not be sufficient. For
example, suppose Ole-Johan Dahl should be abbreviated `O-J.
Dahl'. The only way to achieve this (short of editing the out-
put) is to include troff commands in the reference file that
alter the strings produced by bib, as in the following
...
%A Ole-Johan Dahl
.ds [A O-J. Dahl
...
In fact, any troff commands can be entered in the middle of
a reference entry, and the commands are copied uninterpreted to
the output. For example, the user may wish to have a switch indi-
cating whether the name is to be abbreviated or not:
...
April 27, 2013
USD:31-18 BIB - A Program for Formatting Bibliographies
%A Ole-Johan Dahl
.if \n(i[ .ds [A O-J. Dahl
...
An Example
Figure 1 shows the format file for the standard alphabetic
format. The sort command indicates that sorting is to be done by
senior author, followed by the last two digits of the date. The
citation template indicates that citations will be the three
character sequence described in the section of citations followed
by the last two characters of the date (i.e. AHU79, for example).
# standard alphabetic format
SAD-2
C2D-2
I BMACLIB/bibinc.fullnames
I BMACLIB/bibinc.std
Figure 1
The two I commands include two files. The first is a file
of definitions for common strings, such as dates and journal
names. A portion of this file is shown in figure 2. Note that a
no-op has been inserted into the definition string for BIT in
order to avoid further expansion when the definition is res-
canned.
The second file is a sequence of troff macros for formatting
the references. The beginning of this file is shown in figure 3.
On the basis of some simple rules (the presence or absence
of certain fields) the document is identified as one of five dif-
ferent types, and a call made on a different macro for each type.
This is shown in figure 4.
Finally figure 5 shows the macro for one of those different
types, in this case the book formatting macro.
April 27, 2013
BIB - A Program for Formatting Bibliographies USD:31-19
# full journal names, and other names
#
# journals
D ACTA Acta Informatica
D BIT B\&IT
D CACM Communications of the ACM
...
# months
D JAN January
...
D DEC December
Figure 2
# standard end macros
#
.ds [ [
.ds ] ]
.ds , ,
.ds >. .
.ds >, ,
.ds c] , \&
.ds n] "" and
.ds m] , and
...
.de p[ \" produce reference beginning
.IP [\\$1]
..
.de [] \" start displaying collected references
.SH
References
.LP
..
Figure 3
.de ][ \" choose format
.ie !"\\*([J"" \{\
. ie !"\\*([V"" .nr t[ 1 \" journal
. el .nr t[ 5 \" conference paper
.\}
.el .ie !"\\*([B"" .nr t[ 3 \" article in book
.el .ie !"\\*([R"" .nr t[ 4 \" technical report
.el .ie !"\\*([I"" .nr t[ 2 \" book
.el .nr t[ 0 \" other
.\\n(t[[
..
Figure 4
April 27, 2013
USD:31-20 BIB - A Program for Formatting Bibliographies
...
.de 2[ \" book
.if !"\\*([F"" .p[ \\*([F
.if !"\\*([A"" \\*([A,
.if !"\\*([T"" \\f2\\*([T,\\f1
\\*([I\c
.if !"\\*([C"" , \\*([C\c
.if !"\\*([D"" \& (\\*([D)\c
\&.
.if !"\\*([G"" Gov't. ordering no. \\*([G.
.if !"\\*([O"" \\*([O
.]-
..
Figure 5
Acknowledgements
bib was inspired by refer, written by M. Lesk.
April 27, 2013
BIB - A Program for Formatting Bibliographies USD:31-21
APPENDIX 1
Standard Names
The following list gives the standard names recognized in
most citation styles. Various different forms for the output are
used by the different styles. In the longer reference style, the
conference proceedings will also refer to the date (%D),
city(%C), and when the proceedings are published as a journal,
the journal name (%J), volumn (%V) and number (%N).
Journal Names
ACTA Acta Informatica
BIT BIT
BSTJ Bell System Technical Journal
CACM Communications of the ACM
COMP IEEE Computer
COMPJOURThe Computer Journal
COMPLANGJournal of Computer Languages
COMPSUR ACM Computing Surveys
I&C Information and Control
IBMJRD IBM Journal of Research and Development
IBMSJ IBM Systems Journal
IEEETC IEEE Transactions on Computers
IEEETSE IEEE Transactions on Software Engineering
IJCIS International Journal of Computer and Information Sciences
IPL Information Processing Letters
JACM Journal of the ACM
JCSS Journal of Computer and System Sciences
MATHST Mathematics Systems Theory
NMATH Numerical Mathematics
SIAMJC Siam Journal on Computing
SIAMJNA Siam Journal on Numerical Analysis
SIGACT SIGACT News
SIGPLAN SIGPLAN Notices
SIGSOFT Software Engineering Notes
SP&E Software-Practice & Experience
SPE Software-Practice & Experience
TOCS ACM Transactions on Computer Systems
TODS ACM Transactions on Database Systems
TOMS ACM Transactions on Mathematical Software
TOPLAS ACM Transactions on Programming Languages and Systems
Conferences
ADA80 PROC of the ACM-SIGPLAN Symposium on the Ada Programming Language, SIGPLAN
ASPLOS82PROC of the SYMP on Architectural Support for Programming Languages and Operating Systems, SIGPLAN
CCC79 PROC of the SIGPLAN 1979 SYMP on Compiler Construction, SIGPLAN
CCC82 PROC of the SIGPLAN 1982 SYMP on Compiler Construction, SIGPLAN
CCC84 PROC of the SIGPLAN 1984 SYMP on Compiler Construction, SIGPLAN
CONF Conference
FJCC Fall Joint Computer Conference
April 27, 2013
USD:31-22 BIB - A Program for Formatting Bibliographies
FOCS Annual SYMP on Foundations of Computer Science
HICSS Hawaii International CONF on System Science
ICSE International CONF on Software Engineering
JER3 PROC Third Jerusalem CONF on Information Technology
JICAI Joint International CONF on Artificial Intelligence
PLISS83 PROC SIGPLAN 1983 SYMP on Programming Language Issues in Software Systems, SIGPLAN
POPL ACM SYMP on Principles of Programming Languages
POPL5 Conference Record of the Fifth POPL
POPL6 Conference Record of the Sixth POPL
POPL7 Conference Record of the Seventh POPL
POPL8 Conference Record of the Eighth POPL
POPL9 Conference Record of the Ninth POPL
POPL10 Conference Record of the Tenth POPL
POPL11 Conference Record of the Eleventh POPL
PROC Proceedings
SOSP SYMP on Operating System Principles
STOC Annual ACM SYMP on Theory of Computing
SYMP Symposium
WJCC PROC Western Joint Computer CONF
Longer place names
BTLHO Bell Laboratories
BTLMH Bell Laboratories
CMU Carnegie-Mellon University
CMUCS Computer Science Department, Carnegie-Mellon University
DG Data General
MITAI MIT Artificial Intelligence Laboratory
MITLCSMIT Laboratory for Computer Science
SUCS Computer Science Department, Stanford University
SUCSL Computer Systems Lab., Stanford Electronics Lab., Dept. of Electrical Engineering and Computer Science
SUEE Department of Electrical Engineering, Stanford University
TUM Technische Universia.t u.nchen
UCB University of California, Berkeley
UCBCS Computer Science Division, EECS, UCB
UCBERLERL, EECS, UCB
Short place names MAR March
CORP Corporation APR April
CSD Computer Science Department MAY May
DCS Department of Computer ScienJUN June
DEPT Department JUL July
DISS Dissertation AUG August
TR Technical Report SEP September
UATR University of Arizona TechniOCT ReOctober
UNIV University NOV November
ERL Electronics Research LaboratDEC December
Months of the year Publishers
JAN January ACADEMIC Academic Press
FEB February ACPRESS Academic Press
April 27, 2013
BIB - A Program for Formatting Bibliographies USD:31-23
ADDISON Addison Wesley
ANSI American National Standards Institute
CSPRESS Computer Science Press
DIGITAL Digital Press
ELSEVIER American Elsevier
FREEMAN W. H. Freeman and Company
GPO U. S. Government Printing Office
HOLT Holt, Rinehart, and Winston
IEEEP IEEE Press
MCGRAW McGraw-Hill
MGHILL McGraw-Hill
MITP MIT Press
NHOLL North-Holland
NYC New York, NY
PRENTICE Prentice Hall
PRHALL Prentice Hall
SPRINGER Springer Verlag
SRA Science Research Associates
WILEY John Wiley & Sons
WINTH Winthrop Publishers
April 27, 2013
Generated on 2013-04-27 00:20:00 by $MirOS: src/scripts/roff2htm,v 1.77 2013/01/01 20:49:09 tg Exp $
These manual pages and other documentation are copyrighted by their respective writers;
their source is available at our CVSweb,
AnonCVS, and other mirrors. The rest is Copyright © 2002‒2013 The MirOS Project, Germany.
This product includes material
provided by Thorsten Glaser.
This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report – diffs preferred.