_k \" for columned output .nr $c 1 \" set first column \{\ . nr ?s 0 . rs ' @b .\} . @n\" \" begin the column .. . nr bm \\n(.Vu \{\ . nr _b (\\n(ppp*\\n($vu)/200u \" compute fudge factor (must be < 1P) . if \\n(_bu>((\\n(bmu-\\n(fmu-((\\n(tpp*\\n($vu)/100u))/2u) \ . nr _b (\\n(ppp*\\n($vu)/100u-\n(.Vu . nr _b +\\n(bmu .\} .nr _B \\n(_bu .ch @f .wh -\\n(_bu @f .nr _b +(\\n(ppp*\\n($vu)/100u \" add 1 paragraph v in case of sweep past .nr ?f 0 \" reset footnote flag \{\ . (f _\" \" reprocess footnotes which run off page . nf . |o . fi . )f . rm |o .\} .nr ?o 0 \{\ . nr _i \\n(.i . in 0 . |h\" \" output the table header . in \\n(_iu . rr _i . mk #T \" for tbl commands . ns .\} \{\ . nr ?a 0 \" output floating keep . @k |t . if \\n(?w \ . mk _k \" don't overstrike wide keeps . nr ?w 0 .\} .os .$H\" \" special column header macro .ns .. .ec \{\ . nr T. 1 \" for tbl commands (to output bottom line) . T# 1\" \" output the sides and bottom lines . br .\} .ev 2 .ce 0 \{\ . nr ?b 0 . @k |b\" \" output bottom of page tables .\} . @o\" \" output footnote if present . @c\" \" handle new column . @e\" \" new page .ev ..
.ls 1 .wh -\\n(_Bu @r .|f\{\ . di \" just in case triggered @r . if \\n(dn=0 \ \{\ . rm |o . nr ?o 0 . \} . nr dn \\n(_D . rr _D .\} .ch @r .. .rs .@O +\\n($lu+\\n($su .nr $c +1 .@n .. .@O \\n(_ou .rs .@t $f\" \" output footer title .nr ?h 0 .bp .. \{\ . sz \\n(tp\" \" set header/footer type fonts, etc. . @F \\n(tf . lt \\n(_Lu \" make title span entire page . nf . \\$1 . br .\} .. \{\ . if e .ds |z "\\*(|0 . if o .ds |z "\\*(|1 .\} ' tl \\*(|z .. \{\ . if e .ds |z "\\*(|0 . if o .ds |z "\\*(|1 .\} \{\ . if e .ds |z "\\*(|2 . if o .ds |z "\\*(|3 .\} ' tl \\*(|z .. .di |o \" save overflow footnote .nr ?o 1 .nr _D \\n(dn .ns .. *** COMMANDS WITH VARIANT DEFINITIONS ***
_k
.ns
..
.nr $c 1
.nr $m 1
.@O \\n(_ou
..
..
*** FLOATING TABLES AND NONFLOATING BLOCKS ***
.@D 4 \\$1 \\$2
.@(
..
.@)
.rr _0
. nr dn +(\\n(ppp*\\n($vu)/200u+\\n(zsu
.nr dl -\n(.H \" fudge factor necessary to make it work
\{\
. nr ?a 1
. if (\\n(dl>\\n($l)&(\\n($m>1) \
. nr ?w 1 \" mark wider than one column (top)
. ds |x |t
.\}
\{\
. nr ?b 1
. if (\\n(dl>\\n($l)&(\\n($m>1) \
. nr ?W 1 \" mark wider than one column (bottom)
. nr _b +\\n(dnu
. \" avoid moving @f back past the current position
. if \\n(.p-\\n(nl-\n(.V<\\n(_b \
. nr _b \\n(.p-\\n(nl-\n(.V
. ch @f -\\n(_bu
. ds |x |b
.\}
.da \\*(|x \" copy to save macro
.ls 1 .nr ?k 1 \!.if \\\\n(nl>(\\\\n(tm+2v) .ne \\n(dnu-\\n(zsu .|k\" \" and the body .ec .nr ?k 0 .da .ls 1 .xl \\n($lu .ev .. .ev 1.ls 1 .\\$1 .ec .ev .. .(z \\$1 \\$2 .. .)z \\$1 \\$2 .. .@D 3 \\$1 \\$2 .@( .. .@) . ne \\n(dnu \" make it all on one page .ls 1.|k .ec.xl \\n($lu .ev .. .@M .di |k \!'rs .. .nr ?k 1 .@C 1 .@F \\n(df .vs \\n(.sp*\\n($Vu/100u. fi \" set fill mode if "F" parameter . in 0 \{\ . in +\\n(biu . xl -\\n(biu .\} . ce 10000 .. .nr ?k 0 .di .ce 0 .. .di |c .. .di .ev 1 .ls 1.|c .ec .ls .ev .. *** BLOCK QUOTES (OR WHATEVER) AND LISTS ***.xl -\\n(qiu .sz \\n(qp .. .ev .nr ?k 0 .. .@D 3 \\$1 \\$2 .@M .. .ev .nr ?k 0 .. *** PREPROCESSOR SUPPORT ***
.@C 1
EQN
.ec \{\ . if "\\n(.z"|e" .tm Line \\n(c. -- Nested .EQ request . @D 1 "\\$1" "\\$2" . @C 2 . di |e .\} .ls 1.. \{\ . nr ?e 1 . sp \\n(esu .\} \{\ . nr ?e 0 . di . if \\n(dn \ . @q\" \" actual equation output . rm |e . ev .\} .. .nr _Q \\n(dnu .ev .@C 2\" \" .ev 2 may be jumbled from header . in (\\n(.lu+\\n($iu-\\n(dlu)/2u . in \\n($iu . in \\n(biu+\\n($iu . in 0\" drop into fill mode for text boxes \{\ . di |h \" save header part . nr ?T 1 .\} .ls 1 .ch @f -(\\n(_bu+1v) \" set pseudo-trap for bottom line . ch @f \\n(nlu+\n(.Vu .. .nr T. 0 .T# 0 .di .nr _T \\n(?T .nr ?T 0 .nr ?T \\n(_T .nr _i \\n(.i .|h\" \" put in the initial header .rr _i_q \{\ . rs . sp (\\n(_Qu-\\n(.vu)/2u . tl """\\*(|p" . rt \\n(_qu .\} .|e .rr _q .rr _Q ..
TBL
.@C 1#T .. .nr ?T 0 .ch @f -\\n(_bu \" reset pseudo-trap . ch @f \\n(nlu+\n(.Vu .ev .re .. ..
REFER
.[\\$1 .. .(f .ip "\\*([F.\0" .@p .)f .. .(f .ip "\\*([F.\0" \\*([A, \{\ . ie \\n([P>0 pp.\& . el p.\& \\*([P .\} (\\*([D). .)f .. .(f .ip "\\*([F.\0" \\*([A, \\f2\\*([T,\\f1 \\*([I\c (\\*([D). .)f .. .(f .ip "\\*([F.\0" \\*([A, \\*(lq\\*([T,\\*(rq in \\f2\\*([B\\f1, \c (\\*([D). .)f .. .(f .ip "\\*([F.\0" \\*([A, \\*(lq\\*([T,\\*(rq \\*([R\c (\\*([D). .)f .. .(f .ip "\\*([F.\0" \\*([A, \\f2\\*([T\\f1, .)f .. .$p References .lp .. .. .. \{\ . ds [. \s-2\v'-.4m'\f1 . ds .] \v'.4m'\s+2 .\} \{\ . ds [. " [ . ds .] ] .\}
IDEAL
.nr g7 \\n(.u .ls 1 .. .ls .. .ls ..
PIC
.nr g7 \\$2 .nr g7 \\n(.u .ls 1 .. .ls ..
GREMLIN
.nr g7 (\\n(.lu-\\n(g1u)/2u .nr g7 \\n(.u .ls 1.. .GF .. .ls .. *** FONT AIDS ***. ds |X \\$1 .xl -(\\n(xuu+\w'...'u) .di |x .%\\*(|X .di .xl \\n($lu .ev
.vs \\n(.sp*\\n($vu/100u \" default vs at pointsize + 20% .. .. .. . ds _F \\n(.f \{\ . ie \\n(.f<100&\n(.g \ . ds _F (\\n(.f . el \ . ds _F P .\} .. .@E .. .@E .. .@E .. .@E .. .@E .. \\$1\l'|0\(ul'\\$2 .. a better version of u
\Z'\\$1'\v'.25m'\D'l \w'\\$1'u 0'\v'-.25m'\\$2 .. \\*(lq\\$1\\*(rq\\$2 .. \k~\(br\|\\$1\|\(br\l'|\\n~u\(rn'\l'|\\n~u\(ul'\^\\$2 .. \s-1\\$1\\s0\\$2 .. .nr ~ \\$1 . ft \\n~ .rr ~ .. *** FOOTNOTING ***
.ec \{\ . nr _D \\n(dn . nr _0 1v+\\n(nlu . ev 2 . da |f . in 0 . xl \\n($lu-\\n(fuu . @F \\n(ff . sz \\n(fp . vs \\n(.sp*\\n($Vu/100u . if !\\n(?f \ \{\ . nr _b +1v \" allow space for $s . $s . \} . br . if \\n(.p-\\n(_b-\\n(_0-\\n(.h-1v-\\n(fs<0 \ \{\ . da\" \" won't fit on page at all . bc . if !\\n(?f \ . rm |f . da |f next five lines could be dropped if headers had their own environment
. in 0 \" reset everything from .bc . xl \\n($lu-\\n(fuu . @F \\n(ff . sz \\n(fp . vs \\n(.sp*\\n($Vu/100u . if !\\n(?f \ . $s . br . \} . rr _0 . sp \\n(fsu . nr ?f 1 . fi . if !"\\$1"_" \ . ti \\n(fiu . if \n@>2 .tm << (f $f=\\n($f .\} \{\ . ev 2 . in 0 . xl \\n($lu-\\n(fuu . @F \\n(ff . sz \\n(fp . vs \\n(.sp*\\n($Vu/100u . fi \!.(f \\$1 \!.@N .\} .. .. \{\ . if \\n* \ . nr $f +1 . ds * \\*{\\n($f\\*}\k* . nr * 0 . in 0 . da . ev . if \\n(_w<\\n(dl \ . nr _w \\n(dl \" compute maximum fn width . nr _b +\\n(dn . ch @f -\\n(_bu . if \\n(.p-\\n(_b<=\\n(nl \ . ch @f \\n(nlu+\n(.Vu . nr dn \\n(_D . rr _D .\} \{\ . br \!.)f . ev .\} .. .@R ff . nr ff 1 \" footnote font: Times Roman .@R fp . nr fp 8 \" footnote pointsize \l'2i' .. *** DELAYED TEXT ***
.am |d )d .. . nr $d +1 .rr # .. .|d .nr $d 1 1 .. *** INDEXES (TABLE OF CONTENTS) ***
.nr _x 0 1 .af _x a . ds |X \\$1 . nr _z 0 . nr _z 1 .@\\n(_z .. .am %\\*(|X )x .. .. \{\ . ds |x \\n% . if \\n(.$>0 \ . ds |x \\$1 . if "\\*(|x"_" \ . ig .. . am %\\*(|X .. . if \w"\\$2">(\\n(.l-\\n(.i-\\n(.k) \ . ti +\\n(xuu \\\\a\\\\t\\$2\\*(|x ... . rm |x . rm |X .\} \{\ \!.(x \\*(|X \!\\\\*(=\\n(_x\\\\ \!.)x \\$1 \\$2 \!.rm =\\n(_x .\} .. .@C 2 .ls 1 .vs \\n(.sp*\\n($Vu/100u.|x.. .ep\" \" force out footnotes \{\ . bp \" force out a table or more footnote . rs . ep .\} .nr ?C 1 .nr $f 1 1 . pn 1 .bp .rs . $c "\\$1" . sp 3 .. .nr _0 0 . nr _0 1 \" chapter . nr _0 11 \" renumbered chapter . nr _0 2 \" appendix . nr _0 12 \" renumbered appendix . nr _0 3 \" preliminary material . nr _0 4 \" bibliographic material . nr _0 5 \" abstract . tm Line \\n(c. -- Bad mode to .++ .nr ?R 0 .\{ . nr ?R 1 . nr _0 -10 .\} .nr ch 0 1 . pn 1 \" must do before .ep . pn 1 \" must do before .ep .ep\" \" end page for correct page number types \{\ . af ch 1 . af % 1 .\} \{\ . af ch A . af % 1 .\} . af % i . af % 1 . af % 1 . he \\$2 .nr _M \\n(_0 .rr _0 .. .sz 12 .ce 1000 . nr ch +1 . sp 4-\\n(.L .ce 0 .sz . $C Chapter \\n(ch "\\$1" . $C Appendix \\n(ch "\\$1" .. .hx .bp .rs .. *** DATES ***
.nr y2 \n(yr%100 .af y2 00 .nr y4 \n(yr+1900 *** PARAMETRIC INITIALIZATIONS ***
.rr x .nr $v \n(.v00+\n(.sp-1/\n(.sp \" vs as percentage of ps for .sz request .nr $V \n($v \" same for displays & footnotes .nr hm 4v \" header margin .nr tm 7v \" top margin .nr bm 6v \" bottom margin .nr fm 3v \" footer margin .nr tf 3 \" title font: (real) Times Bold .nr tp 10 \" title point size .nr bi 4m \" indent for blocks .nr pi 5n \" indent for paragraphs .nr pf 1 \" normal text font .nr pp 10 \" normal text point size .nr qi 4n \" indent for quotes .nr qp -1 \" down one point .nr ii 5n \" indent for .ip's and .np's .nr $m 1 \" max number of columns .nr $s 4n \" column separation .nr sf 3 \" section font -- Times Bold .nr sp 10 \" section title pointsize .nr ss 12p \" section prespacing .nr si 0 \" section indent *** OTHER INITIALIZATION ***
GNU pic sets this register to 1, to indicate that \x should not be used.
.@R 0x for compatibility with traditional -me
(the first will work only in compatibility mode)
Avoid warnings from groff -ww.
.@S |0 .@S |1 .@S |2 .@S |3 .@S $H .@S $0 .@S $1 .@S $2 .@S $3 .@S $4 .@S $5 .@S $6 .@S $7 .@S $8 .@S $9 .@S .. .@R po\" \" simulated page offset .@R $0\" \" section depth .@R $i\" \" paragraph base indent .@R $p\" \" numbered paragraph number .@R $r\" \" ratio of vs to ps (may override $v) .@R $R\" \" same for displays (may override $V) .@R df\" \" display font: same as surrounding text .@R so\" \" additional section title offset .@R fu\" \" footnote undent .@R bt\" \" block keep threshold .@R *\" \" has \** been referenced? .@R ?a\" \" pending floating keep at page top? .@R ?b\" \" pending floating keep at page bottom? .@R ?C\" \" at chapter header? .@R ?e\" \" in equation? .@R ?H\" \" suppress headers and footers next page? .@R ?I\" \" has the header trap been sprung? .@R ?n\" \" n1 mode? .@R ?o\" \" footnote overflow? .@R ?R\" \" renumbered chapter? .@R ?s\" \" skip next page? .@R ?T\" \" inside .TS H? .@R ?W\" \" wide floating keep at page bottom? .@R ?w\" \" wide floating keep at page top? .nr fi 0.3i .nr _o \n(.o .nr $b 3 \" bold .nr ps 0.35v .nr bs \n(ps \" block pre/post spacing .nr qs \n(ps \" quote pre/post spacing .nr zs 1v \" float-block pre/postspacing .nr xs 0.2v \" index prespacing .nr xu 0.5i \" index undent .nr fs 0.2v \" footnote prespacing .nr es 0.5v \" equation pre/postspacing .wh 0 @h \" set header .nr $l \n(.lu \" line length .nr _L \n(.lu \" line length of page .nr $c 1 \" current column number .nr $f 1 1 \" footnote number .nr $d 1 1 \" delayed text number .nr _M 1 \" chapter mode is chapter .em @z *** FOREIGN LETTERS AND SPECIAL CHARACTERS ***
\" accents
\" umlaut
\" circumflex and tilde
\" cedilla and czech
\" Norwegian A or angstrom
\" there exists, for all
.lt 6.0i .tm The \\$1 macro has been removed from this version of the -me macros. .. .@U lo .. .@U th .. .@U ac ..