- ." Macro package for producing books (based on -ms)
- .nr PS 12
- .nr PZ 12
- ." RT - reset everything to normal state
- .de RT
- .if !\n(1T .BG
- .ce 0
- .if !\n(IK .if !\n(IF .if !\n(IX .if !\n(BE .di
- .ul 0
- .if \n(QP {
- . ll +\n(QIu
- . in -\n(QIu
- . nr QP -1}
- .if \n(NX<=1 .if \n(AJ=0 .ll \n(LLu
- .if \n(IF=0 {
- . ps \n(PS
- . if \n(VS>=41 .vs \n(VSu
- . if \n(VS<=40 .vs \n(VSp}
- .if \n(IP .in -\n(I\n(IRu
- .if \n(IP=0 .nr I0 \n(PIu
- .if \n(IP .nr IP -1
- .ft 1
- .bd 1
- .ta 5n 10n 15n 20n 25n 30n 35n 40n 45n 50n 55n 60n 65n 70n 75n 80n
- .fi
- ..
- . "IZ - initialization
- .de IZ
- .nr TN 0
- .em EM
- .if n .ds [. [
- .if t .ds [. s-2v'-.4m'f1
- .if n .ds .] ]
- .if t .ds .] v'.4m's+2fP
- .if n .ds [o ""
- .if n .ds [c ""
- .if t .ds [o ``
- .if t .ds [c ''
- .ch FO \n(YYu
- .if \n(FM=0 .nr FM 1i
- .nr YY -\n(FMu
- .nr XX 0 1
- .nr IP 0
- .nr PI 5n
- .nr QI 5n
- .nr I0 \n(PIu
- .nr PZ 12
- .nr VZ 13.8p
- .nr PS n(PZ
- .nr VS \n(VZu
- .if !\n(PD .if n .nr PD 1v
- .if !\n(PD .if t .nr PD 0.3v
- .nr ML 3v
- .ps \n(PS
- .if \n(VS>=41 .vs \n(VSu
- .if \n(VS<=40 .vs \n(VSp
- .nr IR 0
- .nr TB 0
- .nr SJ \n(.j
- .nr LL 6i
- .ll \n(LLu
- .nr LT \n(.l
- .lt \n(LTu
- .ev 1
- .nr FL \n(LLu*11u/12u
- .ll \n(FLu
- .ps 10
- .vs 12p
- .ev
- .if \*(CH .ds CH "(hy \\n(PN (hy
- .wh 0 NP
- .wh -\n(FMu FO
- .ch FO 16i
- .wh -\n(FMu FX
- .ch FO -\n(FMu
- .if t .wh -\n(FMu/2u BT
- .if n .wh -\n(FMu/2u-1v BT
- ..
- . "KS keep - for keep release features. As in IFM
- .de KS
- .nr KN \n(.u
- .if \n(IK=0 .if \n(IF=0 .KQ
- .nr IK +1
- ..
- . "KQ - real keep processor
- .de KQ
- .br
- .nr KI \n(.i
- .ev 2
- .br
- .in \n(KIu
- .ps \n(PS
- .if \n(VS>40 .vs \n(VSu
- .if \n(VS<=39 .vs \n(VSp
- .ll \n(LLu
- .lt \n(LTu
- .if \n(NX>1 .ll \n(CWu
- .if \n(NX>1 .lt \n(CWu
- .di KK
- .nr TB 0
- .nr KV 0
- ..
- . "KF - floating keep
- .de KF
- .nr KN \n(.u
- .if !\n(IK .FQ
- .nr IK +1
- ..
- . "FQ real floating keep processor
- .de FQ
- .nr KI \n(.i
- .ev 2
- .br
- .in \n(KIu
- .ps \n(PS
- .if \n(VS>40 .vs \n(VSu
- .if \n(VS<=39 .vs \n(VSp
- .ll \n(LLu
- .lt \n(LTu
- .if \n(NX>1 .ll \n(CWu
- .if \n(NX>1 .lt \n(CWu
- .di KK
- .nr TB 1
- .nr KV 0
- ..
- . "KP - keep full page
- .de KP
- .nr KV 1
- ..
- . "KE release - everything between keep and release is together
- .de KE
- .if \n(IK .if !\n(IK-1 .if \n(IF=0 .RQ
- .if \n(IK .nr IK -1
- ..
- . "RQ real release
- .de RQ
- .br
- .di
- .nr NF 0
- .if \n(dn-\n(.t .nr NF 1
- .if \n(TC .nr NF 1
- .if \n(KV .nr NF 1 " if KV on full page needed, doesn't fit
- .if \n(NF .if !\n(TB .sp 11i
- .if !\n(NF .if \n(TB .nr TB 0
- .nf
- .rs
- .nr TC 5
- .in 0
- .ls 1
- .if \n(TB=0 .ev
- .if \n(TB=0 .br
- .if \n(TB=0 .ev 2
- .if \n(TB=0 .KK
- .ls
- .ce 0
- .if \n(TB=0 .rm KK
- .if \n(TB .da KJ
- .if \n(TB !.KD \n(dn \n(KV
- .if \n(TB .KK
- .if \n(TB .di
- .nr TC \n(TB
- .if \n(KN .fi
- .in
- .ev
- ..
- .de EQ "equation, breakout and display
- .nr EF \n(.u
- .rm EE
- .nr LE 1 " 1 is center
- .ds EL \$1
- .if "\$1"L" .ds EL \$2
- .if "\$1"L" .nr LE 0
- .if "\$1"C" .ds EL \$2
- .if "\$1"I" .nr LE 0
- .if "\$1"I" .ds EE \h'|10n'
- .if "\$1"I" .if !"\$3"" .ds EE \h'\$3'
- .if "\$1"I" .ds EL \$2
- .if \n(YE>0 .nf
- .di EZ
- ..
- .de EN " end of a displayed equation
- .br
- .di
- .rm EZ
- .nr ZN \n(dn
- .if \n(ZN>0 .if \n(YE=0 .LP
- .if \n(ZN=0 .if !"\*(EL"" .nr ZN 1
- .if "\n(.z"" .if \n(ZN>0 .if !\n(nl=\n(PE .if t .sp .5
- .if "\n(.z"" .if \n(ZN>0 .if !\n(nl=\n(PE .if n .sp 1
- .if !"\n(.z"" .if \n(ZN>0 .if !\n(.d=\n(PE .if t .sp .5
- .if !"\n(.z"" .if \n(ZN>0 .if !\n(.d=\n(PE .if n .sp 1
- 'pc
- .if \n(BD>0 .nr LE 0 " can't mean centering in this case.
- .if \n(MK>0 .if \n(LE=1 .ds EE \h'|10n'
- .if \n(MK>0 .nr LE 0 " don't center if mark/lineup
- 'lt \n(.lu
- .if \n(EP=0 .if \n(ZN>0 .if \n(LE>0 .tl (ts(ts\*(10(ts\*(EL(ts
- .if \n(EP=0 .if \n(ZN>0 .if \n(LE=0 .if \n(BD=0 .tl (ts\*(EE\*(10(ts(ts\*(EL(ts
- .if \n(EP=0 .if \n(ZN>0 .if \n(LE=0 .if \n(BD>0 .if \n(BD<\w(ts\*(10(ts .nr BD \w(ts\*(10(ts
- .if \n(EP=0 .if \n(ZN>0 .if \n(LE=0 .if \n(BD>0 !\*(10\t\*(EL
- .if \n(EP>0 .if \n(ZN>0 .if \n(LE>0 .tl (ts\*(EL(ts\*(10(ts(ts
- .if \n(EP>0 .if \n(ZN>0 .if \n(LE=0 .if \n(BD=0 .tl (ts\*(EL\*(EE\*(10(ts(ts(ts
- .if \n(EP>0 .if \n(ZN>0 .if \n(LE=0 .if \n(BD>0 .if \n(BD<\w(ts\*(10(ts .nr BD \w(ts\*(10(ts
- .if \n(EP>0 .if \n(ZN>0 .if \n(LE=0 .if \n(BD>0 !\h'-\\n(.iu'\*(EL\h'|0'\*(10
- .".di EZ " GCOS patch
- ."\*(10 " GCOS patch
- .".br " GCOS patch
- .".di " GCOS patch
- .".rm EZ " GCOS patch
- 'lt \n(LLu
- 'pc %
- .if \n(YE>0 .if \n(EF>0 .fi
- .rm EL 10 11 12 13 14 15 16 17 18 19 20 21 22 23
- .rr 10 11 12 13 14 15 16 17 18 19 20 21 22 23
- .if \n(ZN>0 .if t .sp .5
- .if \n(ZN>0 .if n .sp
- .if "\n(.z"" .nr PE \n(nl
- .if !"\n(.z"" .nr PE \n(.d
- .nr z 72-((\n(nl-\n(HM)%72)
- .if \n(nl<\n(HM .nr z 0
- .if \nz>0 .if \nz<60 .sp \nzu "force post equation text to whole line
- .if \nz>59 .if \nz<72 .sp \nzu-72u "move backwards a fraction of a pica
- ..
- .de ME
- .nr SJ \n(.j
- .if \n(LL>0 .nr LT \n(LL
- .nr YE 1
- .if \n(PO=0 .nr PO \n(.o
- .if \n(mo-0 .ds MO January
- .if \n(mo-1 .ds MO February
- .if \n(mo-2 .ds MO March
- .if \n(mo-3 .ds MO April
- .if \n(mo-4 .ds MO May
- .if \n(mo-5 .ds MO June
- .if \n(mo-6 .ds MO July
- .if \n(mo-7 .ds MO August
- .if \n(mo-8 .ds MO September
- .if \n(mo-9 .ds MO October
- .if \n(mo-10 .ds MO November
- .if \n(mo-11 .ds MO December
- .if \n(dw-0 .ds DW Sunday
- .if \n(dw-1 .ds DW Monday
- .if \n(dw-2 .ds DW Tuesday
- .if \n(dw-3 .ds DW Wednesday
- .if \n(dw-4 .ds DW Thursday
- .if \n(dw-5 .ds DW Friday
- .if \n(dw-6 .ds DW Saturday
- .if "\*(DY"" .ds DY \*(MO \n(dy, 19\n(yr
- .if "\*(CF"" .if n .ds CF "\*(DY
- ..
- . "EM end up macro - process left over keep-release
- .de EM
- .br
- .if \n(TB=0 .if t .wh -1p CM
- .if \n(TB &c
- .if \n(TB 'bp
- .if \n(TB .NP
- .if \n(TB .ch CM 160
- ..
- . "NP new page
- .de NP
- .if \n(FM+\n(HM>=\n(.p .tm Margins bigger than page length.
- .if \n(FM+\n(HM>=\n(.p .ab
- .if \n(FM+\n(HM>=\n(.p .ex
- .nr PX \n(.s
- .nr PF \n(.f
- .nr PV \n(.v
- .if t .CM
- .if \n(HM=0 .nr HM 1i
- 'sp \n(HMu/2u
- .lt \n(LTu
- .ps \n(PS
- .vs \n(PS+2
- .ft 1
- .if \n(PO>0 .po \n(POu
- .PT
- .ps \n(PX
- .vs \n(PVu
- .ft \n(PF
- 'sp |\n(HMu
- .nr XX 0 1
- .nr YY 0-\n(FMu
- .ch FO 16i
- .ch FX 17i
- .ch FO \n(.pu-\n(FMu
- .ch FX \n(.pu-\n(FMu
- .if \n(MF .FV
- .nr MF 0
- .mk
- .os
- .ev 1
- .if \n(TD=0 .if \n(TC<5 .XK
- .nr TC 0
- .ns
- .ev
- .nr TQ \n(.i
- .nr TK \n(.u
- .if \n(IT>0 {
- . in 0
- . nf
- . TT
- . in \n(TQu
- . if \n(TK .fi
- }
- .mk #T
- .if t .if \n(.o+\n(LL>7.75i .tm Offset (\n(.o) + line length (\n(LL) exceeds 7.75 inches, too wide
- ..
- .de XK
- .nr TD 1
- .nf
- .ls 1
- .in 0
- .rn KJ KL
- .KL
- .rm KL
- .if "\n(.z"KJ" .di
- .nr TB 0
- .if "\n(.z"KJ" .nr TB 1
- .br
- .in
- .ls
- .fi
- .if (\n(nl+1v)>(\n(.p-\n(FM) .if \n(NX>1 .RC
- .if (\n(nl+1v)>(\n(.p-\n(FM) .if \n(NX<1 .bp
- .nr TD 0
- ..
- .de KD
- .nr KM 0
- .if "\n(.z"" .if \$2>0 .if \n(nl>\n(HM .if (\n(nl+1v)<(\n(.p-\n(FM) .di KJ
- .if "\n(.z"" .if \n(nl>\n(HM .if \$2>0 .sp 15i " full page figure must have new page
- .if "\n(.z"" .if \n(nl>\n(HM .if \$2=0 .if (\n(nl+1v)>(\n(.p-\n(FM) .sp 15i
- .if "\n(.z"KJ" .nr KM 1 " KM is 1 if in a rediversion of keeps
- .if \n(KM>0 !.KD \$1 \$2
- .nr KR \n(.t
- .if \n(nl<=\n(HM .nr KR 32767
- .if \n(KM=0 .if \n(KR<\$1 .di KJ
- .if \n(KM=0 .if \n(KR<\$1 .nr KM 1
- .if \n(KM=0 .if \$2>0 .if (\n(nl+1v)>(\n(.p-\n(FM) .sp 15i
- .rs
- .if \n(KM=0 .if \$2>0 .sp \n(.tu-\$1u
- ..
- .de PT
- .lt \n(LLu
- .pc %
- .nr PN \n%
- ....if \n%-1 .tl '\*(LH'\*(CH'\*(RH'
- .lt \n(.lu
- ..
- . "FO - footer of page
- .de FO
- .rn FO FZ
- .if \n(K1>0 .tm This memo has a multi-page cover sheet. You are
- .if \n(K1>0 .tm rebuked in the name of the Committee on Technical Memoranda.
- .if \n(IT>0 .nr T. 1
- .if \n(IT>0 .if \n(FC=0 .T# 1
- .if \n(IT>0 .br
- .nr FC +1
- .if \n(NX<2 .nr WF 0
- .nr dn 0
- .if \n(FC<=1 .if \n(XX .XF
- .rn FZ FO
- .nr MF 0
- .if \n(dn .nr MF 1
- .if !\n(WF .nr YY 0-\n(FMu
- .if !\n(WF .ch FO \n(YYu
- .if !\n(dn .nr WF 0
- .if \n(FC<=1 .if \n(XX=0 .if \n(NX>1 .RC
- .nr x 7176u-\n(.d
- .if nL=1 .if \n(FC<=1 .if \n(XX=0 .if \n(NX<1 'tm Chap=\na page=\n% short=\nx
- .if \n(FC<=1 .if \n(XX=0 .if \n(NX<1 'bp
- .nr FC -1
- .if \n(ML>0 .ne \n(MLu
- ..
- . "2C - begin double column
- .de 2C
- .MC " default MC is double column
- ..
- .de MC " multiple columns- arg is line length
- .nr L1 \n(LL*7/15
- .if \n(.$>0 .nr L1 \$1n
- .nr GW 0-1
- .if \n(.$>1 .nr GW \$1n
- .nr NQ \n(LL/\n(L1
- .if \n(NQ<1 .nr NQ 1
- .if \n(NQ>2 .if (\n(LL%\n(L1)=0 .nr NQ -1
- .if \n(1T=0 {
- . BG
- . if n .sp 4
- . if t .sp 2}
- .if \n(NX=0 .nr NX 1
- .if !\n(NX=\n(NQ {
- . RT
- . if \n(NX>1 .bp
- . mk
- . nr NC 1
- . po \n(POu}
- .if \n(NQ>1 .hy 14
- .nr NX \n(NQ
- .nr CW \n(L1
- .ll \n(CWu
- .nr FL \n(CWu*11u/12u
- .if \n(NX>1 .nr GW (\n(LL-(\n(NX*\n(CW))/(\n(NX-1)
- .nr RO \n(CW+\n(GW
- .ns
- ..
- .de RC
- .ie \n(NC>=\n(NX .C2
- .el .C1
- ..
- .de C1
- .rt
- .po +\n(ROu
- .nr NC +1
- .if \n(NC>\n(NX .nr NC 1
- .nr XX 0 1
- .if \n(MF .FV
- .ch FX \n(.pu-\n(FMu
- .ev 1
- .if \n(TB .XK
- .nr TC 0
- .ev
- .nr TQ \n(.i
- .if \n(IT>0 .in 0
- .if \n(IT>0 .TT
- .if \n(IT>0 .in \n(TQu
- .mk #T
- .ns
- ..
- .de C2
- .po \n(POu
- .nr NC +1
- .if \n(NC>\n(NX .nr NC 1
- 'bp
- ..
- . "1C - return to single column format
- .de 1C
- .MC \n(LLu
- .hy 14
- ..
- . ".de R3
- . ".pl 102
- . ".nr LT \n(.l
- . "..
- .de BT
- .nr PX \n(.s
- .nr PF \n(.f
- .ft 1
- .ps \n(PS
- 'lt \n(LTu
- .po \n(POu
- .if \n%>0 .tl '\*(LF'\*(CF'\*(RF'
- .ft \n(PF
- .ps \n(PX
- ..
- . "PP - paragraph
- .de PP
- .RT
- .if \n(1T .sp \n(PDu
- .ti +\n(PIu
- ..
- . "SH - (unnumbered) section heading
- .de SH
- .ti \n(.iu
- .RT
- .if \n(1T .sp 1
- .if !\n(1T .BG
- .RT
- .ne 4
- .ft 3
- ..
- . "NH - numbered heading
- .de NH
- .RT
- .if \n(1T .sp 1
- .if !\n(1T .BG
- .RT
- .ne 4
- .ft 3
- .nr NS \$1
- .if !\n(.$ .nr NS 1
- .if !\n(NS .nr NS 1
- .nr H\n(NS +1
- .if !\n(NS-4 .nr H5 0
- .if !\n(NS-3 .nr H4 0
- .if !\n(NS-2 .nr H3 0
- .if !\n(NS-1 .nr H2 0
- .if !\$1 .if \n(.$ .nr H1 1
- .ds SN \n(H1.
- .if \na=0 .ds SN \*(CN.
- .ti \n(.iu
- .if \n(NS-1 .as SN \n(H2.
- .if \n(NS-2 .as SN \n(H3.
- .if \n(NS-3 .as SN \n(H4.
- .if \n(NS-4 .as SN \n(H5.
- \*(SN
- ..
- . "BG - begin, execute at first PP
- .de BG
- .br
- .ME
- .rm ME
- .di
- .ce 0
- .nr KI 0
- .hy 14
- .nr 1T 1
- .S\n(ST
- .rm S0
- .rm S1
- .rm S2
- .rm S3
- .rm OD
- .rm OK
- .rm TX
- .rm AX
- .rm WT
- .rm CS
- .rm TM
- .rm IM
- .rm MF
- .rm MR
- .rm RP
- .rm I1
- .rm I2
- .rm I3
- .rm I4
- .rm I5
- .rm CB
- .rm E1
- .rm E2
- .de TL
- .ft 3
- .sp
- .if n .ul 100
- .ce 100
- .ps +2
- \..
- .de AU
- .ft 2
- .if n .ul 0
- .ce 100
- .sp
- .NL
- \..
- .de AI
- .ft 1
- .ce 100
- .if n .ul 0
- .if n .sp
- .if t .sp .5
- .NL
- \..
- .RA
- .rm RA
- .rn FJ FS
- .rn FK FE
- .nf
- .ev 1
- .ps \n(PS-2
- .vs \n(.s+2p
- .ev
- .if \n(KG=0 .nr FP 0
- .if \n(GA>1 .if \n(KG=0 .nr GA 0 " next UNIX must be flagged.
- .nr KG 0
- .if \n(FP>0 .FS
- .if \n(FP>0 .FG
- .if \n(FP>0 .FE
- .br
- .if \n(TV>0 .if n .sp 2
- .if \n(TV>0 .if t .sp 1
- .fi
- .ll \n(LLu
- ..
- .de RA "redefine abstract macros
- .de AB
- .br
- .if !\n(1T .BG
- .ce 1
- .sp 1
- .if \n(.$=0 ABSTRACT
- .if \n(.$>0 .if !"\$1"-" .if !"\$1"no" \$1
- .if \n(.$=0 .sp
- .if \n(.$>0 .if !"\$1"-" .if !"\$1"no" .sp
- .sp 1
- .nr AJ 1
- .in +\n(.lu/12u
- .ll -\n(.lu/12u
- .RT
- \..
- .de AE
- .nr AJ 0
- .br
- .in 0
- .ll \n(LLu
- .if \n(VS>=41 .vs \n(VSu
- .if \n(VS<=40 .vs \n(VSp
- \..
- ..
- . "IP - indented paragraph
- .de IP
- .RT
- .if !\n(IP .nr IP +1
- .sp \n(PDu
- .if \n(.$-1 .nr I\n(IR \$2n
- .in +\n(I\n(IRu
- .nr TY \n(TZ-\n(.i
- .ta \n(I\n(IRu \n(TYuR
- .if \n(.$>0 {
- .ti -\n(I\n(IRu
- &\$1tc}
- ..
- . "LP - left aligned (block) paragraph
- .de LP
- .ti \n(.iu
- .RT
- .if \n(1T .sp \n(PDu
- ..
- .de QP
- .ti \n(.iu
- .RT
- .if \n(1T .sp \n(PDu
- .ne 1.1
- .nr QP 1
- .in +\n(QIu
- .ll -\n(QIu
- .ti \n(.iu
- ..
- . "IE - synonym for .LP
- .de IE
- .LP
- ..
- . "LB - label paragraph
- .de LB
- .in +\n(I\n(IRu
- .ta \n(I\n(IRu
- .if \n(.$ .ti -\n(I\n(IRu
- .if \n(.$ &\$1tc
- ..
- .de XP
- .RT
- .if !\n(IP .nr IP +1
- .sp \n(PDu
- .ne 3
- .if \n(.$=3 .nr I\n(IR \$3n
- .if \n(.$=4 .nr I\n(IR \$4n
- .nr J\n(IR \n(IRu/2u
- .if \n(.$=4 .nr J\n(IR \$3n
- .in +\n(I\n(IRu
- .ta \n(J\n(IRu \n(I\n(IRu
- .ti -\n(I\n(IRu