tmac.v 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524
  1. '\" Copyright (c) 1984 AT&T
  2. '\" All Rights Reserved
  3. '\"#ident "@(#)macros:vmca.src 1.17"
  4. .if n .ds Tm \uTM\d
  5. .if t .ds Tm \v'-0.5m'\s-8TM\s+8\v'0.5m'
  6. .
  7. .de VS\" foil-# foil-id date: start 7" wide × 7" high foil
  8. .)j
  9. .nr )K 0i
  10. .nr )L 0i
  11. .nr )U 8i
  12. .nr )X 18
  13. .nr )H 0
  14. .nr )W 0
  15. .nr )O 0i
  16. .nr )M 0
  17. .if !\\n(.$ .)V
  18. .if \\n(.$ .if !\\n(.$-1 .)V "\\$1"
  19. .if \\n(.$-1 .if !\\n(.$-2 .)V "\\$1" "\\$2"
  20. .if \\n(.$-2 .)V "\\$1" "\\$2" "\\$3"
  21. ..
  22. .de Vh\" .VS but 5" wide × 7" high
  23. .)j
  24. .nr )K 0.9i
  25. .nr )L 1i
  26. .nr )U 8i
  27. .nr )X 14
  28. .nr )H 1
  29. .nr )W 0
  30. .nr )O 0.2i
  31. .nr )M 0
  32. .if !\\n(.$ .)V
  33. .if \\n(.$ .if !\\n(.$-1 .)V "\\$1"
  34. .if \\n(.$-1 .if !\\n(.$-2 .)V "\\$1" "\\$2"
  35. .if \\n(.$-2 .)V "\\$1" "\\$2" "\\$3"
  36. ..
  37. .de Sh\" .VS but 5" wide × 7" high
  38. .)j
  39. .nr )K 1.1i
  40. .nr )L 1i
  41. .nr )U 8i
  42. .nr )X 14
  43. .nr )H 1
  44. .nr )W 0
  45. .nr )O 0.2i
  46. .nr )M 1
  47. .if !\\n(.$ .)V
  48. .if \\n(.$ .if !\\n(.$-1 .)V "\\$1"
  49. .if \\n(.$-1 .if !\\n(.$-2 .)V "\\$1" "\\$2"
  50. .if \\n(.$-2 .)V "\\$1" "\\$2" "\\$3"
  51. ..
  52. .de Vw\" .VS but 7" wide × 5" high
  53. .)j
  54. .nr )K 0i
  55. .nr )L 0i
  56. .nr )U 6i
  57. .nr )X 14
  58. .nr )H 0
  59. .nr )W 1
  60. .nr )O 0.2i
  61. .nr )M 0
  62. .if !\\n(.$ .)V
  63. .if \\n(.$ .if !\\n(.$-1 .)V "\\$1"
  64. .if \\n(.$-1 .if !\\n(.$-2 .)V "\\$1" "\\$2"
  65. .if \\n(.$-2 .)V "\\$1" "\\$2" "\\$3"
  66. ..
  67. .de Sw\" .VS but 7" wide × 5" high
  68. .)j
  69. .nr )K 0i
  70. .nr )L 0i
  71. .nr )U 6i
  72. .nr )X 14
  73. .nr )H 0
  74. .nr )W 1
  75. .nr )O 0.2i
  76. .nr )M 1
  77. .if !\\n(.$ .)V
  78. .if \\n(.$ .if !\\n(.$-1 .)V "\\$1"
  79. .if \\n(.$-1 .if !\\n(.$-2 .)V "\\$1" "\\$2"
  80. .if \\n(.$-2 .)V "\\$1" "\\$2" "\\$3"
  81. ..
  82. .de VH\" .VS but 7" wide × 9" high
  83. .)j
  84. .nr )K 0i
  85. .nr )L 0i
  86. .nr )U 10i
  87. .nr )X 18
  88. .nr )H 1
  89. .nr )W 0
  90. .nr )O 0.5i
  91. .nr )M 0
  92. .if !\\n(.$ .)V
  93. .if \\n(.$ .if !\\n(.$-1 .)V "\\$1"
  94. .if \\n(.$-1 .if !\\n(.$-2 .)V "\\$1" "\\$2"
  95. .if \\n(.$-2 .)V "\\$1" "\\$2" "\\$3"
  96. ..
  97. .de SH\" .VS but 7" wide × 9" high
  98. .)j
  99. .nr )K 0.5i
  100. .nr )L 0i
  101. .nr )U 10i
  102. .nr )X 18
  103. .nr )H 1
  104. .nr )W 0
  105. .nr )O 0.5i
  106. .nr )M 1
  107. .if !\\n(.$ .)V
  108. .if \\n(.$ .if !\\n(.$-1 .)V "\\$1"
  109. .if \\n(.$-1 .if !\\n(.$-2 .)V "\\$1" "\\$2"
  110. .if \\n(.$-2 .)V "\\$1" "\\$2" "\\$3"
  111. ..
  112. .de VW\" .VS but 7" wide × 5.4" high
  113. .)j
  114. .nr )K 0i
  115. .nr )L 0i
  116. .nr )U 6.44i
  117. .nr )X 14
  118. .nr )H 0
  119. .nr )W 1
  120. .nr )O 0.4i
  121. .nr )M 0
  122. .if !\\n(.$ .)V
  123. .if \\n(.$ .if !\\n(.$-1 .)V "\\$1"
  124. .if \\n(.$-1 .if !\\n(.$-2 .)V "\\$1" "\\$2"
  125. .if \\n(.$-2 .)V "\\$1" "\\$2" "\\$3"
  126. ..
  127. .de SW\" .VS but 7" wide × 5.4" high
  128. .)j
  129. .nr )K 0i
  130. .nr )L 0i
  131. .nr )U 6.44i
  132. .nr )X 14
  133. .nr )H 0
  134. .nr )W 1
  135. .nr )O 0.4i
  136. .nr )M 1
  137. .if !\\n(.$ .)V
  138. .if \\n(.$ .if !\\n(.$-1 .)V "\\$1"
  139. .if \\n(.$-1 .if !\\n(.$-2 .)V "\\$1" "\\$2"
  140. .if \\n(.$-2 .)V "\\$1" "\\$2" "\\$3"
  141. ..
  142. .
  143. .de )V
  144. .fc
  145. .wh 0i
  146. .if \\nX .wh -0.5i
  147. .nr )o 0u
  148. .if \\n()i .nr )o 10p
  149. .nr )U +\\n()ou
  150. .pl \\n()Uu+1.5i
  151. .if \\nX .if \\n(.pu-\\n()Gu .pl \\n()Gu
  152. .na
  153. .fi
  154. .nh
  155. .lg 0
  156. .ta 0.5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i
  157. .ce 0
  158. .in 0i
  159. .ll 7.54i
  160. .po 0i
  161. .lt 7.68i
  162. .if \\n()i .)t "'\(da cut \(da''\(da cut \(da'" 1
  163. .nr )i 0
  164. .)t "'\l'0.38i'''\l'0.38i''" 1
  165. .sp 0.5v
  166. .po 0.23i
  167. .lt 7.06i
  168. .if \\n(.$-1 .ds )N "\\$2
  169. .if \\n(.$-2 .ds )Y "\\$3
  170. .tl \\*()Y
  171. .tl \\*()N
  172. .if \\n(.$ .tl \\*()F \\$1
  173. .if !\\n(.$ .tl \\*()F %
  174. .po
  175. .sp |0.68i+\\n()ou
  176. .po 0.26i+\\n()Lu+\\n()Ou
  177. .lt 7.03i-\\n()Lu-\\n()Lu-\\n()Ou-\\n()Ou
  178. .if \\n()H .)t "'|''|'"
  179. .po
  180. .sp |1i+\\n()Ou+\\n()ou
  181. .if !\\n(.A .)e
  182. .po 0.1i
  183. .lt 7.4i
  184. .if \\n()W .)t "'_''_'"
  185. .po
  186. .sp |1i+\\n()ou
  187. .if !\\n(.A .)e
  188. .po 0.23i+\\n()Lu
  189. .lt 7.06i-\\n()Lu-\\n()Lu
  190. .tl ++
  191. .sp -3p
  192. .if \\n()M .if \\n()W .sp \\n()Ou
  193. .po
  194. .nr )J \\n()Uu
  195. .if \\n()M .if \\n()W .nr )J \\n()Uu-\\n()Ou
  196. .nr )E \\n()Ju
  197. .wh \\n()Eu )Z
  198. .S \\n()X 6i-\\n()Ku-\\n()Ku
  199. .I "" A no-space
  200. .sp .5v
  201. .nr )n \\n(nlu
  202. ..
  203. .de )Z
  204. .wh \\n()Eu
  205. .nr )w 0
  206. .ev 1
  207. .)g
  208. 'sp |\\n()Uu
  209. .if !\\n(.A .)e
  210. .po 0.23i+\\n()Lu
  211. .lt 7.06i-\\n()Lu-\\n()Lu
  212. .tl ++
  213. .po
  214. 'sp |\\n()Uu-\\n()Ou
  215. .if !\\n(.A .)e
  216. .po 0.1i
  217. .lt 7.4i
  218. .if \\n()W .)t "'_''_'"
  219. .po
  220. 'sp |\\n()Uu+0.32i
  221. .po 0.26i+\\n()Lu+\\n()Ou
  222. .lt 7.03i-\\n()Lu-\\n()Lu-\\n()Ou-\\n()Ou
  223. .if \\n()H .)t "'|''|'"
  224. .po
  225. .if !\\n()H 'sp 1v
  226. 'sp 1v
  227. .ev
  228. .if \\nX .pl \\n()Gu
  229. .if \\nX .wh -0.5i )m
  230. .wh 0i )P
  231. ..
  232. .de )m
  233. .bp
  234. ..
  235. .de )z
  236. .pl \\n(.pu+2i
  237. .br
  238. .if \\n()i \{.ps 10
  239. .lt 6i
  240. .tl *** No input or no ``foil start'' macro in input. \}
  241. .if !\\n()i \{.nr )x \\n(.vu+\\n()Eu-\\n(nlu/\\n(.vu
  242. .nr )v \\n()w
  243. .sp |\\n(.pu-2.8i
  244. .if \\nX .wh -0.5i
  245. .if \\nX .pl \\n(.pu+2i
  246. \&
  247. .br
  248. .)g
  249. .po 0i
  250. .ll 6i
  251. .ce 0
  252. .in 0i
  253. .if \\n(.A .sp -1.1v
  254. .if \\n(.A .sp 0.1v
  255. .if \\n(.A .if \\n()v ==> Approximately \\n()x blank line(s) \
  256. left to bottom of previous foil.
  257. .if \\n(.A .if !\\n()v ==> *** Previous foil full; \
  258. check for overflow.
  259. .sp |\\n(.pu-2i
  260. .lt 7.68i
  261. .)t "'\l'0.38i'''\l'0.38i''" 1
  262. .)t "'\(ua cut \(ua''\(ua cut \(ua'" 1 \}
  263. ..
  264. .de )t
  265. .if !\\n(.A .if \\n(.$-1 .)e
  266. .if !\\n(.A .tl \\$1
  267. ..
  268. .de )e
  269. .po 0i
  270. .lt 1i
  271. .tl '\ '''
  272. 'sp -1v
  273. .po
  274. .lt
  275. ..
  276. .de )P
  277. .pl 2i
  278. .if \\nX .pl \\n()Gu
  279. ..
  280. .de )j
  281. .br
  282. .if \\n()i .if \\n(nl \{.ps 10
  283. .lt 6i
  284. .tl *** Text before ``foil start'' macro in input. \}
  285. .if !\\n()i \{.nr )x \\n(.vu+\\n()Eu-\\n(nlu/\\n(.vu
  286. .nr )v \\n()w
  287. .sp |\\n(.pu-0.8i
  288. \&
  289. .br\}
  290. .)g
  291. .if !\\n()i \{.po 0i
  292. .ll 6i
  293. .ce 0
  294. .in 0i
  295. .if \\n(.A .sp -1.1v
  296. .if \\n(.A .sp 0.1v
  297. .if \\n(.A .if \\n()v ==> Approximately \\n()x blank line(s) \
  298. left to bottom of previous foil.
  299. .if \\n(.A .if !\\n()v ==> *** Previous foil full; \
  300. check for overflow.
  301. .br
  302. .ll
  303. .po\}
  304. .if \\n(nl .bp
  305. .nr )w 1
  306. ..
  307. .de )g
  308. .ft \\*()f
  309. .cs \\*()f
  310. .ps 8
  311. .vs 10p
  312. .ss 16
  313. ..
  314. .
  315. .de T\" string: title
  316. .br
  317. .if \\n(nlu-\\n()nu .sp .5v
  318. .nr ]a \\n(.s
  319. .ps
  320. .nr ]b \\n(.s
  321. .ps
  322. .nr )u \\n(.iu
  323. .in 0i
  324. .ps +4
  325. .ce
  326. \&\\$1
  327. .in \\n()uu
  328. .ps \\n(]b
  329. .ps \\n(]a
  330. .sp .5v
  331. .nr )n \\n(nlu
  332. ..
  333. .de S\" ps line-length: set point size & line length
  334. .if !\w\\$1 .ps
  335. .if \w\\$1 .if !\\$1+1 .ps \\$1
  336. .if \w\\$1 .if \\$1 .nr )y \\n(.s
  337. .if \w\\$1 .if \\$1 .nr )y \\$1
  338. .if \w\\$1 .if \\$1-99 .nr )y \\n()X
  339. .if \w\\$1 .if \\$1 .ps \\n()y
  340. .vs \\n(.sp*5u/4u
  341. .ss 16
  342. .nr )a .8i+\\n()Ku
  343. .nr ]c \\n(.s
  344. .ps
  345. .nr ]d \\n(.s
  346. .ps
  347. .nr )A \\n(.s*\\n()Q/\\n(]X
  348. .ps \\n()A
  349. .nr )b \w\\*()B\ u
  350. .ps
  351. .nr )A \\n(.s*\\n()R/\\n(]X
  352. .ps \\n()A
  353. .nr )c \\n()bu+\w\\*()C\ u
  354. .ps
  355. .nr )A \\n(.s*\\n()S/\\n(]X
  356. .ps \\n()A
  357. .nr )d \\n()cu+\w\\*()D\ u
  358. .ps \\n(]d
  359. .ps \\n(]c
  360. .if \\n(.$-1 .nr )u \\$2
  361. .if \\n(.$-1 .if !\\n()uu-7u .nr )p \\$2i
  362. .if \\n(.$-1 .if \\n()uu-7u .nr )p \\$2
  363. .nr )q \\n()pu-0i
  364. .nr )r \\n()qu-0i
  365. .nr )s \\n()ru-0i
  366. .nr )T \\n(.sp*5u/4u
  367. .nr )E \\n()Ju-\\n()Tu
  368. .ch )Z \\n()Eu
  369. ..
  370. .de I\" in a a-arg: set text indent
  371. .if !\w\\$1u .nr )k 0i
  372. .if \w\\$1u .if !\\$1 .nr )u 0i-\\$1
  373. .if \w\\$1u .if \\$1 .nr )u \\$1
  374. .if \w\\$1u .if !\\n()uu-7u .nr )k \\$1i
  375. .if \w\\$1u .if \\n()uu-7u .nr )k \\$1
  376. .if \\n(.$-1 .A \\$3
  377. ..
  378. .de A\" nospace: 1st indentation level
  379. .br
  380. .if !\\n(.$ .if \\n(nlu-\\n()nu .sp \\*(]Au
  381. .nr )n \\n(nlu
  382. .po \\n()au
  383. .in 0u+\\n()ku
  384. .ll \\n()pu
  385. .lt \\n()pu
  386. ..
  387. .de B\" mark ±ps: 2nd indentation level
  388. .br
  389. .if \\n(nlu-\\n()nu .sp \\*(]Bu
  390. .nr )n \\n(nlu
  391. .in \\n()bu+\\n()ku
  392. .ll \\n()qu
  393. .lt \\n()qu
  394. .nr )l 0
  395. .nr ]x \\n()bu
  396. .if !\\n(.$ .)I \\*()B \\n()Q
  397. .if \\n(.$ .if !\\n(.$-1 .)I "\\$1" 0
  398. .if \\n(.$-1 .if \\$2-99 .)I "\\$1\ \|" \\n()Q
  399. .if \\n(.$-1 .if !\\$2-99 .nr )l 1
  400. .if \\n(.$-1 .if !\\$2-99 .)I "\\$1" "\\$2"
  401. ..
  402. .de C\" mark ±ps: 3rd indentation level
  403. .br
  404. .if \\n(nlu-\\n()nu .sp \\*(]Cu
  405. .nr )n \\n(nlu
  406. .in \\n()cu+\\n()ku
  407. .ll \\n()ru
  408. .lt \\n()ru
  409. .nr )l 0
  410. .nr ]x \\n()cu-\\n()bu
  411. .if !\\n(.$ .)I \\*()C \\n()R
  412. .if \\n(.$ .if !\\n(.$-1 .)I "\\$1" 0
  413. .if \\n(.$-1 .if \\$2-99 .)I "\\$1\ \|" \\n()R
  414. .if \\n(.$-1 .if !\\$2-99 .nr )l 1
  415. .if \\n(.$-1 .if !\\$2-99 .)I "\\$1" "\\$2"
  416. ..
  417. .de D\" mark ±ps: 4th indentation level
  418. .br
  419. .if \\n(nlu-\\n()nu .sp \\*(]Du
  420. .nr )n \\n(nlu
  421. .in \\n()du+\\n()ku
  422. .ll \\n()su
  423. .lt \\n()su
  424. .nr )l 0
  425. .nr ]x \\n()du-\\n()cu
  426. .if !\\n(.$ .)I \\*()D \\n()S
  427. .if \\n(.$ .if !\\n(.$-1 .)I "\\$1" 0
  428. .if \\n(.$-1 .if \\$2-99 .)I "\\$1\ \|" \\n()S
  429. .if \\n(.$-1 .if !\\$2-99 .nr )l 1
  430. .if \\n(.$-1 .if !\\$2-99 .)I "\\$1" "\\$2"
  431. ..
  432. .de )I
  433. .nr ]a \\n(.s
  434. .ps
  435. .nr ]b \\n(.s
  436. .ps
  437. .if !\\n()l .if !\\$2 .nr )A \\n(.s
  438. .if !\\n()l .if \\$2 .nr )A \\n(.s*\\$2/\\n(]X
  439. .if \\n()l .nr )A \\n(.s+\\$2
  440. .ps \\n()A
  441. .ti -\w\\$1\ u
  442. \&\\$1\ \&\c
  443. .ps \\n(]b
  444. .ps \\n(]a
  445. ..
  446. .de U\" string suffix: underline string
  447. .if !\w\\$1u-.46m \&\\$1\v'.55m'\l'|0\(hy'\v'-.55m'\\$2
  448. .if \w\\$1u-.46m \&\\$1\v'.09m'\l'|0\(ul'\v'-.09m'\\$2
  449. ..
  450. .de DV\" a b c d: set vertical spacing for indent levels
  451. .if \w\\$1 .ds ]A \\$1
  452. .if \w\\$2 .ds ]B \\$2
  453. .if \w\\$3 .ds ]C \\$3
  454. .if \w\\$4 .ds ]D \\$4
  455. ..
  456. .de DF\" num font ...: define font positions
  457. .if \\n(.$-1 .ds )f "\\$2
  458. .if \\n(.$-1 .fp \\$1 \\$2
  459. .if \\n(.$-1 .ft \\$2
  460. .if \\n(.$-3 .fp \\$3 \\$4
  461. .if \\n(.$-5 .fp \\$5 \\$6
  462. .if \\n(.$-7 .fp \\$7 \\$8
  463. ..
  464. .
  465. .de SP
  466. .sp \\$1
  467. ..
  468. .de BR
  469. .br
  470. ..
  471. .de TA
  472. 'ta \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  473. ..
  474. .de CE
  475. .ce \\$1
  476. ..
  477. .de TI
  478. .ti \\$1
  479. ..
  480. .de FI
  481. .fi
  482. ..
  483. .de NF
  484. .nf
  485. ..
  486. .de AD
  487. 'ad \\$1
  488. ..
  489. .de NA
  490. 'na
  491. ..
  492. .de HY
  493. 'hy \\$1
  494. ..
  495. .de NH
  496. 'nh
  497. ..
  498. .de SO
  499. 'so \\$1
  500. ..
  501. .de NX
  502. 'nx \\$1
  503. ..
  504. .
  505. .ds )F FOIL
  506. .if \n(.A .ds )F FOIL
  507. .ds )N Bell\ Labs
  508. .ds )Y \n(mo/\n(dy/\n(yr
  509. .ds )B \(bu\ \|
  510. .ds )C \(em\ \|
  511. .ds )D \(bu\ \|
  512. .ds ]A .5v
  513. .ds ]B .5v
  514. .ds ]C .5v
  515. .ds ]D 0v
  516. .nr )G 11i-7.5p
  517. .nr )Q 5
  518. .nr )R 5
  519. .nr )S 3
  520. .nr ]X 6
  521. .nr )i 1
  522. .nr )w 0
  523. .em )z
  524. .DF 1 H