V10/vol2/prefer/goo

.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