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