minix3/man/man9/macros.9

1464 lines
24 KiB
Groff
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

.\" 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-2\v'-.4m'\f1
.if n .ds .] ]
.if t .ds .] \v'.4m'\s+2\fP
.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
\&\\$1\t\c\}
..
. \"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(.$ \&\\$1\t\c
..
.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
\0\\$1\t\\$2\t\c
..
. \"RS - prepare for double indenting
.de RS
.nr IS \\n(IP
.RT
.nr IP \\n(IS
.if \\n(IP>0 .in +\\n(I\\n(IRu
.nr IR +1
.nr I\\n(IR \\n(PIu
.in +\\n(I\\n(IRu
.nr TY \\n(TZ-\\n(.i
.ta \\n(TYuR
..
. \"RE - retreat to the left
.de RE
.nr IS \\n(IP
.RT
.nr IP \\n(IS
.if \\n(IR>0 .nr IR -1
.if \\n(IP<=0 .in -\\n(I\\n(IRu
..
.de TC
.nr TZ \\n(.lu
.if \\n(.$ .nr TZ \\$1n
.ta \\n(TZuR
..
.de TD
.LP
.nr TZ 0
..
. \"CM - cut mark
.de CM
.po 0
.lt 7.6i
.ft 1
.ps 10
.vs 4p
.po
.vs
.lt
.ps
.ft
..
. \"B - bold font
.de B
.nr PQ \\n(.f
.if t .ft 3
.if "\\$1"" .if n .ul 1000
.if !"\\$1"" .if n .ul 1
.if t .if !"\\$1"" \&\\$1\\f\\n(PQ\\$2
.if n .if \\n(.$=1 \&\\$1
.if n .if \\n(.$>1 \&\\$1\\c
.if n .if \\n(.$>1 \\&\\$2
..
. \"R - Roman font
.de R
.if n .ul 0
.ft 1
..
. \"I - italic font
.de I
.nr PQ \\n(.f
.if t .ft 2
.if "\\$1"" .if n .ul 1000
.if !"\\$1"" .if n .ul 1
.if t .if !"\\$1"" \&\\$1\\f\\n(PQ\\$2
.if n .if \\n(.$=1 \&\\$1
.if n .if \\n(.$>1 \&\\$1\\c
.if n .if \\n(.$>1 \\&\\$2
..
. \"TA - tabs set in ens or chars
.de TA
.ta \\$1n \\$2n \\$3n \\$4n \\$5n \\$6n \\$7n \\$8n \\$9n
..
. \"SM - make smaller size
.de SM
.if \\n(.$>0 \&\\$3\s-2\\$1\s0\\$2
.if \\n(.$=0 .ps -2
..
. \"LG - make larger size
.de LG
.ps +2
..
. \"NL - return to normal size
.de NL
.ps \\n(PS
..
. \"DA - force date; ND - no date or new date.
.de DA
.if \\n(.$ .ds DY \\$1 \\$2 \\$3 \\$4
.ds CF \\*(DY
..
.de ND
.ME
.rm ME
.ds DY \\$1 \\$2 \\$3 \\$4
.rm CF
..
.de FN
.FS
..
. \"FS - begin footnote
.de FJ
'ce 0
.di
.ev1
.ll \\n(FLu
.da FF
.br
.if \\n(IF>0 .tm Footnote within footnote-illegal.
.nr IF 1
.if !\\n+(XX-1 .FA
..
. \"FE - footnote end
.de FK
.br
.in 0
.nr IF 0
.di
.ev
.if !\\n(XX-1 .nr dn +\\n(.v
.nr YY -\\n(dn
.if \\n(NX=0 .nr WF 1
.if \\n(dl>\\n(CW .nr WF 1
.if (\\n(nl+\\n(.v)<=(\\n(.p+\\n(YY) .ch FO \\n(YYu
.if (\\n(nl+\\n(.v)>(\\n(.p+\\n(YY) .if \\n(nl>(\\n(HM+1.5v) .ch FO \\n(nlu+\\n(.vu
.if (\\n(nl+\\n(.v)>(\\n(.p+\\n(YY) .if \\n(nl+\\n(FM+1v>\\n(.p .ch FX \\n(.pu-\\n(FMu+2v
.if (\\n(nl+\\n(.v)>(\\n(.p+\\n(YY) .if \\n(nl<=(\\n(HM+1.5v) .ch FO \\n(HMu+(4u*\\n(.vu)
..
.\" First page footer.
.de FS
.ev1
.br
.ll \\n(FLu
.da FG
..
.de FE
.br
.di
.nr FP \\n(dn
.if \\n(1T=0 .nr KG 1 \"not in abstract repeat next page.
.if "\\n(.z"OD" .nr KG 0 \" if in OK, don't repeat.
.ev
..
.de FA
.if n __________________________
.if t \l'1i'
.br
..
.de FV
.FS
.nf
.ls 1
.FY
.ls
.fi
.FE
..
.de FX
.if \\n(XX>0 .di FY
.if \\n(XX>0 .ns
..
.de XF
.if \\n(nlu+1v>(\\n(.pu-\\n(FMu) .ch FX \\n(nlu+1.9v
.ev1
.nf
.ls 1
.FF
.rm FF
.nr XX 0 1
.br
.ls
.di
.fi
.ev
..
.de FL
.ev1
.nr FL \\$1n
.ll \\$1
.ev
..
.de UL \" underline argument, don't italicize
.if t \\$1\l'|0\(ul'\\$2
.if n .I \\$1 \\$2
..
.de UX
UNIX
..
.de US
the
.UX
operating system
..
.de QS
.br
.LP
.in +\\n(QIu
.ll -\\n(QIu
..
.de QE
.br
.ll +\\n(QIu
.in -\\n(QIu
.LP
..
.de B1 \" begin boxed stuff
.br
.di BB
.nr BC 0
.if "\\$1"C" .nr BC 1
.nr BE 1
..
.de B2 \" end boxed stuff
.br
.nr BI 1n
.if \\n(.$>0 .nr BI \\$1n
.di
.nr BE 0
.nr BW \\n(dl
.nr BH \\n(dn
.ne \\n(BHu+\\n(.Vu
.nr BQ \\n(.j
.nf
.ti 0
.if \\n(BC>0 .in +(\\n(.lu-\\n(BWu)/2u
.in +\\n(BIu
.BB
.in -\\n(BIu
.nr BW +2*\\n(BI
.sp -1
\l'\\n(BWu\(ul'\L'-\\n(BHu'\l'|0\(ul'\h'|0'\L'\\n(BHu'
.if \\n(BC>0 .in -(\\n(.lu-\\n(BWu)/2u
.if \\n(BQ .fi
.br
..
.de AT
.nf
.sp
.ne 2
Attached:
..
.de CT
.nf
.sp
.ne 2
.ie \\n(.$ Copy to \\$1:
.el Copy to:
..
.de BX
.if t \(br\|\\$1\|\(br\l'|0\(rn'\l'|0\(ul'
.if n \(br\\kA\|\\$1\|\\kB\(br\v'-1v'\h'|\\nBu'\l'|\\nAu'\v'1v'\l'|\\nAu'
..
.IZ
.rm IZ
.\" ------------------- VARIABLES ------------------------------
.\" \na - Current chapter
.\" \nb - Current section
.\" \nc - Current subsection
.\" \nd - Set to 0 initially, 1 by PT, 2 by .PB Used to control running head
.\" \ne - Current equation number
.\" \ng - Used to count items in numbered lists
.\" \nh - Counts number of times CP has been invoked
.\" \nj - Set to 1 iff footer page number needed
.\" \nk - Last figure number used
.\" \nL - 1 if depth printed for each page
.\" \nl - 1 old Agfa length to be used
.\" \np - Numbers end-of-chapter problems
.\" \nq - 1 for double spaced text, smaller vert. margins
.\" \ns - initial page number
.\" \nt - Variable part of spacing inside .BI macro
.\" \nv - Scratch register in lower case roman numerals
.\" \nx - Scratch register
.\" ------------------- GENERAL PARAMETERS ---------------------
.nr BO 43 \" number of lines of text per page
.nr PO 1.3i
.po \n(PO
.if \nq=1 .ls 2 \" -rq1 invokes double spacing
.nr LL 5.67i
.if t \{
.nr PL 29.73c
.nr PI 0.25i\}
.if n \{
.nr LL 80m
.nr PL 11.0i
.nr PI 3m\}
.pl \n(PLu
.nr HM (\n(PLu-(\n(BOu*\n(VSu))/2u
.nr FM \n(PLu-(\n(HMu+((\n(BOu-1u)*\n(VSu)+1u)
.nr xx \n(HMu%\n(VZu
.nr HM \n(HMu-\n(xxu
.nr FM \n(FMu+\n(xxu
.nr t 0 0
.\" ------------------- INITIALIZATION -------------------------
.nr d 0 0
.nr e 0 1
.nr h 0 1
.nr j 1 0
.nr t 0 0
.tr ~
.ds CT "~ \"initially empty
.ND \"suppress date on bottom of page
.af v i \"register v is in lower case roman
.ch FO -\n(FMu
.ch BT -\n(FMu+0.5P
.\" ------------------- ALIGN TEXT TO A WHOLE NUMBER OF PICAS ----
.de AL
'nr xx \\n(.du%\\n(VZu
'nr xy \\n(VZu-\\n(xx
'if \\n(xy=\\n(VZu .nr xy 0
'sp \\n(xyu
..
.\" ------------------- DIVISION OF TEXT INTO LOGICAL UNITS ----
.\" Define chapter number
.de CP
.ds CN \\$1
.ds CX CHAP.
.if '\\$1'A' .ds CX APPENDIX
.if '\\$1'B' .ds CX APPENDIX
.if '\\$1'C' .ds CX APPENDIX
.if '\\$1'D' .ds CX APPENDIX
.if '\\$1'E' .ds CX APPENDIX
.if '\\$1'F' .ds CX APPENDIX
.if '\\$1'A' .nr a 0 0
.if '\\$1'B' .nr a 0 0
.if '\\$1'C' .nr a 0 0
.if '\\$1'D' .nr a 0 0
.if '\\$1'E' .nr a 0 0
.if '\\$1'F' .nr a 0 0
.nr H1 \\$1 0
.nr H2 0 1
.nr a \\$1 0
.nr b 0 1
.nr c 0 1
.nr d 1 1
.nr e 0 1
.nr k 0 1
.nr s \\n%
.if \\nq=1 .PH 6
.ll \\n(LLu
.nr LT \\n(LLu
.lt \\n(LLu
.ll \\n(LLu
.pl \n(PLu
.po \n(POu
.in 0
.nr PS \\n(PZ
.nr VS \\n(VZu
.nr PD 0i
.ds ST
.ds CT \\$2
.if !'\\$3'' .as CT " \\$3
.if \\nh .bp
.rs
.sp 16P
.B
.ps 30
.vs 32
.ce 1
\\$1
.sp 4P
.ps 18
.vs 20
.ce 1
\\$2
.sp 0.25i
.if !'\\$3'' .ce 1
.if !'\\$3'' \\$3
.ps 10
.vs 12
.R
.nr x \\n(.pu/2u
.sp |\\nxu
.nr h +1 1
.tr _\\(ru
.AL
..
.de SP
.sp \\$1 \"used for temporary (page balancing ) fill
..
.de HS
.sp 0.5
..
.\" Major section (numbered)
.de SE
.nr b +1 1
.nr c 0 1
.ds ST \\$1
.sp 1
.NH 2
\\$1
.sp 1
..
.\" Subsection (numbered)
.de SS
.nr c +1 1
.NH 3
\\$1
.sp 1
..
.de UU
.SH
\\$1
.sp 1
..
.\"-------------------- PAGE TRANSITION MACROS USED BY -MS ------
.de PH \"select special running heads
.nr d \\$1
.if \\$1=4 .nr j 1
.ds CT \\$2
..
.de PT
.AL
.pc %
.PN \\n%
'sp |\\n(HMu-0.35i
.ps 10
.\"
.\" nd = 0 means no running head this time, normal next time
.if \\nd=0 \{\
.tl '''' \" no running head on initial page transition
.nr j 1 0\}
.\"
.\" nd = 1 is normal case: chapter heading even (left) and section odd(right)
.if \\nd=1\{\
.if e .tl '\fB\s+2%\s-2\fR'\\*(CT'\\*(CX~ \\*(CN' \"normal case even page
.if o .if \\nb>0 .tl 'SEC.~ \\*(CN.\\nb'\\*(ST'\fB\s+2%\s-2\fR'
.if o .if \\nb=0 .tl '''\fB\s+2%\s-2\fR'\}
.if o .if \\nb=-999 .tl '\\*(CX~ \\*(CN'\\*(CT'\fB\s+2%\s-2\fR'\}
.\"
.\" nd = 2 is for PROBLEMS; even normal, odd CHAP. ... PROBLEMS %
.if \\nd=2\{\
.if e .tl '\fB\s+2%\s-2\fR'\\*(CT'\\*(CX~ \\*(CN' \"even page PROBLEMS
.if o .if \\nd=2 .tl '\\*(CX~ \\*(CN'PROBLEMS'\fB\s+2%\s-2\fR' \}
.\"
.\" nd = 3 is for index, problem solutions & other cases with same odd even hd
.if \\nd=3\{\
.if e .tl '\fB\s+2%\s-2\fR'\\*(CT''
.if o .tl ''\\*(CT'\fB\s+2%\s-2\fR'\}
.\"
.\" nd = 4 is like nd = 3, except page numbers are lower case roman
.if \\nd=4\{\
.nr v \\n%
.if e .tl '\fB\s+2\\nv\s-2\fR'\\*(CT''
.if o .tl ''\\*(CT'\fB\s+2\\nv\s-2\fR'\}
.\"
.\" nd = 5 suppresses running heads like nd=0, only it keeps them suppressed
.if \\nd=5 .tl ''''
.\" nd = 6 gives page number in right-hand corner only
.if \\nd=6 .tl '''%'
.if \\nd=0 .nr d 1 0 \" henceforth normal running heads
..
.de BT
.if \\n%=\\ns\{\
.nr x \\n(HMu+(\\n(BO*\\n(VSu)+2P
'sp |\\nxu
.nr v \\n%
.ie \\nd=4 .tl ''\fB\s-1\\nv\s0\fP''
.el .tl ''\fB\s-1\\n%\s0\fP''\}
.nr j 0 0
.if \\nd=0 .nr d 1 0
..
.\"--------------- CHECK FOR INITIAL PAGE NUMBER ---------------
.de PC
.if \n%<\\$1\{
.tm You forgot to set the page number. Run aborted. Use troff -n
.ex\}
.if \n%>\\$2\{
.tm You forgot to set the page number. Run aborted. Use troff -n
.ex\}
..
.\"-------------------- LISTS OF THINGS ------------------------
.\" Start list
.de LI
.nr g 0 1
.in +0.25i
.nr LL -0.25i
.ll -0.25i
.ne 3v
.HS
..
.\" End list
.de LX
.sp 1
.in -0.25i
.nr LL +0.25i
.ll +0.25i
.LP
..
.\" List item
.de IT
.HS
.nr g \\ng+1 1
.ie \\ng<10 .IP \0\\ng. 4
.el .IP \\ng. 4
..
.\"Short unnumbered lines
.de UN
.HS
..
.\"-------------------- END OF CHAPTER EXERCISES ---------------
.de PB
.nr d 2 0
.if \\nq=1 .PH 6
.ne 1.5i
.sp 0.5i
.ce 1
.B PROBLEMS
.sp 1
.nr p 0 1
..
.de PR
.ps 11
.vs 13
.nr PS 11
.nr VS 13.01p
.HS
.nr p +1 1
.in \w'00. 'u
.ti -\w'00. 'u
.if \\np>9 \fB\\np.\fR~~\c
.if \\np<10 \fB\0\\np.\fR~~\c
..
.de AA
.sp 3
.if n .nr LL 84m
.nr PS \\n(PZ
.nr VS \\n(VZu
.nr a \\$1 1
.nr b 0 0
.nr p 0 1
.ce 1
.nr x 1
.if '\\$1'A' .nr x 0
.if '\\$1'B' .nr x 0
.if '\\$1'C' .nr x 0
.if \\nq=1 .PH 6
.if \\nx\fBSOLUTIONS TO CHAPTER \\$1 PROBLEMS\fR
.if !\\nx\fBSOLUTIONS TO APPENDIX \\$1 PROBLEMS\fR
.sp 1v
..
.de AN
.HS
.ps \\n(PZ
.vs \\n(VSu
.nr PS \\n(PZ
.nr VS \\n(VZu
.nr p +1 1
.in \w'00. 'u
.ti -\w'00. 'u
.if \\np>9 \fB\\np.\fR~~\c
.if \\np<10 \fB\0\\np.\fR~~\c
..
.\"-------------------- BIBLIOGRAPHY ---------------------------
.de BB
.sp 2
.in 0.25i
..
.de BI
.ps 10
.vs 12
.sp \\ntu
.HS
.if n .HS
.ti -0.30i
.R
..
.\"-------------------- QUOTES ---------------------------------
.ds OQ `\h'-1p'`
.ds CQ '\h'-1p''
.\"-------------------- FIGS.-----------------------------------
.de FC
'sp 1v
.ps 10
.vs 12
.in +0.5i
.ll -0.5i
.B
.if '\\$1'C' .ce 1
Fig.\|\|\|\\*(CN-\\n+k.~\c
.R
..
.de BF
.KF
'sp 1v
.nr TP \\n(.s
.nr TV \\n(.v
.nr TF \\n(.f
.nr r 0 0
.if \\nq=0 .if "\\$1"PAGE" .KP
.if \\nq=0 .if "\\$1"PAGE" .nr r 1 0
.if \\nq=0 .if !"\\$1"PAGE" .sp \\$1
.if \\nq=1 .sp 0.5i
.FC \\$2
..
.de EF
.in -0.5i
.ll +0.5i
.ps \\n(TP
.vs \\n(TV
.ft \\n(TF
'if \\nr==0 'sp 30u
'AL
.KE
..
.de NF
.nr x \\nk+1
.ie !'\\$1'X' Fig.~\\*(CN-\\nx\\$1
.el Figure \\*(CN-\\nx\\$2
..
.de PF
.ie !'\\$1'X' Fig.~\\*(CN-\\nk\\$1
.el Figure \\*(CN-\\nk\\$2
..
.\"-------------------- MULTIPLE BLANK PAGES -------------------
.de MP
.if \\$1 \{\
.KF
.KP
.KE
.MP \\$1-1
.if \\$1<2 .nr k +1 1
\}
..
.\"-------------------- TABLE OF CONTENTS ----------------------
.de XT
.if t .ta 0.4i 0.8i 0.9i \\n(LLuR
.if n .ta 0.3i 1.0i 1.1i 5.0iR
.ps 11
.vs 13
.nr a \\$1 0
.nr b 0 1
.nr c 0 1
.sp 0.40i
.ne 0.3i
.B
\\s18\\$1\\s12 \\$2 \\$3\\fR\\s11
.br
.if !'\\$4'' \\fB\\$4\\fR
.R
.sp 0.5v
..
.de XE
.nr b +1 1
.nr c 0 1
.HS
\\na.\\nb \\$1 \\$2
..
.de XS
.nr c +1 1
\\na.\\nb.\\nc \\$1 \\$2
..
.\"------------------- INDEX -----------------------------------
.de IL
.nr PS \\n(PZ-2
.nr VS 12.01p
.LP
.nf
.na
.sp 2v
.ne 2
\fB\s+4\\$1\\s0\fR
.sp 1v
..
.\"------------------- NEW .B MACRO ----------------------------
.rm B
.de B
.nr PQ \\n(.f
.ft 3
.if !"\\$1"" \&\\$1\\f\\n(PQ\\$2
..
.\"--------------------- FIXES NEEDED TO -MS -------------------
.\" Remove .if n .ul 1000 from .NH
.\" Remove .if n .ul 1000 from .SH
.\" Fix to allow letters as chapter "numbers"
.\"
.\" Here is the b3mac file
.nr Cs 10
.fp 5 H
.ds fm \(fm
.ds em \(em
.de F
\\fI\\$1\\fR\\$2
..
.de CC
.HS
~~~~~\\s\\n(Cs\\f5\\$1\\fP\\s0
.HS
.LP
..
.de Cx
~~~~~\\s\\n(Cs\\f5\\$1\\fP\\s0\\$2
..
.de Cb
.in +0.25i
\\s\\n(Cs
.HS
\\f5
..
.de Ce
.HS
\\fR
.nr PS \\n(PZ
.nr VS \\n(VZ
.LP
.in -0.25i
..
.de SY
\\$3\s-2\\$1\s+2\\$2
..
.de SM
\\$3\s-1\\$1\s+1\\$2
..
.de FN
\&\\fI\\$1\\fR\\$2
..
.de DI
\&\\fI\\$1\\fR\\$2
..
.de FI
\&\\fI\\$1\\fR\\$2
..
.de LN
.nr x \\$1+\\$2
\\$4line
.L4 \\nx \\$3
..
.de LS
.nr x \\$1+\\$2
.nr y \\$1+\\$3
.nr z \\nx+1
\\$5lines
.L4 \\nx
.ie \\ny=\\nz and
.el to
.L4 \\ny \\$4
..
.ds SQ \(fm\h'-0.05c'\(fm
.de L4
.ie \\$1<10 000\\$1\\$2
.el .ie \\$1<100 00\\$1\\$2
.el .ie \\$1<1000 0\\$1\\$2
.el \\$1\\$2
..
.de KW
\f5\\$1\\$2\fR
..
.ds M0 MINIX
.ds M1 \\s-1MINIX\\s+1
.ds M2 \\s-2MINIX\\s+2
.ds M9 \\s-1MINIX\\s+1
.ds m0 minix
.de MX
\s-2MINIX\s+2\\$1
..
.de Ux
\s-2UNIX\s+2\\$1
..
.tr _\(ru
.de UX
\s-2UNIX\s+2\\$1
..
.ds Mx \\s-1MINIX\\s0
.ds Mp \\s-1MINIX-PC\\s0
.ds Ms \\s-1MINIX-ST\\s0
.de CW
\f5
..
.de Bu
.HS
.IP "\0\(bu" 4
..
.de CD
.ne 2
.if t .ta 0.9i 1.15i 2.75i 3.25i 3.75i
.if n .ta 11m 15m 40m
.nr x 0 0
.nr y 0 0
.nr z 0 0
.if n #\\$1
.if n .br
\\fBCommand:\& \\$1\\fR
.br
..
.de SX
.if \\nx<=0 \\fBSyntax:\& \\$1
.if \\nx>0 \& \\fB\\$1
.nr x 1 1
.br
..
.de FL
.if \\ny<=0 \\fBFlags:\& \\fB\\$1 \\fR\\$2
.if \\ny>0 \& \\fB\\$1 \\fR\\$2
.nr y 1 1
.br
..
.de EX
.br
.nf
.if \\nz<=0 \\fB\&Examples: \\fR\\$1 \\fR# \\$2
.if \\nz>0 \& \\fR\\$1 \\fR# \\$2
.nr z 1 1
.br
..
.de EY
.br
.nf
.if \\nz<=0 \\fB\&Example: \\fR\\$1 \\fR# \\$2
.if \\nz>0 \& \\fR\\$1 \\fR# \\$2
.nr z 1 1
.br
..