home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 4 / DATAFILE_PDCD4.iso / unix / riscbsd / 1_1_contri / usd / 31_bib / bibdoc_ms next >
Encoding:
Text File  |  1986-06-02  |  39.1 KB  |  1,243 lines

  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.  
  1243.