.lf 1 - .lf 1 - .de)h .ev2 .ll\\nWu .lt\\nWu .ie"\*(.T"aps" \{\ .nr;o \\n(.o .po0 .lt7.5i .ps10 .vs12p .ft1 .tl'--''--' .ft .vs .ps .lt .po\\n(;ou \} .el\{\ .ps10 .vs12p .ft1 .tl'''' .ft .vs .ps\} .nrP +1 .if\\n(:C \{\ .ll\\n(W0u .lt\\n(W0u \} .TP .if\\n(:C \{\ .ll\\nWu .lt\\nWu \} .br .ev .ch)n -\\n(:mu .ch)f -\\n(:ou .if!\\n(:q .nr :v 0 .nr:V \\n(.v .mk:r .mkU0 .rrU1 U2 U3 U4 U5 U6 U7 U8 U9 .if\\n(:d=0&((\\n(:z-\\n(:w):(\\n(:w-\\n(:z)) \{\ .nr;t \\n(:w%26+1 .af;w a .nr;w \\n(;t .ie\\n(!\\n(;w \{\ .)z .)s .mkU0 .rrU1 U2 U3 U4 U5 U6 U7 U8 U9 \} .el\{\ .)z .)s \} .rr;t ;w \} .nr:T 0 .if\\n(:A>0 \{\ .nr;i \\n(.i .in0 .:2 .nr:T 1 .in\\n(;iu \} .mk#T .rr;i ;o ;t ;w .ns .. .deTP 'sp .af;P \\gP .afP 1 .nr;P \\n P .afP \\g(;P .af;P 1 'sp2 .if\\n(;P-1 .tl \\*(PH .if!\\n(;P%2 .tl \\*(EH .if\\n(;P%2 .tl \\*(OH 'sp2 .if\\n(;P=4 .if "\\*(f0"model" \ .pl13.25i .rr;P .. .de)f .if\\n(:A \{\ .rn)f ;u .nrT. 1 .if\\n(:f=0 .T# 1 'br .nr:f 1 .rn;u )f \} .nr;y \\n(.pu-\\n(nlu-\\n(:mu .if\\n(:qu>1v .nr ;y -1v .ie\\n(:q&\\n(;y&((\\n(:C<2):(\\n(:v=0)) .)o .el\{\ .nr:o \\n(:m+\\n(:q .if\\n(:q \ .nr:o +\\n(:Vu-1u .ch)n 15i .ch)f 15i \} .ie\\n(:C=0 'bp .el.ie \\n(:C=\\n(:c \{\ .nr;d \\n(.lu-\\n(W\\n(:Cu .nr:C 1 .nrO \\n(O1u .po\\nOu .nrW \\n(W1u+\\n(;du .ll\\nWu .lt\\nWu .nr:m \\n(:M 'bp .rr;d \} .el\{\ .if\\n(:C=1 .if "\\*(f0"acm" \ .pl10.875i .if\\n(nl>\\n(U\\n(:C \ .mkU\\n(:C .nr;d \\n(.lu-\\n(W\\n(:Cu .nr:C +1 .ie\\n(U\\n(:Cu \ 'sp|\\n(U\\n(:Cu .el'sp |\\n(U0u .ch)n -\\n(:mu .ch)f -\\n(:ou .if!\\n(:q .nr :v 0 .nrO \\n(O\\n(:Cu .po\\nOu .nrW \\n(W\\n(:Cu+\\n(;du .ll\\nWu .lt\\nWu .if\\n(:d=0&((\\n(:z-\\n(:w):(\\n(:w-\\n(:z)) \{\ .nr;t \\n(:w%26+1 .af;w a .nr;w \\n(;t .if!\\n(!\\n(;w \{\ .)z .)s \} .rr;t ;w \} .nr:T 0 .if\\n(:A>0 \{\ .nr;i \\n(.i .in0 .:2 .nr:T 1 .in\\n(;iu \} .mk#T .rr;d ;i ;t ;w .ns\} .if\\n(:A \{\ .nr:K \\n(:ou+2v .ch>f -(\\n(:Ku+1v) 'br\} .rr;y .. .deBP .ev2 .if\\n(:C \{\ .ll\\n(W0u .lt\\n(W0u \} 'sp .af;P \\gP .afP 1 .nr;P \\n P .afP \\g(;P .af;P 1 .if!\\n(;P%2 .tl \\*(EF .if\\n(;P%2 .tl \\*(OF .tl\\*(PF .if\\n(:C \{\ .ll\\nWu .lt\\nWu \} .ev .rr;P .. .de)z .if\\n(:z=\\n(:w .tm no floats to output .nr:w \\n(:w%26+1 .af;w a .nr;w \\n(:w .nr;q \\n(.u .nr;L \\n(.L .nr;i \\n(.i .ev1 .nf .ls1 .in0 .nr:d 1 .rs .br .?\\n(;w .if\\n(;q .fi .ls\\n(;L .in\\n(;iu .nr:d 0 .ev .ne2 .rm?\\n(;w .rr|\\n(;w !\\n(;w .rr;L ;i ;q ;w .. .de)s .if!(\\n(:z=\\n(:w) \{\ .nr;t \\n(:w%26+1 .af;w a .nr;w \\n(;t .nr;h \\n(|\\n(;w .if(((\\n(!\\n(;w=1)&(\\n(:C<2))&\ ((\\n(;h<\\n(.t):((\\n(;h>(\\n(.p-\\n(:r-\\n(:m))&\ (\\n(nl<=(\\n(.p-\\n(:r-\\n(:o/2u+\\n(:r))))) \{\ .)z .)s \} .rr;h ;t ;w \} .. .de)w .if!(\\n(:z=\\n(:w) \{\ .nr;o \\n(:w .)s .if\\n(:w=\\n(;o \{\ .nr:d 1 .rs .bp .nr:d 0 \} .)w \} .rr;o .. .de)o .if\\n(:v&\\n(:C=1 .nr :m \\n(:o .ev1 .nf .ls1 .in0 .:F .ie"\\n(.z":3" \{\ .br .di .ie\\n(dnu<=\\n(:Hu \{\ .nr:q 0 .nr:o \\n(:mu .rm:3 :F \} .el\{\ .nrdn +\\n(:V-\\n(.v .nr:q \\n(dnu .nr:o \\n(:mu+\\n(:qu .nr:o +\\n(:Vu-1u .rn:3 :F \} \} .el\{\ .nr:q 0 .rm:F .nr:o \\n(:mu .ch)n 15i \} .ev .. .de)n .di:3 .nr;o \\n(.o .po\\nOu .ps10 .vs12p .ft1 .ie\n(.A=0 \l@\\n(.lu@ .el_____________________________ .nr:H \\n(.v .ft .vs .ps .po\\n(;ou .. .deC0 .diCO .. .de)q .. .de)C .nr\\$1 \\$3 .ds\\$2 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 .. .nr:A 0 .nr:B 0 .nr:C 0 .nr:K 0 .nr:M .8i .nr:N 0 .nr:T 0 .nr:V \n(.v .nr:c 0 .nr:d 0 .nr:f 0 .nr:m .8i .nr:o \n(:mu .nr:q 0 .nr:r .6i .nr:v 0 .nr:w 0 .nr:x 0 .nr:y 0 .nr:z 0 .dsAT \f(HBA\h'-.2m'T\h'-.15m'\s0\s13&\s0\s16\h'-.15m'T\fP .if\n(mo-0 .ds DT January .if\n(mo-1 .ds DT February .if\n(mo-2 .ds DT March .if\n(mo-3 .ds DT April .if\n(mo-4 .ds DT May .if\n(mo-5 .ds DT June .if\n(mo-6 .ds DT July .if\n(mo-7 .ds DT August .if\n(mo-8 .ds DT September .if\n(mo-9 .ds DT October .if\n(mo-10 .ds DT November .if\n(mo-11 .ds DT December .asDT " \n(dy, 19\n(yr .ie"\*(.T"aps" .ds LO \s36\(Lb\s0 .el.ie "\*(.T"eps" .ds LO \s36\(Lb\s0 .el.ie "\*(.T"i300" .ds LO \s36\(Lb\s0 .el.ie "\*(.T"im300" .ds LO \s36\(Lb\s0 .el.ie "\*(.T"post" .ds LO \s36\(Lb\s0 .el.ds LO \s36\(L1\s0\s16\v'-.4'\*(AT\v'.4'\h'-\w'\*(AT'u'\s0 .if\n P .nr P -1 .nrP \n P 1 .nrU0 .6i .rrU1 U2 U3 U4 U5 U6 U7 U8 U9 .dsPH ''- \\n P -'' .wh0 )h .wh-\n(:mu )f .ch)f 15i .wh-\n(:mu )n .ch)f -\n(:mu .wh-\n(:ru BP .em)q .ds` \\k:\h@-\\n(.wu*8u/10u@\h@\\n(.fu/2u*2u+1u-\\n(.fu*.2m@\(ga\h@|\\n:u@ .ds' \\k:\h@-\\n(.wu*8u/10u@\h@\\n(.fu/2u*2u+1u-\\n(.fu*.2m+.07m@\(aa\h@|\\n:u@ .ds+ \\k:\h@-\\n(.wu*8u/10u@\h@\\n(.fu/2u*2u+1u-\\n(.fu*.2m+.07m@\v@-.2m@\(aa\v@.2m@\h@|\\n:u@ .ds^ \\k:\h@-\\n(.wu*8u/10u@\h@\\n(.fu/2u*2u+1u-\\n(.fu*.15m-.07m@\ \h@\\n(.fu-1u/2u*.02m@^\h@|\\n:u@ .ds~ \\k:\h@-\\n(.wu*8u/10u@\h@\\n(.fu/2u*2u+1u-\\n(.fu*.2m-.07m@\ \h@\\n(.fu-1u/2u*.05m@~\h@|\\n:u@ .ds, \\k:\h@-\\n(.wu*85u/100u@\v@.07m@,\v@-.07m@\h@|\\n:u@ .ds: \\k:\h@-\\n(.wu*85u/100u@\h@\\n(.fu/2u*2u+1u-\\n(.fu*3u*.06m@\ \h@3u-\\n(.fu/2u*.05m-.1m@\ \v@-.6m@\z.\h@\\n(.fu-1u/2u*.05m+.2m@.\v@.6m@\h@|\\n:u@ .ds; \\k:\h@-\\n(.wu*75u/100u@\h@\\n(.fu/2u*2u+1u-\\n(.fu*3u*.09m@\ \h@3u-\\n(.fu/2u*.06m-.15m@\h@\\n(.fu-1u/2u*.04m@\ \v@-.85m@\z.\h@.3m@.\v@.85m@\h@|\\n:u@ .ds- \\k:\h@-\\n(.wu*75u/100u@\v@.7m@`\v@-.7m@\h@|\\n:u@ .ds/ \\k:\h@-\\n(.wu*85u/100u@\v@.2m@\(aa\v@-.2m@\h@|\\n:u@ .po0 .nrO \n(.o .nrO0 \n(.o .ll6i .lt6i .nrW \n(.lu .pl11i .ns .ls1 'fi .adb .vs12 .hy14 .dsf0 none .lf 1 prefer.m .nrAC 0 .nrS0 0 .nrS1 0 .nrS2 0 .nrFN 0 .nrTB 0 .nrFG 0 .nrRF 0 .nrFN +0 1 .nrNN +0 1 .ift \ .po1.0i .nrO \n(.o .nrO0 \n(.o .nrA 0 .nrD 0 .lf 1 prefer.m .lf 1 ../ADM/monk.mac '\" ;P page number register TEMP .nr ;! 1 .de TP 'sp .af ;P \\gP \" save format of page_counter .af P 1 \" normal format for next line .nr ;P \\n P \" must use different name for P .af P \\g(;P \" restore format to P .af ;P 1 \" normal format for control register 'sp 2 .ie \\n(;!>1 \{ \" output headers .tl \\*(PH .if !\\n(;P%2 .tl \\*(EH .if \\n(;P%2 .tl \\*(OH \} .el 'sp 1 'sp 2 .rr ;P \" free storage .nr ;! 2 .. .lf 1 ../ADM/monk.mac .nrP 169-1 .dsPH ''' .dsEH '\\nP''Formatting References with Prefer' .dsOH 'Formatting References with Prefer''\\nP' .nrA +1 .nrT 0 .rmT1 T2 T3 T4 T5 T6 .nrT +1 .dsT1 M. A. Derr .nrT +1 .dsT2 MAD .nrT +1 .dsT3 MH .nrT +1 .dsT4 11225 .nrT +1 .dsT5 x4721 .nrT +1 .dsT6 2D-455 .dsA\nA \*(T1 .dsI\nA \*(T2 .dsL\nA \*(T3 .dsD\nA \*(T4 .dsE\nA \*(T5 .dsR\nA \*(T6 .dsDT July 1, 1989 .eo .deTI\(ts\(ts Formatting References with Prefer .\(ts\(ts .ec .eo .deAS\(ts\(ts \&\f2\&Prefer\&\f1\& is a \s-1\&UNIX\s+1\& text processing tool that formats bibliographic references. Using a bibliography database, it scans a document to convert symbolic references to citation marks and full references ready for typesetting. It currently supports a variety of reference formatting styles including those of the \s-1\&ACM\s+1\&, \s-1\&IEEE\s+1\&, and \s-1\&APA\s+1\&. \&\f2\&Prefer\&\f1\& runs as a preprocessor to \&\f2\&troff\&\f1\& and can also be invoked by the \&\f2\&monk\&\f1\& text processing package. This paper describes \&\f2\&prefer\&\f1\& and its supporting tools for creating, indexing, and retrieving from bibliography databases and for converting \&\f2\&refer\&\f1\&-style databases and documents for use with \&\f2\&prefer\&\f1\&. .\(ts\(ts .ec .bp 'nf .ps+2 .vs+2 .ft3 .ce9999 .TI .ft1 .ps-2 .vs-2 .vs\n(.sp+2p .sp1 .ti\n(.iu .ps+1 .if\nA>=1 \ \*(A1 .if\nA>=2 \ \*(A2 .if\nA>=3 \ \*(A3 .ft1 .ps-1 .sp1 .ti\n(.iu \f2\&AT&T Bell Laboratories\fP\& .br \f2\&Murray Hill, NJ 07974\fP\& .br .ce0 'fi .sp1 .ti\n(.iu .ce9999 \s+1\&\f2\&ABSTRACT\fP\&\s-1\& .ce0 .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .in+.5i .ll-.5i .lt-.5i .nrW \n(.lu .ls1 .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n .AS .ll+.5i .lt+.5i .nrW \n(.lu .in-.5i .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .lf 1 mycite .TC section 1 1 Introduction 168 .TC section 1 2 Bibliographic Database 169 .TC section 2 2.1 Building a Bibliography 169 .TC section 3 2.1.1 Author and editor names. 170 .TC section 3 2.1.2 The \&\f(CW\&%also\&\f1\& attributes. 170 .TC section 2 2.2 Indexing a Bibliography 171 .TC section 2 2.3 Retrieval by Keyword 171 .TC section 1 3 Formatting References In Documents 172 .TC section 2 3.1 Citations 172 .TC section 2 3.2 Reference Placement 173 .TC section 2 3.3 Including Additional References 173 .TC section 2 3.4 Switching Databases 174 .TC section 2 3.5 Complete Bibliographies 174 .TC section 2 3.6 Styles Options 174 .TC section 2 3.7 Command Line arguments 175 .TC section 1 4 Using \&\f2\&prefer\&\f1\& \&\f3\&With\&\f1\& \&\f2\&monk\&\f1\& 175 .TC section 1 5 Converting From \&\f2\&refer\&\f1\& \&\f3\&To\&\f1\& \&\f2\&prefer\&\f1\& 176 .TC section 1 6 Acknowledgements 176 .TC section 1 References 176 .TC section 1 A Bibliography Types And Attributes 177 .TC section 1 B EXAMPLES 178 .ds ,0 3.6 .tm .CD "stylesec" "3.6" .ds ,1 A .tm .CD "types" "A" .ds ,2 B .tm .CD "examples" "B" .lf 1 mycite .ie\n(:C .tm "prefer.m": 34: already in multi-column mode .el\{\ .br .nr:C 1 .nrW0 \nW .nrW \n(.lu*8u/17u .nrW1 \nW .nrW2 \nW .nrO0 \n(.ou .nrO1 \n(.ou .nrO2 \n(.lu*9u/17u+\n(.ou .ll\nWu .lt\nWu .nr:c 2 .mkU0 .ns .rrU1 U2 \} .dsTs Introduction .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 2v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 2v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ne3 .nrS0 +1 .nrS1 0 .nrS2 0 .nrS3 0 \&\f3\&\n(S0. \*(Ts\&\f1\& .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n .rmRs .asRs \n(S0 .tm.TC section 1 \*(Rs \*(Ts \n P \&\f2\&Prefer\&\f1\& is a \s-1\&UNIX\s+1\& text processing tool\s-2\&\v'-.4m'\(dg\v'+.4m' .vs-2 .ls1 .if\n(:x .tm "prefer.m": 39: Footnotes can not be nested .nr:x 1 .nr;s \n(.s .nr;f \n(.f .nr;u \n(.u .nr;j \n(.j .nr;v \n(.v .nr;L \n(.L .nr;l \n(.l .ev1 .ps\n(;s .vs\n(;sp+2p .ft\n(;f .nf .if\n(;u .fi .ad\n(;j .vs\n(;vu .ls\n(;L .ll\n(;lu .in0 .ti0 .hy14 .lt\n(;lu .da:F .ie!\n(:q \{\ .nr;o \n(.o .po0 .ps10 .vs12p .ft1 .ie\n(.A=0 \l'72p' .el __________ .ft .vs .ps .po\n(;ou \} .el.sp 1 .in0.2i .ti-0.2i \(dg\h'|0.2i'in addition to Tenth Edition \s-1\&UNIX\s+1\&, \&\f2\&prefer\&\f1\& runs under \s-1\&AT&T UNIX\s+1\& System V and 4.3\s-1\&BSD\s+1\&. .in0 .br .da .if!\n(:C .nr :v 1 .ev .nr:x 0 .if!\n(:o-\n(:m \{\ .nr:o +\n(:Vu-1u .nrdn +\n(:V-\n(.v \} .nr:q +\n(dnu .nr:o +\n(dnu .if!\n(.pu-\n(nlu-.5p-\n(:ou .nr :o \n(.pu-\n(nlu-.5p .if!\n(:ou-\n(:mu .nr :o \n(:mu .if\n(:C>1&\n(:v .nr :o \n(:mu .ch)f -\n(:ou .rr;L ;f ;j ;l ;o ;s ;u ;v .vs+2 \s+2\& .vs\n(.sp+2p that formats bibliographic references. Using a bibliography database, it scans a document to convert symbolic references to citation marks and full references ready for typesetting. Like \&\f2\&eqn\&\f1\& [4] and \&\f2\&tbl\&\f1\& [8], \&\f2\&prefer\&\f1\& runs as a preprocessor to \&\f2\&troff\&\f1\& [3]. It can also be invoked by the \&\f2\&monk\&\f1\& [9] text processing package. .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n \&\f2\&Prefer\&\f1\& was designed to replace the \&\f2\&refer\&\f1\& [7] bibliography program. \&\f2\&Refer\&\f1\& is not only lacking in flexibility, with much of its functionality hardwired into C code, but the code is difficult to modify and maintain. \&\f2\&Prefer\&\f1\& improves on \&\f2\&refer\&\f1\& and on \&\f2\&bib\&\f1\& [2], an earlier \&\f2\&refer\&\f1\& replacement. It also follows style conventions found in other bibliography formatters such as \&\f2\&Scribe\&\f1\& [11], and \&\f2\&BibTeX\&\f1\& [6], [10]. It attains flexibility by encoding all style-dependent formatting information in scripts written in \&\f2\&awk\&\f1\& [1], a pattern scanning and processing language. \&\f2\&Prefer\&\f1\& currently supports seven reference formatting styles: .dsl2 \& .dsl3 1 .dsl4 \s-2\(bu\s+2\ .dsl5 nnn .dsl1 \n(.i \*(l1 .in+\w'\*(l5'u .afl0 0 .dsl0 \n(l0 \*(l0 .nrl0 0 1 .rmTs .asTs \*(l2 .asTs \*(l4 .dsRs \*(l4 .nrl2 \w'\*(l5' .nrl1 \w'\*(Ts' .ie\n(l1>\n(l2 \{\ .nrl1 0 .nrl1 -\n(l2 .ti\n(l1u \}\c .el\{\ .nrl2 0 .nrl2 -\n(l1 .ti\n(l2u \}\c \*(Ts\&\c \&\f(CW\&att\&\f1\& \- used at \s-1\&AT&T\s+1\& Bell Laboratories .rmTs .asTs \*(l2 .asTs \*(l4 .dsRs \*(l4 .nrl2 \w'\*(l5' .nrl1 \w'\*(Ts' .ie\n(l1>\n(l2 \{\ .nrl1 0 .nrl1 -\n(l2 .ti\n(l1u \}\c .el\{\ .nrl2 0 .nrl2 -\n(l1 .ti\n(l2u \}\c \*(Ts\&\c \&\f(CW\&acm\&\f1\& \- Association for Computing Machinery .rmTs .asTs \*(l2 .asTs \*(l4 .dsRs \*(l4 .nrl2 \w'\*(l5' .nrl1 \w'\*(Ts' .ie\n(l1>\n(l2 \{\ .nrl1 0 .nrl1 -\n(l2 .ti\n(l1u \}\c .el\{\ .nrl2 0 .nrl2 -\n(l1 .ti\n(l2u \}\c \*(Ts\&\c \&\f(CW\&apa\&\f1\& \- American Psychological Association .rmTs .asTs \*(l2 .asTs \*(l4 .dsRs \*(l4 .nrl2 \w'\*(l5' .nrl1 \w'\*(Ts' .ie\n(l1>\n(l2 \{\ .nrl1 0 .nrl1 -\n(l2 .ti\n(l1u \}\c .el\{\ .nrl2 0 .nrl2 -\n(l1 .ti\n(l2u \}\c \*(Ts\&\c \&\f(CW\&ieee\&\f1\& \- Institute of Electrical and Electronics Engineers, Inc. .rmTs .asTs \*(l2 .asTs \*(l4 .dsRs \*(l4 .nrl2 \w'\*(l5' .nrl1 \w'\*(Ts' .ie\n(l1>\n(l2 \{\ .nrl1 0 .nrl1 -\n(l2 .ti\n(l1u \}\c .el\{\ .nrl2 0 .nrl2 -\n(l1 .ti\n(l2u \}\c \*(Ts\&\c \&\f(CW\&lsa\&\f1\& \- Linguistic Society of America .rmTs .asTs \*(l2 .asTs \*(l4 .dsRs \*(l4 .nrl2 \w'\*(l5' .nrl1 \w'\*(Ts' .ie\n(l1>\n(l2 \{\ .nrl1 0 .nrl1 -\n(l2 .ti\n(l1u \}\c .el\{\ .nrl2 0 .nrl2 -\n(l1 .ti\n(l2u \}\c \*(Ts\&\c \&\f(CW\&pami\&\f1\& \- Pattern Analysis and Machine Intelligence .rmTs .asTs \*(l2 .asTs \*(l4 .dsRs \*(l4 .nrl2 \w'\*(l5' .nrl1 \w'\*(Ts' .ie\n(l1>\n(l2 \{\ .nrl1 0 .nrl1 -\n(l2 .ti\n(l1u \}\c .el\{\ .nrl2 0 .nrl2 -\n(l1 .ti\n(l2u \}\c \*(Ts\&\c \&\f(CW\&spectrum\&\f1\& -\ \s-1\&IEEE\s+1\& Spectrum .rml5 .rml4 .rml3 .rml2 .)C ;i l1 \*(l1 .in\n(;iu .)C l0 l0 \*(l0 .rm;i In addition, users may define their own styles by supplying an appropriate \&\f2\&awk\&\f1\& style script. \&\f2\&Prefer\&\f1\& uses the \&\f(CW\&att\&\f1\& style by default. Unless noted, all examples in this paper will be in \&\f(CW\&att\&\f1\& style. .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n To give a flavor of what \&\f2\&prefer\&\f1\& can do, here is a simple example of a document containing citations to references in a bibliography database. At the end of the document, the full references are printed. Here's the document before it is formatted: .if\n(:y .tm "prefer.m": 95: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 96 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&This is a simple example with a couple of citations |\^reference(awk) |\^reference(troff). Citations can be |\^reference(awk) in the middle of a line, starting a new line, |\^reference(troff) or flush|\^reference(awk) against a word. |\^reference_placement \s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 The command \&\f(CW\&|\^reference(awk)\&\f1\& tells \&\f2\&prefer\&\f1\& to search a bibliography database for a reference containing the word ``awk,'' somewhere in a database entry, e.g, in the author or title field. \&\f2\&Prefer\&\f1\& will replace the \&\f(CW\&|\^reference\&\f1\& command with a citation mark that corresponds to the matching reference. References from each \&\f(CW\&|\^reference\&\f1\& command are remembered by \&\f2\&prefer\&\f1\&. When \&\f2\&prefer\&\f1\& reaches the \&\f(CW\&|\^reference_placement\&\f1\& command, references seen so far are formatted according to the current style. When the above document (in a file called \&\f(CW\&document\&\f1\&) is run through \&\f2\&prefer\&\f1\& and \&\f2\&troff\&\f1\&: .lf 120 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&\&\f(CW\&prefer document | troff\&\f1\& \&\f2\&-options\&\f1\& \&\f(CW\&...\&\f1\&\s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu the following output is produced: .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n .if\n(:y .tm "prefer.m": 125: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 \s-1\& .lf 127 prefer.m This is a simple example with a couple of citations.\^\s-2\v'-0.4m'\f1\&1,\ 2\fP\v'0.4m'\s+2 Citations can be\^\s-2\v'-0.4m'\f1\&1\fP\v'0.4m'\s+2 in the middle of a line, starting a new line,\^\s-2\v'-0.4m'\f1\&2\fP\v'0.4m'\s+2 or flush\^\s-2\v'-0.4m'\f1\&1\fP\v'0.4m'\s+2 against a word. .in .5i .sp .5 .ti -\w'[1]\ \ \ 'u [1]\ \ \ Aho, A. V., Kernighan, B. W., and Weinberger, P. J., \f2\&The AWK Programming Language\f1\&, Addison-Wesley, Reading, Massachusetts (1988). .sp .5 .ti -\w'[2]\ \ \ 'u [2]\ \ \ Kernighan, B. W., ``A Troff Tutorial,'' in \f2\&UNIX Text Editing & Phototypesetting Starter Package\f1\&, Tartanella, C. (Ed.), Computing Information Services, Bell Laboratories, Murray Hill, NJ (1980). .in -5i .nr RF 2 .lf 127 prefer.m \s+1\& .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n In addition to the \&\f2\&prefer\&\f1\& program, several other support tools are available. \&\f2\&Penter\&\f1\& is an interactive tool for creating or appending to bibliography databases. \&\f2\&Pinvert\&\f1\& creates an index to the bibliography database for fast retrieval. \&\f2\&Plook\&\f1\& retrieves entries that match search keywords from a bibliography database. \&\f2\&Pconvert\&\f1\& converts \&\f2\&refer\&\f1\&-style documents and databases to \&\f2\&prefer\&\f1\&-style. The remainder of this paper describes \&\f2\&prefer\&\f1\& and its supporting tools and provides examples of their use. .dsTs Bibliographic Database .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 2v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 2v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ne3 .nrS0 +1 .nrS1 0 .nrS2 0 .nrS3 0 \&\f3\&\n(S0. \*(Ts\&\f1\& .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n .rmRs .asRs \n(S0 .tm.TC section 1 \*(Rs \*(Ts \n P A bibliography database is a file consisting of one or more entries separated by newlines. Each entry is composed of several %attribute/value pairs providing such information as type, author, title, and date. For example, here is an entry describing the \&\f2\&awk\&\f1\& book referenced in the previous example. .if\n(:y .tm "prefer.m": 155: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 156 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&%type book %author Alfred V. Aho %author Brian W. Kernighan %author Peter J. Weinberger %title The \s-1\&AWK\s+1\& Programming Language %publisher Addison-Wesley %address Reading, Massachusetts %date 1988 \s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 Appendix \&\c \*(,1 provides a complete list of types and attributes. .dsTs Building a Bibliography .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ne3 .nrS1 +1 .nrS2 0 .nrS3 0 \&\f3\&\n(S0.\n(S1 \*(Ts\&\f1\& .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n .rmRs .asRs \n(S0 .asRs . .asRs \n(S1 .tm.TC section 2 \*(Rs \*(Ts \n P You may create or modify a bibliography database using your favorite text editor or by using the tool, \&\f2\&penter\&\f1\&.\s-2\&\v'-.4m'\(**\v'+.4m' .vs-2 .ls1 .if\n(:x .tm "prefer.m": 177: Footnotes can not be nested .nr:x 1 .nr;s \n(.s .nr;f \n(.f .nr;u \n(.u .nr;j \n(.j .nr;v \n(.v .nr;L \n(.L .nr;l \n(.l .ev1 .ps\n(;s .vs\n(;sp+2p .ft\n(;f .nf .if\n(;u .fi .ad\n(;j .vs\n(;vu .ls\n(;L .ll\n(;lu .in0 .ti0 .hy14 .lt\n(;lu .da:F .ie!\n(:q \{\ .nr;o \n(.o .po0 .ps10 .vs12p .ft1 .ie\n(.A=0 \l'72p' .el __________ .ft .vs .ps .po\n(;ou \} .el.sp 1 .in0.2i .ti-0.2i \(**\h'|0.2i'\&\f2\&Penter\&\f1\& is based on a program written by T.J. Kowalski and H. H. Goguen. .in0 .br .da .if!\n(:C .nr :v 1 .ev .nr:x 0 .if!\n(:o-\n(:m \{\ .nr:o +\n(:Vu-1u .nrdn +\n(:V-\n(.v \} .nr:q +\n(dnu .nr:o +\n(dnu .if!\n(.pu-\n(nlu-.5p-\n(:ou .nr :o \n(.pu-\n(nlu-.5p .if!\n(:ou-\n(:mu .nr :o \n(:mu .if\n(:C>1&\n(:v .nr :o \n(:mu .ch)f -\n(:ou .rr;L ;f ;j ;l ;o ;s ;u ;v .vs+2 \s+2\& .vs\n(.sp+2p After invoking \&\f2\&penter\&\f1\& with the name of the bibliography file as the argument (\&\f(CW\&prefer.out\&\f1\& by default), \&\f2\&penter\&\f1\& prompts for a reference type. Typing \&\f(CW\&?\&\f1\& to this prompt gets you a list of legal types. Typing \&\f(CW\&help\&\f1\& to the same prompt will get you a subprompt for a reference type who's attributes will be listed. Answering \&\f(CW\&?\&\f1\& to this subprompt will list attributes for each type. .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n Each reference type has some required attributes and some optional attributes. After you respond to the initial reference type prompt with a legal type, \&\f2\&penter\&\f1\& prompts for each attribute associated with that type. Some attributes have default values, shown in brackets, \&\f(CW\&[\&\f1\& \&\f2\&default\&\f1\& \&\f(CW\&]\&\f1\&. Defaults may be accepted by typing a return, skipped by typing spaces before the return, or overridden by typing a new value. For attributes without defaults, typing a value followed by return enters that value, while typing return, skips the attribute. Required attributes may not be skipped. The character \&\f(CW\&&\&\f1\& appended to an attribute value causes the prompt for the current attribute to be repeated. This allows multiple authors or editors to be entered or allows titles to span multiple lines, for example. .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n When \&\f2\&penter\&\f1\& is finished with an entry, it begins again, prompting for another reference type. To terminate a \&\f2\&penter\&\f1\& session, type \&\f(CW\&quit\&\f1\& and the new entries will be written to the bibliography file. This example shows how to enter the previous reference using \&\f2\&penter\&\f1\&; the result is put in the file \&\f(CW\&prefer.out\&\f1\&. \&\f2\&Penter\&\f1\&'s prompts are in \&\f2\&italics\&\f1\&. .if\n(:y .tm "prefer.m": 216: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 217 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&\&\f(CW\&penter\&\f1\& \&\f2\&Reference type [article]\&\f1\& \&\f(CW\&book\&\f1\& \&\f2\&author:\&\f1\& \&\f(CW\&Alfred V. Aho&\&\f1\& \&\f2\&author:\&\f1\& \&\f(CW\&Brian W. Kernighan&\&\f1\& \&\f2\&author:\&\f1\& \&\f(CW\&Peter J. Weinberger\&\f1\& \&\f2\&title:\&\f1\& \&\f(CW\&The AWK Programming Language\&\f1\& \&\f2\&publisher:\&\f1\& \&\f(CW\&Addison-Wesley\&\f1\& \&\f2\&date: 1988\&\f1\& \&\f2\&volume:\&\f1\& \&\f2\&other:\&\f1\& \&\f2\&also:\&\f1\& \&\f2\&keywords:\&\f1\& \&\f2\&location status [don't have]:\&\f1\& \&\f2\&read status [haven't read]:\&\f1\& \&\f2\&comments:\&\f1\& \&\f2\&Reference type [article]\&\f1\& \&\f(CW\&quit\&\f1\& \s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n If you want to modify the current entry, respond to the current prompt with \&\f(CW\&~v\&\f1\& to invoke a visual editor (\&\f(CW\&$VISUAL\&\f1\& if set, or \&\f2\&vi\&\f1\& if not) or \&\f(CW\&~e\&\f1\& to invoke a line editor (\&\f(CW\&$EDITOR\&\f1\& if set, or \&\f2\&ed\&\f1\& if not). After making some changes and leaving the editor, you will be back in \&\f2\&penter\&\f1\& at the same point where you left off. Alternatively, you can modify the bibliography file with a text editor after you have exited \&\f2\&penter\&\f1\&. .dsTs Author and editor names. .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ne3 .nrS2 +1 .nrS3 0 \&\f2\&\n(S0.\n(S1.\n(S2 \*(Ts\&\f1\& .rmRs .asRs \n(S0 .asRs . .asRs \n(S1 .asRs . .asRs \n(S2 .tm.TC section 3 \*(Rs \*(Ts \n P Proper names may be entered in a variety of ways; \&\f2\&prefer\&\f1\& knows how to figure out first names, initials, last names, titles, etc. It also knows about some two part last names such as De Paul and Van Winkle. For example, any of the following are acceptable ways to enter a name. .if\n(:y .tm "prefer.m": 261: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 262 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&%author John Thomas De Paul %author Dr. John T. De Paul, Jr. %editor J. T. De Paul Jr. %editor De Paul, John T., Jr \s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n If you use the name of an organization or corporation as an author or editor and do not want \&\f2\&prefer\&\f1\& to parse it as the name of a person, enclose the name in the \&\f(CW\&%verbatim\&\f1\& command. This command is also useful in keeping double last names together. Here are two examples: .if\n(:y .tm "prefer.m": 279: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 280 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&%author %verbatim(\s-1\&AT&T\s+1\& Bell Laboratories) %author John %verbatim(Smith Jones) \s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 .dsTs The \f(CW%also\fP attributes. .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ne3 .nrS2 +1 .nrS3 0 \&\f2\&\n(S0.\n(S1.\n(S2 \*(Ts\&\f1\& .rmRs .asRs \n(S0 .asRs . .asRs \n(S1 .asRs . .asRs \n(S2 .tm.TC section 3 \*(Rs \*(Ts \n P Another class of attributes deserves special mention. The \&\f(CW\&%also\&\f1\& attributes allow one bibliographic reference to refer by keyword to another reference contained in the same database as this example shows: .if\n(:y .tm "prefer.m": 296: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 297 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&%type techreport %author Graeme Hirst %title Semantic Interpretation Against Ambiguity %publisher Brown University %date 1983 %report Technical Report CS-83-25 %also hirst phdthesis %type phdthesis %author Graeme Hirst %title Semantic Interpretation Against Ambiguity %publisher Brown University %date 1983 \s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 When a reference to the first entry is formatted, both references will appear in a single entry. .if\n(:y .tm "prefer.m": 306: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 \s-1\& .lf 308 prefer.m .in .5i .sp .5 .ti -\w'[1]\ \ \ 'u [1]\ \ \ Hirst, G., ``Semantic Interpretation Against Ambiguity,'' Technical Report CS-83-25, Brown University (1983). Also PhD Thesis, Brown University (1983). .in -5i .nr RF 1 .lf 308 prefer.m \s+1\& .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n Two other attributes, \&\f(CW\&%also_begin\&\f1\& and \&\f(CW\&%also_end\&\f1\&, can enclose another \&\f(CW\&%also\&\f1\& attribute, surrounding it with optional text as this example demonstrates: .if\n(:y .tm "prefer.m": 317: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 318 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&%also_begin (See also %also Grosz Sparck Jones Webber %also_end ) \s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 Alternatively, a partial or complete reference may be included between \&\f(CW\&%also_begin\&\f1\& and \&\f(CW\&%also_end\&\f1\&: .if\n(:y .tm "prefer.m": 329: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 330 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&%also_begin Reprinted in %type editedbook %title Programming Languages: A Grand Tour %editor Ellis Horowitz %date 1983 %publisher Computer Science Press %address Rockville, MD %also_end \s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 While \&\f(CW\&%also\&\f1\& is supported by \&\f2\&penter\&\f1\&, \&\f(CW\&%also_begin\&\f1\& and \&\f(CW\&%also_end\&\f1\& are not and must be entered using a text editor. .dsTs Indexing a Bibliography .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ne3 .nrS1 +1 .nrS2 0 .nrS3 0 \&\f3\&\n(S0.\n(S1 \*(Ts\&\f1\& .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n .rmRs .asRs \n(S0 .asRs . .asRs \n(S1 .tm.TC section 2 \*(Rs \*(Ts \n P \&\f2\&Pinvert\&\f1\&\s-2\&\v'-.4m'\(dg\v'+.4m' .vs-2 .ls1 .if\n(:x .tm "prefer.m": 349: Footnotes can not be nested .nr:x 1 .nr;s \n(.s .nr;f \n(.f .nr;u \n(.u .nr;j \n(.j .nr;v \n(.v .nr;L \n(.L .nr;l \n(.l .ev1 .ps\n(;s .vs\n(;sp+2p .ft\n(;f .nf .if\n(;u .fi .ad\n(;j .vs\n(;vu .ls\n(;L .ll\n(;lu .in0 .ti0 .hy14 .lt\n(;lu .da:F .ie!\n(:q \{\ .nr;o \n(.o .po0 .ps10 .vs12p .ft1 .ie\n(.A=0 \l'72p' .el __________ .ft .vs .ps .po\n(;ou \} .el.sp 1 .in0.2i .ti-0.2i \(dg\h'|0.2i'Based on the \&\f2\&bib\&\f1\& [2] version by T. A. Budd .in0 .br .da .if!\n(:C .nr :v 1 .ev .nr:x 0 .if!\n(:o-\n(:m \{\ .nr:o +\n(:Vu-1u .nrdn +\n(:V-\n(.v \} .nr:q +\n(dnu .nr:o +\n(dnu .if!\n(.pu-\n(nlu-.5p-\n(:ou .nr :o \n(.pu-\n(nlu-.5p .if!\n(:ou-\n(:mu .nr :o \n(:mu .if\n(:C>1&\n(:v .nr :o \n(:mu .ch)f -\n(:ou .rr;L ;f ;j ;l ;o ;s ;u ;v .vs+2 \s+2\& .vs\n(.sp+2p creates a search key index to one or more bibliography database files. Indexing the database lets you refer to any entry using a unique combination of search keys. To create the index, \&\f2\&pinvert\&\f1\& uses words of at least three characters found the bibliography. Some common words (those found in \&\f(CW\&/usr/lib/eign\&\f1\&) are ignored. In addition, values of some of the attributes are ignored (\&\f(CW\&%volume\&\f1\& and \&\f(CW\&%pages\&\f1\&, for example). \&\f2\&Pinvert\&\f1\& converts all keys to lower case, removes non-alphanumeric characters, and truncates each key to six characters. .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n \&\f2\&Pinvert\&\f1\& with no arguments, assumes that the bibliography file is \&\f(CW\&prefer.out\&\f1\& and stores the index and header information in \&\f(CW\&prefer.out.i\&\f1\& and \&\f(CW\&prefer.out.h\&\f1\&. If more than one file is being indexed, the index is named after the first file in the list. For example, .lf 373 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&\&\f(CW\&pinvert ourbib theirbib mybib\&\f1\&\s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu creates an index to all three bibliography files, storing the index and header information in \&\f(CW\&ourbib.i\&\f1\& and \&\f(CW\&ourbib.h\&\f1\&, respectively. Alternatively, index and header files can also be given a unique name using the \&\f(CW\&-p\&\f1\& option: .lf 382 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&\&\f(CW\&pinvert \-p index yours mine ours\&\f1\&\s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu stores the index and header files for the three bibliography files in \&\f(CW\&index.i\&\f1\& and \&\f(CW\&index.h\&\f1\&. .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n \&\f2\&Pinvert\&\f1\& provides several other options. .if\n(:y .tm "prefer.m": 390: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 391 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \&\f(CW\&\-c\&\f1\& \&\f2\&cfile\&\f1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .rs .sp-1 .ti\n(.iu specifies a file of common words, one per line, to exclude as indexing keys (default is \&\f(CW\&/usr/lib/eign\&\f1\&). .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 .if\n(:y .tm "prefer.m": 398: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 399 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \&\f(CW\&\-i\&\f1\& \&\f2\&ifile\&\f1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .rs .sp-1 .ti\n(.iu specifies a file of attributes, one per line, to ignore while collecting keys from database entries. The default file, \&\f(CW\&/usr/lib/prefer/ignore\&\f1\&, contains the attributes \&\f(CW\&%volume\&\f1\&, \&\f(CW\&%number\&\f1\&, \&\f(CW\&%part\&\f1\&, \&\f(CW\&%pages\&\f1\&, \&\f(CW\&%also\&\f1\&, \&\f(CW\&%X\&\f1\&, \&\f(CW\&%Y\&\f1\&, and \&\f(CW\&%Z\&\f1\&. .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 .if\n(:y .tm "prefer.m": 409: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 410 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \&\f(CW\&\-k\&\f1\& \&\f2\&maxkey\&\f1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .rs .sp-1 .ti\n(.iu specifies the maximum number of search keys collected per reference (default is 100 keys). .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 .if\n(:y .tm "prefer.m": 416: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 417 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \&\f(CW\&\-l\&\f1\& \&\f2\&keylen\&\f1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .rs .sp-1 .ti\n(.iu specifies the maximum length of a search key(default is 6 characters). .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 .if\n(:y .tm "prefer.m": 422: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 423 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \&\f(CW\&\-v\&\f1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .rs .sp-1 .ti\n(.iu tells \&\f2\&pinvert\&\f1\& to print statistics. .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 .rs .sp1 .ti\n(.iu .dsTs Retrieval by Keyword .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ne3 .nrS1 +1 .nrS2 0 .nrS3 0 \&\f3\&\n(S0.\n(S1 \*(Ts\&\f1\& .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n .rmRs .asRs \n(S0 .asRs . .asRs \n(S1 .tm.TC section 2 \*(Rs \*(Ts \n P \&\f2\&Plook\&\f1\& is a command that uses an index to search a bibliography database for references that match search keys. As in \&\f2\&pinvert\&\f1\&, search keys are a sequence of non-white space characters with non-alphanumeric characters removed. Keys must be at least three characters and are converted to lower-case and truncated to six characters. Some common words are ignored (those in the file \&\f(CW\&/usr/lib/eign\&\f1\& by default). If the search keys appear on the command line, \&\f2\&plook\&\f1\& retrieves all references that contain all the search keys and prints the references on the standard output. For example, .lf 447 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&\&\f(CW\&plook awk book\&\f1\&\s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu would output: .if\n(:y .tm "prefer.m": 451: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 452 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&\&\f2\&%type book %author Alfred V. Aho %author Brian W. Kernighan %author Peter J. Weinberger %title The AWK Programming Language %publisher Addison-Wesley %address Reading, Massachusetts %date 1988 \&\f1\&\s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 If the command line contains no search keys, then \&\f2\&plook\&\f1\& reads a line of standard input for search keys. After returning the matching reference(s) it waits for the next line of keys, terminating when it receives an end-of-file character, <\&\f3\&control-d\&\f1\&>. Here's an example of this mode of use: .if\n(:y .tm "prefer.m": 475: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 476 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&\&\f(CW\&plook\&\f1\& \&\f(CW\&lesk indexes\&\f1\& \&\f2\&%type incollection %author M. E. Lesk %title Some Applications of Inverted Indexes on the UNIX System %booktitle UNIX Programmer's Manual, Seventh Edition %publisher Bell Laboratories %address Murray Hill, NJ %date January, 1979 %volume 2A \&\f1\& \&\f(CW\&lesk tables\&\f1\& \&\f2\&%type incollection %author M. E. Lesk %title TBL \- A program to format tables %booktitle UNIX Text Editing & Phototypesetting Starter Package %editor Claudine Tartanella %publisher Computing Information Services, Bell Laboratories %address Murray Hill, NJ %date 1980 \&\f1\& \&\f(CW\&<control-d>\&\f1\& \s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n \&\f2\&Plook\&\f1\& recognizes the options \&\f(CW\&-c\&\f1\&, \&\f(CW\&-l\&\f1\&, and \&\f(CW\&-p\&\f1\& with the same meanings as \&\f2\&pinvert\&\f1\&. If the index file is out of date or does not exist, \&\f2\&plook\&\f1\& will try to create it by invoking \&\f2\&pinvert\&\f1\&. .dsTs Formatting References In Documents .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 2v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 2v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ne3 .nrS0 +1 .nrS1 0 .nrS2 0 .nrS3 0 \&\f3\&\n(S0. \*(Ts\&\f1\& .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n .rmRs .asRs \n(S0 .tm.TC section 1 \*(Rs \*(Ts \n P This section explores in detail the \&\f2\&prefer\&\f1\& program for formatting documents with bibliographic references. \&\f2\&Prefer\&\f1\& scans a text file looking for one of the following commands to process: .if\n(:y .tm "prefer.m": 526: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 527 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \&\f(CW\&|\^reference( \&\f2\&keywords... attributes... flags...\&\f(CW\& )\&\f1\& \&\f(CW\&|\^reference_placement\&\f1\& \&\f(CW\&|\^reference_include( \&\f2\&dbfile...\&\f(CW\& )\&\f1\& \&\f(CW\&|\^reference_database( \&\f2\&dbfile\&\f(CW\& )\&\f1\& \&\f(CW\&|\^reference_list( \&\f2\&dbfile...\&\f(CW\& )\&\f1\& \&\f(CW\&|\^reference_style( \&\f2\&style [arg...] \&\f(CW\&)\&\f1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 Each will be described in turn. The parentheses enclosing the command arguments may be replaced by the \&\f(CW\&{}\&\f1\&, \&\f(CW\&[]\&\f1\&, or \&\f(CW\&<>\&\f1\&. \&\f2\&Prefer\&\f1\& also accepts several command line options that are explained at the end of this section. .dsTs Citations .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ne3 .nrS1 +1 .nrS2 0 .nrS3 0 \&\f3\&\n(S0.\n(S1 \*(Ts\&\f1\& .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n .rmRs .asRs \n(S0 .asRs . .asRs \n(S1 .tm.TC section 2 \*(Rs \*(Ts \n P The \&\f(CW\&|\^reference\&\f1\& command is for citing reference within a text. As you saw in the introduction and in the following example, you can cite a reference using keywords which \&\f2\&prefer\&\f1\& will use to search a bibliography database for a matching entry. .lf 552 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&\&\f(CW\&... sort methods [5] ...\&\f1\&\s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu Keywords should be chosen so as to uniquely identify a particular reference. You can use words from any attribute not ignored by \&\f2\&pinvert\&\f1\&, including \&\f(CW\&%author\&\f1\&, \&\f(CW\&%title\&\f1\&, \&\f(CW\&%keyword\&\f1\& and \&\f(CW\&%date\&\f1\&. If multiple references match the keys, \&\f2\&prefer\&\f1\& will print a warning, but use only the first match. Similarly, if no references match, a warning message is printed. If two or more references in the database share all possible search keys, you can add extra words to the \&\f(CW\&%keyword\&\f1\& attribute of each entry in the database to distinguish among them. .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n In addition to keyword search, you can cite a reference by including the entire reference in the command as shown below. Note that subsequent references to this reference will have to respecify all the attributes. .if\n(:y .tm "prefer.m": 575: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 576 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&|\^reference( %type book %author Donald E. Knuth %title The Art of Computer Programming %volume Volume 3/Sorting and Searching %publisher Addison-Wesley %keywords sorting searching %address Reading, MA %date 1973 ) \s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n A third way is to use keywords to select a database reference, followed by attributes that supplement or override attributes in the database reference. For example, a keyword selected reference could be supplemented with a \&\f(CW\&%also\&\f1\& entry as shown below. .if\n(:y .tm "prefer.m": 598: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 599 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&|\^reference( McKeown phdthesis %also_begin Also in %type techreport %publisher University of Pennsylvania %date 1982 %report Technical Report MS-CIS-82-5 %also_end ) \s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 In all cases, \&\f2\&prefer\&\f1\& replaces the citation command with a citation mark that corresponds to the full reference as it appears in the list formatted by the \&\f(CW\&|\^reference_placement\&\f1\& command. The \&\f(CW\&att\&\f1\&, \&\f(CW\&ieee\&\f1\&, and \&\f(CW\&spectrum\&\f1\& styles use superscripted numbers for citation marks; \&\f(CW\&acm\&\f1\& and \&\f(CW\&pami\&\f1\& styles use numbers in square brackets; \&\f(CW\&apa\&\f1\& and \&\f(CW\&lsa\&\f1\& styles use (author, year). .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n Following keywords and attributes, you can supply flags that modify the citation mark. The citation flags, \&\f(CW\&%no_author\&\f1\& and \&\f(CW\&%no_date\&\f1\&, relevant to \&\f(CW\&att\&\f1\& and \&\f(CW\&lsa\&\f1\& styles, cause the author field and date field, respectively, to be excluded from the citation mark. The \&\f(CW\&%no_cite\&\f1\& flag, relevant to all styles, causes the entire citation to be omitted, but the full reference is still printed in the list of references. Some styles let you annotate a citation with text using \&\f(CW\&%pre_text\&\f1\& and \&\f(CW\&%post_text\&\f1\&. Annotations could include introductory phrases and page numbers, for example. If multiple citation flags are used (e.g, both \&\f(CW\&%no_author\&\f1\& and \&\f(CW\&%post_text\&\f1\&), each must appear on it's own line. Formatting the following document fragment in \&\f(CW\&apa\&\f1\& style .if\n(:y .tm "prefer.m": 644: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 645 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&...a guide by Lamport|\^reference(Lamport 1986 %no_author %post_text , pp 139-148 ) |\^reference(Patashnik 1988 %no_cite) offers... Another formatter |\^reference(Scribe %pre_text See ) is... \s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 produces this output: .if\n(:y .tm "prefer.m": 652: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 653 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&...a guide by Lamport (1986, pp 139-148) offers... Another formatter (See Unilogic, Ltd., 1984) is... \s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 More uses of \&\f(CW\&|\^reference\&\f1\& are found in Appendix \&\c \*(,2. .dsTs Reference Placement .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ne3 .nrS1 +1 .nrS2 0 .nrS3 0 \&\f3\&\n(S0.\n(S1 \*(Ts\&\f1\& .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n .rmRs .asRs \n(S0 .asRs . .asRs \n(S1 .tm.TC section 2 \*(Rs \*(Ts \n P The \&\f(CW\&|\^reference_placement\&\f1\& command causes all references seen since the beginning of the document, the last \&\f(CW\&|\^reference_placement\&\f1\&, or the last \&\f(CW\&|\^reference_style\&\f1\& command, to be formatted and inserted in the document at that point. The order of references depends on the current style. References in \&\f(CW\&att\&\f1\&, \&\f(CW\&ieee\&\f1\&, and \&\f(CW\&spectrum\&\f1\& styles appear in the order first cited in the preceding text. References in \&\f(CW\&acm\&\f1\&, \&\f(CW\&apa\&\f1\&, \&\f(CW\&lsa\&\f1\&, and \&\f3\&pami\&\f1\& are sorted by author, date, and title. All except \&\f(CW\&apa\&\f1\& and \&\f(CW\&lsa\&\f1\& have labels that match the citation marks appearing in the text. .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n See Appendix \&\c \*(,2 for uses and results of \&\f(CW\&|\^reference_placement\&\f1\&. .dsTs Including Additional References .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ne3 .nrS1 +1 .nrS2 0 .nrS3 0 \&\f3\&\n(S0.\n(S1 \*(Ts\&\f1\& .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n .rmRs .asRs \n(S0 .asRs . .asRs \n(S1 .tm.TC section 2 \*(Rs \*(Ts \n P Sometimes you may want the reference list to include more references than you actually cite in the text. The \&\f(CW\&|\^reference_include( \&\f2\&dbfile...\&\f(CW\& )\&\f1\& command includes the contents of one or more database files in the list of references produced by \&\f(CW\&|\^reference_placement\&\f1\&, treating them as \&\f(CW\&%no_cite\&\f1\& entries. For example, the \&\f(CW\&|\^reference_placement\&\f1\& command here: .if\n(:y .tm "prefer.m": 696: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 697 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&\&\f2\&text with citations\&\f1\& ... |\^reference_include(morebibs) |\^reference_placement \s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 will include in its list of references all the entries in the file \&\f(CW\&morebibs\&\f1\& as well as any citations found in the text. .dsTs Switching Databases .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ne3 .nrS1 +1 .nrS2 0 .nrS3 0 \&\f3\&\n(S0.\n(S1 \*(Ts\&\f1\& .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n .rmRs .asRs \n(S0 .asRs . .asRs \n(S1 .tm.TC section 2 \*(Rs \*(Ts \n P The command to search a new bibliography database is \&\f(CW\&|\^reference_database( \&\f2\&dbfile\&\f(CW\& )\&\f1\&. When \&\f2\&prefer\&\f1\& sees this command it closes the current database file, and opens the new one, \&\f2\&dbfile\&\f1\&. But it still remembers citations from the previous database. For example, in .if\n(:y .tm "prefer.m": 722: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 723 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&|\^reference_database(mybib1) \&\f2\&text with citations\&\f1\& ... |\^reference_database(mybib2) \&\f2\&text with more citations\&\f1\& ... |\^reference_placement \s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 the first database, \&\f(CW\&mybib1\&\f1\&, is consulted for the first part of the text, while the database \&\f(CW\&mybib2\&\f1\& is consulted for the second part. The \&\f(CW\&|\^reference_placement\&\f1\& command will list citations from both databases. .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n All databases should be indexed using \&\f2\&pinvert\&\f1\&. However, if a database has not been indexed since its last update, \&\f2\&prefer\&\f1\& will automatically invoke \&\f2\&pinvert\&\f1\& before using the database. .dsTs Complete Bibliographies .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ne3 .nrS1 +1 .nrS2 0 .nrS3 0 \&\f3\&\n(S0.\n(S1 \*(Ts\&\f1\& .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n .rmRs .asRs \n(S0 .asRs . .asRs \n(S1 .tm.TC section 2 \*(Rs \*(Ts \n P Beside formatting references appearing in documents, \&\f2\&prefer\&\f1\& also formats entire bibliography databases. The command \&\f(CW\&|\^reference_list( \&\f2\&dbfile...\&\f(CW\& )\&\f1\&, behaves like \&\f(CW\&|\^reference_placement\&\f1\& except that instead of formatting citations appearing in the previous text, it formats all the references appearing in one or more bibliography databases. For example, .lf 760 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&|\^reference_list(mybib88 mybib89)\s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu produces a list of all references in the file \&\f(CW\&mybib88\&\f1\& followed by all references in \&\f(CW\&mybib89\&\f1\&. .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n Like \&\f(CW\&|\^reference_database\&\f1\&, this command changes the search database. The current style dictates how each entry will be formatted. By default, the entries will be printed in the order they appear in the database(s). Changing this order requires setting some style arguments or supplying some command line options. Both ways are described below. .dsTs Styles Options .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ne3 .nrS1 +1 .nrS2 0 .nrS3 0 \&\f3\&\n(S0.\n(S1 \*(Ts\&\f1\& .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n .rmRs .asRs \n(S0 .asRs . .asRs \n(S1 .tm.TC section 2 \*(Rs \*(Ts \n P .ds ,0 \*(Rs .tm .CD "stylesec" "\*(Rs" The \&\f(CW\&|\^reference_style( \&\f2\&style [arg...] \&\f(CW\&)\&\f1\& command provides one way to change options regarding formatting style. The first argument to this command selects the style script. It gives the name of one of the styles provided by prefer (\&\f(CW\&att\&\f1\&, \&\f(CW\&acm\&\f1\&, \&\f(CW\&apa\&\f1\&, \&\f(CW\&ieee\&\f1\&, \&\f(CW\&spectrum\&\f1\&, \&\f(CW\&lsa\&\f1\& or \&\f(CW\&pami\&\f1\&), or the pathname of a user-defined style script. Note that any file in the current directory with the same name as one of the \&\f2\&prefer\&\f1\& styles (e.g. \&\f(CW\&acm\&\f1\&), will override the \&\f2\&prefer\&\f1\& style. The easiest way to define a new style is to modify an existing \&\f2\&awk\&\f1\& style script that is similar to the desired style. Describing how to write a style script in further detail is beyond the scope of this paper. .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n Your document may use multiple formatting styles by resetting the style using \&\f(CW\&|\^reference_style\&\f1\&. If you switch styles before issuing a \&\f(CW\&|\^reference_placement\&\f1\& command, the citations appearing before the style command will be forgotten and thus, will not be listed by any subsequent \&\f(CW\&|\^reference_placement\&\f1\&. .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n Some of the optional arguments to the style command control how references are formatted by the \&\f(CW\&|\^reference_list\&\f1\& command. .if\n(:y .tm "prefer.m": 806: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 807 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 .na .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .rm 46 47 .nr 46 0 .nr 38 \w\&\f(CW\&sequence\&\f1\& .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \w\&\f(CW\&sort\&\f1\& .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \w\&\f(CW\&a\&\f1\& .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \w\&\f(CW\&d\&\f1\& .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \w\&\f(CW\&t\&\f1\& .if \n(46<\n(38 .nr 46 \n(38 .46 .rm 46 .nr 47 0 .nr 38 \wlist in database order .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \wlist according to current style .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \wsort by author .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \wsort by date .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \wsort by title .if \n(47<\n(38 .nr 47 \n(38 .47 .rm 47 .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((6*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 4862 file Input is too wide - \n(TW units .nr #I \n(.i .in +(\n(.lu-\n(TWu-\n(.iu)/2u .fc .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\&\f(CW\&sequence\&\f1\&\h'|\n(41u'list in database order .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\&\f(CW\&sort\&\f1\&\h'|\n(41u'list according to current style .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\&\f(CW\&a\&\f1\&\h'|\n(41u'sort by author .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\&\f(CW\&d\&\f1\&\h'|\n(41u'sort by date .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\&\f(CW\&t\&\f1\&\h'|\n(41u'sort by title .fc .nr T. 1 .T# 1 .in \n(#Iu .35 .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-8 .adb .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 The last three options may be used in combination. If optional arguments are given, but the style is to remain the same, the first argument may be set to \&\f(CW\&same\&\f1\&. .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n The style command recognizes several other arguments that affect the formatting of references. These are: .if\n(:y .tm "prefer.m": 825: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 826 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 .na .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .rm 46 47 .nr 46 0 .nr 38 \w\&\f(CW\&tm\&\f1\& .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \w\&\f(CW\&rp\&\f1\& .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \w\&\f(CW\&troff\&\f1\& .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \w\&\f(CW\&nroff\&\f1\& .if \n(46<\n(38 .nr 46 \n(38 .46 .rm 46 .nr 47 0 .nr 38 \wformat as a technical memorandum .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \wformat as a released paper .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \wformat for \&\f2\&troff\&\f1\& .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \wformat for \&\f2\&nroff\&\f1\& .if \n(47<\n(38 .nr 47 \n(38 .47 .rm 47 .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((6*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 4976 file Input is too wide - \n(TW units .nr #I \n(.i .in +(\n(.lu-\n(TWu-\n(.iu)/2u .fc .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\&\f(CW\&tm\&\f1\&\h'|\n(41u'format as a technical memorandum .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\&\f(CW\&rp\&\f1\&\h'|\n(41u'format as a released paper .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\&\f(CW\&troff\&\f1\&\h'|\n(41u'format for \&\f2\&troff\&\f1\& .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\&\f(CW\&nroff\&\f1\&\h'|\n(41u'format for \&\f2\&nroff\&\f1\& .fc .nr T. 1 .T# 1 .in \n(#Iu .35 .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-7 .adb .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 The defaults are for a paper to be formatted as a technical memorandum using \&\f2\&troff\&\f1\& Here are some examples of using the style command: .if\n(:y .tm "prefer.m": 838: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 839 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&\&\f(CW\&|\^reference_style(/usr/mad/mystyle ad) |\^reference_list(bib) |\^reference_style(acm sort rp) |\^reference_list(bib) |\^reference_style(same sequence nroff) |\^reference_list(bib) \&\f1\&\s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 The first command selects the user-defined style in \&\f(CW\&/usr/mad/mystyle\&\f1\& and says to sort according to author, then date. The bibliography file \&\f(CW\&bib\&\f1\& is formatted accordingly. The third command selects the \&\f(CW\&acm\&\f1\& style, and says to sort \&\f(CW\&bib\&\f1\& according to that style. It also say says to format it as a released paper. The fifth command says to use the same style (\&\f(CW\&acm\&\f1\&), but this time print the references as they appear in \&\f(CW\&bib\&\f1\& and format the paper using \&\f2\&nroff\&\f1\&. .dsTs Command Line arguments .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ne3 .nrS1 +1 .nrS2 0 .nrS3 0 \&\f3\&\n(S0.\n(S1 \*(Ts\&\f1\& .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n .rmRs .asRs \n(S0 .asRs . .asRs \n(S1 .tm.TC section 2 \*(Rs \*(Ts \n P Command line arguments provide another way to select bibliography databases and set style options. .if\n(:y .tm "prefer.m": 871: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 872 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \&\f(CW\&\-p\&\f1\& \&\f2\&dbfile\&\f1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .rs .sp-1 .ti\n(.iu specifies a bibliography database, \&\f2\&dbfile\&\f1\& (default is \&\f(CW\&prefer.out\&\f1\&) .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 .if\n(:y .tm "prefer.m": 877: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 878 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \&\f(CW\&\-s\&\f1\& \&\f2\&sname\&\f1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .rs .sp-1 .ti\n(.iu selects formatting style \&\f2\&sname\&\f1\& (default is \&\f(CW\&att\&\f1\&). The argument \&\f2\&sname\&\f1\& names of one of the provided styles or a user-defined style. .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 .if\n(:y .tm "prefer.m": 885: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 886 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \&\f(CW\&\-o\&\f1\& \&\f2\&okey\&\f1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .rs .sp-1 .ti\n(.iu specifies how the \&\f(CW\&|\^reference_list\&\f1\& command should order references. The argument \&\f2\&okey\&\f1\& may be one of \&\f(CW\&sequence\&\f1\& (the default), \&\f(CW\&sort\&\f1\&, or a combination of \&\f(CW\&a\&\f1\&, \&\f(CW\&d\&\f1\&, or \&\f(CW\&t\&\f1\&, as described above in Section \&\c \*(,0. .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 .if\n(:y .tm "prefer.m": 896: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 897 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \&\f(CW\&\-n\&\f1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .rs .sp-1 .ti\n(.iu format using \&\f2\&nroff\&\f1\& rather than for \&\f2\&troff\&\f1\&, the default. .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 .if\n(:y .tm "prefer.m": 902: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 903 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \&\f(CW\&\-r\&\f1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .rs .sp-1 .ti\n(.iu format as a released paper, rather than an internal technical memorandum, the default. .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 For example, the command .lf 911 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&|\^prefer -r -sacm -pmybib mydoc\s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu processes \&\f(CW\&mydoc\&\f1\& as a released paper, using \&\f(CW\&acm\&\f1\& style and the bibliography database \&\f(CW\&mybib\&\f1\&. .dsTs Using \&\f2\&prefer\&\f1\& \&\f3\&With\&\f1\& \&\f2\&monk\&\f1\& .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 2v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 2v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ne3 .nrS0 +1 .nrS1 0 .nrS2 0 .nrS3 0 \&\f3\&\n(S0. \*(Ts\&\f1\& .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n .rmRs .asRs \n(S0 .tm.TC section 1 \*(Rs \*(Ts \n P As mentioned earlier, the \&\f2\&monk\&\f1\& text formatting package invokes \&\f2\&prefer\&\f1\& to format bibliographic references. To do this, it must convert its own reference commands to ones understood by \&\f2\&prefer\&\f1\&. For the \&\f(CW\&|\^reference\&\f1\&, \&\f(CW\&|\^reference_list\&\f1\&, and \&\f(CW\&|\^reference_database\&\f1\& commands, this is easy; \&\f2\&monk's\&\f1\& versions are identical to \&\f2\&prefer's\&\f1\&. Note that \&\f2\&monk\&\f1\& uses angle brackets \&\f(CW\&<>\&\f1\& to enclose the \&\f2\&prefer\&\f1\& command arguments. Thus if angle brackets appear in any of the command arguments, confusion may arise. .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n The \&\f(CW\&|\^reference_placement\&\f1\& command in \&\f2\&monk\&\f1\& differs slightly from the \&\f2\&prefer\&\f1\& version, depending on the \&\f2\&monk\&\f1\& document style. For example, for technical memoranda it causes a new page to be printed and the reference list to be headed by a centered \s-1\&\&\f3\&REFERENCE\&\f1\&\s+1\& title. .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n \&\f2\&Monk\&\f1\& does not have a \&\f(CW\&|\^reference_style\&\f1\& command. Instead, it uses it's own \&\f(CW\&|\^style\&\f1\& command along with a \&\f3\&reference\&\f1\& attribute/value pair. For example, to change the reference style to \&\f(CW\&ieee\&\f1\&, use the monk command .lf 952 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&|\^style(reference ieee)\s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu To set any of the other options provided by the \&\f2\&prefer\&\f1\& \&\f(CW\&|\^reference_style\&\f1\& command, use the \&\f2\&monk\&\f1\& \&\f(CW\&|\^style\&\f1\& command with a \&\f3\&reference_option\&\f1\& attribute/value pair. For example, .lf 960 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&|\^style(reference_option rp)\s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu means format references for a released paper. Other possible values for \&\f3\&reference_option\&\f1\& are: \&\f(CW\&tm\&\f1\&, \&\f(CW\&troff\&\f1\&, \&\f(CW\&nroff\&\f1\&, \&\f(CW\&sort\&\f1\&, \&\f(CW\&sequence\&\f1\&, and any combination of the letters \&\f(CW\&a\&\f1\&, \&\f(CW\&d\&\f1\&, \&\f(CW\&t\&\f1\&. These options have the same meanings as for the \&\f(CW\&|\^reference_style\&\f1\& command. The command line options \&\f(CW\&\-s\&\f1\&, \&\f(CW\&\-o\&\f1\&, \&\f(CW\&\-r\&\f1\&, and \&\f(CW\&\-n\&\f1\& of \&\f2\&prefer\&\f1\& are not set by \&\f2\&monk\&\f1\&. \&\f2\&Monk\&\f1\& uses the style command to set these options. .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n \&\f2\&Monk\&\f1\& uses the file \&\f(CW\&/usr/lib/monk/prefs\&\f1\& as its default bibliography database. You can specify an alternative database with the \&\f(CW\&\-R\&\f1\& option, which \&\f2\&monk\&\f1\& translates to the \&\f(CW\&\-p\&\f1\& option for \&\f2\&prefer\&\f1\&. For example, .lf 980 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&\&\f(CW\&monk \-Rmybib mydoc\&\f1\&\s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu says that monk should use the file \&\f(CW\&mybib\&\f1\& as the bibliography database when formatting \&\f2\&mydoc\&\f1\&. .dsTs Converting From \&\f2\&refer\&\f1\& \&\f3\&To\&\f1\& \&\f2\&prefer\&\f1\& .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 2v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 2v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ne3 .nrS0 +1 .nrS1 0 .nrS2 0 .nrS3 0 \&\f3\&\n(S0. \*(Ts\&\f1\& .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n .rmRs .asRs \n(S0 .tm.TC section 1 \*(Rs \*(Ts \n P The \&\f2\&pconvert\&\f1\& command converts a \&\f2\&refer\&\f1\& style bibliography database to \&\f2\&prefer\&\f1\& format. For example, the command .lf 992 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&pconvert refer.out >prefer.out\s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu scans the file \&\f(CW\&refer.out\&\f1\& and writes the transformed version into \&\f(CW\&prefer.out\&\f1\&. \&\f2\&Pconvert\&\f1\& uses the attributes of each entry to infer the \&\f(CW\&%type\&\f1\& of the entry. .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n With the \&\f(CW\&\-d\&\f1\& option \&\f2\&pconvert\&\f1\& changes \&\f2\&refer\&\f1\& style commands in a document to \&\f2\&prefer\&\f1\& style. For example .lf 1005 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&\&\f(CW\&pconvert \-d oldpaper >newpaper\&\f1\&\s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu scans \&\f(CW\&oldpaper\&\f1\& for \&\f2\&refer\&\f1\& citations and converts them to \&\f2\&prefer\&\f1\& commands, writing the output to \&\f(CW\&newpaper\&\f1\&. .dsTs Acknowledgements .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 2v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 2v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ne3 .nrS0 +1 .nrS1 0 .nrS2 0 .nrS3 0 \&\f3\&\n(S0. \*(Ts\&\f1\& .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n .rmRs .asRs \n(S0 .tm.TC section 1 \*(Rs \*(Ts \n P Sharon Peeters and Ted Kowalski encouraged me to write \&\f2\&prefer\&\f1\& and then integrated it into \&\f2\&monk\&\f1\&. The idea of using the \&\f2\&awk\&\f1\& language to format references came from Ravi Sethi. Julia Hirschberg, Joe Kruskal, and Ted Kowalski contributed style scripts. Thanks to those who offered feature suggestions bug reports, and comments on versions of this paper including Judy Friedman, Julia Hirschberg, Andrew Hume, Ted Kowalski, Joe Kruskal, Doug McIlroy, Mel Melchner, Marcel Meth, Sharon Murrel, John Puttress, Sande Pruzansky, Ravi Sethi, and Wayne Wolf. .rs .sp3 .ti\n(.iu .dsTs References .ps+1 .ft3 \*(Ts .ft1 .ce0 .ps-1 .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .rmRs .tm.TC section 1 \*(Rs \*(Ts \n P .in .5i .LP .in \w'999.\ 'u .ti -\w'1.\ 'u 1.\ Aho, A.V., Kernighan, B.W., and Weinberger, P.J. \f2\&The AWK Programming Language\f1\&. Addison-Wesley, Reading, Massachusetts, 1988. .LP .in \w'999.\ 'u .ti -\w'2.\ 'u 2.\ Budd, T.A. BIB \- a Program for Formatting Bibliographies. University of Arizona, Department of Computer Science, Tucscon, Arizona. Unpublished. .LP .in \w'999.\ 'u .ti -\w'3.\ 'u 3.\ Kernighan, B.W. A TROFF Tutorial. In \f2\&Unix Programmer's Manual, Tenth Edition\f1\&, AT&T Bell Laboratories, 1989. .LP .in \w'999.\ 'u .ti -\w'4.\ 'u 4.\ Kernighan, B.W. and Cherry, L.L. A system for typesetting mathematics (Second Edition). Bell Laboratories Comp. Sci. Tech. Rep. No. 17, August 1978. .LP .in \w'999.\ 'u .ti -\w'5.\ 'u 5.\ Knuth, D.E. \f2\&Fundamental Algorithms\f1\&. Addison-Wesley, 1973. Volume 1 of \fIThe Art of Computer Programming\fP. .LP .in \w'999.\ 'u .ti -\w'6.\ 'u 6.\ Lamport, L. \f2\&LaTeX: A Document Preparation System\f1\&. Addison-Wesley, Reading, Massachusetts, 1986. .LP .in \w'999.\ 'u .ti -\w'7.\ 'u 7.\ Lesk, M.E. Some applications of inverted indexes on the UNIX system. In \f2\&Unix Programmer's Manual\f1\&, Vol. 2, M.D. McIlroy and B.W. Kernighan, Eds. AT&T Bell Laboratories, Murray Hill, NJ 07974, 1979. .LP .in \w'999.\ 'u .ti -\w'8.\ 'u 8.\ Lesk, M.E. Tbl\(ema program to format tables. In \f2\&Unix Programmer's Manual\f1\&, Vol. 2, M.D. McIlroy and B.W. Kernighan, Eds. AT&T Bell Laboratories, Murray Hill, NJ 07974, 1979. .LP .in \w'999.\ 'u .ti -\w'9.\ 'u 9.\ Murrel, S.L. and Kowalski, T.J. Typing documents on the UNIX system: using Monk 0.6. In \f2\&Unix Programmer's Manual, Tenth Edition\f1\&, AT&T Bell Laboratories, 1989. .LP .in \w'999.\ 'u .ti -\w'10.\ 'u 10.\ Patashnik, O. BibTeXing. January, 1988. Unpublished. .LP .in \w'999.\ 'u .ti -\w'11.\ 'u 11.\ Unilogic, Ltd.. \f2\&Scribe Document Production System User Manual\f1\&. Pittsburgh, April 1984. .in -5i .nr RF 11 .rs .bp .rs .sp3 .ti\n(.iu .afAC A .nrAC +1 .nrS0 0 .nrS1 0 .nrS2 0 .nrS3 0 .dsRs Appendix .asRs \n(AC .dsTs Bibliography Types And Attributes .ce9999 \s+1\&\&\f3\&\*(Rs .sp1 .ti\n(.iu \*(Ts\&\f1\&\s-1\& .ce0 .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 2v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 2v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n .dsRs \n(AC .tm.TC section 1 \*(Rs \*(Ts \n P .ds ,1 \*(Rs .tm .CD "types" "\*(Rs" .lf 1 example/ptemplate.m Each bibliographic reference may be classified as a particular type, e.g. book, article, thesis. Each type, in turn, is defined by a set of attributes. Below is a list of all such attributes. For any one type, some of the attributes are required, some optional, some undefined, and some ignored (e.g. the attribute is there for some purpose other than formatting such as indexing or recordkeeping). Next to each attribute name is a brief description of its function. \s-1\& .lf 12 example/ptemplate.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 .na .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .rm 48 49 .nr 34 \n(.lu .eo .am 49 .br .di a+ .35 .ft \n(.f .ll 1.75in .if \n(.l<\n(49 .ll \n(49u .in 0 name of author (or editor in case of edited book) .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 49 .br .di b+ .35 .ft \n(.f .ll 1.75in .if \n(.l<\n(49 .ll \n(49u .in 0 publisher, organization, institution, or school .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .eo .am 49 .br .di c+ .35 .ft \n(.f .ll 1.75in .if \n(.l<\n(49 .ll \n(49u .in 0 title of book, part of which is being cited .br .di .nr c| \n(dn .nr c- \n(dl .. .ec \ .eo .am 49 .br .di d+ .35 .ft \n(.f .ll 1.75in .if \n(.l<\n(49 .ll \n(49u .in 0 editor of book, journal, proceedings or author of reviewed article .br .di .nr d| \n(dn .nr d- \n(dl .. .ec \ .eo .am 49 .br .di e+ .35 .ft \n(.f .ll 1.75in .if \n(.l<\n(49 .ll \n(49u .in 0 name of journal, magazine, or proceedings .br .di .nr e| \n(dn .nr e- \n(dl .. .ec \ .eo .am 49 .br .di f+ .35 .ft \n(.f .ll 1.75in .if \n(.l<\n(49 .ll \n(49u .in 0 any other information to be included with the reference .br .di .nr f| \n(dn .nr f- \n(dl .. .ec \ .eo .am 49 .br .di g+ .35 .ft \n(.f .ll 1.75in .if \n(.l<\n(49 .ll \n(49u .in 0 keywords used for searching (an ignored attribute) .br .di .nr g| \n(dn .nr g- \n(dl .. .ec \ .eo .am 49 .br .di h+ .35 .ft \n(.f .ll 1.75in .if \n(.l<\n(49 .ll \n(49u .in 0 location of the reference (an ignored attribute) .br .di .nr h| \n(dn .nr h- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 48 0 .nr 38 \w\f(CW%type\fP .if \n(48<\n(38 .nr 48 \n(38 .nr 38 \w\f(CW%author\fP .if \n(48<\n(38 .nr 48 \n(38 .nr 38 \w\f(CW%title\fP .if \n(48<\n(38 .nr 48 \n(38 .nr 38 \w\f(CW%publisher\fP .if \n(48<\n(38 .nr 48 \n(38 .nr 38 \w\f(CW%address\fP .if \n(48<\n(38 .nr 48 \n(38 .nr 38 \w\f(CW%booktitle\fP .if \n(48<\n(38 .nr 48 \n(38 .nr 38 \w\f(CW%editor\fP .if \n(48<\n(38 .nr 48 \n(38 .nr 38 \w\f(CW%date\fP .if \n(48<\n(38 .nr 48 \n(38 .nr 38 \w\f(CW%report\fP .if \n(48<\n(38 .nr 48 \n(38 .nr 38 \w\f(CW%tm\fP .if \n(48<\n(38 .nr 48 \n(38 .nr 38 \w\f(CW%journal\fP .if \n(48<\n(38 .nr 48 \n(38 .nr 38 \w\f(CW%volume\fP .if \n(48<\n(38 .nr 48 \n(38 .nr 38 \w\f(CW%number\fP .if \n(48<\n(38 .nr 48 \n(38 .nr 38 \w\f(CW%part\fP .if \n(48<\n(38 .nr 48 \n(38 .nr 38 \w\f(CW%pages\fP .if \n(48<\n(38 .nr 48 \n(38 .nr 38 \w\f(CW%also\fP .if \n(48<\n(38 .nr 48 \n(38 .nr 38 \w\f(CW%also_begin\fP .if \n(48<\n(38 .nr 48 \n(38 .nr 38 \w\f(CW%also_end\fP .if \n(48<\n(38 .nr 48 \n(38 .nr 38 \w\f(CW%other\fP .if \n(48<\n(38 .nr 48 \n(38 .nr 38 \w\f(CW%keywords\fP .if \n(48<\n(38 .nr 48 \n(38 .nr 38 \w\f(CW%X\fP .if \n(48<\n(38 .nr 48 \n(38 .nr 38 \w\f(CW%Y\fP .if \n(48<\n(38 .nr 48 \n(38 .nr 38 \w\f(CW%Z\fP .if \n(48<\n(38 .nr 48 \n(38 .48 .rm 48 .nr 49 0 .nr 38 \wdocument type .if \n(49<\n(38 .nr 49 \n(38 .nr 38 \wreference title .if \n(49<\n(38 .nr 49 \n(38 .nr 38 \waddress of publisher .if \n(49<\n(38 .nr 49 \n(38 .nr 38 \wpublication date .if \n(49<\n(38 .nr 49 \n(38 .nr 38 \wtechnical report number .if \n(49<\n(38 .nr 49 \n(38 .nr 38 \wtm number .if \n(49<\n(38 .nr 49 \n(38 .nr 38 \wbook or journal volume number .if \n(49<\n(38 .nr 49 \n(38 .nr 38 \wjournal number .if \n(49<\n(38 .nr 49 \n(38 .nr 38 \wjournal part number .if \n(49<\n(38 .nr 49 \n(38 .nr 38 \wpages on which reference appears .if \n(49<\n(38 .nr 49 \n(38 .nr 38 \wrefers by search keys to another entry .if \n(49<\n(38 .nr 49 \n(38 .nr 38 \wbegin another entry .if \n(49<\n(38 .nr 49 \n(38 .nr 38 \wend another entry .if \n(49<\n(38 .nr 49 \n(38 .nr 38 \wread status (an ignored attribute) .if \n(49<\n(38 .nr 49 \n(38 .nr 38 \wcomments (an ignored attribute) .if \n(49<\n(38 .nr 49 \n(38 .49 .rm 49 .nr 38 \n(a- .if \n(49<\n(38 .nr 49 \n(38 .nr 38 \n(b- .if \n(49<\n(38 .nr 49 \n(38 .nr 38 \n(c- .if \n(49<\n(38 .nr 49 \n(38 .nr 38 \n(d- .if \n(49<\n(38 .nr 49 \n(38 .nr 38 \n(e- .if \n(49<\n(38 .nr 49 \n(38 .nr 38 \n(f- .if \n(49<\n(38 .nr 49 \n(38 .nr 38 \n(g- .if \n(49<\n(38 .nr 49 \n(38 .nr 38 \n(h- .if \n(49<\n(38 .nr 49 \n(38 .nr 38 1.75in .if \n(49<\n(38 .nr 49 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 47 0 .nr 40 \n(47+((0*\n(38)/2) .nr 48 +\n(40 .nr 41 \n(48+((6*\n(38)/2) .nr 49 +\n(41 .nr TW \n(49 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 6533 file Input is too wide - \n(TW units .nr #I \n(.i .in +(\n(.lu-\n(TWu-\n(.iu)/2u .fc .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ta \n(48u \n(49u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\f(CW%type\f\n(31\h'|\n(41u'document type .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(48u \n(49u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\f(CW%author\f\n(31\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .ta \n(48u \n(49u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\f(CW%title\f\n(31\h'|\n(41u'reference title .ne \n(b|u+\n(.Vu .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(48u \n(49u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\f(CW%publisher\f\n(31\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .ta \n(48u \n(49u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\f(CW%address\f\n(31\h'|\n(41u'address of publisher .ne \n(c|u+\n(.Vu .if (\n(c|+\n(#^-1v)>\n(#- .nr #- +(\n(c|+\n(#^-\n(#--1v) .ta \n(48u \n(49u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\f(CW%booktitle\f\n(31\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .c+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .ne \n(d|u+\n(.Vu .if (\n(d|+\n(#^-1v)>\n(#- .nr #- +(\n(d|+\n(#^-\n(#--1v) .ta \n(48u \n(49u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\f(CW%editor\f\n(31\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .d+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .ta \n(48u \n(49u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\f(CW%date\f\n(31\h'|\n(41u'publication date .ta \n(48u \n(49u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\f(CW%report\f\n(31\h'|\n(41u'technical report number .ta \n(48u \n(49u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\f(CW%tm\f\n(31\h'|\n(41u'tm number .ne \n(e|u+\n(.Vu .if (\n(e|+\n(#^-1v)>\n(#- .nr #- +(\n(e|+\n(#^-\n(#--1v) .ta \n(48u \n(49u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\f(CW%journal\f\n(31\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .e+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .ta \n(48u \n(49u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\f(CW%volume\f\n(31\h'|\n(41u'book or journal volume number .ta \n(48u \n(49u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\f(CW%number\f\n(31\h'|\n(41u'journal number .ta \n(48u \n(49u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\f(CW%part\f\n(31\h'|\n(41u'journal part number .ta \n(48u \n(49u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\f(CW%pages\f\n(31\h'|\n(41u'pages on which reference appears .ta \n(48u \n(49u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\f(CW%also\f\n(31\h'|\n(41u'refers by search keys to another entry .ta \n(48u \n(49u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\f(CW%also_begin\f\n(31\h'|\n(41u'begin another entry .ta \n(48u \n(49u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\f(CW%also_end\f\n(31\h'|\n(41u'end another entry .ne \n(f|u+\n(.Vu .if (\n(f|+\n(#^-1v)>\n(#- .nr #- +(\n(f|+\n(#^-\n(#--1v) .ta \n(48u \n(49u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\f(CW%other\f\n(31\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .f+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .ne \n(g|u+\n(.Vu .if (\n(g|+\n(#^-1v)>\n(#- .nr #- +(\n(g|+\n(#^-\n(#--1v) .ta \n(48u \n(49u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\f(CW%keywords\f\n(31\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .g+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .ne \n(h|u+\n(.Vu .if (\n(h|+\n(#^-1v)>\n(#- .nr #- +(\n(h|+\n(#^-\n(#--1v) .ta \n(48u \n(49u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\f(CW%X\f\n(31\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .h+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .ta \n(48u \n(49u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\f(CW%Y\f\n(31\h'|\n(41u'read status (an ignored attribute) .ta \n(48u \n(49u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\f(CW%Z\f\n(31\h'|\n(41u'comments (an ignored attribute) .fc .nr T. 1 .T# 1 .in \n(#Iu .35 .rm a+ .rm b+ .rm c+ .rm d+ .rm e+ .rm f+ .rm g+ .rm h+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-42 .adb .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu \s+1\& What follows is a list of currently defined bibliography types, along with their required and optional attributes. The only attributes that can appear more than once in a single reference are \&\f(CW\&%author\&\f1\& and \&\f(CW\&%editor\&\f1\&. The \&\f(CW\&%type\&\f1\& attribute is required by all types. The attributes \&\f(CW\&%also\&\f1\&, \&\f(CW\&%also_begin\&\f1\&, \&\f(CW\&%also_end\&\f1\&, and \&\f(CW\&%other\&\f1\& are optional for all types. Finally, \&\f(CW\&%X\&\f1\&, \&\f(CW\&%Y\&\f1\&, \&\f(CW\&%Z\&\f1\&, and \&\f(CW\&%keywords\&\f1\& are optional ignored attributes. \s-1\& .lf 67 example/ptemplate.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 .na .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .rm 46 47 .nr 34 \n(.lu .eo .am 47 .br .di a+ .35 .ft \n(.f .ll 1.75in .if \n(.l<\n(47 .ll \n(47u .in 0 \&\f(CW\&%author\&\f1\& \&\f(CW\&%title\&\f1\& \&\f(CW\&%journal\&\f1\& \&\f(CW\&%date\&\f1\& .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 1.75in .if \n(.l<\n(47 .ll \n(47u .in 0 \&\f(CW\&%volume\&\f1\& \&\f(CW\&%number\&\f1\& \&\f(CW\&%part\&\f1\& \&\f(CW\&%pages\&\f1\& .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .eo .am 47 .br .di c+ .35 .ft \n(.f .ll 1.75in .if \n(.l<\n(47 .ll \n(47u .in 0 \&\f(CW\&%author\&\f1\& \&\f(CW\&%title\&\f1\& \&\f(CW\&%publisher\&\f1\& \&\f(CW\&%date\&\f1\& .br .di .nr c| \n(dn .nr c- \n(dl .. .ec \ .eo .am 47 .br .di d+ .35 .ft \n(.f .ll 1.75in .if \n(.l<\n(47 .ll \n(47u .in 0 \&\f(CW\&%author\&\f1\& \&\f(CW\&%title\&\f1\& \&\f(CW\&%publisher\&\f1\& \&\f(CW\&%date\&\f1\& .br .di .nr d| \n(dn .nr d- \n(dl .. .ec \ .eo .am 47 .br .di e+ .35 .ft \n(.f .ll 1.75in .if \n(.l<\n(47 .ll \n(47u .in 0 article or chapter in a collection .br .di .nr e| \n(dn .nr e- \n(dl .. .ec \ .eo .am 47 .br .di f+ .35 .ft \n(.f .ll 1.75in .if \n(.l<\n(47 .ll \n(47u .in 0 \&\f(CW\&%author\&\f1\& \&\f(CW\&%title\&\f1\& \&\f(CW\&%booktitle\&\f1\& \&\f(CW\&%publisher\&\f1\& \&\f(CW\&%date\&\f1\& .br .di .nr f| \n(dn .nr f- \n(dl .. .ec \ .eo .am 47 .br .di g+ .35 .ft \n(.f .ll 1.75in .if \n(.l<\n(47 .ll \n(47u .in 0 \&\f(CW\&%address\&\f1\& \&\f(CW\&%editor\&\f1\& \&\f(CW\&%volume\&\f1\& \&\f(CW\&%pages\&\f1\& .br .di .nr g| \n(dn .nr g- \n(dl .. .ec \ .eo .am 47 .br .di h+ .35 .ft \n(.f .ll 1.75in .if \n(.l<\n(47 .ll \n(47u .in 0 \&\f(CW\&%author\&\f1\& \&\f(CW\&%title\&\f1\& \&\f(CW\&%journal\&\f1\& \&\f(CW\&%date\&\f1\& .br .di .nr h| \n(dn .nr h- \n(dl .. .ec \ .eo .am 47 .br .di i+ .35 .ft \n(.f .ll 1.75in .if \n(.l<\n(47 .ll \n(47u .in 0 \&\f(CW\&%volume\&\f1\& \&\f(CW\&%number\&\f1\& \&\f(CW\&%part\&\f1\& \&\f(CW\&%publisher\&\f1\& \&\f(CW\&%address\&\f1\& \&\f(CW\&%editor\&\f1\& \&\f(CW\&%pages\&\f1\& .br .di .nr i| \n(dn .nr i- \n(dl .. .ec \ .eo .am 47 .br .di j+ .35 .ft \n(.f .ll 1.75in .if \n(.l<\n(47 .ll \n(47u .in 0 \&\f(CW\&%author\&\f1\& \&\f(CW\&%volume\&\f1\& \&\f(CW\&%editor\&\f1\& \&\f(CW\&%publisher\&\f1\& \&\f(CW\&%address\&\f1\& .br .di .nr j| \n(dn .nr j- \n(dl .. .ec \ .eo .am 47 .br .di k+ .35 .ft \n(.f .ll 1.75in .if \n(.l<\n(47 .ll \n(47u .in 0 \&\f(CW\&%author\&\f1\& \&\f(CW\&%title\&\f1\& \&\f(CW\&%publisher\&\f1\& \&\f(CW\&%date\&\f1\& .br .di .nr k| \n(dn .nr k- \n(dl .. .ec \ .eo .am 47 .br .di l+ .35 .ft \n(.f .ll 1.75in .if \n(.l<\n(47 .ll \n(47u .in 0 \&\f(CW\&%author\&\f1\& \&\f(CW\&%title\&\f1\& \&\f(CW\&%volume\&\f1\& \&\f(CW\&%publisher\&\f1\& \&\f(CW\&%address\&\f1\& \&\f(CW\&%pages\&\f1\& \&\f(CW\&%date\&\f1\& .br .di .nr l| \n(dn .nr l- \n(dl .. .ec \ .eo .am 47 .br .di m+ .35 .ft \n(.f .ll 1.75in .if \n(.l<\n(47 .ll \n(47u .in 0 \&\f(CW\&%author\&\f1\& \&\f(CW\&%date\&\f1\& \&\f(CW\&%publisher\&\f1\& \&\f(CW\&%address\&\f1\& .br .di .nr m| \n(dn .nr m- \n(dl .. .ec \ .eo .am 47 .br .di n+ .35 .ft \n(.f .ll 1.75in .if \n(.l<\n(47 .ll \n(47u .in 0 \&\f(CW\&%author\&\f1\& \&\f(CW\&%title\&\f1\& \&\f(CW\&%publisher\&\f1\& \&\f(CW\&%date\&\f1\& .br .di .nr n| \n(dn .nr n- \n(dl .. .ec \ .eo .am 47 .br .di o+ .35 .ft \n(.f .ll 1.75in .if \n(.l<\n(47 .ll \n(47u .in 0 \&\f(CW\&%author\&\f1\& \&\f(CW\&%volume\&\f1\& \&\f(CW\&%number\&\f1\& \&\f(CW\&%part\&\f1\& \&\f(CW\&%address\&\f1\& \&\f(CW\&%editor\&\f1\& .br .di .nr o| \n(dn .nr o- \n(dl .. .ec \ .eo .am 47 .br .di p+ .35 .ft \n(.f .ll 1.75in .if \n(.l<\n(47 .ll \n(47u .in 0 \&\f(CW\&%title\&\f1\& \&\f(CW\&%booktitle\&\f1\& \&\f(CW\&%editor\&\f1\& \&\f(CW\&%publisher\&\f1\& \&\f(CW\&%volume\&\f1\& \&\f(CW\&%number\&\f1\& \&\f(CW\&%part\&\f1\& \&\f(CW\&%pages\&\f1\& .br .di .nr p| \n(dn .nr p- \n(dl .. .ec \ .eo .am 47 .br .di q+ .35 .ft \n(.f .ll 1.75in .if \n(.l<\n(47 .ll \n(47u .in 0 \&\f(CW\&%author\&\f1\& \&\f(CW\&%title\&\f1\& \&\f(CW\&%publisher\&\f1\& \&\f(CW\&%date\&\f1\& .br .di .nr q| \n(dn .nr q- \n(dl .. .ec \ .eo .am 47 .br .di r+ .35 .ft \n(.f .ll 1.75in .if \n(.l<\n(47 .ll \n(47u .in 0 AT&T Bell Labs technical memorandum .br .di .nr r| \n(dn .nr r- \n(dl .. .ec \ .eo .am 47 .br .di s+ .35 .ft \n(.f .ll 1.75in .if \n(.l<\n(47 .ll \n(47u .in 0 \&\f(CW\&%author\&\f1\& \&\f(CW\&%title\&\f1\& \&\f(CW\&%tm\&\f1\& \&\f(CW\&%date\&\f1\& .br .di .nr s| \n(dn .nr s- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .nr 38 \w\&\f(CW\&article\&\f1\& .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \wrequired .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \woptional .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \w\&\f(CW\&book\&\f1\& .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \wrequired .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \woptional .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \w\&\f(CW\&editedbook\&\f1\& .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \wrequired .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \woptional .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \w\&\f(CW\&incollection\&\f1\& .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \wrequired .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \woptional .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \w\&\f(CW\&inproceedings\&\f1\& .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \wrequired .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \woptional .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \w\&\f(CW\&manual\&\f1\& .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \wrequired .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \woptional .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \w\&\f(CW\&mastersthesis\&\f1\& .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \wrequired .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \woptional .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \w\&\f(CW\&misc\&\f1\& .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \woptional .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \w\&\f(CW\&pamphlet\&\f1\& .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \wrequired .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \woptional .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \w\&\f(CW\&phdthesis\&\f1\& .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \wrequired .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \woptional .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \w\&\f(CW\&proceedings\&\f1\& .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \wrequired .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \woptional .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \w\&\f(CW\&review\&\f1\& .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \wrequired .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \woptional .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \w\&\f(CW\&techreport\&\f1\& .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \wrequired .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \woptional .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \w\&\f(CW\&tm\&\f1\& .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \wrequired .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \w\&\f(CW\&unpublished\&\f1\& .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \wrequired .if \n(46<\n(38 .nr 46 \n(38 .nr 38 \woptional .if \n(46<\n(38 .nr 46 \n(38 .46 .rm 46 .nr 47 0 .nr 38 \wjournal or magazine article .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \wa published book .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \w\&\f(CW\&%address\&\f1\& \&\f(CW\&%volume\&\f1\& .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \wan edited book .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \w\&\f(CW\&%address\&\f1\& \&\f(CW\&%volume\&\f1\& .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \wpaper in a proceedings .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \wa manual or guide .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \w\&\f(CW\&%title\&\f1\& \&\f(CW\&%date\&\f1\& .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \wMaster's Thesis .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \w\&\f(CW\&%address\&\f1\& .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \wmiscellaneous type .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \wa pamphlet or booklet .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \w\&\f(CW\&%title\&\f1\& .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \wPh.D. Thesis .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \w\&\f(CW\&%address\&\f1\& .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \wa conference proceedings .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \w\&\f(CW\&%title\&\f1\& \&\f(CW\&%publisher\&\f1\& \&\f(CW\&%date\&\f1\& .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \wa review of another piece .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \w\&\f(CW\&%author\&\f1\& \&\f(CW\&%journal\&\f1\& \&\f(CW\&%date\&\f1\& .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \wtechnical report .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \w\&\f(CW\&%report\&\f1\& .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \wunpublished manuscript .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \w\&\f(CW\&%author\&\f1\& \&\f(CW\&%title\&\f1\& .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \w\&\f(CW\&%date\&\f1\& .if \n(47<\n(38 .nr 47 \n(38 .47 .rm 47 .nr 38 \n(a- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \n(c- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \n(d- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \n(e- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \n(f- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \n(g- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \n(h- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \n(i- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \n(j- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \n(k- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \n(l- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \n(m- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \n(n- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \n(o- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \n(p- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \n(q- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \n(r- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 \n(s- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 1.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((6*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 6697 file Input is too wide - \n(TW units .nr #I \n(.i .in +(\n(.lu-\n(TWu-\n(.iu)/2u .fc .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .hy 0 .nr 36 \n(.v .vs \n(.vu-\n(.sp \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0 .vs \n(36u .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\&\f(CW\&article\&\f1\&\h'|\n(41u'journal or magazine article .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'required\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .ne \n(b|u+\n(.Vu .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'optional\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .nr 36 \n(.v .vs \n(.vu-\n(.sp \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0 .vs \n(36u .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\&\f(CW\&book\&\f1\&\h'|\n(41u'a published book .ne \n(c|u+\n(.Vu .if (\n(c|+\n(#^-1v)>\n(#- .nr #- +(\n(c|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'required\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .c+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'optional\h'|\n(41u'\&\f(CW\&%address\&\f1\& \&\f(CW\&%volume\&\f1\& .nr 36 \n(.v .vs \n(.vu-\n(.sp \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0 .vs \n(36u .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\&\f(CW\&editedbook\&\f1\&\h'|\n(41u'an edited book .ne \n(d|u+\n(.Vu .if (\n(d|+\n(#^-1v)>\n(#- .nr #- +(\n(d|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'required\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .d+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'optional\h'|\n(41u'\&\f(CW\&%address\&\f1\& \&\f(CW\&%volume\&\f1\& .nr 36 \n(.v .vs \n(.vu-\n(.sp \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0 .vs \n(36u .ne \n(e|u+\n(.Vu .if (\n(e|+\n(#^-1v)>\n(#- .nr #- +(\n(e|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\&\f(CW\&incollection\&\f1\&\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .e+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .ne \n(f|u+\n(.Vu .if (\n(f|+\n(#^-1v)>\n(#- .nr #- +(\n(f|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'required\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .f+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .ne \n(g|u+\n(.Vu .if (\n(g|+\n(#^-1v)>\n(#- .nr #- +(\n(g|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'optional\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .g+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .nr 36 \n(.v .vs \n(.vu-\n(.sp \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0 .vs \n(36u .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\&\f(CW\&inproceedings\&\f1\&\h'|\n(41u'paper in a proceedings .ne \n(h|u+\n(.Vu .if (\n(h|+\n(#^-1v)>\n(#- .nr #- +(\n(h|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'required\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .h+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .ne \n(i|u+\n(.Vu .if (\n(i|+\n(#^-1v)>\n(#- .nr #- +(\n(i|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'optional\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .i+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .nr 36 \n(.v .vs \n(.vu-\n(.sp \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0 .vs \n(36u .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\&\f(CW\&manual\&\f1\&\h'|\n(41u'a manual or guide .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'required\h'|\n(41u'\&\f(CW\&%title\&\f1\& \&\f(CW\&%date\&\f1\& .ne \n(j|u+\n(.Vu .if (\n(j|+\n(#^-1v)>\n(#- .nr #- +(\n(j|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'optional\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .j+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .nr 36 \n(.v .vs \n(.vu-\n(.sp \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0 .vs \n(36u .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\&\f(CW\&mastersthesis\&\f1\&\h'|\n(41u'Master's Thesis .ne \n(k|u+\n(.Vu .if (\n(k|+\n(#^-1v)>\n(#- .nr #- +(\n(k|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'required\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .k+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'optional\h'|\n(41u'\&\f(CW\&%address\&\f1\& .nr 36 \n(.v .vs \n(.vu-\n(.sp \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0 .vs \n(36u .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\&\f(CW\&misc\&\f1\&\h'|\n(41u'miscellaneous type .ne \n(l|u+\n(.Vu .if (\n(l|+\n(#^-1v)>\n(#- .nr #- +(\n(l|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'optional\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .l+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .nr 36 \n(.v .vs \n(.vu-\n(.sp \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0 .vs \n(36u .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\&\f(CW\&pamphlet\&\f1\&\h'|\n(41u'a pamphlet or booklet .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'required\h'|\n(41u'\&\f(CW\&%title\&\f1\& .ne \n(m|u+\n(.Vu .if (\n(m|+\n(#^-1v)>\n(#- .nr #- +(\n(m|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'optional\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .m+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .nr 36 \n(.v .vs \n(.vu-\n(.sp \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0 .vs \n(36u .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\&\f(CW\&phdthesis\&\f1\&\h'|\n(41u'Ph.D. Thesis .ne \n(n|u+\n(.Vu .if (\n(n|+\n(#^-1v)>\n(#- .nr #- +(\n(n|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'required\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .n+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'optional\h'|\n(41u'\&\f(CW\&%address\&\f1\& .nr 36 \n(.v .vs \n(.vu-\n(.sp \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0 .vs \n(36u .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\&\f(CW\&proceedings\&\f1\&\h'|\n(41u'a conference proceedings .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'required\h'|\n(41u'\&\f(CW\&%title\&\f1\& \&\f(CW\&%publisher\&\f1\& \&\f(CW\&%date\&\f1\& .ne \n(o|u+\n(.Vu .if (\n(o|+\n(#^-1v)>\n(#- .nr #- +(\n(o|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'optional\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .o+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .nr 36 \n(.v .vs \n(.vu-\n(.sp \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0 .vs \n(36u .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\&\f(CW\&review\&\f1\&\h'|\n(41u'a review of another piece .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'required\h'|\n(41u'\&\f(CW\&%author\&\f1\& \&\f(CW\&%journal\&\f1\& \&\f(CW\&%date\&\f1\& .ne \n(p|u+\n(.Vu .if (\n(p|+\n(#^-1v)>\n(#- .nr #- +(\n(p|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'optional\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .p+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .nr 36 \n(.v .vs \n(.vu-\n(.sp \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0 .vs \n(36u .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\&\f(CW\&techreport\&\f1\&\h'|\n(41u'technical report .ne \n(q|u+\n(.Vu .if (\n(q|+\n(#^-1v)>\n(#- .nr #- +(\n(q|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'required\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .q+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'optional\h'|\n(41u'\&\f(CW\&%report\&\f1\& .nr 36 \n(.v .vs \n(.vu-\n(.sp \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0 .vs \n(36u .ne \n(r|u+\n(.Vu .if (\n(r|+\n(#^-1v)>\n(#- .nr #- +(\n(r|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\&\f(CW\&tm\&\f1\&\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .r+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .ne \n(s|u+\n(.Vu .if (\n(s|+\n(#^-1v)>\n(#- .nr #- +(\n(s|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'required\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .s+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .nr 36 \n(.v .vs \n(.vu-\n(.sp \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0 .vs \n(36u .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'\&\f(CW\&unpublished\&\f1\&\h'|\n(41u'unpublished manuscript .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'required\h'|\n(41u'\&\f(CW\&%author\&\f1\& \&\f(CW\&%title\&\f1\& .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f \&\h'|\n(40u'optional\h'|\n(41u'\&\f(CW\&%date\&\f1\& .nr 36 \n(.v .vs \n(.vu-\n(.sp \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0 .vs \n(36u .hy .fc .nr T. 1 .T# 1 .in \n(#Iu .35 .rm a+ .rm b+ .rm c+ .rm d+ .rm e+ .rm f+ .rm g+ .rm h+ .rm i+ .rm j+ .rm k+ .rm l+ .rm m+ .rm n+ .rm o+ .rm p+ .rm q+ .rm r+ .rm s+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-102 .adb .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu \s+1\& .lf 1 example/ptemplate.m .rs .sp3 .ti\n(.iu .afAC A .nrAC +1 .nrS0 0 .nrS1 0 .nrS2 0 .nrS3 0 .dsRs Appendix .asRs \n(AC .dsTs EXAMPLES .ce9999 \s+1\&\&\f3\&\*(Rs .sp1 .ti\n(.iu \*(Ts\&\f1\&\s-1\& .ce0 .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 2v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 2v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n .dsRs \n(AC .tm.TC section 1 \*(Rs \*(Ts \n P .ds ,2 \*(Rs .tm .CD "examples" "\*(Rs" This sample document contains many examples of \&\f(CW\&|\^reference\&\f1\& commands followed by a \&\f(CW\&|\^reference_placement\&\f1\&. .if\n(:y .tm "prefer.m": 1087: Here's and/or Around's can not be nested .nr:y 1 .br .di:0 .lf 1088 prefer.m .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ls1 'nf \s-1\&Here's a reference to a tm|\^reference(Awk) and a book|\^reference(Sterling Shapiro). Let's have an inproceedings |\^reference(Grosz Sidner structure %post_text , pages 22-31) and an article and thesis by the same author |\^reference(Hirst anaphora) |\^reference(Hirst semantic phdthesis). This one is in a collection |\^reference(Fillmore %post_text , Chapter 3) while this one is a technical report |\^reference(Grosz Appelt Martin Pereira). Here's McFarland's Master's thesis |\^reference(McFarland mastersthesis %no_author). This is an editedbook followed by a miscellaneous reference and a personal communication |\^reference(Joshi Webber Sag) |\^reference(Pereira prolog) |\^reference(Hume personal). Here's a review |\^reference(Carroll Coombs). Finally, we have a manual, a proceedings, and an unpublished manuscript |\^reference(unix programmer manual) |\^reference(acl proceedings 1986) |\^reference(Newton Simulation). |\^reference_placement \s+1\& 'fi .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 1v .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 1v .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .br .di .nr:d 1 .if(\n(dn>=\n(.t)&((\n(dn<(\n(.p-\n(:r-\n(:m)):\ (\n(nl>(\n(.p-\n(:r-\n(:o/2u+\n(:r)))\ .ne\n(.tu+1v .nr;q \n(.u .nf .nr;L \n(.L .ls1 .nr;i \n(.i .in0 .rs .:0 .nr:d 0 .if\n(;q .fi .ls\n(;L .in\n(;iu .nr:y 0 .rr;L ;i ;q .rm:0 .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n When \&\f2\&prefer\&\f1\& formats this document according to \&\f(CW\&acm\&\f1\& style it looks like this: .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n \s-1\& .lf 1101 prefer.m Here's a reference to a tm [1] and a book [15]. Let's have an inproceedings [7, pages 22-31] and an article and thesis by the same author [8], [9]. This one is in a collection [5, Chapter 3] while this one is a technical report [6]. Here's McFarland's Master's thesis [12]. This is an editedbook followed by a miscellaneous reference and a personal communication [11], [14], [10]. Here's a review [4]. Finally, we have a manual, a proceedings, and an unpublished manuscript [3], [2], [13]. .in .5i .sp .5 .ti -\w'1.\ \ \ 'u 1.\ \ \ Aho, A.V., Kernighan, B.W., and Weinberger, P.J. Awk \- A Pattern Scanning and Processing Language, Programmer's Manual. 11272-850619-06TM, 11276-850619-09TM, 11273-850619-03TM, 1985. .sp .5 .ti -\w'2.\ \ \ 'u 2.\ \ \ Association for Computational Linguistics. \f2\&Proc. of the 24th Annual Meeting of the ACL.\f1\& Bell Communications Research, Morristown, NJ, June, 1986. .sp .5 .ti -\w'3.\ \ \ 'u 3.\ \ \ AT&T Bell Laboratories. \f2\&UNIX Time-Sharing System, Programmer's Manual, Ninth Edition\f1\&, Vol. 1. Murray Hill, NJ, September, 1986. .sp .5 .ti -\w'4.\ \ \ 'u 4.\ \ \ Carroll, J.D. Measurement without numbers: The non-metric approach. Review of \f2\&A theory of data\f1\& by C.H. Coombs. \f2\&Contemporary Psych.\f1\& \f2\&11\f1\& (1966), 118-119. .sp .5 .ti -\w'5.\ \ \ 'u 5.\ \ \ Fillmore, C.J. The Case for Case. In \f2\&Universals in Linguistic Theory\f1\&, E. Back, Ed. Holt, Rinehart and Winston, Inc, New York, NY, 1968, pp. 1-88. .sp .5 .ti -\w'6.\ \ \ 'u 6.\ \ \ Grosz, B., Appelt, D.E., Martin, P., and Pereira, F. TEAM: An Experiment in the Design of Transportable Natural-Language Interfaces. Technical Note 356, SRI International, August 1985. .sp .5 .ti -\w'7.\ \ \ 'u 7.\ \ \ Grosz, B.J. and Sidner, C.L. Discourse structure and the proper treatment of interruptions. In \f2\&Proceedings of the Ninth International Joint Conference on Artificial Intelligence\f1\&, A. Joshi, Ed., IJCAI, Los Angeles, CA, 1985, pp. 832-839. .sp .5 .ti -\w'8.\ \ \ 'u 8.\ \ \ Hirst, G. Discourse-oriented anaphora resolution in natural language understanding: a review. \f2\&American Journal of Computational Linguistics\f1\& \f2\&7\f1\&, 2 (1981), 85-98. .sp .5 .ti -\w'9.\ \ \ 'u 9.\ \ \ Hirst, G. Semantic Interpretation Against Ambiguity. PhD Thesis, Brown University, 1983. .sp .5 .ti -\w'10.\ \ \ 'u 10.\ \ \ Hume, A. 1989. Personal communication. .sp .5 .ti -\w'11.\ \ \ 'u 11.\ \ \ Joshi, A.K., Webber, B.L., and Sag, I.A., Eds. \f2\&Elements of discourse understanding\f1\&. Cambridge University Press, Cambridge, 1981. .sp .5 .ti -\w'12.\ \ \ 'u 12.\ \ \ McFarland, M.C. The VT: A Database for Automated Digital Design. Master's Thesis, Department of Electrical Engineering, Carnegie-Mellon University, December, 1978. .sp .5 .ti -\w'13.\ \ \ 'u 13.\ \ \ Newton, A.R. Techniques for the Simulation of Large-Scale Integrated Circuits. Unpublished. .sp .5 .ti -\w'14.\ \ \ 'u 14.\ \ \ Pereira, F.C. Prolog with Natural-Language Examples. 1985. Presented as a tutorial at the 23rd annual meeting of the ACL. .sp .5 .ti -\w'15.\ \ \ 'u 15.\ \ \ Sterling, L. and Shapiro, E. \f2\&The Art of Prolog: Advanced Programming Techniques\f1\&. MIT Press, Cambridge, MA, 1986. .in -5i .lf 1101 prefer.m \s+1\& .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n When formatted according to \&\f(CW\&apa\&\f1\& style it looks like this: .br .ie!'\n(.z'' \{\ .if!'\n(.z'\*(}D' .rr :D :E .nr;4 .3vv .if!(\n(.d=\n(:D) .nr :E 0 .nr;4 -\n(:Eu .if\n(;4 \{\ .sp\n(;4u .nr:E +\n(;4u \} .rm;4 .ds}D \n(.z .nr:D \n(.d \} .el\{\ .rr:D :E .nr;4 .3vv .if!(\n(nl=\n(:N) .nr :B 0 .nr;4 -\n(:Bu .if\n(;4 \{\ .sp\n(;4u .nr:B +\n(;4u \} .rm;4 .nr:N \n(nl \} .ti\n(.iu .ti+5n \s-1\& .lf 1109 prefer.m Here's a reference to a tm (Aho, Kernighan, & Weinberger, 1985) and a book (Sterling & Shapiro, 1986). Let's have an inproceedings (Grosz & Sidner, 1985, pages 22-31) and an article and thesis by the same author (Hirst, 1981, 1983). This one is in a collection (Fillmore, 1968, Chapter 3) while this one is a technical report (Grosz, Appelt, Martin, & Pereira, 1985). Here's McFarland's Master's thesis (1978). This is an editedbook followed by a miscellaneous reference and a personal communication (Joshi, Webber, & Sag, 1981; Pereira, 1985; Hume, 1989). Here's a review (Carroll, 1966). Finally, we have a manual, a proceedings, and an unpublished manuscript (AT&T Bell Laboratories, 1986; Association for Computational Linguistics, 1986; Newton). .in .5i .sp .5 .ti -.5i Aho, A. V., Kernighan, B. W., & Weinberger, P. J. (1985). \f2\&Awk \- A Pattern Scanning and Processing Language, Programmer's Manual\f1\& (11272-850619-06TM, 11276-850619-09TM, 11273-850619-03TM). .sp .5 .ti -.5i Association for Computational Linguistics. (June, 1986). \f2\&Proc. of the 24th Annual Meeting of the ACL.\f1\& Bell Communications Research, Morristown, NJ: Association for Computational Linguistics. .sp .5 .ti -.5i AT&T Bell Laboratories. (September, 1986). \f2\&UNIX Time-Sharing System, Programmer's Manual, Ninth Edition\f1\& (Vol. 1). Murray Hill, NJ: AT&T Bell Laboratories. .sp .5 .ti -.5i Carroll, J. D. (1966). Measurement without numbers: The non-metric approach. [Review of \f2\&A theory of data\f1\& by C. H. Coombs]. \f2\&Contemporary Psych.\f1\&, \f2\&11\f1\&, 118-119. .sp .5 .ti -.5i Fillmore, C. J. (1968). The Case for Case. In E. Back (Ed.), \f2\&Universals in Linguistic Theory\f1\& (pp. 1-88). New York, NY: Holt, Rinehart and Winston, Inc. .sp .5 .ti -.5i Grosz, B., Appelt, D. E., Martin, P., & Pereira, F. (August 1985). \f2\&TEAM: An Experiment in the Design of Transportable Natural-Language Interfaces\f1\& (Technical Note 356). SRI International. .sp .5 .ti -.5i Grosz, B. J., & Sidner, C. L. (1985). Discourse structure and the proper treatment of interruptions. \f2\&Proceedings of the Ninth International Joint Conference on Artificial Intelligence\f1\&, A. Joshi (Ed.), 832-839. .sp .5 .ti -.5i Hirst, G. (1981). Discourse-oriented anaphora resolution in natural language understanding: a review. \f2\&American Journal of Computational Linguistics\f1\&, \f2\&7\f1\&(2), 85-98. .sp .5 .ti -.5i Hirst, G. (1983). \f2\&Semantic Interpretation Against Ambiguity\f1\&. Unpublished doctoral dissertation, Brown University. .sp .5 .ti -.5i Hume, A. (1989). Personal communication. .sp .5 .ti -.5i Joshi, A. K., Webber, B. L., & Sag, I. A. (Eds.). (1981). \f2\&Elements of discourse understanding\f1\&. Cambridge: Cambridge University Press. .sp .5 .ti -.5i McFarland, M. C. (December, 1978). \f2\&The VT: A Database for Automated Digital Design\f1\&. Unpublished master's thesis, Department of Electrical Engineering, Carnegie-Mellon University. .sp .5 .ti -.5i Newton, A. R. Techniques for the Simulation of Large-Scale Integrated Circuits. Unpublished. .sp .5 .ti -.5i Pereira, F. C. (1985). Prolog with Natural-Language Examples. Presented as a tutorial at the 23rd annual meeting of the ACL. .sp .5 .ti -.5i Sterling, L., & Shapiro, E. (1986). \f2\&The Art of Prolog: Advanced Programming Techniques\f1\&. Cambridge, MA: MIT Press. .in -5i .lf 1109 prefer.m \s+1\& .lf 1 prefer.m