home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 15 / 15.iso / s / s053 / 25.ddi / root.2 / usr / ucblib / doctools / tmac / boston < prev    next >
Encoding:
Text File  |  1990-12-20  |  26.1 KB  |  1,486 lines

  1. '\"#ident    "@(#)//usr/ucblib/doctools/tmac/boston.sl 1.1 4.0 12/08/90 37713 AT&T-USL"
  2. '\"        PROPRIETARY NOTICE (Combined)
  3. '\"
  4. '\"This source code is unpublished proprietary information
  5. '\"constituting, or derived under license from AT&T's UNIX(r) System V.
  6. '\"In addition, portions of such source code were derived from Berkeley
  7. '\"4.3 BSD under license from the Regents of the University of
  8. '\"California.
  9. '\"
  10. '\"
  11. '\"
  12. '\"        Copyright Notice 
  13. '\"
  14. '\"Notice of copyright on this source code product does not indicate 
  15. '\"publication.
  16. '\"
  17. '\"    (c) 1986,1987,1988,1989  Sun Microsystems, Inc
  18. '\"    (c) 1983,1984,1985,1986,1987,1988,1989  AT&T.
  19. '\"              All rights reserved.
  20. .\" @(#)boston 1.4 86/04/28 SMI; Sun's macro package for Boston
  21. .ds // /usr/ucblib/doctools/tmac/
  22. .ds AD l
  23. .    \" IZ - initialize (before text begins)
  24. .de IZ
  25. .nr FM 0.586i
  26. .nr YY -\\n(FMu
  27. .nr XX 0 1
  28. .nr IP 0
  29. .nr PI 4n
  30. .nr QI 5n
  31. .nr FI 2n
  32. .nr I0 \\n(PIu        \" indent for .IP
  33. .nr PL 3        \" page layout 3=FULL
  34. .na
  35. .nr GU 0    \" global gutter
  36. .nr GL 7.25i        \" global line length
  37. .nr PS 10
  38. .nr VS 12
  39. .nr LL 4.5i
  40. .nr LT \\n(LLu
  41. .ll \\n(LLu
  42. .lt \\n(LTu
  43. .ps \\n(PSp
  44. .vs \\n(VSp
  45. .pl 9.5i
  46. .if n .nr PD 1v
  47. .if t .nr PD .25v
  48. .if n .nr DD 1v
  49. .if t .nr DD .5v
  50. .nr dP 3        \" delta point size for .LS
  51. .nr dV 3        \" delta vertical spacing for .LS
  52. .nr cF 1
  53. .nr hS 0        \" header style: 0=no line, 1=line
  54. .nr ML 3v
  55. .nr IR 0        \" indent level counter
  56. .nr TB 0
  57. .nr SJ \\n(.j        \" adjust mode
  58. .po 1.5i
  59. .nr PO \\n(.ou
  60. .ds CH - \\\\n(PN -
  61. .wh 0 PN            \" new page trap
  62. .wh -\\n(FMu FO            \" footer trap
  63. .ch FO 16i            \" footnote trap
  64. .wh -\\n(FMu FX
  65. .ch FO -\\n(FMu
  66. .wh -(\\n(FMu/2u-9p)-.25i BT    \" bottom title trap
  67. .br
  68. .ev 1            \"  Footnotes processed in environment 1
  69. .nr FL 4.5i
  70. .ll \\n(FLu
  71. .in 0
  72. .ps 9p
  73. .vs 10p
  74. .ev
  75. .nr YE 1
  76. .di
  77. .ce 0
  78. .nr KI 0
  79. .hy 14
  80. .fi
  81. ..
  82. .    \" RT - reset (at new paragraph)
  83. .de RT
  84. .if !\\n(IK .if !\\n(IF .if !\\n(IX .if !\\n(BE .di
  85. .ce 0
  86. .ul 0
  87. .if \\n(QP \{\
  88. .    ll +\\n(QIu
  89. .    in -\\n(QIu
  90. .    nr QP -1
  91. .\}
  92. .if \\n(NX<=1 .ll \\n(LLu
  93. .if !\\n(IF \{\
  94. .    ps \\n(PS
  95. .    if \\n(VS>=40 .vs \\n(VSu
  96. .    if \\n(VS<=39 .vs \\n(VSp
  97. .\}
  98. .if !\\n(IP .nr I0 \\n(PIu
  99. .if \\n(IP \{\
  100. .    in -\\n(I\\n(IRu
  101. .    nr IP -1
  102. .\}
  103. .ft 1
  104. .TA
  105. .fi
  106. .hy 14
  107. .ad \\*(AD
  108. ..
  109. .    \" TA - set default tabs
  110. .de TA
  111. .if n .ta 8n 16n 24n 32n 40n 48n 56n 64n 72n 80n
  112. .if t .ta 5n 10n 15n 20n 25n 30n 35n 40n 45n 50n 55n 60n 65n 70n 75n
  113. ..
  114. .    \" DN - document name
  115. .de DN
  116. .ds Dn \\$1
  117. .EH ''''
  118. .OH ''''
  119. .nr EH 0
  120. .nr OH 0
  121. ..
  122. .    \" PD - paragraph depth
  123. .de PD
  124. .if t .nr PD .25v
  125. .if n .nr PD 1v
  126. .if !\\$1 .nr PD \\$1v
  127. ..
  128. .    \" PP - regular paragraph
  129. .de PP
  130. .RT
  131. .nr # 0 1
  132. .sp \\n(PDu
  133. .ne 1.1
  134. .ti +\\n(PIu
  135. ..
  136. .    \" LP - left paragraph
  137. .de LP
  138. .RT
  139. .nr # 0 1
  140. .sp \\n(PDu
  141. .ne 1.1
  142. .ti \\n(.iu
  143. ..
  144. .    \" IP - indented paragraph
  145. .de IP
  146. .RT
  147. .sp \\n(PDu
  148. .ne 1.1
  149. .if !\\n(IP .nr IP +1
  150. .if \\n(.$-1 .nr I\\n(IR \\$2n
  151. .in +\\n(I\\n(IRu
  152. .ta \\n(I\\n(IRu
  153. .if \\n(.$ \{\
  154. .ds HT \&\\$1\ \ 
  155. .ti -\\n(I\\n(IRu
  156. \\*(HT\t\c
  157. .if \w\\*(HTu>(\\n(I\\n(IRu) .br
  158. .\}
  159. ..
  160. .    \" XP - exdented paragraph
  161. .de XP
  162. .RT
  163. .sp \\n(PDu
  164. .ne 1.1
  165. .if !\\n(IP .nr IP +1
  166. .in +\\n(I\\n(IRu
  167. .ti -\\n(I\\n(IRu
  168. ..
  169. .    \" QP - quote paragraph
  170. .de QP
  171. .ti \\n(.iu
  172. .RT
  173. .sp \\n(PDu
  174. .ne 1.1
  175. .nr QP 1
  176. .in +\\n(QIu
  177. .ll -\\n(QIu
  178. .ti \\n(.iu
  179. ..
  180. .    \" BP - bullet paragraph
  181. .de BP
  182. .IP \\*(SQ 4
  183. ..
  184. .    \" NP - numbered paragraph
  185. .de NP
  186. .IP \\n+#.
  187. ..
  188. .    \" CB - Chapter Title Block
  189. .    \"    $1 = title to be placed on the heading block
  190. .    \"    $2 = chapter number if this is a numbered object
  191. .de CB
  192. .rs
  193. .sp |1.75i-\\n(.vu
  194. .if !\\nH .GB \\n(.ou \\n(.ou+\\n(.lu 1.75i 1.75i+0.09735i 0.7
  195. \s36\l'\\n(.lu'\s0
  196. .if !\\$1 \{\
  197. .    sp |2.0i
  198. .    ps 18
  199. .    vs 20
  200. .    ft HB
  201. \&\\$1
  202. .    br
  203. .    ps
  204. .    vs
  205. .    ft
  206. . \}
  207. .if !\\$2 \{\
  208. .    sp |3.25i-\\n(.vu-4p
  209. .    ta \\n(.luR
  210. .    ft HB
  211. .    ps 28
  212.     \\$2
  213. .    br
  214. .    ft
  215. .    ps
  216. . \}
  217. .sp |3.25i-\\n(.vu
  218. \l'\\n(.lu'
  219. .br
  220. .if \\$2 .SL 8.0i-\\n(.vu  4.0i  32  0.99
  221. .sp |3.5i
  222. ..
  223. .    \" UH - unnumbered heading
  224. .    \"    $1=C: As Chapter Heading; TOC Entry
  225. .    \"    $1=M: As Chapter Heading; no TOC entry
  226. .    \"    $1=H: As level 2 Heading; no TOC entry
  227. .    \"    $1=S: As level 3 Heading; no TOC entry
  228. .    \"    $1=CONTENTS: Setup for Table of Contents
  229. .    \"    $1=INDEX: Setup for Index
  230. .    \"    $1=TABLES: Setup for List of Tables
  231. .    \"    $1=FIGURES: Setup for List of Figures
  232. .de UH
  233. .RT
  234. .if '\\$1'C' .nr nS 1
  235. .if '\\$1'M' .nr nS 1
  236. .if '\\$1'H' .nr nS 2
  237. .if '\\$1'S' .nr nS 3
  238. .if \\$1>0 .nr nS \\$1
  239. .        \" Major Chapter style Heading
  240. .if \\n(nS=1 \{\
  241. .    nr OH 0
  242. .    nr EH 0
  243. .    nr cF 1
  244. .    bp
  245. .    nr cF 0
  246. .    nr OH 1
  247. .    nr EH 1
  248. .    if e \{\
  249. .        nr OH 0
  250. .        nr EH 0
  251. .        nr cF 1
  252. .        bp
  253. .        nr cF 0
  254. .        nr OH 1
  255. .        nr EH 1 \}
  256. .    if !\\nH .CB "\\$2"
  257. .    ad \\*(AD
  258. .    EH \fH\\\\\\\\n(PN\fP\ \ \ \ \ \ \ \ \\$2 \(em \fIContinued\fP
  259. .    OH \\$2 \(em \fIContinued\fP\ \ \ \ \ \ \ \ \fH\\\\\\\\n(PN\fP
  260. .    nr cF 0
  261. .    nr cP 0
  262. .    ns
  263. .\}
  264. .if \\n(nS>1 \{\
  265. .    if \\n(nS=2 .ft HB
  266. .    if \\n(nS=3 .ft HB
  267. .    if \\n(nS=2 .ps 11
  268. .    if \\n(nS=3 .ps 11
  269. .    ne 0.375i-1v+0.25v+2v
  270. .    sp 0.375i-1v
  271. .    in 0
  272. .    fi
  273. .    nh
  274. \&\\$2
  275. .    hy 14
  276. .    ft
  277. .    ps
  278. .\}
  279. .nr PN \\n%
  280. .if \\nF .if '\\$1'C' .if \\n(IK \!.tm .CE U 1 "\\$2" \\\\n(PN \\n(H1
  281. .if \\nF .if '\\$1'C' .if !\\n(IK  .tm .CE U 1 "\\$2" \\n(PN \\n(H1
  282. .nr fM 0
  283. .if '\\$1'CONTENTS' .nr fM 1
  284. .if '\\$1'TABLES' .nr fM 1
  285. .if '\\$1'FIGURES' .nr fM 1
  286. .if '\\$1'INDEX' .nr fM 1
  287. .if \\n(fM \{\
  288. .    LP
  289. .    if !\\nP .pn 1
  290. .    if !\\nP .nr % 1
  291. .    if \\nP .pn \\nP
  292. .    if \\nP .nr % \\nP
  293. .    if \\nP .nr PN \\nP
  294. .    nr P 0
  295. .    nr cF 0
  296. .    ps 10
  297. .    nr PS 10
  298. .    vs 13
  299. .    nr VS 13
  300. .    af PN i
  301. .    if '\\$1'CONTENTS' .ds hD Contents
  302. .    if '\\$1'TABLES'   .ds hD Tables
  303. .    if '\\$1'FIGURES'  .ds hD Figures
  304. .    if '\\$1'INDEX'    .ds hD Index
  305. .    rs
  306. .    nr OH 0
  307. .    nr EH 0
  308. .    nr cF 1
  309. .    bp
  310. .    nr cF 0
  311. .    nr OH 1
  312. .    nr EH 1
  313. .    if !\\nH .CB \\*(hD
  314. .    EH \\*(hD \(em \fIContinued\fP
  315. .    OH \\*(hD \(em \fIContinued\fP
  316. .    if !\\nH .EF ''\- \fH\\\\\\\\n(PN\fP \-''
  317. .    if !\\nH .OF ''\- \fH\\\\\\\\n(PN\fP \-''
  318. .    if  \\nH .EF ''''
  319. .    if  \\nH .OF ''''
  320. .    if  \\nH .EH ''''
  321. .    if  \\nH .OH ''''
  322. .    nr cF 0
  323. .    nr cP 0
  324. .    ne 1i+2v
  325. .    ad l
  326. .    nf
  327. .    ps 10
  328. .    nr PS 10
  329. .    vs 13
  330. .    nr VS 13
  331. .    if '\\$1'INDEX' \{\
  332. .        ps 8
  333. .        nr PS 8
  334. .        vs 10
  335. .        nr VS 10
  336. .        af PN 1
  337. .        2C
  338. .    \}
  339. .\}
  340. ..
  341. .    \" SE - special entry in contents file
  342. .de SE
  343. .if \\nF .if \\n(IK \!.tm .SE \\$1\t\\$2\t\\$3\t\\$4\t\\$5\t\\$6\t\\$7\t\\$8\t\\$9
  344. .if \\nF .if !\\n(IK .tm .SE \\$1\t\\$2\t\\$3\t\\$4\t\\$5\t\\$6\t\\$7\t\\$8\t\\$9
  345. ..
  346. .    \" TL - title
  347. .de TL
  348. .rs
  349. .sp 2.5i-4p-5.5p
  350. .ad r
  351. .ps 22
  352. .vs 26
  353. ..
  354. .    \" H - header: $1=level, $2=text; [1-5]=levels, C=chapter, A=appendix
  355. .de H
  356. .RT
  357. .nh
  358. .nr NS \\$1
  359. .if '\\$1'C' .nr NS 1
  360. .if '\\$1'A' .nr NS 1
  361. .if '\\$1'A' .if !\\n(aP \{\
  362. .    nr aP 1
  363. .    nr H1 0
  364. .    af H1 A
  365. .\} 
  366. .        \" chapter/appendix
  367. .if \\n(NS=1 \{\
  368. .    if \\nC .nr H1 \\nC-1
  369. .    if (\\n(nl<=1.75i) .if o .pn +2        \" skip numbers of half-title pages
  370. .    if e .pn +3
  371. .    if (\\n(nl>1.75i) .if o .pn +4
  372. .    if !\\n(hS .if !\\nP .pn 3    \" start of document proper
  373. .    if !\\n(hS .if \\nP .pn +2
  374. .    nr P 0
  375. .    nr cF 1
  376. .    rs
  377. .    bp
  378. .    nr PN \\n%
  379. .    af PN 1
  380. .    nr cF 0
  381. .    nr C 0
  382. .    nr T1 0            \" reset table counter
  383. .    nr F1 0            \" reset figure counter
  384. .\}
  385. .nr H\\n(NS +1
  386. .if !\\n(hS \{\
  387. .    nr hS 1
  388. .    if \\n(hS .if \\nF .tm .SE PAGINATE NEW-PAGE \\n%
  389. .    nr EF 1
  390. .    nr OF 1
  391. .    af PN 1
  392. .\}
  393. .if !\\n(NS-4 .nr H5 0
  394. .if !\\n(NS-3 .nr H4 0
  395. .if !\\n(NS-2 .nr H3 0
  396. .if !\\n(NS-1 .nr H2 0
  397. .        \" chapter/appendix
  398. .if \\n(NS=1 \{\
  399. .    ie \\n(aP .ds hS Appendix \\n(H1 \(em \\$2
  400. .    el .ds hS Chapter \\n(H1 \(em \\$2
  401. .    OH \fH\\\\\\\\n(PN\fP
  402. .    EH \fH\\\\\\\\n(PN\fP\ \ \ \ \ \ \ \ \\*(hS
  403. .    rs
  404. .    CB "\\$2" \\n(H1
  405. .    ad l
  406. .    ns
  407. .    nr cP 1
  408. .\}
  409. .        \" level [2345]
  410. .if \\n(NS>1 \{\
  411. .    ne 0.375i-1v+0.25v+2v
  412. .    sp 0.375i-1v
  413. .    in 0
  414. .    fi
  415. .    nh
  416. .    hy 14
  417. .    if \\n(NS=2 \{\
  418. .        ft HB
  419. .        ps 11
  420. \&\\$2
  421. .        ps
  422. .        in
  423. .        R
  424. .        OH \&\\$2\ \ \ \ \ \ \ \ \fH\\\\\\\\n(PN\fP \}
  425. .    if \\n(NS=3 \{\
  426. .        ft HB
  427. .        ps 11
  428. \&\\$2
  429. .        ps
  430. .        in
  431. .        R \}
  432. .    if \\n(NS>=4 \{\
  433. .        ft HB
  434. .        ps 11
  435. \&\\$2
  436. .        ps
  437. .         \}
  438. .\}
  439. .hy 14
  440. .if \\nF .if '\\$1'C' .if !\\n(IK  .tm .CE C 1 "\\$2" \\n(PN \\n(H1
  441. .if \\nF .if '\\$1'C' .if \\n(IK \!.tm .CE C 1 "\\$2" \\\\n(PN \\n(H1
  442. .if \\nF .if '\\$1'A' .if !\\n(IK  .tm .CE A 1 "\\$2" \\n(PN \\n(H1
  443. .if \\nF .if '\\$1'A' .if \\n(IK \!.tm .CE A 1 "\\$2" \\\\n(PN \\n(H1
  444. .if \\nF .if '\\$1'1' .if !\\n(IK  .tm .CE C 1 "\\$2" \\n(PN \\n(H1
  445. .if \\nF .if '\\$1'1' .if \\n(IK \!.tm .CE C 1 "\\$2" \\\\n(PN \\n(H1
  446. .if \\nF .if \\n(NS>1 .if !\\n(IK  .tm .CE N \\n(NS "\\$2" \\n(PN \\n(H1 \\n(H2 \\n(H3
  447. .if \\nF .if \\n(NS>1 .if \\n(IK \!.tm .CE N \\n(NS "\\$2" \\\\n(PN \\n(H1 \\n(H2 \\n(H3
  448. ..
  449. .    \" TF - print TN or FN
  450. .de TF
  451. .nr TF \\n(.f
  452. .nr TX \\n(.s
  453. .ta \w'\\*(tS'u+4n
  454. .nf
  455. \&\s10\fB\\*(tS\fP\t\fI\\$1\f\\n(TF\\s\\n(TX
  456. .fi
  457. ..
  458. .    \" TN - table name
  459. .de TN
  460. .nr T1 +1
  461. .ll \\n(LLu
  462. .ds tH \\$1
  463. .if \\n(H1 .ds tS Table \\n(H1-\\n(T1
  464. .if !\\n(H1 .ds tS Table \\n(T1
  465. .if \\n(aP .ds tS Table \\n(H1-\\n(T1
  466. .ne 0.375i-1v+0.25v+2v
  467. .sp 0.375i-1v
  468. .TF "\\*(tH"
  469. .sp \\n(PDu
  470. .if \\nF .if \\n(IK \!.tm .CE T 1 "\\$1" \\\\n(PN \\n(H1 \\n(T1
  471. .if \\nF .if !\\n(IK .tm .CE T 1 "\\$1" \\n(PN \\n(H1 \\n(T1
  472. ..
  473. .    \" TC - table continued (multi-page tables)
  474. .de TC
  475. .if !\\n(tC \{\
  476. .    as tH \(em Continued
  477. .    nr tC 1
  478. .\}
  479. .TF "\\*(tH"
  480. .sp \\n(PDu
  481. ..
  482. .    \" FN - figure name
  483. .de FN
  484. .if  \\$12 \{\
  485. .    if !\\$1 \{\
  486. .        nr F1 +1
  487. .        ll \\n(LLu
  488. .        if \\n(H1 .ds t1 Figure \\n(H1-\\n(F1
  489. .        if !\\n(H1 .ds t1 Figure \\n(F1
  490. .        if \\n(aP .ds t1 Figure \\n(H1-\\n(F1
  491. .        if \\nF .if \\n(IK \!.tm .CE F 1 "\\$1" \\\\n(PN \\n(H1 \\n(F1
  492. .        if \\nF .if !\\n(IK .tm .CE F 1 "\\$1" \\n(PN \\n(H1 \\n(F1
  493. .     \}
  494. .    nr F1 +1
  495. .    if \\n(H1 .ds t2 Figure \\n(H1-\\n(F1
  496. .    if !\\n(H1 .ds t2 Figure \\n(F1
  497. .    if \\n(aP .ds t2 Figure \\n(H1-\\n(F1
  498. .    if \\nF .if \\n(IK \!.tm .CE F 1 "\\$1" \\\\n(PN \\n(H1 \\n(F1
  499. .    if \\nF .if !\\n(IK .tm .CE F 1 "\\$1" \\n(PN \\n(H1 \\n(F1
  500. .    ne 0.375i-1v+0.25v+2v
  501. .    sp \\n(PDu
  502. .    nr TF \\n(.f
  503. .    nr TX \\n(.s
  504. .    ta \w'\\*(t1'u+4n \\n(LLu/2u+0.0625i +\w'\\*(t2'u+4n
  505. .    nf
  506. \&\s10\fB\\*(t1\fP\t\fI\\$1\fP\t\fB\\*(t2\fP\t\fI\\$2\f\\n(TF\\s\\n(TX
  507. .    fi
  508. .    sp 0.375i-1v
  509. .    rm t1 t2
  510. . \}
  511. .if !\\$12 \{\
  512. .    nr F1 +1
  513. .    ll \\n(LLu
  514. .    if \\n(H1 .ds tS Figure \\n(H1-\\n(F1
  515. .    if !\\n(H1 .ds tS Figure \\n(F1
  516. .    if \\n(aP .ds tS Figure \\n(H1-\\n(F1
  517. .    ne 0.375i-1v+0.25v+2v
  518. .    sp \\n(PDu
  519. .    nr TF \\n(.f
  520. .    nr TX \\n(.s
  521. .    ta \w'\\*(tS'u+4n
  522. .    nf
  523. \&\s10\fB\\*(tS\fP\t\fI\\$1\f\\n(TF\\s\\n(TX
  524. .    fi
  525. .    sp 0.375i-1v
  526. .    if \\nF .if \\n(IK \!.tm .CE F 1 "\\$1" \\\\n(PN \\n(H1 \\n(F1
  527. .    if \\nF .if !\\n(IK .tm .CE F 1 "\\$1" \\n(PN \\n(H1 \\n(F1
  528. . \}
  529. ..
  530. .    \" NS - note start
  531. .de NS
  532. .br
  533. .nr mN 0
  534. .if \\$1NOTE .nr mN 1
  535. .if \\$1CAUTION .nr mN 1
  536. .if \\n(mN \{\
  537. .    IP
  538. .    IP
  539. .    if \\$1NOTE .ds mS \fB\s-2NOTE\s+2\fP
  540. .    if \\$1CAUTION .ds mS \fB\s-2CAUTION\s+2\fP
  541. .  \".    ta \w\\$1u+5n
  542. .    IP "\\*(mS" 10
  543. .    ll -\\n(QIu
  544. .    if \\$1NOTE .ft I
  545. .    if \\$1CAUTION .ft B
  546. .\}
  547. .if \\n(mN=0 \{\
  548. .    QP
  549. .    QP
  550. .    QP
  551. .    ps 9
  552. .    vs 10
  553. .    ft H
  554. .                \" one line notes
  555. .    if !\\$1 \{\
  556. \&\\$1
  557. .    NE \}
  558. .\}
  559. ..
  560. .    \" NE - note end
  561. .de NE
  562. .if \\n(mN=1 .RT
  563. .LP
  564. .LP
  565. ..
  566. .    \" CE - table of contents entry
  567. .de CE
  568. .rn CE @T
  569. .so \*(//boston.toc
  570. .CE "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
  571. .rm @T
  572. ..
  573. .    \" BS - box start
  574. .de BS
  575. .LP
  576. .LP
  577. .nr GS 0
  578. .if \\n(.$ \{\
  579. .    if  \\$1GRAY .nr GS 1
  580. .    if !\\$1GRAY .in +\\$1n
  581. .    if \\n(.$-1 .in +\\$2n \}
  582. .mk U#
  583. ..
  584. .    \" BE - box end
  585. .de BE
  586. .if !\\n(GS \{\
  587. .nr DI \\n(.i
  588. .mk D#
  589. \h'1n'\c
  590. \D'l (\\n(LLu-2n) 0'\c
  591. \D'a 0 -1n 1n 0'\c
  592. \D'l 0 -(\\n(D#u-\\n(U#u)'\c
  593. \D'a -1n 0 0 -1n'\c
  594. \D'l -(\\n(LLu-2n) 0'\c
  595. \D'a 0 1n -1n 0'\c
  596. \D'l 0 (\\n(D#u-\\n(U#u)'\c
  597. \D'a 1n 0 0 1n' \}
  598. .rr U# D#
  599. .rs
  600. .if \\n(GS .sp \\n(DDu
  601. .sp \\n(PDu
  602. .nr GS 0
  603. ..
  604. .    \" GS - draw gray scale box
  605. .de GS
  606. .mk D#
  607. .nr r 1n
  608. .nr x1 \\n(.ou+1n
  609. .nr y1 \\n(D#u+\\n(.vu
  610. \!x P \\n(x1 \\n(y1 moveto
  611. .nr x1 \\n(LLu+\\n(.ou
  612. .nr y1 \\n(D#u+\\n(.vu
  613. .nr x2 \\n(LLu+\\n(.ou
  614. .nr y2 \\n(D#u+\\n(.vu-1n
  615. \!x P \\n(x1 \\n(y1 \\n(x2 \\n(y2 \\nr arcto
  616. \!x P 4 {pop} repeat
  617. .nr x1 \\n(LLu+\\n(.ou
  618. .nr y1 \\n(U#u-\\n(VSp+3n
  619. .nr x2 \\n(LLu+\\n(.ou-1n
  620. .nr y2 \\n(U#u-\\n(VSp+3n
  621. \!x P \\n(x1 \\n(y1 \\n(x2 \\n(y2 \\nr arcto
  622. \!x P 4 {pop} repeat
  623. .nr x1 \\n(.ou
  624. .nr y1 \\n(U#u-\\n(VSp+3n
  625. .nr x2 \\n(.ou
  626. .nr y2 \\n(U#u-\\n(VSp+4n
  627. \!x P \\n(x1 \\n(y1 \\n(x2 \\n(y2 \\nr arcto
  628. \!x P 4 {pop} repeat
  629. .nr x1 \\n(.ou
  630. .nr y1 \\n(D#u+\\n(.vu
  631. .nr x2 \\n(.ou+1n
  632. .nr y2 \\n(D#u+\\n(.vu
  633. \!x P \\n(x1 \\n(y1 \\n(x2 \\n(y2 \\nr arcto
  634. \!x P 4 {pop} repeat
  635. \!x P gsave 0.99 setgray fill grestore stroke
  636. ..
  637. .    \" LS - listing start
  638. .de LS
  639. .ie \\$1no .ID \\$2 1
  640. .el .DS I \\$1 1
  641. .nr PQ \\n(.f
  642. .ft L
  643. .ps -\\n(dP
  644. .vs -\\n(dV
  645. .nr @ \\w'x'u*4
  646. .if \\n(.$=2 .if !\\$1no .nr @ \\w'x'u*\\$2
  647. .if \\n(.$=3 .nr @ \\w'x'u*\\$3
  648. .ta \\n@u +\\n@u +\\n@u +\\n@u +\\n@u +\\n@u +\\n@u +\\n@u +\\n@u +\\n@u
  649. ..
  650. .    \" LE - listing end
  651. .de LE
  652. .ft \\n(PQ
  653. .ps \\n(PS
  654. .if \\n(VS>=40 .vs \\n(VSu
  655. .if \\n(VS<=39 .vs \\n(VSp
  656. .DE
  657. ..
  658. .    \" DS - display with keep (L=left I=indent C=center B=block)
  659. .de DS
  660. .KS
  661. .nf
  662. .\\$1D \\$2 \\$1
  663. .ft 1
  664. .ps \\n(PS
  665. .if \\n(VS>=40 .vs \\n(VSu
  666. .if \\n(VS<=39 .vs \\n(VSp
  667. ..
  668. .de D
  669. .ID \\$1
  670. ..
  671. .    \" ID - indented display with no keep
  672. .de ID
  673. .XD
  674. .if t .in +.5i
  675. .if n .in +8
  676. .if \\n(.$ .if !\\$1I .if !\\$1 \{\
  677. .    in \\n(OIu
  678. .    in +\\$1n
  679. .\}
  680. ..
  681. .    \" LD - left display with no keep
  682. .de LD
  683. .XD
  684. ..
  685. .    \" CD - centered display with no keep
  686. .de CD
  687. .XD
  688. .ce 999
  689. ..
  690. .    \" XD - real display macro
  691. .de XD
  692. .nf
  693. .nr OI \\n(.i
  694. .sp \\n(DDu
  695. ..
  696. .    \" DE - end display of any kind
  697. .de DE
  698. .ce 0
  699. .if \\n(BD .DF
  700. .nr BD 0
  701. .in \\n(OIu
  702. .KE
  703. .if !\\n(U# .sp \\n(DDu
  704. .fi
  705. ..
  706. .    \" BD - block display: center entire block
  707. .de BD
  708. .XD
  709. .nr BD 1
  710. .nf
  711. .in \\n(OIu
  712. .di DD
  713. ..
  714. .    \" DF - finish block display
  715. .de DF
  716. .di
  717. .if \\n(dl>\\n(BD .nr BD \\n(dl
  718. .if \\n(BD<\\n(.l .in (\\n(.lu-\\n(BDu)/2u
  719. .nr EI \\n(.l-\\n(.i
  720. .ta \\n(EIuR
  721. .DD
  722. .in \\n(OIu
  723. ..
  724. .    \" KS - begin regular keep
  725. .de KS
  726. .nr KN \\n(.u
  727. .if !\\n(IK .if !\\n(IF .KQ
  728. .nr IK +1
  729. ..
  730. .    \" KQ - real keep processor
  731. .de KQ
  732. .br
  733. .nr KI \\n(.i
  734. .ev 2
  735. .TA
  736. .br
  737. .in \\n(KIu
  738. .ps \\n(PS
  739. .if \\n(VS>=40 .vs \\n(VSu
  740. .if \\n(VS<=39 .vs \\n(VSp
  741. .ll \\n(LLu
  742. .lt \\n(LTu
  743. .if \\n(NX>1 .ll \\n(CWu
  744. .if \\n(NX>1 .lt \\n(CWu
  745. .di KK
  746. .nr TB 0
  747. ..
  748. .    \" KF - begin floating keep
  749. .de KF
  750. .nr KN \\n(.u
  751. .if !\\n(IK .FQ
  752. .nr IK +1
  753. ..
  754. .    \" FQ - real floating keep processor
  755. .de FQ
  756. .nr KI \\n(.i
  757. .ev 2
  758. .TA
  759. .br
  760. .in \\n(KIu
  761. .ps \\n(PS
  762. .if \\n(VS>=40 .vs \\n(VSu
  763. .if \\n(VS<=39 .vs \\n(VSp
  764. .ll \\n(LLu
  765. .lt \\n(LTu
  766. .if \\n(NX>1 .ll \\n(CWu
  767. .if \\n(NX>1 .lt \\n(CWu
  768. .di KK
  769. .nr TB 1
  770. ..
  771. .    \" KE - end keep
  772. .de KE
  773. .if \\n(IK .if !\\n(IK-1 .if !\\n(IF .RQ
  774. .if \\n(IK .nr IK -1
  775. ..
  776. .    \" RQ - real keep release
  777. .de RQ
  778. .br
  779. .di
  780. .nr NF 0
  781. .nr DN \\n(dn
  782. .if \\n(dn-\\n(.t .nr NF 1
  783. .if \\n(TC .nr NF 1
  784. .if \\n(NF .if !\\n(TB .sp 200
  785. .if !\\n(NF .if \\n(TB .nr TB 0
  786. .nf
  787. .rs
  788. .nr TC 5
  789. .in 0
  790. .ls 1
  791. .if !\\n(TB \{\
  792. .    ev
  793. .    br
  794. .    if \\n(GS .sp \\n(DNu
  795. .    if \\n(GS .GS
  796. .    if \\n(GS .sp |\\n(U#u
  797. .    ev 2
  798. .    KK
  799. .\}
  800. .ls
  801. .ce 0
  802. .if !\\n(TB .rm KK
  803. .if \\n(TB .da KJ
  804. .if \\n(TB \!.KD \\n(dn
  805. .if \\n(TB .KK
  806. .if \\n(TB .di
  807. .nr TC \\n(TB
  808. .if \\n(KN .fi
  809. .in
  810. .ev
  811. ..
  812. .    \" PS - picture start: $1=height, $2=width
  813. .de PS
  814. .br
  815. .in \\n(.iu+((\\n(.lu-\\n(.iu-\\$2u)/2u)
  816. .ne \\$1u
  817. .nr PF \\n(.f
  818. .nr PX \\n(.s
  819. ..
  820. .    \" PE - picture end
  821. .de PE
  822. .ps \\n(PX
  823. .ft \\n(PF
  824. .in
  825. .sp \\n(DDu
  826. ..
  827. .    \" SD - inject screen dumps (raw postscript)
  828. .de SD
  829. .mk P#
  830. \\!x P save initmatrix
  831. .if  \\$3 .nr x \\n(.ou
  832. .if !\\$3 .nr x \\n(.ou+\\$3
  833. .if  \\$4 .nr y 11i-\\n(P#u
  834. .if !\\$4 .nr y 11i-\\$4
  835. \\!x P \\nx 72 mul 576 div  \\ny 72 mul 576 div  translate
  836. .if \\$5 \\!x P 0 rotate
  837. .if !\\$5 \\!x P \\$5 rotate
  838. .if  \\$2 \\!x P 2 2 scale
  839. .if !\\$2 \\!x P \\$2 \\$2 scale
  840. \\!x I \\$1
  841. \\!x P restore
  842. .rr P# x y
  843. ..
  844. .    \" KD - keep redivert
  845. .de KD
  846. .nr KM 0
  847. .if \\n(.zKJ .nr KM 1
  848. .if \\n(KM \!.KD \\$1
  849. .if !\\n(KM .if \\n(.t<\\$1 .di KJ
  850. ..
  851. .    \" EM - end macro (process leftover keep)
  852. .de EM
  853. .rr iL
  854. .rm iC
  855. .br
  856. .if \\n(TB \{\
  857. \&\c
  858. '    bp
  859. .    PN
  860. .\}
  861. .if \\nF \{\
  862. .    nr P \\n%
  863. .    if o .nr P +2
  864. .    if e .nr P +1
  865. .    tm \\nP
  866. .\}
  867. ..
  868. .de XK
  869. .nr TD 1
  870. .nf
  871. .ls 1
  872. .in 0
  873. .rn KJ KL
  874. .KL
  875. .rm KL
  876. .if \\n(.zKJ .di
  877. .nr TB 0
  878. .if \\n(.zKJ .nr TB 1
  879. .br
  880. .in
  881. .ls
  882. .fi
  883. .nr TD 0
  884. ..
  885. .    \" CM - Cut Marks
  886. .de CM
  887. .if o .nr oo 0u-0.125i
  888. .if e .nr oo  0.125i
  889. .if \\nH .GB \\n(.ou+\\n(oou-0.5i \\n(.ou+\\n(oou+\\n(LLu+0.5i 1i \\n(.pu 0.99
  890. .nr x1 \\n(.ou+\\n(oou-0.375i-1p
  891. .nr y1 1.0i+1u
  892. .nr x2 \\n(.ou+\\n(oou-0.5i-1p
  893. .nr y2 1.0i+1u
  894. .nr x3 \\n(.ou+\\n(oou-0.5i-1p
  895. .nr y3 1.0i+1u+0.125i
  896. \!x P \\n(x1 \\n(y1 moveto  \\n(x2 \\n(y2 lineto  \\n(x3 \\n(y3 lineto  stroke
  897. .nr x1 \\n(.ou+\\n(oou+\\n(LLu+0.375i+1p
  898. .nr y1 1.0i+1u
  899. .nr x2 \\n(.ou+\\n(oou+\\n(LLu+0.5i+1p
  900. .nr y2 1.0i+1u
  901. .nr x3 \\n(.ou+\\n(oou+\\n(LLu+0.5i+1p
  902. .nr y3 1.0i+1u+0.125i
  903. \!x P \\n(x1 \\n(y1 moveto  \\n(x2 \\n(y2 lineto  \\n(x3 \\n(y3 lineto  stroke
  904. .nr x1 \\n(.ou+\\n(oou-0.375i-1p
  905. .nr y1 \\n(.pu+1p
  906. .nr x2 \\n(.ou+\\n(oou-0.5i-1p
  907. .nr y2 \\n(.pu+1p
  908. .nr x3 \\n(.ou+\\n(oou-0.5i-1p
  909. .nr y3 \\n(.pu+1p-0.125i
  910. \!x P \\n(x1 \\n(y1 moveto  \\n(x2 \\n(y2 lineto  \\n(x3 \\n(y3 lineto  stroke
  911. .nr x1 \\n(.ou+\\n(oou+\\n(LLu+0.375i+1p
  912. .nr y1 \\n(.pu+1p
  913. .nr x2 \\n(.ou+\\n(oou+\\n(LLu+0.5i+1p
  914. .nr y2 \\n(.pu+1p
  915. .nr x3 \\n(.ou+\\n(oou+\\n(LLu+0.5i+1p
  916. .nr y3 \\n(.pu+1p-0.125i
  917. \!x P \\n(x1 \\n(y1 moveto  \\n(x2 \\n(y2 lineto  \\n(x3 \\n(y3 lineto  stroke
  918. .rr x1 y1 x2 y2 x3 y3 oo
  919. ..
  920. .    \" PN - new page
  921. .de PN
  922. .if o .po 1.75i
  923. .if o .nr PO 1.75i
  924. .if e .po 1.5i
  925. .if e .nr PO 1.5i
  926. .if !\\n(LT .nr LT \\n(LLu
  927. .if \\n(FM+\\n(HM>=\\n(.p \{\
  928. .    tm HM + FM longer than page
  929. .    ab
  930. .\}
  931. .pc %
  932. .nr PN \\n%
  933. .nr PT \\n%
  934. .if \\n(hS .if \\nF .tm .SE PAGINATE NEW-PAGE \\n%
  935. .nr HM 0.6226i
  936. .CM
  937. .ev 3
  938. .    \" if a page with header & line
  939. .if !\\n(cF \{\
  940. .    sp |1.5i-\\n(.vu
  941. .    lt \\n(LTu
  942. .    tl \s6\D'l \\n(LTu 0'\s0
  943. .\}
  944. .ft 1
  945. .ps \\n(PS
  946. .PT
  947. .if !\\n(cF .sp |1.75i
  948. .if \\n(cF .if \\nH .sp |1.75i
  949. .ev
  950. .nr XX 0 1
  951. .nr YY 0-\\n(FMu
  952. .ch FO 16i
  953. .ch FX 17i
  954. .ch FO -\\n(FMu
  955. .ch FX \\n(.pu-\\n(FMu
  956. .if \\n(MF .FV
  957. .nr MF 0
  958. .mk
  959. . \".os
  960. .ev 1
  961. .if !\\n(TD .if \\n(TC<5 .XK
  962. .nr TC 0
  963. .ev
  964. .nr TQ \\n(.i
  965. .nr TK \\n(.u
  966. .if \\n(IT \{\
  967. .    in 0
  968. .    nf
  969. .    TC
  970. .    TT
  971. .    in \\n(TQu
  972. .    if \\n(TK .fi
  973. .\}
  974. .ns
  975. .mk #T
  976. .if \\n(U# \{\
  977. .    mk U#
  978. .    in \\n(DIu
  979. .\}
  980. ..
  981. .    \" PT - page titles
  982. .de PT
  983. .lt \\n(LTu
  984. .if !\\n(cF .if \\n(OH .if o \{\
  985. .    sp |1.5i-(3*\\n(.vu/2)
  986. .    tl \\*(O1
  987. .\}
  988. .if !\\n(cF .if \\n(EH .if e \{\
  989. .    sp |1.5i-(3*\\n(.vu/2)
  990. .    tl \\*(E2
  991. .\}
  992. .lt \\n(.lu
  993. .in
  994. ..
  995. .    \" OH - odd page header
  996. .de OH
  997. .nr OH 1
  998. .if !\\n(.$ .nr OH 0
  999. .ds O1 \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  1000. ..
  1001. .    \" EH - even page header
  1002. .de EH
  1003. .nr EH 1
  1004. .if !\\n(.$ .nr EH 0
  1005. .ds E2 \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  1006. ..
  1007. .    \" FO - footer
  1008. .de FO
  1009. .rn FO FZ
  1010. .if \\n(U# .if !\\n(IK \{\
  1011. .    BE
  1012. .    mk U#
  1013. .\}
  1014. .if \\n(IT .nr T. 1
  1015. .if \\n(IT .if !\\n(FC .T# 1
  1016. .if \\n(IT .br
  1017. .nr FC +1
  1018. .if \\n(NX<2 .nr WF 0
  1019. .nr dn 0
  1020. .if \\n(FC<=1 .if \\n(XX .XF
  1021. .rn FZ FO
  1022. .nr MF 0
  1023. .if \\n(dn .nr MF 1
  1024. .if !\\n(WF .nr YY 0-\\n(FMu
  1025. .if !\\n(WF .ch FO \\n(YYu
  1026. .if !\\n(dn .nr WF 0
  1027. .if \\n(FC<=1 .if !\\n(XX \{\
  1028. .    if \\n(NX>1 .RC
  1029. .    if \\n(NX<2 'bp
  1030. .\}
  1031. .nr FC -1
  1032. .if \\n(ML .ne \\n(MLu
  1033. ..
  1034. .    \" BT - bottom title
  1035. .de BT
  1036. .nr PF \\n(.f
  1037. .nr PX \\n(.s
  1038. .lt \\n(LTu
  1039. .if \\n(cP \{\
  1040. .    tl \s10\u\(su\d\0\fB\s22s\^u\^n\h'-\w's\^u\^n'u'\s10\v'.7m'\fH\s6microsystems\s9\fR\v'-.7m'\fH\\n(PN\fP
  1041. .    nr cP 0
  1042. .\}
  1043. .if !\\n(hS \{\
  1044. .    ft 1
  1045. .    ps 9
  1046. .    nr PN \\n%
  1047. .    if !\\n(EF .if !\\n(OF .tl \\*(LF\\*(CF\\*(RF
  1048. .    if \\n(OF .if o .tl \\*(O3
  1049. .    if \\n(EF .if e .tl \\*(E4
  1050. .\}
  1051. .ft \\n(PF
  1052. .ps \\n(PX
  1053. ..
  1054. .    \" OF - odd page footer
  1055. .de OF
  1056. .nr OF 1
  1057. .if !\\n(.$ .nr OF 0
  1058. .ds O3 \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  1059. ..
  1060. .    \" EF - even page footer
  1061. .de EF
  1062. .nr EF 1
  1063. .if !\\n(.$ .nr EF 0
  1064. .ds E4 \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  1065. ..
  1066. .    \" 2C - double column
  1067. .de 2C
  1068. .MC
  1069. ..
  1070. .    \" 1C - single column
  1071. .de 1C
  1072. .MC \\n(LLu
  1073. .hy 14
  1074. ..
  1075. .    \" MC - multiple columns: $1=column width
  1076. .de MC
  1077. .nr L1 \\n(LL*7/15
  1078. .if \\n(.$ .nr L1 \\$1n
  1079. .nr NQ \\n(LL/\\n(L1
  1080. .if \\n(NQ<1 .nr NQ 1
  1081. .if \\n(NQ>2 .if (\\n(LL%\\n(L1)=0 .nr NQ -1
  1082. .if !\\n(NX .nr NX 1
  1083. .if !\\n(NX=\\n(NQ \{\
  1084. .    RT
  1085. .    if \\n(NX>1 .bp
  1086. .    mk
  1087. .    nr NC 1
  1088. .    po \\n(POu
  1089. .\}
  1090. .if \\n(NQ>1 .hy 12
  1091. .nr NX \\n(NQ
  1092. .nr CW \\n(L1
  1093. .ll \\n(CWu
  1094. .nr FL \\n(CWu*11u/12u
  1095. .if \\n(NX>1 .nr GW (\\n(LL-(\\n(NX*\\n(CW))/(\\n(NX-1)
  1096. .nr RO \\n(CW+\\n(GW
  1097. .ns
  1098. ..
  1099. .de RC
  1100. .if \\n(NC>=\\n(NX .C2
  1101. .if \\n(NC<\\n(NX .C1
  1102. .nr NC \\n(ND
  1103. .    \" For the indexer: handle continued primary index terms
  1104. .    \" that span across columns or pages.
  1105. .if \\n(iL>0 .if !\\*(iC \{\
  1106. .    if \\n(.i>0 .ti -\\n(.i
  1107. \\*(iC
  1108. .    ti -4
  1109. .\}
  1110. ..
  1111. .de C1
  1112. .rt
  1113. .po +\\n(ROu
  1114. .nr ND \\n(NC+1
  1115. .nr XX 0 1
  1116. .if \\n(MF .FV
  1117. .ch FX \\n(.pu-\\n(FMu
  1118. .ev 1
  1119. .if \\n(TB .XK
  1120. .nr TC 0
  1121. .ev
  1122. .nr TQ \\n(.i
  1123. .if \\n(IT .in 0
  1124. .if \\n(IT .TT
  1125. .if \\n(IT .in \\n(TQu
  1126. .mk #T
  1127. .ns
  1128. ..
  1129. .de C2
  1130. .po \\n(POu
  1131. 'bp
  1132. .nr ND 1
  1133. ..
  1134. .    \" RS - right shift
  1135. .de RS
  1136. .nr IS \\n(IP
  1137. .RT
  1138. .nr IP \\n(IS
  1139. .if \\n(IP .in +\\n(I\\n(IRu
  1140. .nr IR +1
  1141. .nr I\\n(IR \\n(PIu
  1142. .in +\\n(I\\n(IRu
  1143. ..
  1144. .    \" RE - retreat left
  1145. .de RE
  1146. .nr IS \\n(IP
  1147. .RT
  1148. .nr IP \\n(IS
  1149. .if \\n(IR .nr IR -1
  1150. .if \\n(IP<=0 .in -\\n(I\\n(IRu
  1151. ..
  1152. .    \" I - italic font
  1153. .de I
  1154. .nr PQ \\n(.f
  1155. .if t .ft 2
  1156. .ie \\$1 .if n .ul 999
  1157. .el .if n .ul 1
  1158. .if t .if !\\$1 \&\f\\n(PQ\\$3\fI\\$1\|\f\\n(PQ\\$2
  1159. .if n .if \\n(.$=1 \&\\$1
  1160. .if n .if \\n(.$>2 \&\\$3\c
  1161. .if n .if \\n(.$>1 \&\\$1\c
  1162. .if n .if \\n(.$>1 \&\\$2
  1163. ..
  1164. .    \" B - bold font
  1165. .de B
  1166. .nr PQ \\n(.f
  1167. .if t .ft 3
  1168. .ie \\$1 .if n .ul 999
  1169. .el .if n .ul 1
  1170. .if t .if !\\$1 \&\f\\n(PQ\\$3\fB\\$1\f\\n(PQ\\$2
  1171. .if n .if \\n(.$=1 \&\\$1
  1172. .if n .if \\n(.$>2 \&\\$3\c
  1173. .if n .if \\n(.$>1 \&\\$1\c
  1174. .if n .if \\n(.$>1 \&\\$2
  1175. ..
  1176. .    \" R - Roman font
  1177. .de R
  1178. .if n .ul 0
  1179. .ft 1
  1180. ..
  1181. .    \" L - listing font
  1182. .de L
  1183. .nr PQ \\n(.f
  1184. .ie \\$1 .if n .ul 999
  1185. .el .if n .ul 1
  1186. .if t .if !\\$1 \&\f\\n(PQ\\$3\fL\\$1\f\\n(PQ\\$2
  1187. .if n .if \\n(.$=1 \&\\$1
  1188. .if n .if \\n(.$>2 \&\\$3\c
  1189. .if n .if \\n(.$>1 \&\\$1\c
  1190. .if n .if \\n(.$>1 \&\\$2
  1191. ..
  1192. .    \" LB - bold listing font
  1193. .de LB
  1194. .nr PQ \\n(.f
  1195. .ie \\$1 .if n .ul 999
  1196. .el .if n .ul 1
  1197. .if t .if !\\$1 \&\f\\n(PQ\\$3\f(LB\\$1\f\\n(PQ\\$2
  1198. .if n .if \\n(.$=1 \&\\$1
  1199. .if n .if \\n(.$>2 \&\\$3\c
  1200. .if n .if \\n(.$>1 \&\\$1\c
  1201. .if n .if \\n(.$>1 \&\\$2
  1202. ..
  1203. .    \" LX - listing font with index
  1204. .de LX
  1205. .L "\\$1" "\\$2" "\\$3"
  1206. .IX "\\$1" "" "\fL\\$1\fP"
  1207. ..
  1208. .    \" UL - underline in troff
  1209. .de UL
  1210. .if t \\$1\l'|0\(ul'\\$2
  1211. .if n .I \\$1 \\$2
  1212. ..
  1213. .    \" SM - smaller
  1214. .de SM
  1215. .if !\\$1 \&\\$3\&\s-1\\$1\s+1\&\\$2
  1216. .if \\$1 .ps -1
  1217. ..
  1218. .    \" LG - larger
  1219. .de LG
  1220. .if !\\$1 \&\\$3\&\s+1\\$1\s-1\&\\$2
  1221. .if \\$1 .ps +1
  1222. ..
  1223. .    \" NL - normal
  1224. .de NL
  1225. .ps \\n(PS
  1226. ..
  1227. .    \" combinations
  1228. .de RI
  1229. \&\fR\\$1\fI\\$2\^\fR\\$3\fI\\$4\^\fR\\$5\fI\\$6\^\fR\\$7\fI\\$8\^\fR\\$9
  1230. ..
  1231. .de RB
  1232. \&\fR\\$1\fB\\$2\fR\\$3\fB\\$4\fR\\$5\fB\\$6\fR\\$7\fB\\$8\fR\\$9
  1233. ..
  1234. .de IR
  1235. \&\fI\\$1\^\fR\\$2\fI\\$3\^\fR\\$4\fI\\$5\^\fR\\$6\fI\\$7\^\fR\\$8\fI\\$9\^\fR
  1236. ..
  1237. .de IB
  1238. \&\fI\\$1\^\fB\\$2\fI\\$3\^\fB\\$4\fI\\$5\^\fB\\$6\fI\\$7\^\fB\\$8\fI\\$9\^\fR
  1239. ..
  1240. .de BR
  1241. \&\fB\\$1\fR\\$2\fB\\$3\fR\\$4\fB\\$5\fR\\$6\fB\\$7\fR\\$8\fB\\$9\fR
  1242. ..
  1243. .de BI
  1244. \&\fB\\$1\fI\\$2\^\fB\\$3\fI\\$4\^\fB\\$5\fI\\$6\^\fB\\$7\fI\\$8\^\fB\\$9\fR
  1245. ..
  1246. .    \" \** - numbered footnote
  1247. .ds * \\*([.\\n+*\\*(.]
  1248. .    \" FS - footnote start
  1249. .de FS
  1250. 'ce 0
  1251. .nr pL \\n(PL
  1252. .di
  1253. .ev 1
  1254. .ll \\n(FLu
  1255. .in 0
  1256. .da FF
  1257. .br
  1258. .if \\n(IF .tm Nested footnote
  1259. .nr IF 1
  1260. .if !\\n+(XX-1 \{\
  1261. .    if n _________________________
  1262. .    if t \l'3i'
  1263. .br \}
  1264. .if !\\n(MF .if !\\n(.$ .if \\n* .FP \\n*
  1265. .if !\\n(MF .if \\n(.$ .FP \\$1 no
  1266. ..
  1267. .    \" FE - footnote end
  1268. .de FE
  1269. .br
  1270. .nr IF 0
  1271. .di
  1272. .ev
  1273. .if !\\n(XX-1 .nr dn +\\n(.v
  1274. .nr YY -\\n(dn
  1275. .if !\\n(NX .nr WF 1
  1276. .if \\n(dl>\\n(CW .nr WF 1
  1277. .if (\\n(nl+\\n(.v)<=(\\n(.p+\\n(YY) .ch FO \\n(YYu
  1278. .if (\\n(nl+\\n(.v)>(\\n(.p+\\n(YY) \{\
  1279. .    if \\n(nl>(\\n(HM+1.5v) .ch FO \\n(nlu+\\n(.vu
  1280. .    if \\n(nl+\\n(FM+1v>\\n(.p .ch FX \\n(.pu-\\n(FMu+2v
  1281. .    if \\n(nl<=(\\n(HM+1.5v) .ch FO \\n(HMu+(4u*\\n(.vu)
  1282. .\}
  1283. ..
  1284. .    \" FP - footnote paragraph
  1285. .de FP
  1286. .sp \\n(PDu/2u
  1287. .if \\n(FF<2 .ti \\n(FIu
  1288. .if \\n(FF=3 \{\
  1289. .    in \\n(FIu*2u
  1290. .    ta \\n(FIu*2u
  1291. .    ti 0
  1292. .\}
  1293. .if !\\n(FF \{\
  1294. .    ie "\\$2"no" \\$1\0\c
  1295. .    el \\*([.\\$1\\*(.]\0\c
  1296. .\}
  1297. .if \\n(FF .if \\n(FF<3 \{\
  1298. .    ie "\\$2"no" \\$1\0\c
  1299. .    el \\$1.\0\c
  1300. .\}
  1301. .if \\n(FF=3 \{\
  1302. .    ie "\\$2"no" \\$1\t\c
  1303. .    el \\$1.\t\c
  1304. .\}
  1305. ..
  1306. .    \" FV - get leftover footnote from previous page
  1307. .de FV
  1308. .FS
  1309. .nf
  1310. .ls 1
  1311. .FY
  1312. .ls
  1313. .fi
  1314. .FE
  1315. ..
  1316. .    \" FX - divert leftover footnote for next page
  1317. .de FX
  1318. .if \\n(XX \{\
  1319. '    in 0
  1320. .    di FY
  1321. .    ns
  1322. '    in
  1323. .\}
  1324. ..
  1325. .    \" XF - actually print footnote
  1326. .de XF
  1327. .if \\n(nlu+1v>(\\n(.pu-\\n(FMu) .ch FX \\n(nlu+1.9v
  1328. .ev 1
  1329. .nf
  1330. .ls 1
  1331. .in 0
  1332. .if \\n(pL=1 .in 2.25i
  1333. .FF
  1334. .rm FF
  1335. .nr XX 0 1
  1336. .br
  1337. .ls
  1338. .di
  1339. .fi
  1340. .ev
  1341. ..
  1342. .    \" TS - source file for tbl
  1343. .de TS
  1344. .rn TS @T
  1345. .so \*(//exp.tbl
  1346. .TS \\$1 \\$2
  1347. .rm @T
  1348. ..
  1349. .    \" EQ - source file for eqn
  1350. .de EQ
  1351. .rn EQ @T
  1352. .so \*(//exp.eqn
  1353. .EQ \\$1 \\$2
  1354. .rm @T
  1355. ..
  1356. .    \" ]- - source file for refer
  1357. .de ]-
  1358. .rn ]- @T
  1359. .so \*(//exp.ref
  1360. .]-
  1361. .rm @T
  1362. ..
  1363. .    \" [< - for refer -s or -e
  1364. .de ]<
  1365. .rn ]< @T
  1366. .so \*(//exp.ref
  1367. .]<
  1368. .rm @T
  1369. ..
  1370. .if \n(.V>19 .ds [. \f1[
  1371. .if \n(.V>19 .ds .] ]\fP
  1372. .if \n(.V<20 .ds [. \f1\s-2\v'-.4m'
  1373. .if \n(.V<20 .ds .] \v'.4m'\s+2\fP
  1374. .ds <. .
  1375. .ds <, ,
  1376. .if n .ds Q \&"
  1377. .if n .ds U \&"
  1378. .if n .ds - \%--
  1379. .if t .ds Q ``
  1380. .if t .ds U ''
  1381. .if t .ds - \(em
  1382. .ds SQ \s6\v'-1p'\(sq\v'1p'\s0
  1383. .    \" old bad accent marks
  1384. .ds ' \h'\w'e'u/5'\z\'\h'-\w'e'u/5'
  1385. .ds ` \h'\w'e'u/5'\z\`\h'-\w'e'u/5'
  1386. .ds ^ \h'\w'o'u/10'\z^\h'-\w'e'u/10'
  1387. .ds , \h'\w'c'u/5'\z,\h'-\w'e'u/5'
  1388. .ds : \h'\w'u'u/5'\z"\h'-\w'e'u/5'
  1389. .ds ~ \h'\w'n'u/10'\z~\h'-\w'e'u/10'
  1390. .ds C \h'\w'c'u/5'\v'-.6m'\s-4\zv\s+4\v'.6m'\h'-\w'c'u/5'
  1391. .    \" AM - new bad accent marks
  1392. .de AM
  1393. .so \*(//exp.acc
  1394. ..
  1395. .    \" BX - word in box
  1396. .de BX
  1397. .if t \(br\|\\$1\|\(br\l'|0\(rn'\l'|0\(ul'
  1398. .if n \(br\\kA\|\\$1\|\\kB\(br\v'-1v'\h'|\\nBu'\l'|\\nAu'\v'1v'\l'|\\nAu'
  1399. ..
  1400. .    \" B1 - source file for boxed text
  1401. .de B1
  1402. .rn B1 @T
  1403. .so \*(//exp.tbl
  1404. .B1 \\$1
  1405. .rm @T
  1406. ..
  1407. .    \" LZ - Draw a goody with a lozenge around it
  1408. .de LZ
  1409. .nr WW \w\|\s-1\\$1\s+1\|u
  1410. .if !\\$3 \&\\$3\^\c
  1411. \h'.5n'\|\s-1\\$1\s+1\|\h'|0+.5n'\v'0.1v'\c
  1412. \D'l \\n(WWu 0'\c
  1413. \D'a 0 -15u 15u 0'\c
  1414. \D'l 0 -(\\n(.vu-.6v)'\c
  1415. \D'a -15u 0 0 -15u'\c
  1416. \D'l -\\n(WWu 0'\c
  1417. \D'a 0 15u -15u 0'\c
  1418. \D'l 0 \\n(.vu-.6v)'\c
  1419. \D'a 15u 0 0 15u'\v'-0.1v'
  1420. .if \\$2 \h'\\n(WWu+.5n'
  1421. .if !\\$2 \h'\\n(WWu'\^\&\\$2
  1422. .rr WW
  1423. ..
  1424. .    \" IX - Make an Index Entry
  1425. .    \" $1 and $2: primary and secondary collating terms
  1426. .    \" $3 and $4: primary and secondary printing terms
  1427. .    \" $5 and $6: PAGE specifications or PRINT field
  1428. .de IX
  1429. .if \\nF .if !\\n(IK .tm .IE\tENTRY\t\\$1\t\\$2\t\\$3\t\\$4\t\\$5\t\\$6\t\\n(PN
  1430. .if \\nF .if \\n(IK \!.tm .IE\tENTRY\t\\$1\t\\$2\t\\$3\t\\$4\t\\$5\t\\$6\t\\\\n(PN
  1431. ..
  1432. .    \" UX - UNIX macro
  1433. .de UX
  1434. .ie \\n(UX \s-1UNIX\s0\\$1
  1435. .el \{\
  1436. \s-1UNIX\s0\\$1\(dg
  1437. .FS \(dg
  1438. \s-1UNIX\s0 is a trademark of AT&T Bell Laboratories.
  1439. .FE
  1440. .nr UX 1
  1441. .\}
  1442. ..
  1443. .    \"  GB - Lay down gray rectangular areas
  1444. .de GB
  1445. .nr s \\$1
  1446. .nr e \\$2
  1447. .nr t \\$3
  1448. .nr d \\$4
  1449. \!x P gsave
  1450. \!x P \\ns  \\nt moveto
  1451. \!x P \\ne  \\nt lineto
  1452. \!x P \\ne  \\nd lineto
  1453. \!x P \\ns  \\nd lineto
  1454. \!x P \\ns  \\nt lineto
  1455. \!x P \\$5 setgray fill grestore
  1456. .rr e s t d
  1457. ..
  1458. .    \"  SL - Lay down Sun logo in gray
  1459. .de SL
  1460. .sp |\\$1
  1461. .ps \\$3
  1462. \!x P gsave \\$4 setgray
  1463. \\h'\\$2'\\fH\\(su\\fP
  1464. .br
  1465. \!x P grestore
  1466. .ps
  1467. ..
  1468. .co
  1469. .if \n(mo-0 .ds MO January
  1470. .if \n(mo-1 .ds MO February
  1471. .if \n(mo-2 .ds MO March
  1472. .if \n(mo-3 .ds MO April
  1473. .if \n(mo-4 .ds MO May
  1474. .if \n(mo-5 .ds MO June
  1475. .if \n(mo-6 .ds MO July
  1476. .if \n(mo-7 .ds MO August
  1477. .if \n(mo-8 .ds MO September
  1478. .if \n(mo-9 .ds MO October
  1479. .if \n(mo-10 .ds MO November
  1480. .if \n(mo-11 .ds MO December
  1481. .ds DY \n(dy \*(MO 19\n(yr
  1482. .nr * 0 1
  1483. .IZ
  1484. .em EM
  1485. .rm IZ //
  1486.