home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 7 / FreshFishVol7.bin / bbs / gnu / groff-1.09-bin.lha / GNU / lib / groff / tmac / tmac.e < prev    next >
Text File  |  1994-09-02  |  20KB  |  1,563 lines

  1. .\"    @(#)tmac.e    2.31 (Berkeley) 5/21/88
  2. .\"    Modified by James Clark for use with groff.
  3. .\"
  4. .\" Copyright (c) 1988 Regents of the University of California.
  5. .\" All rights reserved.
  6. .\"
  7. .\" Redistribution and use in source and binary forms are permitted
  8. .\" provided that this notice is preserved and that due credit is given
  9. .\" to the University of California at Berkeley. The name of the University
  10. .\" may not be used to endorse or promote products derived from this
  11. .\" software without specific prior written permission. This software
  12. .\" is provided ``as is'' without express or implied warranty.
  13. .if !\n(.g .ig
  14. .de @R
  15. .if !r\\$1 .nr \\$1 0
  16. ..
  17. .@R pf
  18. .if \n(pf .nx
  19. .if !\n(.g .ig
  20. .de @S
  21. .if !d\\$1 .ds \\$1
  22. ..
  23. .@R @
  24. .de @C
  25. .nr _S \\n(.s
  26. .nr _V \\n(.v
  27. .nr _F \\n(.f
  28. .do ds _A \\n[.fam]
  29. .nr _I \\n(.i
  30. .ev \\$1
  31. .ps \\n(_S
  32. .vs \\n(_Vu
  33. .ft \\n(_F
  34. .do @fam \\*(_A
  35. 'in \\n(_Iu
  36. .xl \\n($lu
  37. .lt \\n($lu
  38. .rr _S
  39. .rr _V
  40. .rr _F
  41. .rr _I
  42. .ls 1
  43. 'ce 0
  44. ..
  45. .de @D
  46. .ds |p "\\$3
  47. .nr _d 0
  48. .if "\\$2"C" \
  49. .    nr _d 1
  50. .if "\\$2"L" \
  51. .    nr _d 2
  52. .if "\\$2"I" \
  53. .    nr _d 3
  54. .if "\\$2"M" \
  55. .    nr _d 4
  56. .if !\\n(_d \{\
  57. .    nr _d \\$1
  58. .    ds |p "\\$2
  59. .\}
  60. ..
  61. .de @z
  62. .if \n@>1 .tm >> @z, .z=\\n(.z ?a=\\n(?a
  63. .if !"\\n(.z"" \
  64. \{\
  65. .    tm Line \\n(c. -- Unclosed block, footnote, or other diversion (\\n(.z)
  66. .    di
  67. .    ex
  68. .\}
  69. .if \\n(?a \
  70. .    bp
  71. .ds bp
  72. .ds @b
  73. .br
  74. .if \n@>1 .tm << @z
  75. ..
  76. .ie \n(.g .ds $* \\\\$*
  77. .el .ds $* \\\\$1 \\\\$2 \\\\$3 \\\\$4 \\\\$5 \\\\$6 \\\\$7 \\\\$8 \\\\$9
  78. .de he
  79. .ie !\\n(.$ \
  80. \{\
  81. .    rm |4
  82. .    rm |5
  83. .\}
  84. .el \
  85. \{\
  86. .    ds |4 "\*($*
  87. .    ds |5 "\*($*
  88. .\}
  89. ..
  90. .de eh
  91. .ie !\\n(.$ \
  92. .    rm |4
  93. .el \
  94. .    ds |4 "\*($*
  95. ..
  96. .de oh
  97. .ie !\\n(.$ \
  98. .    rm |5
  99. .el \
  100. .    ds |5 "\*($*
  101. ..
  102. .de fo
  103. .ie !\\n(.$ \
  104. \{\
  105. .    rm |6
  106. .    rm |7
  107. .\}
  108. .el \
  109. \{\
  110. .    ds |6 "\*($*
  111. .    ds |7 "\*($*
  112. .\}
  113. ..
  114. .de ef
  115. .ie !\\n(.$ \
  116. .    rm |6
  117. .el \
  118. .    ds |6 "\*($*
  119. ..
  120. .de of
  121. .ie !\\n(.$ \
  122. .    rm |7
  123. .el \
  124. .    ds |7 "\*($*
  125. ..
  126. .de ep
  127. .if \\n(nl>0 \
  128. \{\
  129. .    wh 0
  130. .    rs
  131. .    @b
  132. .\}
  133. ..
  134. .de @h
  135. .if \n@>1 .tm >> @h %=\\n% ?a=\\n(?a ?b=\\n(?b ?w=\\n(?w
  136. .if (\\n(.i+\\n(.o)>=\\n(.l \
  137. .    tm Line \\n(c. -- Offset + indent exceeds line length
  138. .nr ?h \\n(?H
  139. .nr ?H 0
  140. .nr ?c \\n(?C
  141. .nr ?C 0
  142. .rn |4 |0
  143. .rn |5 |1
  144. .rn |6 |2
  145. .rn |7 |3
  146. .nr _w 0
  147. .nr ?W 0
  148. .nr ?I 1
  149. .ev 2
  150. .rs
  151. .if \\n(hm>0 \
  152. .    sp |\\n(hmu
  153. .@t $h
  154. .if \\n(tm<=0 \
  155. .    nr tm \n(.Vu
  156. .sp |\\n(tmu
  157. .ev
  158. .mk _k
  159. .if \\n(?n .nm 1
  160. .nr $c 1
  161. .if \n@>4 .tm -- @h >> .ns nl=\\n(nl %=\\n% _k=\\n(_k tm=\\n(tm
  162. .ie \\n(?s \
  163. \{\
  164. .    nr ?s 0
  165. .    rs
  166. '    @b
  167. .\}
  168. .el \
  169. .    @n
  170. .if \n@>2 .tm << @h
  171. ..
  172. .de @n
  173. .if \n@>3 .tm >> @n nl=\\n(nl %=\\n% ?f=\\n(?f ?o=\\n(?o
  174. .if \\n(bm<=0 \
  175. .    nr bm \\n(.Vu
  176. .if (\\n(_w<=\\n($l)&(\\n(?W=0) \
  177. \{\
  178. .    nr _b (\\n(ppp*\\n($vu)/200u
  179. .    if \\n(_bu>((\\n(bmu-\\n(fmu-((\\n(tpp*\\n($vu)/100u))/2u) \
  180. .        nr _b (\\n(ppp*\\n($vu)/100u-\n(.Vu
  181. .    nr _b +\\n(bmu
  182. .\}
  183. .nr _B \\n(_bu
  184. .ch @f
  185. .wh -\\n(_bu @f
  186. .nr _b +(\\n(ppp*\\n($vu)/100u
  187. .if \n@>2 .tm @n .p=\\n(.p bm=\\n(bm _b=\\n(_b _B=\\n(_B
  188. .nr ?f 0
  189. .if \\n(?o \
  190. \{\
  191. .    (f _
  192. .    nf
  193. .    |o
  194. .    fi
  195. .    )f
  196. .    rm |o
  197. .\}
  198. .nr ?o 0
  199. .if \\n(?T \
  200. \{\
  201. .    nr _i \\n(.i
  202. .    in \\n($iu
  203. .    |h
  204. .    in \\n(_iu
  205. .    rr _i
  206. .    mk #T
  207. .    ns
  208. .\}
  209. .if (\\n(?a)&((\\n($c<2):(\\n(?w=0)) \
  210. \{\
  211. .    nr ?a 0
  212. .    @k |t
  213. .    if \\n(?w \
  214. .        mk _k
  215. .    nr ?w 0
  216. .\}
  217. .os
  218. .$H
  219. .ns
  220. ..
  221. .de @f
  222. .if \n@>1 .tm >> @f %=\\n% nl=\\n(nl ?a=\\n(?a ?b=\\n(?b ?f=\\n(?f
  223. .if \n@>2 .nr VL \\n(.pu-\\n(nlu
  224. .if \n@>2 .tm @f bm=\\n(bm _B=\\n(_B _b=\\n(_b .p-nl=\\n(VL
  225. .ec
  226. .if \\n(?T \
  227. \{\
  228. .    nr T. 1
  229. .    T# 1
  230. .    br
  231. .\}
  232. .ev 2
  233. .ce 0
  234. .if \\n(?b \
  235. \{\
  236. .    nr ?b 0
  237. .    @k |b
  238. .\}
  239. .if \\n(?f \
  240. .    @o
  241. .ie \\n($c<\\n($m \
  242. .    @c
  243. .el \
  244. .    @e
  245. .ev
  246. .if \n@>2 .tm << @f
  247. ..
  248. .de @o
  249. .nf
  250. .ls 1
  251. .in 0
  252. .if \n@>2 .tm @o last printed text = \\n(nl placing @r trap at -\\n(_B
  253. .wh -\\n(_Bu @r
  254. .|f
  255. .fi
  256. .if \n@>2 .tm @o triggered @r (?o) = \\n(?o
  257. .if \\n(?o \
  258. \{\
  259. .    di
  260. .    if \\n(dn=0 \
  261. \{\
  262. .        rm |o
  263. .        nr ?o 0
  264. .    \}
  265. .    nr dn \\n(_D
  266. .    rr _D
  267. .\}
  268. .rm |f
  269. .ch @r
  270. ..
  271. .de @c
  272. .if \n@>2 .tm    >> @c %=\\n%
  273. .rs
  274. .sp |\\n(_ku
  275. .@O +\\n($lu+\\n($su
  276. .nr $c +1
  277. .@n
  278. ..
  279. .de @e
  280. .if \n@>2 .tm    >> @e
  281. .@O \\n(_ou
  282. .rs
  283. .sp |\\n(.pu-\\n(fmu-((\\n(tpp*\\n($vu)/100u)
  284. .@t $f
  285. .nr ?h 0
  286. .bp
  287. ..
  288. .de @t
  289. .if !\\n(?h \
  290. \{\
  291. .    sz \\n(tp
  292. .    @F \\n(tf
  293. .    lt \\n(_Lu
  294. .    nf
  295. .    \\$1
  296. .    br
  297. .\}
  298. ..
  299. .de $h
  300. .ds |z
  301. .if !\\n(?c \
  302. \{\
  303. .    if e .ds |z "\\*(|0
  304. .    if o .ds |z "\\*(|1
  305. .\}
  306. .if !\(ts\\*(|z\(ts\(ts \
  307. '    tl \\*(|z
  308. .rm |z
  309. ..
  310. .de $f
  311. .ds |z
  312. .if \\n(?c \
  313. \{\
  314. .    if e .ds |z "\\*(|0
  315. .    if o .ds |z "\\*(|1
  316. .\}
  317. .if \(ts\\*(|z\(ts\(ts \
  318. \{\
  319. .    if e .ds |z "\\*(|2
  320. .    if o .ds |z "\\*(|3
  321. .\}
  322. .if !\(ts\\*(|z\(ts\(ts \
  323. '    tl \\*(|z
  324. .rm |z
  325. ..
  326. .de @r
  327. .if \n@>3 .tm        >> @r .z=\\n(.z ?f=\\n(?f ?a=\\n(?a ?b=\\n(?b _b=\\n(_b
  328. .di |o
  329. .nr ?o 1
  330. .nr _D \\n(dn
  331. .ns
  332. ..
  333. .rn bp @b
  334. .de bp
  335. .nr $c \\n($m
  336. .ie \\n(nl>0 \
  337. .    @b \\$1
  338. .el \
  339. \{\
  340. .    if \\n(.$>0 \
  341. .        pn \\$1
  342. .    if \\n(?I \
  343. .        @h
  344. .\}
  345. .br
  346. .wh 0 @h
  347. ..
  348. .rn ll xl
  349. .de ll
  350. .xl \\$1
  351. .lt \\$1
  352. .nr $l \\n(.l
  353. .if (\\n($m<=1):(\\n($l>\\n(_L) \
  354. .    nr _L \\n(.l
  355. ..
  356. .rn po @O
  357. .de po
  358. .@O \\$1
  359. .nr _o \\n(.o
  360. ..
  361. .if !\n(.g .ig
  362. .do rn fam @fam
  363. .do de fam
  364. .do @fam \\$1
  365. .ev 2
  366. .do @fam \\$1
  367. .ev
  368. ..
  369. .de hx
  370. .nr ?H 1
  371. ..
  372. .de ix
  373. 'in \\$1
  374. ..
  375. .de bl
  376. .br
  377. .ne \\$1
  378. .rs
  379. .sp \\$1
  380. ..
  381. .de n1
  382. .nm 1
  383. .xl -\w'0000'u
  384. .nr ?n 1
  385. ..
  386. .de n2
  387. .nm \\$1
  388. .ie \\n(.$ \
  389. .    xl -\w'0000'u
  390. .el \
  391. .    xl \\n($lu
  392. ..
  393. .de pa
  394. .bp \\$1
  395. ..
  396. .de ro
  397. .af % i
  398. ..
  399. .de ar
  400. .af % 1
  401. ..
  402. .de m1
  403. .nr _0 \\n(hmu
  404. .nr hm \\$1v
  405. .nr tm +\\n(hmu-\\n(_0u
  406. .rr _0
  407. ..
  408. .de m2
  409. .nr tm \\n(hmu+\\n(tpp+\\$1v
  410. ..
  411. .de m3
  412. .nr bm \\n(fmu+\\n(tpp+\\$1v
  413. ..
  414. .de m4
  415. .nr _0 \\n(fmu
  416. .nr fm \\$1v
  417. .nr bm +\\n(fmu-\\n(_0u
  418. ..
  419. .de sk
  420. .if \\n(.$>0 \
  421. .    tm Line \\n(c. -- I cannot skip multiple pages
  422. .nr ?s 1
  423. ..
  424. .if !\n(.g .ig
  425. .de re
  426. .ta T 0.5i
  427. ..
  428. .if \n(.g .ig
  429. .de re
  430. .ta 0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i
  431. ..
  432. .de ba
  433. .ie \\n(.$ \
  434. .    nr $i \\$1n
  435. .el \
  436. .    nr $i \\n(siu*\\n($0u
  437. ..
  438. .de hl
  439. .br
  440. .ie \n(.g .do nr _I \\n[.in]
  441. .el .nr _I \\n(.i
  442. \l'\\n(.lu-\\n(_Iu'
  443. .sp
  444. ..
  445. .de pp
  446. .lp \\n(piu
  447. ..
  448. .de lp
  449. .@p
  450. .if \\n(.$ \
  451. .    ti +\\$1
  452. .nr $p 0 1
  453. ..
  454. .de ip
  455. .if (\\n(ii>0)&(\\n(ii<1n) \
  456. .    nr ii \\n(iin
  457. .nr _0 \\n(ii
  458. .if \\n(.$>1 \
  459. .    nr _0 \\$2n
  460. .@p \\n(_0u
  461. .if \\w"\\$1" \
  462. \{\
  463. .    ti -\\n(_0u
  464. .    ie \\w"\\$1">=\\n(_0 \
  465. \{\
  466. \&\\$1
  467. .        br
  468. .    \}
  469. .    el \&\\$1\h'|\\n(_0u'\c
  470. .\}
  471. .rr _0
  472. ..
  473. .de np
  474. .if '\\n($p'-1' \
  475. .    nr $p 0
  476. .nr $p +1
  477. .@p \w'\0(000)\0'u
  478. .ti -\w'\0(000)\0'u
  479. \0(\\n($p)\h'|\w'\0(000)\0'u'\c
  480. ..
  481. .de bu
  482. .br
  483. .if '\\n($p'-1' \
  484. .    ns
  485. .nr $p 0-1
  486. .@p \w'\0\(bu\0'u
  487. .ti -\w'\0\(bu\0'u
  488. \0\(bu\0\c
  489. ..
  490. .de @p
  491. .if "\\n(.z"|e" .tm Line \\n(c. -- Unmatched continued equation
  492. .in \\n($iu+\\n(pou
  493. .if \\n(.$ \
  494. .    in +\\$1n
  495. .ce 0
  496. .fi
  497. .@F \\n(pf
  498. .sz \\n(pp
  499. .sp \\n(psu
  500. .ne \\n(.Lv+\\n(.Vu
  501. .ns
  502. ..
  503. .de sh
  504. .fi
  505. .if (\\n(si>0)&(\\n(si<1n) \
  506. .    nr si \\n(sin
  507. .ce 0
  508. .@d "\\$1" +1 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8
  509. .if !"\\$2"_" \
  510. \{\
  511. .    ds |n \&\\$2
  512. .    $p "\\*(|n" "\\*($n" \\n($0
  513. .    $0 "\\*(|n" "\\*($n" \\n($0
  514. .    rm |n
  515. .\}
  516. .nr $p 0 1
  517. ..
  518. .de @d
  519. .if !""\\$1" \
  520. .    nr $0 \\$1
  521. .if \\n($0&(\\n(.$>1) \
  522. .    nr $\\n($0 \\$2
  523. .ds $n \&
  524. .ie \\n($0>=1 \
  525. \{\
  526. .    if '\\n($1'0' \
  527. .        nr $1 1
  528. .    if (\\n(.$>=3) .if !"\\$3"-" \
  529. .        nr $1 \\$3
  530. .    as $n \\n($1
  531. .\}
  532. .el \
  533. .    nr $1 0
  534. .ie \\n($0>=2 \
  535. \{\
  536. .    if '\\n($2'0' \
  537. .        nr $2 1
  538. .    if (\\n(.$>=4) .if !"\\$4"-" \
  539. .        nr $2 \\$4
  540. .    as $n .\\n($2
  541. .\}
  542. .el \
  543. .    nr $2 0
  544. .ie \\n($0>=3 \
  545. \{\
  546. .    if '\\n($3'0' \
  547. .        nr $3 1
  548. .    if (\\n(.$>=5) .if !"\\$5"-" \
  549. .        nr $3 \\$5
  550. .    as $n .\\n($3
  551. .\}
  552. .el \
  553. .    nr $3 0
  554. .ie \\n($0>=4 \
  555. \{\
  556. .    if '\\n($4'0' \
  557. .        nr $4 1
  558. .    if (\\n(.$>=6) .if !"\\$6"-" \
  559. .        nr $4 \\$6
  560. .    as $n .\\n($4
  561. .\}
  562. .el \
  563. .    nr $4 0
  564. .ie \\n($0>=5 \
  565. \{\
  566. .    if '\\n($5'0' \
  567. .        nr $5 1
  568. .    if (\\n(.$>=7) .if !"\\$7"-" \
  569. .        nr $5 \\$7
  570. .    as $n .\\n($5
  571. .\}
  572. .el \
  573. .    nr $5 0
  574. .ie \\n($0>=6 \
  575. \{\
  576. .    if '\\n($6'0' \
  577. .        nr $6 1
  578. .    if (\\n(.$>=8) .if !"\\$8"-" \
  579. .        nr $6 \\$8
  580. .    as $n .\\n($6
  581. .\}
  582. .el \
  583. .    nr $6 0
  584. ..
  585. .de sx
  586. .ce 0
  587. .ul 0
  588. .nr _0 \\n($0-1
  589. .if \\n(.$ .nr _0 +1
  590. .if \\n(.$ .nr _0 \\$1
  591. .@d \\n(_0
  592. .rr _0
  593. .$p "" "" \\n($0
  594. .nr $p 0 1
  595. ..
  596. .de uh
  597. .$p "\\$1"
  598. .$0 "\\$1"
  599. ..
  600. .de $p
  601. .if (\\n(si>0)&(\\n(.$>2) \
  602. .    nr $i \\$3*\\n(si
  603. .in \\n($iu
  604. .ie !"\\$1\\$2"" \
  605. \{\
  606. .    sp \\n(ssu
  607. .    ne \\n(.Lv+\\n(.Vu+\\n(psu+((\\n(spp*\\n($vu*\\n(.Lu)/100u)
  608. .    ie 0\\$3 \
  609. .        ti -(\\n(siu-\\n(sou)
  610. .    el \
  611. .        ti +\\n(sou
  612. .    @F \\n(sf
  613. .    sz \\n(sp
  614. .    if 0\\$3 \
  615. .        $\\$3
  616. .    if \w"\\$2">0 \\$2.
  617. .    if \w"\\$1">0 \\$1\f1\ \ \&
  618. .\}
  619. .el \
  620. .    sp \\n(psu
  621. .@F \\n(pf
  622. .sz \\n(pp
  623. ..
  624. .de 2c
  625. .br
  626. .if \\n($m>1 \
  627. .    1c
  628. .nr $c 1
  629. .nr $m 2
  630. .if \\n(.$>1 \
  631. .    nr $m \\$2
  632. .if \\n(.$>0 \
  633. .    nr $s \\$1n
  634. .nr $l (\\n(.l-((\\n($m-1)*\\n($s))/\\n($m
  635. .xl \\n($lu
  636. .mk _k
  637. .ns
  638. ..
  639. .de 1c
  640. .br
  641. .nr $c 1
  642. .nr $m 1
  643. .ll