|
|
1.1 root 1: .\" @(#)bibdoc.ms 6.1 (Berkeley) 6/2/86
2: .\"
3: .EH 'USD:31-%''BIB \- A Program for Formatting Bibliographies'
4: .OH 'BIB \- A Program for Formatting Bibliographies''USD:31-%'
5: .nr LL 6.5i
6: .nr LT 6.5i
7: .TL
8: \fBBIB \- A Program for Formatting Bibliographies\fP
9: .AU
10: Timothy A. Budd
11: .AI
12: The University of Arizona
13: Department of Computer Science
14: Tucson, Arizona 85721
15: .PP
16: \fIBib\fP is a program for collecting and formatting reference lists in
17: documents. It is a preprocessor to the nroff/troff typesetting systems,
18: (much like the \fItbl\fP [.tbl.] and \fIeqn\fP [.eqn.] programs) and an alternative
19: to the \fIrefer\fP [.lesk refer.] bibliography program. \fIBib\fP takes two
20: inputs: a document to be formatted and a library of references. Imprecise
21: citations in the source document are replaced by more conventional
22: citation strings, the appropriate references are selected from the reference
23: file, and commands are generated to format both citation and the referenced
24: item in the bibliography.
25: .PP
26: An imprecise citation is a list of words surrounded by the characters
27: [\&. .]. Words (which are truncated to six letters)
28: in the imprecise citation are matched against entries in the reference file,
29: and if an entry is found that matches all words, that reference is used.
30: For example:
31: .de 2Q
32: .sp
33: .QS
34: .QS
35: ..
36: .de 2E
37: .sp
38: .QE
39: .QE
40: ..
41: .2Q
42: .PP
43: In Brooks's interesting book [\&. brooks mythical.] various reasons ...
44: .2E
45: .PP
46: Multiple citations are indicated by simply placing a comma in the imprecise
47: citation:
48: .2Q
49: .PP
50: In [\&.kernig tools, kernig elements.], Kernighan and Plauger have ...
51: .2E
52: .PP
53: Embedded newlines, tabs and extra blanks within the
54: imprecise citation are ignored.
55: .PP
56: Judicious use of the K (keyword) field in references in the database
57: can simplify citations
58: considerably. Also additional information can be placed into citations by
59: surrounding text with curly braces.
60: The additional information is inserted verbatim into the citation,
61: e.g. [.dragon {,\ Chapter 6}.].
62: Note that it may be desirable to use non-breakable spaces, in order that the
63: citation not be split across a line boundary by \fItroff\fP, for example:
64: .2Q
65: .PP
66: For a description of LR parsing, see [\&.dragon {,\e\0Chapter 6}.] by Aho and Ullman.
67: .2E
68: .PP
69: An alternative citation style can be used by surrounding the imprecise
70: citation with {\&. and .\&}. Most document styles just give the
71: raw citation, without the braces, in this case. This is useful, for example,
72: to refer to citations in running text.
73: .2Q
74: .PP
75: For a discussion of this point, see reference {\&.dragon.\&}.
76: .2E
77: .PP
78: The algorithm used by \fIbib\fP scans the source input in two passes.
79: In the first pass,
80: references are collected and the location of citations marked.
81: In the second pass, these marks are replaced by the appropriate citation,
82: and the entire list of references is dumped following a call on the macro
83: \&.[].
84: This macro is left untouched.
85: However, this can be altered to achieve other typographic
86: effects.
87: .PP
88: An exception to this process is made in those instances where
89: references are indicated in footnotes. In this case the macro that
90: generates the reference is placed immediately after each line in which
91: the reference is cited.
92: .PP
93: Reference files are prepared for \fIbib\fP using \fIinvert\fP.
94: By default \fIinvert\fP places an inverted index for the
95: reference list in the file INDEX. Unless the user specifies an
96: alternative (see the \-p switch described below), this is the first file
97: searched by \fIbib\fP in attempting to locate a reference. If the entry is not found
98: in the user's file, a standard system-wide index is searched. If the
99: entry is still not found in the system file, a warning message is produced
100: and a blank citation is generated.
101: .PP
102: The format for entries in the reference file is described more fully in
103: the section `Reference File Formats'.
104: This format is similar to that used by \fIrefer\fP
105: with the following exceptions:
106: .IP 1.
107: An F field, if present, overrides whatever citation string would otherwise
108: be constructed.
109: .IP 2.
110: Certain defined names can be used, and will be expanded differently by
111: different document styles. For example, the string CACM is expanded into
112: `Communications of the ACM' by some document styles, `Comm.
113: ACM' by others,
114: and `Comm. of the Assoc. of Comp. Mach.' by yet others.
115: Appendix 1 lists the currently recognized names.
116: .IP 3.
117: The program automatically abbreviates names, reverses names, and
118: hyphenates strings of contiguous references, if requested.
119: .IP 4.
120: A reference can have more than one editor field, and editor's names
121: can be abbreviated, reversed, and/or printed in cap/small caps style,
122: independent of any processing done to authors names.
123: .PP
124: Since the user's index is searched before the system index, if the
125: user wants to alter a specific entry in the system index (say to change
126: the name W. E. Howden to William E. Howden, for example) it is a simple
127: matter to copy the system information into a private database and make
128: the changes locally.
129: .PP
130: Citation formats are either determined by explicit switch settings or,
131: more generally, by using a predefined formatting style. In the latter form,
132: usage looks something like:
133: .sp
134: .ce
135: bib \-t\fIstyle\fP [files]
136: .sp
137: where \fIstyle\fP is a citation style.
138: Currently the following citation styles are available:
139: .IP stdn\0\0 6m
140: (standard numeric) numeric citation. Reference entries are listed in
141: citation order.
142: .IP stdsn
143: same as stdn, but references are sorted by senior author followed by date.
144: .IP stda
145: (standard alphabetic) citations are three letters followed by the last two
146: digits of the date. For papers with a single author, the letters are the
147: first three letters of the authors last name (e.g. Knu).
148: In papers with two authors the first two letters are from the first author
149: followed by one letter from the second (e.g. HoU). If three or more
150: authors are given the first letters from the first three authors are used
151: (e.g. AHU).
152: .IP openn
153: same as stdsn, only using an open reference format (each major entry is on
154: a new line\u1\d).
155: .FS
156: 1. The open reference format is adapted from \fIA Handbook for Scholars\fP,
157: by Mary-Claire van Leunen, published by Knopf, 1978.
158: .FE
159: .IP opena
160: same as stda, but using an open format.
161: .IP foot
162: footnoted references.
163: .IP supn
164: same as stdn, but using superscripts.
165: .IP spe
166: format used by the journal \fISoftware\(emPractice and Experience\fP.
167: Eventually there will be macro packages available for several journal styles.
168: .PP
169: It is possible to alter slightly the format of standard styles. For example,
170: to generate references in standard numeric style, but abbreviate first names,
171: the following can be used:
172: .sp
173: .ce
174: bib \-tstdn \-aa ...
175: .PP
176: If two reference items create the same citation string (this can happen
177: if two papers authored by the same person in a single year are referred to
178: in one paper) a disambiguating final letter is added to the citation
179: (i.e., Knu79 becomes Knu79a and Knu79b).
180: As noted previously, this can be altered by using the F field.
181: .PP
182: For the purposes of sorting by author, the last name is taken to be the last
183: word of the name field. This means some care must be taken when names contain
184: embedded blanks, such as in `Hartley Rogers, Jr.'
185: or `Mary-Claire van Leunen'.
186: In these cases a concealed space (\e\0) should be used, as in
187: `Hartley Rogers,\e\0Jr.'.
188: .PP
189: \fIbib\fP knows very little about \fItroff\fP usage or syntax. This
190: can sometimes be useful. For example, to cause an entry to appear in a
191: reference list without having it explicitly cited in the text the citation
192: can be placed in a \fItroff\fP comment.
193: .QS
194: .nr
195: .sp
196: .\e" [\&.imprecise citation.]
197: .sp
198: .QE
199: .PP
200: It is also possible to embed \fItroff\fP commands within a reference definition.
201: See `abbreviations' in the section `Reference Format Designer's
202: Guide' for an example.
203: .PP
204: In some styles (superscripts) periods and commas should precede the
205: citation while spaces follow.
206: In other styles (brackets) these rules are reversed. If
207: a period, comma or space immediately precedes a citation, it will be moved to the
208: appropriate location for the particular reference style being used.
209: This movement is not done for citations given in the alternative style.
210: .PP
211: The following is a complete list of options for \fIbib\fP:
212: .IP \-aa 8m
213: reduce author's first names to abbreviations.
214: .IP \-ar\fInum\fP
215: reverse the first \fInum\fP author's names.
216: If \fInum\fP is omitted all names are reversed.
217: .IP \-ax
218: print authors last names in Caps-Small Caps style. For example Budd becomes
219: B\s-2UDD\s+2.
220: .IP \-c\fIstr\fP
221: build citations according to the template \fIstr\fP. See the reference
222: format designer's guide for more information on templates.
223: .IP \-ea
224: abbreviate editors' names
225: .IP \-ex
226: places editors' names in Caps-Small Caps style. (see \-x )
227: .IP \-er\fInum\fP
228: reverse the first \fInum\fP editors' names. If \fInum\fP is omitted all editors'
229: names are reversed.
230: .IP \-f
231: instead of dumping references following the call on \&.[], dump each
232: reference immediately following the line on which the citation is placed
233: (used for footnoted references).
234: .IP \-h
235: hyphenate runs of three or more contiguous references in the citation string.
236: (eg 2,3,4,5 becomes 2-5). This is most useful for numeric citation styles,
237: but works generally.
238: The \-h option implies the \-o option.
239: .IP "\-i file"
240: .ns
241: .IP "\-ifile"
242: include and process the indicated file.
243: This is useful for including a private file of string definitions.
244: .IP \-n\fIstr\fP
245: turn off the indicated options. \fIstr\fP must be composed of the
246: characters \fIafhorx\fP.
247: .IP \-o
248: sort contiguous citations according to the order given by the reference
249: list. (This option defaults on).
250: .IP "\-p \fIfile\fP"
251: .ns
252: .IP \-p\fIfile\fP
253: instead of searching the file INDEX,
254: search the indicated reference file(s) before searching the system file.
255: Multiple files are separated by commas.
256: .IP \-s\fIstr\fP
257: sort references according to the template \fIstr\fP.
258: .IP "\-t \fItype\fP"
259: .ns
260: .IP \-t\fItype\fP
261: use the standard macros and switch settings to generate citations and references
262: in the indicated style.
263: .de Ex
264: .sp
265: .QS
266: .nf
267: .ta 3m
268: ..
269: .sp 1.0i
270: .ce
271: \fBReference File Formats\fP
272: .sp
273: .PP
274: A reference file is a file containing any number of reference
275: items. Reference items are separated by one or more blank lines.
276: There are no restrictions placed on the order of items in a file,
277: although imposing some order (such as sorting
278: items alphabetically) simplifies updates.
279: .PP
280: A reference item is a collection of field tags and values.
281: A field tag is a percent sign followed by a single letter.
282: Currently, the following field tags are recognized:
283: .Ex
284: .ta 0.5i
285: A Author's name
286: B Title of book containing item
287: C City of publication
288: D Date
289: E Editor(s) of book containing item
290: F Caption
291: G Government (NTIS) ordering number
292: I Issuer (publisher)
293: J Journal name
294: K Keys for searching
295: N Issue number
296: O Other information
297: P Page(s) of article
298: R Technical report number
299: S Series title
300: T Title
301: V Volume number
302: W Where the item can be found locally
303: X Annotations (not in all macro styles)
304: .QE
305: .PP
306: Author and editor fields can be repeated, as necessary, but all other fields
307: can occur at most once
308: in any reference. The field information is as long as necessary,
309: and can extend onto new lines.
310: Lines that do not begin with a percent sign or a period
311: are treated as continuations of the previous line.
312: The order of fields is irrelevant, except that authors and editors
313: are listed in the order of occurrence.
314: .PP
315: Generally a reference falls into one of several basic categories.
316: An example of each and a brief comment is given below. With less
317: standard references (Archival Sources, Correspondence, Government
318: Documents, Newspapers) generally some experimentation is necessary.
319: .SH
320: Books
321: .PP
322: A book is something with a publisher that isn't a journal article or
323: a technical report. Generally, books also have authors and titles
324: and dates of publication (although some don't). For books not published
325: by a major publishing house it is also helpful to give a city for the
326: publisher. Some government documents also qualify as books, so a book
327: may have a government ordering number.
328: .PP
329: It is conventional that the authors names appear in the reference in
330: the same form as on the title page of the book. Note also that
331: string definitions are provided for most of the major publishing houses
332: (PRHALL for Prentice-Hall, for example).
333: The string definition may include the city as part of the definition,
334: depending on the database in use.
335: .Ex
336: %A R. E. Griswold
337: %A J. F. Poage
338: %A I. P. Polonsky
339: %T The SNOBOL4 Programming Language
340: %I PRHALL
341: %D second edition 1971
342: .QE
343: .PP
344: Sometimes a book (particularly old books) will have no listed publisher.
345: The reference entry must still have an I field.
346: .Ex
347: %A R. Colt Hoare
348: %T A Tour through the Island of Elba
349: %I (no listed publisher)
350: %C London
351: %D 1814
352: .QE
353: .PP
354: If a reference database contains entries from many people (such
355: as a departmental-wide database), the W field can be used to indicate
356: where the referenced item can be found; using the initials of the owner,
357: for example.
358: Any entry style can take a W field, since this field is not used in
359: formatting the reference.
360: .PP
361: The K field is used to define general subject categories for an entry.
362: This is useful in locating all entries pertaining to a specific subject
363: area.
364: Note the use of the backslash, to indicate the last name is Van Tassel,
365: and not simply Tassel.
366: .Ex
367: %A Dennie Van\e\0Tassel
368: %T Program Style, Design, Efficiency,
369: Debugging and Testing
370: %I PRHALL
371: %D 1978
372: %W tab
373: %K testing debugging
374: .QE
375: .SH
376: Journal article
377: .PP
378: The only requirement for a journal article is that it have a
379: journal name and a volume number.
380: Usually journal articles also have authors, titles, page
381: numbers, and a date of publication. They may also have numbers, and,
382: less frequently, a publisher. (Generally, publishers are only listed for
383: obscure journals).
384: .PP
385: Note that string names (such as CACM for \fICommunications of the ACM\fP)
386: are defined for most major journals.
387: There are also string names for the months of the year, so that months
388: can be abbreviated to the first three letters.
389: Note also in this example the use of the K field to define a short
390: name (hru) that can be used in searching for the reference.
391: .Ex
392: %A M. A. Harrison
393: %A W. L. Ruzzo
394: %A J. D. Ullman
395: %T Protection in Operating Systems
396: %J CACM
397: %V 19
398: %N 8
399: %P 461-471
400: %D AUG 1976
401: %K hru
402: .QE
403: .SH
404: Article in conference proceedings
405: .PP
406: An article from a conference is printed as though it were a journal
407: article and the journal name was the name of the conference.
408: Note that string names (SOSP) are also defined for the major
409: conferences (Symposium on Operating System Principles).
410: .Ex
411: %A M. Bishop
412: %A L. Snyder
413: %T The Transfer of Information and Authority
414: in a Protection System
415: %J Proceedings of the 7th SOSP
416: %P 45-54
417: %D 1979
418: .QE
419: .SH
420: Article in book
421: .PP
422: An article in a book has two titles, the title of the article and the title
423: of the book. The first goes into the T field and the second into the B
424: field. Similarly the author of the article goes into the A field and the
425: editor of the book goes into the E field.
426: .Ex
427: %A John B. Goodenough
428: %T A Survey of Program Testing Issues
429: %B Research Directions in Software Technology
430: %E Peter Wegner
431: %I MIT Press
432: %P 316-340
433: %D 1979
434: .QE
435: .PP
436: If a work as more than one editor, they each get their own %E field.
437: .Ex
438: %A R. J. Lipton
439: %A L. Snyder
440: %T On Synchronization and Security
441: %E Richard A. DeMillo
442: %E David P. Dobkin
443: %E Anita K. Jones
444: %E Richard J. Lipton
445: %B Foundations of Secure Computation
446: %P 367-388
447: %I ACPRESS
448: %D 1978
449: .QE
450: .PP
451: Sometimes the book is part of a multi-volume series, and hence may
452: contain a volume field and/or a series name.
453: .Ex
454: %A C.A.R. Hoare
455: %T Procedures and parameters: An axiomatic approach
456: %B Symposium on semantics of algorithmic languages
457: %E E. Engeler
458: %P 102-116
459: %S Lecture Notes in Mathematics
460: %V 188
461: %I Springer-Verlag
462: %C Berlin-Heidelberg-New York
463: %D 1971
464: .QE
465: .PP
466: In any reference format, the O field can be used to give additional information.
467: This is frequently used, for example, for secondary references.
468: .Ex
469: %A A. Girard
470: %A J-C Rault
471: %T A Programming Technique for Software Reliability
472: %B Symposium on Software Reliability
473: %I IEEE
474: %C Montvale, New Jersey
475: %D 1977
476: %O (Discussed in Glib [32])
477: .QE
478: .SH
479: Compilations
480: .PP
481: A compilation is the work of several authors gathered together by an editor
482: into a book. The reference format is the same as for a book, with
483: the editor(s) taking the place of the author.
484: .Ex
485: %E R. A. DeMillo
486: %E D. P. Dobkin
487: %E A. K. Jones
488: %E R. J. Lipton
489: %T Foundations of Secure Computation
490: %I ACPRESS
491: %D 1978
492: .QE
493: .SH
494: Technical Reports
495: .PP
496: A technical report must have a report number. They usually have authors,
497: titles, dates and an issuing institution (the I field is used for this).
498: They may also have a city and a government issue number. Again string
499: values (UATR for `University of Arizona Technical Report') will
500: frequently simplify typing references.
501: .Ex
502: %A T. A. Budd
503: %T An APL Complier
504: %R UATR 81-17
505: %C Tucson, Arizona
506: %D 1981
507: .QE
508: .PP
509: If the institution name is not part of the technical report number, then
510: the institution should be given separately.
511: .Ex
512: %A Douglas Baldwin
513: %A Frederick Sayward
514: %T Heuristics for Determining Equivalence of Program Mutations
515: %R Technical Report Number 161
516: %I Yale University
517: %D 1979
518: .QE
519: .SH
520: PhD Thesis
521: .PP
522: A PhD thesis is listed as if it were a book, and the institution granting
523: the degree the publisher.
524: .Ex
525: %A Martin Brooks
526: %T Automatic Generation of Test Data for
527: Recursive Programs Having Simple Errors
528: %I PhD Thesis, Stanford University
529: %D 1980
530: .QE
531: .PP
532: Some authors prefer to treat Master's and Bachelor theses similarly, although
533: most references on style instruct say to treat a Master's degree as an
534: article or as a report.
535: .Ex
536: %A A. Snyder
537: %T A Portable Compiler for the Language C
538: %R Master's Thesis
539: %I M.I.T.
540: %D 1974
541: .QE
542: .SH
543: Miscellaneous
544: .PP
545: A miscellaneous object is something that does not fit into any other form.
546: It can have any of the the following fields; an author, a title, a date,
547: page numbers, and, most generally, other information (the O field).
548: .PP
549: Any reference item can contain an F field, and the corresponding text
550: will override whatever citation would otherwise be constructed.
551: .Ex
552: %F BHS--
553: %A Timothy A. Budd
554: %A Robert Hess
555: %A Frederick G. Sayward
556: %T User's Guide for the EXPER Mutation Analysis system
557: %O (Yale university, memo)
558: .QE
559: .sp 1.0i
560: .ce
561: \fBReference Format Designer's Guide\fP
562: .sp
563: .PP
564: This section need only be read by those users
565: who wish to write their own formatting macro packages.
566: .PP
567: The information necessary for generating citations and references of a
568: particular style is contained in a \fIformat file\fP. A format file
569: consists of two parts; a sequence of format commands, which are read and
570: interpreted by \fIbib\fP, and a sequence of text lines (usually \fItroff\fP macro
571: definitions) which are merely copied to output.
572: The format file name is always prefixed with the string bib.
573: Thus the format file for a standard document type, such as stdn, is found
574: in a file called bib.stdn in the standard library area.
575: .PP
576: When \fIbib\fP encounters a \-t switch, the user's directory is first searched for
577: a format file matching the given name, before the system area is examined.
578: Thus the user can create individual style database files.
579: .PP
580: Each formatting command is distinguished by a single
581: letter, which must be the first character on a line.
582: The formatting commands in a database file are similar to the command line options
583: for \fIbib\fP. The legal commands,
584: and their arguments, are as follows:
585: .sp
586: # text
587: .PP
588: A line beginning with a sharp sign is a comment, and all remaining text on the
589: line is ignored.
590: .sp
591: A
592: .PP
593: The A command controls how authors' names are to be formatted. It can be
594: followed by the following character sequences:
595: .QS
596: .IP A 8m
597: Authors' names are to be abbreviated. (see \*(oqabbreviations\*(cq, below).
598: .IP R\fInum\fP
599: The first \fInum\fP authors' names are to be reversed. If \fInum\fP is
600: omitted, all authors' names are reversed.
601: .IP X
602: Authors' names are to be printed in Caps-Small Caps style.
603: .QE
604: .sp
605: E
606: .PP
607: The E command is equivalent to the A command, except that it controls the
608: formatting of editors' names.
609: .sp
610: F
611: .PP
612: The F command indicates that references are to be dumped immediately after
613: a line containing a citation, such as when the references are to be placed
614: in footnotes.
615: .sp
616: S \fItemplate\fP
617: .PP
618: The S command indicates references are to be sorted before being dumped.
619: The comparison used in sorting is based on the \fItemplate\fP. See
620: the discussion on sorting (below) for an explanation of templates.
621: .sp
622: C \fItemplate\fP
623: .PP
624: The \fItemplate\fP is used as a model in constructing citations.
625: See the discussion below.
626: .sp
627: D \fI\0word \0definition\fP
628: .PP
629: The word-definition pair is placed into a table.
630: Before each reference is dumped it is examined for the
631: occurrence of these words. Any occurrence of a word from this table is replaced
632: by the definition, which is then rescanned for other words.
633: Words are limited to alphanumeric characters, ampersand and underscore.
634: .PP
635: Definitions can extend over multiple lines by ending lines with a backslash
636: (\e). The backslash will be removed, and the definition, including the newline
637: and the next line,
638: will be entered into the table. This is useful for including several
639: fields as part of a single definition (city names can be included as part
640: of a definition for a publishing house, for example).
641: .sp
642: I \fIfilename\fP
643: .PP
644: The indicated file is included at the current point. The included file may
645: contain other formatting commands.
646: .sp
647: H
648: .PP
649: Three or more contiguous citations that refer to adjacent items in the
650: reference list are replaced by a hyphenated string. For example, the
651: citation 2,3,4,5 would be replaced by 2-5. This is most useful with
652: numeric citations. The H option implies the O option.
653: .sp
654: O
655: .PP
656: Contiguous citations are sorted according to the order given by the reference
657: list.
658: .sp
659: R \fInumber\fP
660: .PP
661: The first \fInumber\fP author's names are reversed on output (i.e. T. A. Budd
662: becomes Budd, T. A.).
663: If number is omitted all names are reversed.
664: .sp
665: T \fIstr\fP
666: .PP
667: The \fIstr\fP is a list of field names. Each time a definition string for
668: a named field is produced, a second string containing just the last character
669: will also be generated. See `Trailing characters', below.
670: .sp
671: X
672: .PP
673: Authors' last names are to be printed in Caps/Small Caps
674: format (i.e., Budd becomes B\s-2UDD\s+2).
675: .sp 2
676: .PP
677: The first line in the format file that does not match a format command
678: causes that line, and all subsequent lines, to be immediately copied to
679: the output.
680: .SH
681: File Naming Conventions
682: .PP
683: Standard database format files are kept in a standard library area.
684: The string BMACLIB in bib.h points to this directory (/usr/new/lib/bmac in
685: the distribution). In addition, this name is always defined when
686: reading format files.
687: There are three types of files:
688: .IP bib.xxx 10m
689: These files contain bib commands to format documents in the xxx style.
690: .IP bibinc.xxx
691: These files contain information (such as definitions) used by more than one
692: style database.
693: .IP bmac.xxx
694: These files are the \fItroff\fP macros to actually implement a style.
695: They are generally not examined by \fIbib\fP at all, but are processed
696: by troff in response to a .so command.
697: .PP
698: The first command output by \fIbib\fP defines the string l] to be the
699: standard macro database directory. This allows macro files to be
700: independent of where they are actually stored.
701: .SH
702: Naming Conventions
703: .PP
704: There is a simple naming convention for strings, registers and macros used
705: by \fIbib\fP. All strings, registers and macros are denoted by two character
706: names containing either a left or right brace. The following are general rules:
707: .IP [x
708: If x is alphanumeric, the string contains the value of a reference field.
709: If x is nonalphanumeric, this is a formatting string preceding a citation.
710: .IP ]x
711: If x is alphanumeric, this is the final character from a reference field.
712: If x is nonalphanumeric, the string is formatting information within a citation.
713: .IP x[
714: Strings in this format, where x is can be any character, are defined by the
715: specific macro package in use and are not specified by \fIbib\fP.
716: .IP x]
717: If x is nonalphanumeric these strings represent formatting commands following
718: citations (the inverse of [x commands). Other strings represent
719: miscellaneous formatting commands,
720: such as the space between leading letters in abbreviated names.
721: .SH
722: Sorting
723: .PP
724: The sort template is used in comparing two references to generate
725: the sorted reference list. The sort template is a sequence of
726: sort objects. Each sort object consists of an optional negative sign, followed
727: by a field character, followed by an optional signed size. The leading negative
728: sign, if present, specifies the sort is to be in decreasing order, rather than
729: increasing. The field character indicates which field in the reference
730: is to be compared. The entire field is used, except in the case of the `A'
731: field, in which case only the senior author's last name is used.
732: A positive number following the field character indicates that only the first
733: n characters are to be examined in the comparison. The negative value indicates
734: only the last \fIn\fP characters. Thus, for example, the template AD\-2 indicates
735: that sorting is to be done by the senior author followed by the last two
736: characters of the date.
737: .PP
738: The sort algorithm is stable, so that two documents which compare equally
739: will be listed in citation order.
740: .PP
741: Note that in sorting, citation construction, and elsewhere, if an author
742: field is not present the senior editor will be used. If neither author nor
743: editor fields are present the institution name will be used.
744: .SH
745: Citations
746: .PP
747: A citation template is similar to a sort template, with the following
748: exceptions: The field name `1' refers to the number which
749: represents the position of the reference in the reference list (after sorting).
750: The field name `2' generates a three character sequence; If the
751: paper being referenced has only one author, this is the first three characters
752: of the author's last name. For two author papers, this is the first two
753: characters of the senior author, followed by the first character of the second
754: author. For papers with three or more authors the first letter of the first
755: three authors is used.
756: The field name `3' is used to specify a format consisting of the authors'
757: last names, or the senior author followed by the text `et al' if more than
758: four authors are listed. The fields `4' through `9' are reserved to be
759: used to specify formats that cannot be produced using templates. These
760: will be implemented either as local modifications to \fIbib\fP or in future
761: releases.
762: .PP
763: In order to postpone the inevitable clash of local changes versus new releases, it is
764: suggested that local formatting styles use numbers starting at 9 and working
765: downward.
766: .PP
767: Each object can be followed by either of the letters `u' or
768: `l' and the field will be printed in all upper or all lower case,
769: respectively.
770: .PP
771: If necessary for disambiguating, the character `@' can be used as
772: a separator between objects in the citation template. Any text which should
773: be inserted into the citation uninterpreted should be surrounded by either
774: {} or <> pairs.
775: .SH
776: Citation Formatting
777: .PP
778: In the output, each citation is surrounded by the strings \e*([[ and \e*(]]
779: (\e*([{ and \e*(}] in the alternative style).
780: Multiple citations are separated by the string \e*(],.
781: The text portion of a format file should contain \fItroff\fP definitions for
782: these strings to achieve the appropriate typographic effect.
783: .PP
784: Citations that are preceded by a period, comma, space or other puncuation
785: are surrounded by string values for formatting the puncuation in the
786: approprate location.
787: Again, \fItroff\fP commands should be given to insure the appropriate values are
788: produced.
789: .KS
790: .PP
791: The following table summarizes the string values that must be defined
792: to handle citations.
793: .TS
794: center;
795: l l l.
796: [[ ]] Standard citation beginning and ending
797: {[ }] Alternate citation beginning and ending
798: [\&. .] Period before and after citation
799: [, ,] Comma before and after citation
800: [? ?] Question mark before and after citation
801: [! !] Exclaimation Point before and after citation
802: [: :] Colon before and after citation
803: [; ;] Semi-Colon before and after citation
804: [" "] Double Quote before and after citation
805: [' '] Single Quote before and after citation
806: [< >] Space before and after citation
807: ], Multiple citation separator
808: ]- Separator for a range of citations
809: .TE
810: .KE
811: .SH
812: Name Formatting
813: .PP
814: Authors' (and editors') names can be abbreviated, reversed, and/or printed
815: in Caps-small Caps format. In producing the string values for an author,
816: formatting strings are inserted to give the macro writer greater flexibility
817: in producing the final output. Currently the following strings are used:
818: .TS
819: center;
820: l l.
821: a] gap between sucessive initials
822: b] comma between last name and initial in reversed text
823: c] comma between authors
824: n] \fIand\fP between two authors
825: m] \fIand\fP between last two authors
826: p] period following initial
827: .TE
828: .PP
829: For example, suppose the name `William E. Howden' is abbreviated
830: and reversed. It will come out looking like
831: .ce
832: Howden\\*(b]W\\*(p]\\*(a]E\\*(p]
833: .SH
834: Reference Formatting
835: .PP
836: The particular style used in printing references is decided by macros
837: passed to \fItroff\fP. Basically, for each reference,
838: \fIbib\fP generates a sequence of string definitions, one for each field in the
839: reference, followed by a call on the formatting macro. For example an
840: entry which in the reference file looks like:
841: .KS
842: .nf
843: .ta 3m
844: .sp
845: %A M. A. Harrison
846: %A W. L. Ruzzo
847: %A J. D. Ullman
848: %T Protection in Operating Systems
849: %J CACM
850: %V 19
851: %N 8
852: %P 461-471
853: %D 1976
854: %K hru
855: .sp
856: .KE
857: .LP
858: is converted into the following sequence of commands
859: .KS
860: .nf
861: .sp
862: .[\-
863: .ds [F 1
864: .ds [A M. A. Harrison
865: .as [A \e*(c]W. L. Ruzzo
866: .as [A \e*(m]J. D. Ullman
867: .ds [T Protection in Operating Systems
868: .ds [J Communications of the ACM
869: .ds [V 19
870: .ds [N 8
871: .nr [P 1
872: .ds [P 461-471
873: .ds [D 1976
874: .][
875: .sp
876: .KE
877: .PP
878: Note that the commands are preceded by a call on the macro `.[\-'.
879: This can be used by the macro routines for initialization, for example to
880: delete old string values. The string [F is the citation value used
881: in the document.
882: Note that the string CACM has been expanded.
883: .PP
884: The strings c], n] and m] are used to separate authors. c] separates
885: the initial authors in multi-author documents (it is usually a comma
886: with some space before and after), n] separates authors in two author
887: documents (usually `\ and\ '), and m] separates the last two authors
888: in multi-author documents (either `\ and\ ' or `,\ and\ ').
889: .PP
890: If abbreviation is specified, the string a] is used to separate initials
891: in the author's first name.
892: .PP
893: The \fIbib\fP system provides minimal assistance in
894: deciding format types. For example note that the number register [P has
895: been set of 1, to indicate that the article is on more than one page.
896: Similarly, in documents with editors, the register [E is set to the number
897: of editors.
898: .SH
899: Trailing Characters
900: .PP
901: There is a problem with fields that end with punctuation characters causing
902: multiple occurrences of those characters to be printed. For example, suppose
903: author fields are terminated with a period, as in T. A. Budd. If names
904: are reversed, this could be printed as Budd, T. A.. Even if names are not
905: reversed, abbreviations, such as in Jr. can cause problems.
906: .PP
907: To avoid this problem \fIbib\fP, if instructed, generates the last
908: character from a particular field as a separate string. The string name
909: is a right brace followed by the field character. Macro packages should
910: test this value before generating punctuation.
911: .SH
912: Abbreviations
913: .PP
914: The algorithm used to generate abbreviations from first names is fairly
915: simple: Each word in the first name field that begins with a capital
916: is reduced to that capital letter followed by a period.
917: In some cases, this may not be sufficient. For example, suppose
918: Ole-Johan Dahl should be abbreviated `O\-J. Dahl'. The only
919: way to achieve this (short of editing the output) is to include \fItroff\fP commands
920: in the reference file that alter the strings produced by \fIbib\fP, as in the following
921: .QS
922: .sp
923: ...
924: %A Ole-Johan Dahl
925: .ds [A O\-J. Dahl
926: ...
927: .sp
928: .QE
929: .PP
930: In fact, any \fItroff\fP commands can be entered in the middle of a reference
931: entry, and the commands are copied uninterpreted to the output.
932: For example, the user may wish to have a switch indicating whether the name
933: is to be abbreviated or not:
934: .QS
935: .sp
936: ...
937: %A Ole-Johan Dahl
938: .if \en(i[ .ds [A O\-J. Dahl
939: ...
940: .sp
941: .QE
942: .SH
943: An Example
944: .PP
945: Figure 1 shows the format file for the standard alphabetic format.
946: The sort command indicates that sorting is to be done by senior author,
947: followed by the last two digits of the date. The citation template
948: indicates that citations will be the three character sequence described
949: in the section of citations
950: followed by the last two characters of the date (i.e. AHU79, for
951: example).
952: .KS
953: .nf
954: .sp
955: # standard alphabetic format
956: SAD\-2
957: C2D\-2
958: I BMACLIB/bibinc.fullnames
959: I BMACLIB/bibinc.std
960: .sp
961: .ce
962: \fBFigure 1\fP
963: .sp
964: .KE
965: .PP
966: The two I commands include two files. The first is a file of definitions
967: for common strings, such as dates and journal names. A portion of this
968: file is shown in figure 2.
969: Note that a no-op has been inserted into the definition string for
970: BIT in order to avoid further expansion when the
971: definition is rescanned.
972: .PP
973: The second file is a sequence of \fItroff\fP macros
974: for formatting the references. The beginning of this file is shown in figure 3.
975: .PP
976: On the basis of some simple rules (the presence or absence of certain fields)
977: the document is identified as one of five different types, and a call made
978: on a different macro for each type. This is shown in figure 4.
979: .PP
980: Finally figure 5 shows the macro for one of those different types, in this
981: case the book formatting macro.
982: .KS
983: .nf
984: .sp
985: # full journal names, and other names
986: #
987: # journals
988: D ACTA Acta Informatica
989: D BIT B\e&IT
990: D CACM Communications of the ACM
991: ...
992: # months
993: D JAN January
994: ...
995: D DEC December
996: .sp
997: .ce
998: \fBFigure 2\fP
999: .sp
1000: .KE
1001: .KS
1002: .nf
1003: .sp
1004: # standard end macros
1005: #
1006: .ds [ [
1007: .ds ] ]
1008: .ds , ,
1009: .ds >. .
1010: .ds >, ,
1011: .ds c] , \e&
1012: .ds n] "" and \&
1013: .ds m] , and \&
1014: ...
1015: .de p[ \e" produce reference beginning
1016: .IP [\e\e$1]\0\0
1017: ..
1018: .de [] \e" start displaying collected references
1019: .SH
1020: References
1021: .LP
1022: ..
1023: .sp
1024: .ce
1025: \fBFigure 3\fP
1026: .sp
1027: .KE
1028: .KS
1029: .nf
1030: .sp
1031: .de ][ \e" choose format
1032: .ie !"\e\e*([J"" \e{\e
1033: . ie !"\e\e*([V"" .nr t[ 1 \e" journal
1034: . el .nr t[ 5 \e" conference paper
1035: .\e}
1036: .el .ie !"\e\e*([B"" .nr t[ 3 \e" article in book
1037: .el .ie !"\e\e*([R"" .nr t[ 4 \e" technical report
1038: .el .ie !"\e\e*([I"" .nr t[ 2 \e" book
1039: .el .nr t[ 0 \e" other
1040: .\e\en(t[[
1041: ..
1042: .sp
1043: .ce
1044: \fBFigure 4\fP
1045: .sp
1046: .KE
1047: .KS
1048: .nf
1049: .sp
1050: ...
1051: .de 2[ \e" book
1052: .if !"\e\e*([F"" .p[ \e\e*([F
1053: .if !"\e\e*([A"" \e\e*([A,
1054: .if !"\e\e*([T"" \e\ef2\e\e*([T,\e\ef1
1055: \e\e*([I\ec
1056: .if !"\e\e*([C"" , \e\e*([C\ec
1057: .if !"\e\e*([D"" \e& (\e\e*([D)\ec
1058: \e&.
1059: .if !"\e\e*([G"" Gov't. ordering no. \e\e*([G.
1060: .if !"\e\e*([O"" \e\e*([O
1061: .]\-
1062: ..
1063: .sp
1064: .ce
1065: \fBFigure 5\fP
1066: .sp
1067: .KE
1068: .SH
1069: Acknowledgements
1070: .PP
1071: \fIbib\fP was inspired by \fIrefer\fP, written by M. Lesk.
1072: .[]
1073: .rs
1074: .bp
1075: .SH
1076: APPENDIX 1
1077: .nr PS 9
1078: .nr VS 11
1079: .sp
1080: Standard Names
1081: .PP
1082: The following list gives the standard names recognized in most
1083: citation styles. Various different forms for the output are used
1084: by the different styles.
1085: In the longer reference style,
1086: the conference proceedings will also refer
1087: to the date (%D), city(%C),
1088: and when the proceedings are published as a journal,
1089: the journal name (%J), volumn (%V) and number (%N).
1090: .sp
1091: .TS
1092: expand;
1093: l s
1094: l l.
1095: \fBJournal Names\fP
1096: ACTA Acta Informatica
1097: BIT B\&IT
1098: BSTJ Bell System Technical Journal
1099: CACM Communications of the ACM
1100: COMP IEEE Computer
1101: COMPJOUR The Computer Journal
1102: COMPLANG Journal of Computer Languages
1103: COMPSUR ACM Computing Surveys
1104: I&C Information and Control
1105: IBMJRD IBM Journal of Research and Development
1106: IBMSJ IBM Systems Journal
1107: IEEETC IEEE Transactions on Computers
1108: IEEETSE IEEE Transactions on Software Engineering
1109: IJCIS International Journal of Computer and Information Sciences
1110: IPL Information Processing Letters
1111: JACM Journal of the ACM
1112: JCSS Journal of Computer and System Sciences
1113: MATHST Mathematics Systems Theory
1114: NMATH Numerical Mathematics
1115: SIAMJC Siam Journal on Computing
1116: SIAMJNA Siam Journal on Numerical Analysis
1117: SIGACT S\&IGACT News
1118: SIGPLAN SI\&GPLAN Notices
1119: SIGSOFT Software Engineering Notes
1120: SP&E Software\(emPractice & Experience
1121: SPE Software\(emPractice & Experience
1122: TOCS ACM Transactions on Computer Systems
1123: TODS ACM Transactions on Database Systems
1124: TOMS ACM Transactions on Mathematical Software
1125: TOPLAS ACM Transactions on Programming Languages and Systems
1126: .TE
1127: .sp
1128: .TS
1129: expand;
1130: l s
1131: l l.
1132: \fBConferences\fP
1133: ADA80 PROC of the ACM-SI\&GPLAN Symposium on the Ada Programming Language, SIGPLAN
1134: ASPLOS82 PROC of the SYMP on Architectural Support for Programming Languages and Operating Systems, SIGPLAN
1135: CCC79 PROC of the SI\&GPLAN 1979 SYMP on Compiler Construction, SIGPLAN
1136: CCC82 PROC of the SI\&GPLAN 1982 SYMP on Compiler Construction, SIGPLAN
1137: CCC84 PROC of the SI\&GPLAN 1984 SYMP on Compiler Construction, SIGPLAN
1138: CONF Conference
1139: FJCC Fall Joint Computer Conference
1140: FOCS Annual SYMP on Foundations of Computer Science
1141: HICSS Hawaii International CONF on System Science
1142: ICSE International CONF on Software Engineering
1143: JER3 PROC Third Jerusalem CONF on Information Technology
1144: JICAI Joint International CONF on Artificial Intelligence
1145: PLISS83 PROC SI\&GPLAN 1983 SYMP on Programming Language Issues in Software Systems, SIGPLAN
1146: POPL ACM SYMP on Principles of Programming Languages
1147: POPL5 Conference Record of the Fifth POPL
1148: POPL6 Conference Record of the Sixth POPL
1149: POPL7 Conference Record of the Seventh POPL
1150: POPL8 Conference Record of the Eighth POPL
1151: POPL9 Conference Record of the Ninth POPL
1152: POPL10 Conference Record of the Tenth POPL
1153: POPL11 Conference Record of the Eleventh POPL
1154: PROC Proceedings
1155: SOSP SYMP on Operating System Principles
1156: STOC Annual ACM SYMP on Theory of Computing
1157: SYMP Symposium
1158: WJCC PROC Western Joint Computer CONF
1159: .TE
1160: .sp
1161: .TS
1162: expand;
1163: l s
1164: l l.
1165: \fBLonger place names\fP
1166: BTLHO Bell Laboratories
1167: BTLMH Bell Laboratories
1168: CMU Carnegie-Mellon University
1169: CMUCS Computer Science Department, Carnegie-Mellon University
1170: DG Data General
1171: MITAI MIT Artificial Intelligence Laboratory
1172: MITLCS MIT Laboratory for Computer Science
1173: SUCS Computer Science Department, Stanford University
1174: SUCSL Computer Systems Lab., Stanford Electronics Lab., Dept. of Electrical Engineering and Computer Science
1175: SUEE Department of Electrical Engineering, Stanford University
1176: TUM Technische Universit\*:at M\*:unchen
1177: UCB University of California, Berkeley
1178: UCBCS Computer Science Division, EECS, UCB
1179: UCBERL ERL, EECS, UCB
1180: .TE
1181: .2C
1182: .TS
1183: l s
1184: l l.
1185: \fBShort place names\fP
1186: CORP Corporation
1187: CSD Computer Science Department
1188: DCS Department of Computer Science
1189: DEPT Department
1190: DISS Dissertation
1191: TR Technical Report
1192: UATR University of Arizona Technical Report
1193: UNIV University
1194: ERL Electronics Research Laboratory
1195: .TE
1196: .sp
1197: .TS
1198: l s
1199: l l.
1200: \fBMonths of the year\fP
1201: JAN January
1202: FEB February
1203: MAR March
1204: APR April
1205: MAY May
1206: JUN June
1207: JUL July
1208: AUG August
1209: SEP September
1210: OCT October
1211: NOV November
1212: DEC December
1213: .TE
1214: .sp
1215: .TS
1216: l s
1217: l l.
1218: \fBPublishers\fP
1219: ACADEMIC Academic Press
1220: ACPRESS Academic Press
1221: ADDISON Addison Wesley
1222: ANSI American National Standards Institute
1223: CSPRESS Computer Science Press
1224: DIGITAL Digital Press
1225: ELSEVIER American Elsevier
1226: FREEMAN W. H. Freeman and Company
1227: GPO U. S. Government Printing Office
1228: HOLT Holt, Rinehart, and Winston
1229: IEEEP IEEE Press
1230: MCGRAW McGraw-Hill
1231: MGHILL McGraw-Hill
1232: MITP MIT Press
1233: NHOLL North-Holland
1234: NYC New York, N\&Y
1235: PRENTICE Prentice Hall
1236: PRHALL Prentice Hall
1237: SPRINGER Springer Verlag
1238: SRA Science Research Associates
1239: WILEY John Wiley & Sons
1240: WINTH Winthrop Publishers
1241: .TE
1242:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.