.\" "/. .\" mg macro package for troff "/. .\" created by John Ankarström "/. .\" "/. .\" Permission to use, copy, modify and/or "/. .\" distribute this software for any purpose "/. .\" with or without fee is hereby granted. "/. .\" "/. .\" For an index of the macros defined in "/. .\" this file, issue `grep -n [-]- g.tmac'. "/. .\" "/. .\" Place new macros in alphabetical order. "/. .\" "/. .\" Do not use .ev and .evc outside wrapper "/. .\" macros like _e. "/. .\" "/. . .eo \" disable backslash escapes . .\" Internal macros ---------------------------- . .\" _a -- setup document .de _a . . \" configure initial options . _nr mt 1i \" top margin . _nr mb 1i \" bottom margin . _ds tt '''' \" text in top margin . _ds tb ''%'' \" text in bottom margin . . \" initialize document . wh 0 _ht . wh -\n(mbu _ft . sp 1u \" trigger header . ns . . \" configure environments . _e d \" date . _ec 0 . nr sp 0.4v . ad c . _e h \" heading . _ec 0 . nr sp 1.2v . ps +1p . ft B . _e l \" literal display . _ec 0 . nr sp 0.3v . nf . in 18p . fam C . ps -1p . vs -1p . _e n \" name (of author) . _ec 0 . nr sp 0.4v . ad c . _e p \" paragraph . _ec 0 . nr sp 0.3v . nr ti 18p . ad b . _e q \" quotation . _ec 0 . nr sp 0.3v . nr ti 1c . in 18p . ps -1p . vs -1p . _e s \" section heading . _ec 0 . nr sp 1v . ft B . _e t \" title . _ec 0 . ps +4p . vs +2p . ft B . ad c . _e . . \" configure special environments . _E _f \" footnote . _ec 0 . ps -2p . \" do not change vs! . _E _m \" margins (header, footer) . _ec 0 . _E .. . .\" _ds -- set default string value .de _ds . if '\*[\$1]'' .ds \$1 \$2 .. . .\" _E -- just set environment .de _E . ev \$1 .. . .\" _e -- set environment .de _e . . \" initialize document? . if '\n(_a'0' \{\ . nr _a 1 . _a . \} . . \" save special environment variables . if !'\n[.ev]'0' \{\ . nr \n[.ev]_sp \n(sp \" vertical space before any environment . nr \n[.ev]_sq \n(sq \" vertical space before different environment . nr \n[.ev]_ti \n(ti \" first line indentation . ev . \} . . \" keep track of previous and new environment . ds _penv \*[_env] . ds _env \$1 . . \" post-environment operations . if !'\$1'' \{\ . \" add small space after title . if '\*[_penv]'t' \{\ . if '\*[_env]'n' .sp 0.1v . if '\*[_env]'d' .sp 0.1v . \} . . \" add space after date/name/title . if !'\*[_env]'n' .if !'\*[_env]'d' \{\ . nr _dnt 0 . ie '\*[_penv]'t' .nr _dnt 1 . el .ie '\*[_penv]'n' .nr _dnt 1 . el .if '\*[_penv]'d' .nr _dnt 1 . if \n[_dnt]==1 \{\ . sp 0.5i . ns . \} . \} . \} . . \" activate new environment . if !'\$1'' \{\ . ev \$1 . nr sp \n[\n[.ev]_sp] . nr sq \n[\n[.ev]_sq] . nr ti \n[\n[.ev]_ti] . sp \n(spu . if !'\*[_env]'\*[_penv]' .sp \n(squ . \} .. . . \" _ec -- copy environment .de _ec . evc \$1 . nr sp \n[\$1_sp] . nr sq \n[\$1_sq] . nr ti \n[\$1_ti] .. . .\" _ft -- footer trap .de _ft . . \" collect overflowed text . di _rest . br . di . . \" print footer . _E _m . sp \n(mbu-2v-24p . tl \*(tb . bp . ns . . \" print overflowed text on next page . _rest .. . .\" _ht -- header trap .de _ht . _E _m . rt 0 . sp 24p . tl \*(tt . rt 0 . sp \n(mtu . _E \*[_env] .. . .\" _nt -- footnote trap .de _nt . _E _m . . \" print collected footnotes ___________________ . br . _n . br . . \" clear footnotes . ch _nt . nr _dn 0 . box _n . box .. . .\" _nr -- set default numeric value .de _nr . if \n[\$1]=0 .nr \$1 \$2 .. . . .\" Inline macros ------------------------------ . .\" b -- bold font .de b \&\$3\fB\$1\fP\$2 .. . .\" c -- constant-width font .de c . . \" copy family and point size from l environment . _E l . ds _fam \n[.fam] . nr _s \n(.s . _E . \&\$3\c . fam \*[_fam] . ps \n(_s \&\$1\c . fam . ps \$2 .. . .\" i -- italic font .de i \&\$3\fI\$1\fP\$2 .. . .\" x -- bold italic font .de x \&\$3\f(BI\$1\fP\$2 .. . . .\" Hybrid macros ------------------------------ . .\" q -- quotation .de q . . \" inline . ie !'\$1'' \&\$3\(lq\$1\(rq\$2 . . \" block . el \{\ . br . _e q . ti \n(tiu . \} .. . . .\" Environment macros ------------------------- . . .\" d -- date .de d . br . _e d . af mo 00 . af dy 00 . ie '\$1'' \n[year]-\n(mo-\n(dy . el \$1 . af mo 1 . af dy 1 .. .\" h -- heading .de h . br . ne 3 \" may need to be adjusted . _e h . .. .\" l -- literal display .de l . br . _e l .. .\" n -- name (of author) .de n . br . _e n .. . .\" p -- paragraph .de p . br . _e p . if '\*[_penv]'p' .ti \n(tiu .. . .\" s -- subheading .de s . br . ne 3 \" may need to be adjusted . _e s .. . .\" t -- title .de t . br . _e t .. . . .\" Other macros ------------------------------- . .\" ( -- begin footnote .de ( . if !'\$1'' \&\$1\c . . \" increment and print number . nr _n \n(_n+1 \v'-.3m'\s'\En(.s*80/100'\n(_n\s0\v'.3m'\c . . \" switch environment and capture footnote . _E _f . boxa _n \v'-.3m'\s'\En(.s*80/100'\n(_n\s0\v'.3m' .. . .\" ) -- end footnote .de ) . br \!.br . boxa . _E . ie !'\$1'' \&\$1 . el \& . . \" print footnote at bottom of page . nr _dn +\n(dnu . ch _nt . if !'\n(dn'0' .wh -\n[_dn]u-1i-1v _nt .. . .ec \" re-enable backslash escapes