home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d0xx / d046 / proffmacros.lha / ProffMacros / Andrews / macros.mm next >
Encoding:
Text File  |  1986-12-08  |  5.4 KB  |  387 lines

  1. .#
  2. .#    MM macro package for proff
  3. .#
  4. .# Set escape character to backslash
  5. .ec \
  6. .#
  7. .# Set control variables to default values.
  8. .#
  9. .vs Pt 1
  10. .vs Pi 5
  11. .vs Li 5
  12. .vs Si 5
  13. .vs Ds 1
  14. .#
  15. .vs SAc 0
  16. .vs SAd 0
  17. .nojustify
  18. .vs Lm1 o
  19. .vs Lm2 o
  20. .vs Lm3 o
  21. .vs Lm4 o
  22. .vs Lt1 B
  23. .vs Lt2 B
  24. .vs Lt3 B
  25. .vs Lt4 B
  26. .#
  27. .# Basic paragraph macros
  28. .#
  29. .# .P [type]    works properly, but doesn't handle paragraph type 2.
  30. .#        Variable "Pt" sets default type (used if no arg given).
  31. .#
  32. .de P
  33. .doP$1
  34. .en
  35. .# doP called if no argument given to P
  36. .de doP
  37. .doP${Pt}
  38. .en
  39. .# do a non-indented paragraph
  40. .de doP0
  41. .ne 2
  42. .sp 1
  43. .en
  44. .# do an indented paragraph
  45. .de doP1
  46. .ne 2
  47. .sp 1
  48. .ti +${Pi}
  49. .en
  50. .#
  51. .# SP [n]    works, but doesn't accumulate over successive calls
  52. .#
  53. .de SP
  54. .sp $1
  55. .en
  56. .#
  57. .# SK        no argument allowed, can only be used to skip to next page
  58. .#
  59. .de SK
  60. .bp
  61. .en
  62. .#
  63. .# SA [arg]    works as documented, along with .na and .ad
  64. .#
  65. .de SA
  66. .doSA$1
  67. .en
  68. .# doSA - if no arg given to SA; revert to default setting
  69. .de doSA
  70. .vs SAc ${SAd}
  71. .setsa${SAc}
  72. .en
  73. .#
  74. .de doSA0
  75. .vs SAc 0
  76. .vs SAd 0
  77. .setsa0
  78. .en
  79. .#
  80. .de doSA1
  81. .vs SAc 1
  82. .vs SAd 1
  83. .setsa1
  84. .en
  85. .#
  86. .de setsa0
  87. .nojustify
  88. .en
  89. .#
  90. .de setsa1
  91. .justify
  92. .en
  93. .#
  94. .# na and ad for nroff compatibility
  95. .#
  96. .de na
  97. .nojustify
  98. .en
  99. .de ad
  100. .justify
  101. .en
  102. .#
  103. .# Numbered Headings
  104. .#
  105. .# .H level text... (only 8 words allowed following level)
  106. .#
  107. .#  To effectively set the Cl, Hb, Hs, and Ej registers, make minor
  108. .#  modifications to the level-specific macros below. Table of contents
  109. .#  lines are included for all levels, but commented out for levels 3-7.
  110. .#
  111. .de H
  112. .H$1 $2 $3 $4 $5 $6 $7 $8 $9
  113. .en
  114. .#
  115. .de H1
  116. .nr a +1
  117. .nr b  0
  118. .nr c  0
  119. .nr d  0
  120. .nr e  0
  121. .nr f  0
  122. .nr g  0
  123. .sp 2
  124. .ne 3
  125. .bd
  126. @na. $1 $2 $3 $4 $5 $6 $7 $8 $9
  127. .P
  128. .cl
  129. .cl 1 @na. $1 $2 $3 $4 $5 $6 $7 $8 $9
  130. .en
  131. .#
  132. .de H2
  133. .nr b +1
  134. .nr c  0
  135. .nr d  0
  136. .nr e  0
  137. .nr f  0
  138. .nr g  0
  139. .sp
  140. .ne 3
  141. .bd
  142. @na.@nb $1 $2 $3 $4 $5 $6 $7 $8 $9
  143. .P
  144. .cl
  145. .cl 2 @na.@nb $1 $2 $3 $4 $5 $6 $7 $8 $9
  146. .en
  147. .#
  148. .de H3
  149. .nr c +1
  150. .nr d  0
  151. .nr e  0
  152. .nr f  0
  153. .nr g  0
  154. .sp
  155. .ne 3
  156. .ul
  157. @na.@nb.@nc $1 $2 $3 $4 $5 $6 $7 $8 $9   
  158. .#  .cl 3 @na.@nb.@nc $1 $2 $3 $4 $5 $6 $7 $8 $9
  159. .en
  160. .#
  161. .de H4
  162. .nr d +1
  163. .nr e  0
  164. .nr f  0
  165. .nr g  0
  166. .sp
  167. .ne 3
  168. .ul
  169. @na.@nb.@nc.@nd $1 $2 $3 $4 $5 $6 $7 $8 $9   
  170. .#  .cl 4 @na.@nb.@nc.@nd $1 $2 $3 $4 $5 $6 $7 $8 $9
  171. .en
  172. .#
  173. .de H5
  174. .nr e +1
  175. .nr f  0
  176. .nr g  0
  177. .sp
  178. .ne 3
  179. .ul
  180. @na.@nb.@nc.@nd.@ne $1 $2 $3 $4 $5 $6 $7 $8 $9   
  181. .#  .cl 5 @na.@nb.@nc.@nd.@ne $1 $2 $3 $4 $5 $6 $7 $8 $9
  182. .en
  183. .#
  184. .de H6
  185. .nr f +1
  186. .nr g  0
  187. .sp
  188. .ne 3
  189. .ul
  190. @na.@nb.@nc.@nd.@ne.@nf $1 $2 $3 $4 $5 $6 $7 $8 $9   
  191. .#  .cl 6 @na.@nb.@nc.@nd.@ne.@nf $1 $2 $3 $4 $5 $6 $7 $8 $9
  192. .en
  193. .#
  194. .de H6
  195. .nr g +1
  196. .sp
  197. .ne 3
  198. .ul
  199. @na.@nb.@nc.@nd.@ne.@nf.@ng $1 $2 $3 $4 $5 $6 $7 $8 $9   
  200. .#  .cl 7 @na.@nb.@nc.@nd.@ne.@nf.@ng $1 $2 $3 $4 $5 $6 $7 $8 $9
  201. .en
  202. .#
  203. .# .HU text... (only 9 words allowed following level)
  204. .#
  205. .# This is basically a copy of the appropriate .Hn macro from above
  206. .# but without a numbered heading. To effectively change the Hu register
  207. .# (default=2), grab the appropriate macro from above and modify slightly.
  208. .#
  209. .de HU
  210. .nr b +1
  211. .nr c  0
  212. .nr d  0
  213. .nr e  0
  214. .nr f  0
  215. .nr g  0
  216. .sp
  217. .ne 3
  218. .bd
  219. $1 $2 $3 $4 $5 $6 $7 $8 $9
  220. .P
  221. .cl
  222. .cl 2 $1 $2 $3 $4 $5 $6 $7 $8 $9
  223. .en
  224. .#
  225. .# Lists
  226. .#
  227. .#  Crude list implementation. No argument allowed for DL, BL, or LI.
  228. .#  ML must have only a single argument. AL is supported but always
  229. .#  generates a numbered list regardless of its arguments. All lists
  230. .#  are indented by the value of variable "Li" (default 5). Lists may
  231. .#  be nested up to four deep, but no more than one may be numbered.
  232. .#  Numbered lists with more than 9 items won't be properly aligned.
  233. .#
  234. .de BL
  235. .lpushm o
  236. .lpusht B
  237. .doL
  238. .en
  239. .#
  240. .de DL
  241. .lpushm -
  242. .lpusht B
  243. .doL
  244. .en
  245. .#
  246. .de ML
  247. .lpushm $1
  248. .lpusht B
  249. .doL
  250. .en
  251. .#
  252. .de AL
  253. .lpusht N
  254. .nr l  0
  255. .doL
  256. .en
  257. .#
  258. .#
  259. .de doL
  260. .in +${Li}
  261. .en
  262. .#
  263. .#
  264. .de LI
  265. .doLI${Lt1}
  266. .en
  267. .#
  268. .de doLIB
  269. .sp
  270. .ti -2
  271. ${Lm1}
  272. .en
  273. .#
  274. .de doLIN
  275. .nr l +1
  276. .sp
  277. .ti -4
  278. @nl.
  279. .en
  280. .#
  281. .de LE
  282. .in -${Li}
  283. .lpopm
  284. .lpopt
  285. .en
  286. .#
  287. .de lpushm
  288. .vs Lm4 ${Lm3}
  289. .vs Lm3 ${Lm2}
  290. .vs Lm2 ${Lm1}
  291. .vs Lm1 $1
  292. .en
  293. .de lpopm
  294. .vs Lm1 ${Lm2}
  295. .vs Lm2 ${Lm3}
  296. .vs Lm3 ${Lm4}
  297. .vs Lm4 "List Overflow"
  298. .en
  299. .de lpusht
  300. .vs Lt4 ${Lt3}
  301. .vs Lt3 ${Lt2}
  302. .vs Lt2 ${Lt1}
  303. .vs Lt1 $1
  304. .en
  305. .de lpopt
  306. .vs Lt1 ${Lt2}
  307. .vs Lt2 ${Lt3}
  308. .vs Lt3 ${Lt4}
  309. .vs Lt4 B
  310. .en
  311. .#
  312. .# Displays
  313. .#
  314. .#  The basic characteristic of displays, that they aren't split across
  315. .#  pages, can't be done automatically in proff. This can be done
  316. .#  manually by putting in a .ne before the display.
  317. .#  Floating displays aren't supported either, so DS and DF are identical.
  318. .#  Both the "format" and "fill" arguments to DS and DF are supported.
  319. .#  The Si variable gives the standard indentation amount, and Ds gives
  320. .#  the number of blank lines before and after the display.
  321. .#
  322. .de DF
  323. .DS $1 $2
  324. .en
  325. .#
  326. .de DS
  327. .doDSformat$1
  328. .doDSfill$2
  329. .sp ${Ds}
  330. .en
  331. .#
  332. .de DE
  333. .ce off
  334. .sp ${Ds}
  335. .in -${Ei}
  336. .en
  337. .#
  338. .de doDSformat
  339. .vs Ei 0
  340. .en
  341. .de doDSformat0
  342. .vs Ei 0
  343. .en
  344. .de doDSformat1
  345. .in +${Si}
  346. .vs Ei ${Si}
  347. .en
  348. .de doDSformat2
  349. .vs Ei 0
  350. .ce on
  351. .en
  352. .#
  353. .de doDSfill
  354. .nf
  355. .en
  356. .de doDSfill0
  357. .nf
  358. .en
  359. .de doDSfill1
  360. .fi
  361. .en
  362. .#
  363. .# Table of Contents
  364. .#
  365. .#  TC accepts no arguments. It breaks to a new page, calls the user
  366. .#  macro TX and dumps the table of contents. Page numbers are restarted
  367. .#  at 1 in roman numeral mode. The default TX macro does nothing and
  368. .#  will generally be replaced by something to print the title of the
  369. .#  document. Default headers, footers, line spacing, etc. can be
  370. .#  overridden in the TX macro.
  371. .#
  372. .de TX
  373. .en
  374. .de TC
  375. .ls 1
  376. .bp 1
  377. .pn roman
  378. .he ////
  379. .fo //- # -//
  380. .TX
  381. .sp
  382. .ce
  383. Table of Contents
  384. .sp
  385. .pc
  386. .en
  387.