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

  1. '\"#ident    "@(#)//usr/ucblib/doctools/tmac/BIG.sl 1.1 4.0 12/08/90 25526 AT&T-USL"
  2. '\"#ident    "@(#)ucbtroff:troff.d/tmac.d/BIG    1.1"
  3. '\"        PROPRIETARY NOTICE (Combined)
  4. '\"
  5. '\"This source code is unpublished proprietary information
  6. '\"constituting, or derived under license from AT&T's UNIX(r) System V.
  7. '\"In addition, portions of such source code were derived from Berkeley
  8. '\"4.3 BSD under license from the Regents of the University of
  9. '\"California.
  10. '\"
  11. '\"
  12. '\"
  13. '\"        Copyright Notice 
  14. '\"
  15. '\"Notice of copyright on this source code product does not indicate 
  16. '\"publication.
  17. '\"
  18. '\"    (c) 1986,1987,1988,1989  Sun Microsystems, Inc
  19. '\"    (c) 1983,1984,1985,1986,1987,1988,1989  AT&T.
  20. '\"              All rights reserved.
  21. .ds // /usr/ucblib/doctools/tmac/
  22. .    \" IZ - initialize (before text begins)
  23. .de IZ
  24. .nr HM 1i
  25. .nr M1 \\n(HMu/2
  26. .nr FM 1i
  27. .nr M4 \\n(FMu/2
  28. .nr YY -\\n(FMu
  29. .nr XX 0 1
  30. .nr IP 0
  31. .nr PI 5n
  32. .nr QI 5n
  33. .nr FI 2n
  34. .nr I0 \\n(PIu
  35. .if n .nr PD 1v
  36. .if t .nr PD .3v
  37. .if n .nr DD 1v
  38. .if t .nr DD .5v
  39. .nr PS 20
  40. .nr VS 22
  41. .ps \\n(PS
  42. .vs \\n(VSp
  43. .nr ML 3v
  44. .nr IR 0
  45. .nr TB 0
  46. .nr SJ \\n(.j
  47. .nr PO \\n(.o
  48. .nr LL 6i
  49. .ll \\n(LLu
  50. .lt 6i
  51. .ev 1
  52. .nr FL 5.5i
  53. .ll \\n(FLu
  54. .ps 8
  55. .vs 10p
  56. .ev
  57. .ds CH - \\\\n(PN -
  58. .if n .ds CF \\*(DY
  59. .wh 0 NP
  60. .wh -\\n(FMu FO
  61. .ch FO 16i
  62. .wh -\\n(FMu FX
  63. .ch FO -\\n(FMu
  64. .wh -\\n(M4u BT
  65. ..
  66. .    \" RT - reset (at new paragraph)
  67. .de RT
  68. .if !\\n(1T .BG
  69. .if !\\n(IK .if !\\n(IF .if !\\n(IX .if !\\n(BE .di
  70. .if \\n(TM .ls 2
  71. .ce 0
  72. .ul 0
  73. .if \\n(QP \{\
  74. .    ll +\\n(QIu
  75. .    in -\\n(QIu
  76. .    nr QP -1
  77. .\}
  78. .if \\n(NX<=1 .if !\\n(AJ .ll \\n(LLu
  79. .if !\\n(IF \{\
  80. .    ps \\n(PS
  81. .    if \\n(VS>=40 .vs \\n(VSu
  82. .    if \\n(VS<=39 .vs \\n(VSp
  83. .\}
  84. .if !\\n(IP .nr I0 \\n(PIu
  85. .if \\n(IP \{\
  86. .    in -\\n(I\\n(IRu
  87. .    nr IP -1
  88. .\}
  89. .ft 1
  90. .TA
  91. .fi
  92. ..
  93. .    \" TA - set default tabs
  94. .de TA
  95. .if n .ta 8n 16n 24n 32n 40n 48n 56n 64n 72n 80n
  96. .if t .ta 5n 10n 15n 20n 25n 30n 35n 40n 45n 50n 55n 60n 65n 70n 75n
  97. ..
  98. .    \" BG - begin (at first paragraph)
  99. .de BG
  100. .ll \\n(LLu
  101. .nr M1 \\n(HMu/2
  102. .nr M4 \\n(FMu/2
  103. .ch BT -\\n(M4u
  104. .br
  105. .nr YE 1
  106. .di
  107. .ce 0
  108. .nr KI 0
  109. .hy 14
  110. .nr 1T 1
  111. .S\\n(ST
  112. .rm S0 S1 S2 SY TX AX WT RP
  113. .\"redefs
  114. .de TL
  115. .ft 3
  116. .ce 99
  117. .sp
  118. .LG
  119. \\..
  120. .de AU
  121. .ft 2
  122. .if n .ul 0
  123. .ce 99
  124. .sp
  125. .NL
  126. \\..
  127. .de AI
  128. .ft 1
  129. .if n .ul 0
  130. .ce 99
  131. .if n .sp
  132. .if t .sp .5
  133. .NL
  134. \\..
  135. .RA
  136. .rm RA
  137. .rn FJ FS
  138. .rn FK FE
  139. .nf
  140. .ev 1
  141. .ps \\n(PS-2
  142. .vs \\n(.s+2p
  143. .ev
  144. .if !\\n(KG .nr FP 0
  145. .nr KG 0
  146. .if \\n(FP \{\
  147. .    FS
  148. .    FG
  149. .    FE
  150. .\}
  151. .br
  152. .if \\n(TV .if n .sp 2
  153. .if \\n(TV .if t .sp 1
  154. .fi
  155. ..
  156. .    \" RA - redefine abstract
  157. .de RA
  158. .de AB
  159. .br
  160. .if !\\\\n(1T .BG
  161. .ce
  162. .sp
  163. .if !\\\\n(.$ ABSTRACT
  164. .if \\\\n(.$ .if !\\\\$1no \\\\$1
  165. .if !\\\\n(.$ .sp
  166. .if \\\\n(.$ .if !\\\\$1no .sp
  167. .sp
  168. .nr AJ 1
  169. .in +\\\\n(.lu/12u
  170. .ll -\\\\n(.lu/12u
  171. .RT
  172. .if \\\\n(TM .ls 1
  173. \\..
  174. .de AE
  175. .nr AJ 0
  176. .br
  177. .in 0
  178. .ll \\\\n(LLu
  179. .if \\\\n(VS>=40 .vs \\\\n(VSu
  180. .if \\\\n(VS<=39 .vs \\\\n(VSp
  181. .if \\\\n(TM .ls 2
  182. \\..
  183. ..
  184. .    \" RP - released paper format
  185. .de RP
  186. .nr ST 2
  187. .if \\$1no .nr ST 1
  188. .pn 0
  189. .br
  190. ..
  191. .    \" TL - source file for cover sheet
  192. .de TL
  193. .rn TL @T
  194. .so \*(//ms.cov
  195. .TL
  196. .rm @T
  197. ..
  198. .    \" PP - regular paragraph
  199. .de PP
  200. .RT
  201. .sp .5
  202. .if \\n(1T .sp \\n(PDu
  203. .ne 2.1
  204. .ti +\\n(PIu
  205. ..
  206. .    \" LP - left paragraph
  207. .de LP
  208. .RT
  209. .if \\n(1T .sp \\n(PDu
  210. .ne 1.1
  211. .ti \\n(.iu
  212. ..
  213. .    \" IP - indented paragraph
  214. .de IP
  215. .RT
  216. .if \\n(1T .sp \\n(PDu
  217. .ne 1.1
  218. .if !\\n(IP .nr IP +1
  219. .if \\n(.$-1 .nr I\\n(IR \\$2n
  220. .in +\\n(I\\n(IRu
  221. .ta \\n(I\\n(IRu
  222. .if \\n(.$ \{\
  223. .ds HT \&\\$1
  224. .ti -\\n(I\\n(IRu
  225. \\*(HT\t\c
  226. .if \w\\*(HTu>(\\n(I\\n(IRu+1n) .br
  227. .\}
  228. ..
  229. .    \" XP - exdented paragraph
  230. .de XP
  231. .RT
  232. .if \\n(1T .sp \\n(PDu
  233. .ne 1.1
  234. .if !\\n(IP .nr IP +1
  235. .in +\\n(I\\n(IRu
  236. .ti -\\n(I\\n(IRu
  237. ..
  238. .    \" QP - quote paragraph
  239. .de QP
  240. .ti \\n(.iu
  241. .RT
  242. .if \\n(1T .sp \\n(PDu
  243. .ne 1.1
  244. .nr QP 1
  245. .in +\\n(QIu
  246. .ll -\\n(QIu
  247. .ti \\n(.iu
  248. .if \\n(TM .ls 1
  249. ..
  250. .    \" SH - section header
  251. .de SH
  252. .ti \\n(.iu
  253. .RT
  254. .if \\n(1T .sp
  255. .RT
  256. .ne 3.1
  257. .B
  258. ..
  259. .    \" NH - numbered header
  260. .de NH
  261. .SH
  262. .nr NS \\$1
  263. .if !\\n(.$ .nr NS 1
  264. .if !\\n(NS .nr NS 1
  265. .nr H\\n(NS +1
  266. .if !\\n(NS-4 .nr H5 0
  267. .if !\\n(NS-3 .nr H4 0
  268. .if !\\n(NS-2 .nr H3 0
  269. .if !\\n(NS-1 .nr H2 0
  270. .if !\\$1 .if \\n(.$ .nr H1 1
  271. .if \\$1S \{\
  272. .    nr NS \\n(.$-1
  273. .    nr H1 \\$2 0
  274. .    nr H2 \\$3 0
  275. .    nr H3 \\$4 0
  276. .    nr H4 \\$5 0
  277. .    nr H5 \\$6 0
  278. .\}
  279. .ds SN \\n(H1.
  280. .if \\n(NS-1 .as SN \\n(H2.
  281. .if \\n(NS-2 .as SN \\n(H3.
  282. .if \\n(NS-3 .as SN \\n(H4.
  283. .if \\n(NS-4 .as SN \\n(H5.
  284. \\*(SN
  285. ..
  286. .    \" H - fancy header
  287. .de H
  288. .ie \\$1no .SH
  289. .el .NH \\$1
  290. \\$2
  291. .XS \\\\n(PN \\$1u-1u*\\n(PIu
  292. .if \\$1<2 .sp \\n(PDu
  293. .if !\\$1no \\*(SN\0
  294. \\$2
  295. .XE \\$3
  296. ..
  297. .    \" LS - listing start
  298. .de LS
  299. .ie \\$1no .ID \\$2
  300. .el .DS I \\$1
  301. .nr PQ \\n(.f
  302. .ft L
  303. .ps -\\n(dP
  304. .vs -\\n(dV
  305. .nr @ \\w'x'u*8
  306. .if \\n(.$ .nr @ \\w'x'u*\\$2
  307. .if \\n(.$ .if \\$1no .nr @ \\w'x'u*\\$3
  308. .ta \\n@u +\\n@u +\\n@u +\\n@u +\\n@u +\\n@u +\\n@u +\\n@u +\\n@u +\\n@u +\\n@u 
  309. ..
  310. .    \" LE - listing end
  311. .de LE
  312. .ft \\n(PQ
  313. .ps \\n(PS
  314. .if \\n(VS>=40 .vs \\n(VSu
  315. .if \\n(VS<=39 .vs \\n(VSp
  316. .DE
  317. ..
  318. .    \" DS - display with keep (L=left I=indent C=center B=block)
  319. .de DS
  320. .KS
  321. .nf
  322. .\\$1D \\$2 \\$1
  323. .ft 1
  324. .ps \\n(PS
  325. .if \\n(VS>=40 .vs \\n(VSu
  326. .if \\n(VS<=39 .vs \\n(VSp
  327. ..
  328. .de D
  329. .ID \\$1
  330. ..
  331. .    \" ID - indented display with no keep
  332. .de ID
  333. .XD
  334. .if t .in +.5i
  335. .if n .in +8
  336. .if \\n(.$ .if !\\$1I .if !\\$1 \{\
  337. .    in \\n(OIu
  338. .    in +\\$1n
  339. .\}
  340. ..
  341. .    \" LD - left display with no keep
  342. .de LD
  343. .XD
  344. ..
  345. .    \" CD - centered display with no keep
  346. .de CD
  347. .XD
  348. .ce 999
  349. ..
  350. .    \" XD - real display macro
  351. .de XD
  352. .nf
  353. .nr OI \\n(.i
  354. .sp \\n(DDu
  355. .if \\n(TM .ls 1
  356. ..
  357. .    \" DE - end display of any kind
  358. .de DE
  359. .ce 0
  360. .if \\n(BD .DF
  361. .nr BD 0
  362. .in \\n(OIu
  363. .KE
  364. .if \\n(TM .ls 2
  365. .sp \\n(DDu
  366. .fi
  367. ..
  368. .    \" BD - block display: center entire block
  369. .de BD
  370. .XD
  371. .nr BD 1
  372. .nf
  373. .in \\n(OIu
  374. .di DD
  375. ..
  376. .    \" DF - finish block display
  377. .de DF
  378. .di
  379. .if \\n(dl>\\n(BD .nr BD \\n(dl
  380. .if \\n(BD<\\n(.l .in (\\n(.lu-\\n(BDu)/2u
  381. .nr EI \\n(.l-\\n(.i
  382. .ta \\n(EIuR
  383. .DD
  384. .in \\n(OIu
  385. ..
  386. .    \" KS - begin regular keep
  387. .de KS
  388. .nr KN \\n(.u
  389. .if !\\n(IK .if !\\n(IF .KQ
  390. .nr IK +1
  391. ..
  392. .    \" KQ - real keep processor
  393. .de KQ
  394. .br
  395. .nr KI \\n(.i
  396. .ev 2
  397. .TA
  398. .br
  399. .in \\n(KIu
  400. .ps \\n(PS
  401. .if \\n(VS>=40 .vs \\n(VSu
  402. .if \\n(VS<=39 .vs \\n(VSp
  403. .ll \\n(LLu
  404. .lt \\n(LTu
  405. .if \\n(NX>1 .ll \\n(CWu
  406. .if \\n(NX>1 .lt \\n(CWu
  407. .di KK
  408. .nr TB 0
  409. ..
  410. .    \" KF - begin floating keep
  411. .de KF
  412. .nr KN \\n(.u
  413. .if !\\n(IK .FQ
  414. .nr IK +1
  415. ..
  416. .    \" FQ - real floating keep processor
  417. .de FQ
  418. .nr KI \\n(.i
  419. .ev 2
  420. .TA
  421. .br
  422. .in \\n(KIu
  423. .ps \\n(PS
  424. .if \\n(VS>=40 .vs \\n(VSu
  425. .if \\n(VS<=39 .vs \\n(VSp
  426. .ll \\n(LLu
  427. .lt \\n(LTu
  428. .if \\n(NX>1 .ll \\n(CWu
  429. .if \\n(NX>1 .lt \\n(CWu
  430. .di KK
  431. .nr TB 1
  432. ..
  433. .    \" KE - end keep
  434. .de KE
  435. .if \\n(IK .if !\\n(IK-1 .if !\\n(IF .RQ
  436. .if \\n(IK .nr IK -1
  437. ..
  438. .    \" RQ - real keep release
  439. .de RQ
  440. .br
  441. .di
  442. .nr NF 0
  443. .if \\n(dn-\\n(.t .nr NF 1
  444. .if \\n(TC .nr NF 1
  445. .if \\n(NF .if !\\n(TB .sp 200
  446. .if !\\n(NF .if \\n(TB .nr TB 0
  447. .nf
  448. .rs
  449. .nr TC 5
  450. .in 0
  451. .ls 1
  452. .if !\\n(TB \{\
  453. .    ev
  454. .    br
  455. .    ev 2
  456. .    KK
  457. .\}
  458. .ls
  459. .ce 0
  460. .if !\\n(TB .rm KK
  461. .if \\n(TB .da KJ
  462. .if \\n(TB \!.KD \\n(dn
  463. .if \\n(TB .KK
  464. .if \\n(TB .di
  465. .nr TC \\n(TB
  466. .if \\n(KN .fi
  467. .in
  468. .ev
  469. ..
  470. .    \" KD - keep redivert
  471. .de KD
  472. .nr KM 0
  473. .if \\n(.zKJ .nr KM 1
  474. .if \\n(KM \!.KD \\$1
  475. .if !\\n(KM .if \\n(.t<\\$1 .di KJ
  476. ..
  477. .    \" EM - end macro (process leftover keep)
  478. .de EM
  479. .br
  480. .if !\\n(TB .if t .wh -1p CM
  481. .if \\n(TB \{\
  482. \&\c
  483. '    bp
  484. .    NP
  485. .    ch CM 160
  486. .\}
  487. .if \\n(IF .FE        \" End footnote if still pending
  488. .if !"\\n(.z"" .DI    \" End any left over diversions
  489. ..
  490. .    \" DI is used to properly end all diversions, otherwise a bug in
  491. .    \" [nt]roff may cause an infinite loop if the page footer (or
  492. .    \" macros that it calls) happens to start a new diversion.
  493. .de DI
  494. .di
  495. .if !"\\n(.z"" .DI
  496. ..
  497. .de XK
  498. .nr TD 1
  499. .nf
  500. .ls 1
  501. .in 0
  502. .rn KJ KL
  503. .KL
  504. .rm KL
  505. .if \\n(.zKJ .di
  506. .nr TB 0
  507. .if \\n(.zKJ .nr TB 1
  508. .br
  509. .in
  510. .ls
  511. .fi
  512. .nr TD 0
  513. ..
  514. .    \" NP - new page
  515. .de NP
  516. .if \\n(FM+\\n(HM>=\\n(.p \{\
  517. .    tm HM + FM longer than page
  518. .    ab
  519. .\}
  520. .if !\\n(LT .nr LT \\n(LLu
  521. .if t .CM
  522. .po \\n(POu
  523. .nr PF \\n(.f
  524. .nr PX \\n(.s
  525. .ft 1
  526. .ps \\n(PS
  527. 'sp \\n(M1u
  528. .lt \\n(LTu
  529. .PT
  530. .lt \\n(.lu
  531. .if \\n(HM 'sp |\\n(HMu
  532. .HD    \"undefined
  533. .ps \\n(PX
  534. .ft \\n(PF
  535. .nr XX 0 1
  536. .nr YY 0-\\n(FMu
  537. .ch FO 16i
  538. .ch FX 17i
  539. .ch FO -\\n(FMu
  540. .ch FX \\n(.pu-\\n(FMu
  541. .if \\n(MF .FV
  542. .nr MF 0
  543. .mk
  544. .os
  545. .ev 1
  546. .if !\\n(TD .if \\n(TC<5 .XK
  547. .nr TC 0
  548. .ev
  549. .nr TQ \\n(.i
  550. .nr TK \\n(.u
  551. .if \\n(IT \{\
  552. .    in 0
  553. .    nf
  554. .    TT
  555. .    in \\n(TQu
  556. .    if \\n(TK .fi
  557. .\}
  558. .ns
  559. .mk #T
  560. .if t .if !\\n(.T .if \\n(.o+\\n(LL>7.54i .tm PO + LL wider than 7.54i
  561. ..
  562. .    \" PT - page titles
  563. .de PT
  564. .pc %
  565. .nr PN \\n%
  566. .nr PT \\n%
  567. .if \\n(P1 .nr PT 2
  568. .if \\n(PT=1 .tl 
  569. .if \\n(PT>1 .if !\\n(EH .if !\\n(OH .tl \\*(LH\\*(CH\\*(RH
  570. .if \\n(PT>1 .if \\n(OH .if o .tl \\*(O1
  571. .if \\n(PT>1 .if \\n(EH .if e .tl \\*(E2
  572. ..
  573. .    \" OH - odd page header
  574. .de OH
  575. .nr OH 1
  576. .if !\\n(.$ .nr OH 0
  577. .ds O1 \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  578. ..
  579. .    \" EH - even page header
  580. .de EH
  581. .nr EH 1
  582. .if !\\n(.$ .nr EH 0
  583. .ds E2 \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  584. ..
  585. .    \" P1 - PT on 1st page
  586. .de P1
  587. .nr P1 1
  588. ..
  589. .    \" FO - footer
  590. .de FO
  591. .rn FO FZ
  592. .if \\n(IT .nr T. 1
  593. .if \\n(IT .if !\\n(FC .T# 1
  594. .if \\n(IT .br
  595. .nr FC +1
  596. .if \\n(NX<2 .nr WF 0
  597. .nr dn 0
  598. .if \\n(FC<=1 .if \\n(XX .XF
  599. .rn FZ FO
  600. .nr MF 0
  601. .if \\n(dn .nr MF 1
  602. .if !\\n(WF .nr YY 0-\\n(FMu
  603. .if !\\n(WF .ch FO \\n(YYu
  604. .if !\\n(dn .nr WF 0
  605. .if \\n(FC<=1 .if !\\n(XX \{\
  606. .    if \\n(NX>1 .RC
  607. .    if \\n(NX<2 'bp
  608. .\}
  609. .nr FC -1
  610. .if \\n(ML .ne \\n(MLu
  611. ..
  612. .    \" BT - bottom title
  613. .de BT
  614. .nr PF \\n(.f
  615. .nr PX \\n(.s
  616. .ft 1
  617. .ps \\n(PS
  618. .lt \\n(LTu
  619. .po \\n(POu
  620. .if \\n(TM .if \\n(CT \{\
  621. .    tl ''\\n(PN''
  622. .    nr CT 0
  623. .\}
  624. .if \\n% .if !\\n(EF .if !\\n(OF .tl \\*(LF\\*(CF\\*(RF
  625. .if \\n% .if \\n(OF .if o .tl \\*(O3
  626. .if \\n% .if \\n(EF .if e .tl \\*(E4
  627. .ft \\n(PF
  628. .ps \\n(PX
  629. ..
  630. .    \" OF - odd page footer
  631. .de OF
  632. .nr OF 1
  633. .if !\\n(.$ .nr OF 0
  634. .ds O3 \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  635. ..
  636. .    \" EF - even page footer
  637. .de EF
  638. .nr EF 1
  639. .if !\\n(.$ .nr EF 0
  640. .ds E4 \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  641. ..
  642. .    \" 2C - double column
  643. .de 2C
  644. .MC
  645. ..
  646. .    \" 1C - single column
  647. .de 1C
  648. .MC \\n(LLu
  649. .hy 14
  650. ..
  651. .    \" MC - multiple columns, arg is col width
  652. .de MC
  653. .nr L1 \\n(LL*7/15
  654. .if \\n(.$ .nr L1 \\$1n
  655. .nr NQ \\n(LL/\\n(L1
  656. .if \\n(NQ<1 .nr NQ 1
  657. .if \\n(NQ>2 .if (\\n(LL%\\n(L1)=0 .nr NQ -1
  658. .if !\\n(1T \{\
  659. .    BG
  660. .    if n .sp 4
  661. .    if t .sp 2
  662. .\}
  663. .if !\\n(NX .nr NX 1
  664. .if !\\n(NX=\\n(NQ \{\
  665. .    RT
  666. .    if \\n(NX>1 .bp
  667. .    mk
  668. .    nr NC 1
  669. .    po \\n(POu
  670. .\}
  671. .if \\n(NQ>1 .hy 12
  672. .nr NX \\n(NQ
  673. .nr CW \\n(L1
  674. .ll \\n(CWu
  675. .nr FL \\n(CWu*11u/12u
  676. .if \\n(NX>1 .nr GW (\\n(LL-(\\n(NX*\\n(CW))/(\\n(NX-1)
  677. .nr RO \\n(CW+\\n(GW
  678. .ns
  679. ..
  680. .de RC
  681. .if \\n(NC>=\\n(NX .C2
  682. .if \\n(NC<\\n(NX .C1
  683. .nr NC \\n(ND
  684. ..
  685. .de C1
  686. .rt
  687. .po +\\n(ROu
  688. .nr ND \\n(NC+1
  689. .nr XX 0 1
  690. .if \\n(MF .FV
  691. .nr MF 0
  692. .ch FX \\n(.pu-\\n(FMu
  693. .ev 1
  694. .if \\n(TB .XK
  695. .nr TC 0
  696. .ev
  697. .nr TQ \\n(.i
  698. .if \\n(IT .in 0
  699. .if \\n(IT .TT
  700. .if \\n(IT .in \\n(TQu
  701. .mk #T
  702. .ns
  703. ..
  704. .de C2
  705. .po \\n(POu
  706. 'bp
  707. .nr ND 1
  708. ..
  709. .    \" RS - right shift
  710. .de RS
  711. .nr IS \\n(IP
  712. .RT
  713. .nr IP \\n(IS
  714. .if \\n(IP .in +\\n(I\\n(IRu
  715. .nr IR +1
  716. .nr I\\n(IR \\n(PIu
  717. .in +\\n(I\\n(IRu
  718. ..
  719. .    \" RE - retreat left
  720. .de RE
  721. .nr IS \\n(IP
  722. .RT
  723. .nr IP \\n(IS
  724. .if \\n(IR .nr IR -1
  725. .if \\n(IP<=0 .in -\\n(I\\n(IRu
  726. ..
  727. .    \" CM - cut mark
  728. .de CM
  729. .po 0
  730. .lt 7.6i
  731. .ft 1
  732. .ps 10
  733. .vs 4p
  734. .tl '--''--'
  735. .po
  736. .vs
  737. .lt
  738. .ps
  739. .ft
  740. ..
  741. .rm CM
  742. .    \" I - italic font
  743. .de I
  744. .nr PQ \\n(.f
  745. .if t .ft 2
  746. .ie \\$1 .if n .ul 999
  747. .el .if n .ul 1
  748. .if t .if !\\$1 \&\\$1\|\f\\n(PQ\\$2
  749. .if n .if \\n(.$=1 \&\\$1
  750. .if n .if \\n(.$>1 \&\\$1\c
  751. .if n .if \\n(.$>1 \&\\$2
  752. ..
  753. .    \" B - bold font
  754. .de B
  755. .nr PQ \\n(.f
  756. .if t .ft 3
  757. .ie \\$1 .if n .ul 999
  758. .el .if n .ul 1
  759. .if t .if !\\$1 \&\\$1\f\\n(PQ\\$2
  760. .if n .if \\n(.$=1 \&\\$1
  761. .if n .if \\n(.$>1 \&\\$1\c
  762. .if n .if \\n(.$>1 \&\\$2
  763. ..
  764. .    \" R - Roman font
  765. .de R
  766. .if n .ul 0
  767. .ft 1
  768. ..
  769. .    \" L - listing font
  770. .de L
  771. \%\&\\$3\fL\\$1\fP\&\\$2
  772. ..
  773. .    \" LB - bold listing font
  774. .de LB
  775. \%\&\\$3\f(LB\\$1\fP\&\\$2
  776. ..
  777. .    \" UL - underline in troff
  778. .de UL
  779. .if t \\$1\l'|0\(ul'\\$2
  780. .if n .I \\$1 \\$2
  781. ..
  782. .    \" SM - smaller
  783. .de SM
  784. .ps -2
  785. ..
  786. .    \" LG - larger
  787. .de LG
  788. .ps +2
  789. ..
  790. .    \" NL - normal
  791. .de NL
  792. .ps \\n(PS
  793. ..
  794. .    \" DA - force date
  795. .de DA
  796. .if \\n(.$ .ds DY \\$1 \\$2 \\$3 \\$4
  797. .ds CF \\*(DY
  798. ..
  799. .    \" ND - no date or new date
  800. .de ND
  801. .if \\n(.$ .ds DY \\$1 \\$2 \\$3 \\$4
  802. .rm CF
  803. ..
  804. .    \" \** - numbered footnote
  805. .ds * \\*([.\\n+*\\*(.]
  806. .    \" FJ - replaces FS after cover
  807. .de FJ
  808. 'ce 0
  809. .di
  810. .ev 1
  811. .ll \\n(FLu
  812. .da FF
  813. .br
  814. .if \\n(IF .tm Nested footnote
  815. .nr IF 1
  816. .if !\\n+(XX-1 .FA
  817. .if !\\n(MF .if !\\n(.$ .if \\n* .FP \\n*
  818. .if !\\n(MF .if \\n(.$ .FP \\$1 no
  819. ..
  820. .    \" FK - replaces FE after cover
  821. .de FK
  822. .br
  823. .in 0
  824. .nr IF 0
  825. .di
  826. .ev
  827. .if !\\n(XX-1 .nr dn +\\n(.v
  828. .nr YY -\\n(dn
  829. .if !\\n(NX .nr WF 1
  830. .if \\n(dl>\\n(CW .nr WF 1
  831. .if (\\n(nl+\\n(.v)<=(\\n(.p+\\n(YY) .ch FO \\n(YYu
  832. .if (\\n(nl+\\n(.v)>(\\n(.p+\\n(YY) \{\
  833. .    if \\n(nl>(\\n(HM+1.5v) .ch FO \\n(nlu+\\n(.vu
  834. .    if \\n(nl+\\n(FM+1v>\\n(.p .ch FX \\n(.pu-\\n(FMu+2v
  835. .    if \\n(nl<=(\\n(HM+1.5v) .ch FO \\n(HMu+(4u*\\n(.vu)
  836. .\}
  837. ..
  838. .    \" FS - begin footnote on cover
  839. .de FS
  840. .ev 1
  841. .br
  842. .ll \\n(FLu
  843. .da FG
  844. .if !\\n(.$ .if \\n* .FP \\n*
  845. .if \\n(.$ .FP \\$1 no
  846. ..
  847. .    \" FE - end footnote on cover
  848. .de FE
  849. .br
  850. .di
  851. .nr FP \\n(dn
  852. .if !\\n(1T .nr KG 1
  853. .ev
  854. ..
  855. .    \" FA - print line before footnotes
  856. .de FA
  857. .in 0
  858. .if n _________________________
  859. .if t \l'1i'
  860. .br
  861. ..
  862. .    \" FP - footnote paragraph
  863. .de FP
  864. .sp \\n(PDu/2u
  865. .if \\n(FF<2 .ti \\n(FIu
  866. .if \\n(FF=3 \{\
  867. .    in \\n(FIu*2u
  868. .    ta \\n(FIu*2u
  869. .    ti 0
  870. .\}
  871. .if !\\n(FF \{\
  872. .    ie "\\$2"no" \\$1\0\c
  873. .    el \\*([.\\$1\\*(.]\0\c
  874. .\}
  875. .if \\n(FF .if \\n(FF<3 \{\
  876. .    ie "\\$2"no" \\$1\0\c
  877. .    el \\$1.\0\c
  878. .\}
  879. .if \\n(FF=3 \{\
  880. .    ie "\\$2"no" \\$1\t\c
  881. .    el \\$1.\t\c
  882. .\}
  883. ..
  884. .    \" FV - get leftover footnote from previous page
  885. .de FV
  886. .FS
  887. .nf
  888. .ls 1
  889. .FY
  890. .ls
  891. .fi
  892. .FE
  893. ..
  894. .    \" FX - divert leftover footnote for next page
  895. .de FX
  896. .if \\n(XX .di FY
  897. .if \\n(XX .ns
  898. ..
  899. .    \" XF - actually print footnote
  900. .de XF
  901. .if \\n(nlu+1v>(\\n(.pu-\\n(FMu) .ch FX \\n(nlu+1.9v
  902. .ev 1
  903. .nf
  904. .ls 1
  905. .FF
  906. .rm FF
  907. .nr XX 0 1
  908. .br
  909. .ls
  910. .di
  911. .fi
  912. .ev
  913. ..
  914. .    \" TS - source file for tbl
  915. .de TS
  916. .rn TS @T
  917. .so \*(//ms.tbl
  918. .TS \\$1 \\$2
  919. .rm @T
  920. ..
  921. .    \" EQ - source file for eqn
  922. .de EQ
  923. .rn EQ @T
  924. .so \*(//ms.eqn
  925. .EQ \\$1 \\$2
  926. .rm @T
  927. ..
  928. .    \" ]- - source file for refer
  929. .de ]-
  930. .rn ]- @T
  931. .so \*(//ms.ref
  932. .]-
  933. .rm @T
  934. ..
  935. .    \" [< - for refer -s or -e
  936. .de ]<
  937. .rn ]< @T
  938. .so \*(//ms.ref
  939. .]<
  940. .rm @T
  941. ..
  942. .if \n(.V>19 .ds [. \f1[
  943. .if \n(.V>19 .ds .] ]\fP
  944. .if \n(.V<20 .ds [. \f1\s-2\v'-.4m'
  945. .if \n(.V<20 .ds .] \v'.4m'\s+2\fP
  946. .ds <. .
  947. .ds <, ,
  948. .if n .ds Q \&"
  949. .if n .ds U \&"
  950. .if n .ds - \%--
  951. .if t .ds Q ``
  952. .if t .ds U ''
  953. .if t .ds - \(em
  954. .ds ' \h'\w'e'u/5'\z\'\h'-\w'e'u/5'
  955. .ds ` \h'\w'e'u/5'\z\`\h'-\w'e'u/5'
  956. .ds ^ \h'\w'o'u/10'\z^\h'-\w'e'u/10'
  957. .ds , \h'\w'c'u/5'\z,\h'-\w'e'u/5'
  958. .ds : \h'\w'u'u/5'\z"\h'-\w'e'u/5'
  959. .ds ~ \h'\w'n'u/10'\z~\h'-\w'e'u/10'
  960. .ds C \h'\w'c'u/5'\v'-.6m'\s-4\zv\s+4\v'.6m'\h'-\w'c'u/5'
  961. .    \" AM - better accent marks
  962. .de AM
  963. .so \*(//ms.acc
  964. ..
  965. .    \" TM - thesis mode
  966. .de TM
  967. .so \*(//ms.ths
  968. ..
  969. .    \" BX - word in a box
  970. .de BX
  971. .if t \(br\|\\$1\|\(br\l'|0\(rn'\l'|0\(ul'
  972. .if n \(br\\kA\|\\$1\|\\kB\(br\v'-1v'\h'|\\nBu'\l'|\\nAu'\v'1v'\l'|\\nAu'
  973. ..
  974. .    \" B1 - source file for boxed text
  975. .de B1
  976. .rn B1 @T
  977. .so \*(//ms.tbl
  978. .B1 \\$1
  979. .rm @T
  980. ..
  981. .    \" XS - table of contents
  982. .de XS
  983. .rn XS @T
  984. .so \*(//ms.toc
  985. .XS \\$1 \\$2
  986. .rm @T
  987. ..
  988. .    \" IX - index words to stderr
  989. .de IX
  990. .tm \\$1\t\\$2\t\\$3\t\\$4 ... \\n(PN
  991. ..
  992. .    \" UX - UNIX macro
  993. .de UX
  994. .ie \\n(UX \s-1UNIX\s0\\$1
  995. .el \{\
  996. \s-1UNIX\s0\\$1\(dg
  997. .FS
  998. \(dg \s-1UNIX\s0 is a trademark of Bell Laboratories.
  999. .FE
  1000. .nr UX 1
  1001. .\}
  1002. ..
  1003. .co
  1004. .if \n(mo-0 .ds MO January
  1005. .if \n(mo-1 .ds MO February
  1006. .if \n(mo-2 .ds MO March
  1007. .if \n(mo-3 .ds MO April
  1008. .if \n(mo-4 .ds MO May
  1009. .if \n(mo-5 .ds MO June
  1010. .if \n(mo-6 .ds MO July
  1011. .if \n(mo-7 .ds MO August
  1012. .if \n(mo-8 .ds MO September
  1013. .if \n(mo-9 .ds MO October
  1014. .if \n(mo-10 .ds MO November
  1015. .if \n(mo-11 .ds MO December
  1016. .ds DY \*(MO \n(dy, 19\n(yr
  1017. .nr * 0 1
  1018. .IZ
  1019. .em EM
  1020. .rm IZ //
  1021.