home *** CD-ROM | disk | FTP | other *** search
- .#
- .# MM macro package for proff
- .#
- .# Set escape character to backslash
- .ec \
- .#
- .# Set control variables to default values.
- .#
- .vs Pt 1
- .vs Pi 5
- .vs Li 5
- .vs Si 5
- .vs Ds 1
- .#
- .vs SAc 0
- .vs SAd 0
- .nojustify
- .vs Lm1 o
- .vs Lm2 o
- .vs Lm3 o
- .vs Lm4 o
- .vs Lt1 B
- .vs Lt2 B
- .vs Lt3 B
- .vs Lt4 B
- .#
- .# Basic paragraph macros
- .#
- .# .P [type] works properly, but doesn't handle paragraph type 2.
- .# Variable "Pt" sets default type (used if no arg given).
- .#
- .de P
- .doP$1
- .en
- .# doP called if no argument given to P
- .de doP
- .doP${Pt}
- .en
- .# do a non-indented paragraph
- .de doP0
- .ne 2
- .sp 1
- .en
- .# do an indented paragraph
- .de doP1
- .ne 2
- .sp 1
- .ti +${Pi}
- .en
- .#
- .# SP [n] works, but doesn't accumulate over successive calls
- .#
- .de SP
- .sp $1
- .en
- .#
- .# SK no argument allowed, can only be used to skip to next page
- .#
- .de SK
- .bp
- .en
- .#
- .# SA [arg] works as documented, along with .na and .ad
- .#
- .de SA
- .doSA$1
- .en
- .# doSA - if no arg given to SA; revert to default setting
- .de doSA
- .vs SAc ${SAd}
- .setsa${SAc}
- .en
- .#
- .de doSA0
- .vs SAc 0
- .vs SAd 0
- .setsa0
- .en
- .#
- .de doSA1
- .vs SAc 1
- .vs SAd 1
- .setsa1
- .en
- .#
- .de setsa0
- .nojustify
- .en
- .#
- .de setsa1
- .justify
- .en
- .#
- .# na and ad for nroff compatibility
- .#
- .de na
- .nojustify
- .en
- .de ad
- .justify
- .en
- .#
- .# Numbered Headings
- .#
- .# .H level text... (only 8 words allowed following level)
- .#
- .# To effectively set the Cl, Hb, Hs, and Ej registers, make minor
- .# modifications to the level-specific macros below. Table of contents
- .# lines are included for all levels, but commented out for levels 3-7.
- .#
- .de H
- .H$1 $2 $3 $4 $5 $6 $7 $8 $9
- .en
- .#
- .de H1
- .nr a +1
- .nr b 0
- .nr c 0
- .nr d 0
- .nr e 0
- .nr f 0
- .nr g 0
- .sp 2
- .ne 3
- .bd
- @na. $1 $2 $3 $4 $5 $6 $7 $8 $9
- .P
- .cl
- .cl 1 @na. $1 $2 $3 $4 $5 $6 $7 $8 $9
- .en
- .#
- .de H2
- .nr b +1
- .nr c 0
- .nr d 0
- .nr e 0
- .nr f 0
- .nr g 0
- .sp
- .ne 3
- .bd
- @na.@nb $1 $2 $3 $4 $5 $6 $7 $8 $9
- .P
- .cl
- .cl 2 @na.@nb $1 $2 $3 $4 $5 $6 $7 $8 $9
- .en
- .#
- .de H3
- .nr c +1
- .nr d 0
- .nr e 0
- .nr f 0
- .nr g 0
- .sp
- .ne 3
- .ul
- @na.@nb.@nc $1 $2 $3 $4 $5 $6 $7 $8 $9
- .# .cl 3 @na.@nb.@nc $1 $2 $3 $4 $5 $6 $7 $8 $9
- .en
- .#
- .de H4
- .nr d +1
- .nr e 0
- .nr f 0
- .nr g 0
- .sp
- .ne 3
- .ul
- @na.@nb.@nc.@nd $1 $2 $3 $4 $5 $6 $7 $8 $9
- .# .cl 4 @na.@nb.@nc.@nd $1 $2 $3 $4 $5 $6 $7 $8 $9
- .en
- .#
- .de H5
- .nr e +1
- .nr f 0
- .nr g 0
- .sp
- .ne 3
- .ul
- @na.@nb.@nc.@nd.@ne $1 $2 $3 $4 $5 $6 $7 $8 $9
- .# .cl 5 @na.@nb.@nc.@nd.@ne $1 $2 $3 $4 $5 $6 $7 $8 $9
- .en
- .#
- .de H6
- .nr f +1
- .nr g 0
- .sp
- .ne 3
- .ul
- @na.@nb.@nc.@nd.@ne.@nf $1 $2 $3 $4 $5 $6 $7 $8 $9
- .# .cl 6 @na.@nb.@nc.@nd.@ne.@nf $1 $2 $3 $4 $5 $6 $7 $8 $9
- .en
- .#
- .de H6
- .nr g +1
- .sp
- .ne 3
- .ul
- @na.@nb.@nc.@nd.@ne.@nf.@ng $1 $2 $3 $4 $5 $6 $7 $8 $9
- .# .cl 7 @na.@nb.@nc.@nd.@ne.@nf.@ng $1 $2 $3 $4 $5 $6 $7 $8 $9
- .en
- .#
- .# .HU text... (only 9 words allowed following level)
- .#
- .# This is basically a copy of the appropriate .Hn macro from above
- .# but without a numbered heading. To effectively change the Hu register
- .# (default=2), grab the appropriate macro from above and modify slightly.
- .#
- .de HU
- .nr b +1
- .nr c 0
- .nr d 0
- .nr e 0
- .nr f 0
- .nr g 0
- .sp
- .ne 3
- .bd
- $1 $2 $3 $4 $5 $6 $7 $8 $9
- .P
- .cl
- .cl 2 $1 $2 $3 $4 $5 $6 $7 $8 $9
- .en
- .#
- .# Lists
- .#
- .# Crude list implementation. No argument allowed for DL, BL, or LI.
- .# ML must have only a single argument. AL is supported but always
- .# generates a numbered list regardless of its arguments. All lists
- .# are indented by the value of variable "Li" (default 5). Lists may
- .# be nested up to four deep, but no more than one may be numbered.
- .# Numbered lists with more than 9 items won't be properly aligned.
- .#
- .de BL
- .lpushm o
- .lpusht B
- .doL
- .en
- .#
- .de DL
- .lpushm -
- .lpusht B
- .doL
- .en
- .#
- .de ML
- .lpushm $1
- .lpusht B
- .doL
- .en
- .#
- .de AL
- .lpusht N
- .nr l 0
- .doL
- .en
- .#
- .#
- .de doL
- .in +${Li}
- .en
- .#
- .#
- .de LI
- .doLI${Lt1}
- .en
- .#
- .de doLIB
- .sp
- .ti -2
- ${Lm1}
- .en
- .#
- .de doLIN
- .nr l +1
- .sp
- .ti -4
- @nl.
- .en
- .#
- .de LE
- .in -${Li}
- .lpopm
- .lpopt
- .en
- .#
- .de lpushm
- .vs Lm4 ${Lm3}
- .vs Lm3 ${Lm2}
- .vs Lm2 ${Lm1}
- .vs Lm1 $1
- .en
- .de lpopm
- .vs Lm1 ${Lm2}
- .vs Lm2 ${Lm3}
- .vs Lm3 ${Lm4}
- .vs Lm4 "List Overflow"
- .en
- .de lpusht
- .vs Lt4 ${Lt3}
- .vs Lt3 ${Lt2}
- .vs Lt2 ${Lt1}
- .vs Lt1 $1
- .en
- .de lpopt
- .vs Lt1 ${Lt2}
- .vs Lt2 ${Lt3}
- .vs Lt3 ${Lt4}
- .vs Lt4 B
- .en
- .#
- .# Displays
- .#
- .# The basic characteristic of displays, that they aren't split across
- .# pages, can't be done automatically in proff. This can be done
- .# manually by putting in a .ne before the display.
- .# Floating displays aren't supported either, so DS and DF are identical.
- .# Both the "format" and "fill" arguments to DS and DF are supported.
- .# The Si variable gives the standard indentation amount, and Ds gives
- .# the number of blank lines before and after the display.
- .#
- .de DF
- .DS $1 $2
- .en
- .#
- .de DS
- .doDSformat$1
- .doDSfill$2
- .sp ${Ds}
- .en
- .#
- .de DE
- .ce off
- .sp ${Ds}
- .in -${Ei}
- .en
- .#
- .de doDSformat
- .vs Ei 0
- .en
- .de doDSformat0
- .vs Ei 0
- .en
- .de doDSformat1
- .in +${Si}
- .vs Ei ${Si}
- .en
- .de doDSformat2
- .vs Ei 0
- .ce on
- .en
- .#
- .de doDSfill
- .nf
- .en
- .de doDSfill0
- .nf
- .en
- .de doDSfill1
- .fi
- .en
- .#
- .# Table of Contents
- .#
- .# TC accepts no arguments. It breaks to a new page, calls the user
- .# macro TX and dumps the table of contents. Page numbers are restarted
- .# at 1 in roman numeral mode. The default TX macro does nothing and
- .# will generally be replaced by something to print the title of the
- .# document. Default headers, footers, line spacing, etc. can be
- .# overridden in the TX macro.
- .#
- .de TX
- .en
- .de TC
- .ls 1
- .bp 1
- .pn roman
- .he ////
- .fo //- # -//
- .TX
- .sp
- .ce
- Table of Contents
- .sp
- .pc
- .en
-