From 6fef85228ad83cf393db26ee5d40922558cdfb63 Mon Sep 17 00:00:00 2001 From: Bill Joy Date: Sun, 16 Dec 1979 03:26:15 -0800 Subject: [PATCH] BSD 3 development Work on file usr/lib/me/src/tmac.e Synthesized-from: 3bsd --- usr/lib/me/src/tmac.e | 1028 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1028 insertions(+) create mode 100644 usr/lib/me/src/tmac.e diff --git a/usr/lib/me/src/tmac.e b/usr/lib/me/src/tmac.e new file mode 100644 index 0000000000..30e187b78a --- /dev/null +++ b/usr/lib/me/src/tmac.e @@ -0,0 +1,1028 @@ +.nr _0 \n(.c +.\"********************************************************************** +.\"* * +.\"* ****** - M E N R O F F / T R O F F M A C R O S ****** * +.\"* * +.\"* Produced for your edification and enjoyment by: * +.\"* Eric Allman * +.\"* Electronics Research Laboratory * +.\"* U.C. Berkeley. * +.\"* * +.\"* VERSION 1.1 First Release: 11 Sept 1978 * +.\"* See file \*(||/revisions for revision history * +.\"* * +.\"* Documentation is available. * +.\"* * +.\"********************************************************************** +.\" %beginstrip% +.\" +.\" Code on .de commands: +.\" *** a user interface macro. +.\" &&& a user interface macro which is redefined +.\" when used to be the real thing. +.\" $$$ a macro which may be redefined by the user +.\" to provide variant functions. +.\" --- an internal macro. +.\" +.if !\n(.V .tm You are using the wrong version of NROFF/TROFF!! +.if !\n(.V .tm This macro package works only on the version seven +.if !\n(.V .tm release of NROFF and TROFF. +.if !\n(.V .ex +.if \n(pf \ +. nx \*(||/null.me +.\" *** INTERNAL GP MACROS *** +.de @C \" --- change ev's, taking info with us +.nr _S \\n(.s +.nr _V \\n(.v +.nr _F \\n(.f +.nr _I \\n(.i +.ev \\$1 +.ps \\n(_Su +.vs \\n(_Vu +.ft \\n(_F +'in \\n(_Iu +.xl \\n($lu +.lt \\n($lu +.rr _S +.rr _V +.rr _F +.rr _I +.ls 1 +'ce 0 +.. +.de @D \" --- determine display type (Indent, Left, Center) +.ds |p "\\$3 +.nr _d \\$1 +.ie "\\$2"C" \ +. nr _d 1 +.el .ie "\\$2"L" \ +. nr _d 2 +.el .ie "\\$2"I" \ +. nr _d 3 +.el .ie "\\$2"M" \ +. nr _d 4 +.el \ +. ds |p "\\$2 +.. +.de @z \" --- end macro +.if !"\\n(.z"" \ +\{\ +. tm Line \\n(c. -- Unclosed block, footnote, or other diversion (\\n(.z) +. di +. ex +.\} +.if \\n(?a \ +. bp \" force out final table +.rm bp +.rm @b \" don't start another page +.if t \ +. wh -1p @m +.br +.. +.de @I \" --- initialize processor +.rm th +.rm ac +.rm lo +.rm sc +.rm @I +.. +.\" *** STANDARD HEADERS AND FOOTERS *** +.de he \" *** define header +.ie !\\n(.$ \ +\{\ +. rm |4 +. rm |5 +.\} +.el \ +\{\ +. ds |4 "\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. ds |5 "\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.\} +.. +.de eh \" *** define even header +.ie !\\n(.$ \ +. rm |4 +.el \ +. ds |4 "\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.de oh \" *** define odd header +.ie !\\n(.$ \ +. rm |5 +.el \ +. ds |5 "\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.de fo \" *** define footer +.ie !\\n(.$ \ +\{\ +. rm |6 +. rm |7 +.\} +.el \ +\{\ +. ds |6 "\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +. ds |7 "\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.\} +.. +.de ef \" *** define even foot +.ie !\\n(.$ \ +. rm |6 +.el \ +. ds |6 "\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.de of \" *** define odd footer +.ie !\\n(.$ \ +. rm |7 +.el \ +. ds |7 "\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.. +.de ep \" *** end page (must always be followed by a .bp) +.if \\n(nl>0 \ +\{\ +. wh 0 +. rs +. @b +.\} +.. +.\" *** INTERNAL HEADER AND FOOTER MACROS *** +.de @h \" --- header +.if \n@>0 .tm >> @h %=\\n% ?a=\\n(?a ?b=\\n(?b +.if (\\n(.i+\\n(.o)>=\\n(.l \ +. tm Line \\n(c. -- Offset + indent exceeds line length +.if t .if (\\n(.l+\\n(.o)>7.75i \ +. tm Line \\n(c. -- Offset + line length exceeds paper width +.\" initialize a pile of junk +.nr ?h \\n(?H \" transfer "next page" to "this page" +.rr ?H +.nr ?c \\n(?C +.rr ?C +.rn |4 |0 +.rn |5 |1 +.rn |6 |2 +.rn |7 |3 +.nr _w 0 \" reset max footnote width +.nr ?I 1 +.\" begin actual header stuff +.ev 2 +.rs +.if t .@m \" output cut mark +.if \\n(hm>0 \ +. sp |\\n(hmu \" move to header position +.if \\n($T=2 \\!. +.@t $h \" output header title +.if \\n(tm<=0 \ +. nr tm \n(.Vu +.sp |\\n(tmu \" move to top of text +.ev +.mk _k \" for columned output +.if \\n(?n .nm 1 \" restore line numbering if n1 mode +.nr $c 1 \" set first column +.if \n@>4 .tm -- @h >> .ns nl=\\n(nl %=\\n% _k=\\n(_k tm=\\n(tm +.ie \\n(?s \ +\{\ +. rr ?s +. rs +' @b +.\} +.el \ +. @n \" begin the column +.if \n@>1 .tm << @h +.. +.de @m \" --- output cut mark +.@O 0 +.lt 7.5i +.tl '\(rn''\(rn' +.@O +.lt +.. +.de @n \" --- new column or page +.if \n@>3 .tm >> @n nl=\\n(nl %=\\n% ?f=\\n(?f ?o=\\n(?o +.if \\n(bm<=0 \ +. nr bm \\n(.Vu +.if \\n(_w<=\\n($l \ +\{\ +. nr _b (\\n(ppu*\\n($ru)/2u \" compute fudge factor (must be < 1P) +. if \\n(_bu>((\\n(bmu-\\n(fmu-(\\n(tpu*\\n($ru))/2u) \ +. nr _b (\\n(ppu*\\n($ru)-\n(.Vu +. nr _b +\\n(bmu +.\} +.nr _B \\n(_bu +.ch @f +.wh -\\n(_bu @f +.nr ?f 0 \" reset footnote flag +.if \\n(?o \ +\{\ +. (f _ \" reprocess footnotes which run off page +. nf +. |o +. fi +. )f +. rm |o +.\} +.nr ?o 0 +.if \\n(?T \ +\{\ +. nr _i \\n(.i +. in \\n($iu +. |h \" output the table header +. in \\n(_iu +. rr _i +. mk #T \" for tbl commands +. ns +.\} +.if \\n(?a \ +\{\ +. nr ?a 0 \" output floating keep +. @k |t +.\} +.os +.$H \" special column header macro +.ns +.. +.de @f \" --- footer +.if \n@>0 .tm >> @f %=\\n% nl=\\n(nl ?a=\\n(?a ?b=\\n(?b +.ec +.if \\n(?T \ +\{\ +. nr T. 1 \" for tbl commands (to output bottom line) +. T# 1 \" output the sides and bottom lines +. br +.\} +.ev 2 +.ce 0 +.if \\n(?b \ +\{\ +. nr ?b 0 +. @k |b \" output bottom of page tables +.\} +.if \\n(?f \ +. @o \" output footnote if present +.ie \\n($c<\\n($m \ +. @c \" handle new column +.el \ +. @e \" new page +.ev +.if \n@>2 .tm << @f +.. +.de @o \" --- output footnote +.nf +.ls 1 +.in 0 +.wh -\\n(_Bu @r +.|f +.fi +.if \\n(?o \ +. di \" just in case triggered @r +. if \\n(dn=0 \ +\{\ +. rm |o +. nr ?o 0 +. \} +. nr dn \\n(_D +. rr _D +.\} +.rm |f +.ch @r +.. +.de @c \" --- new column +.if \n@>2 .tm >> @c %=\\n% +.rs +.sp |\\n(_ku +.@O +\\n($lu+\\n($su +.nr $c +1 +.@n +.. +.de @e \" --- end page +.if \n@>2 .tm >> @e +.@O \\n(_ou +.rs +.sp |\\n(.pu-\\n(fmu-(\\n(tpu*\\n($ru) \" move to footer position +.@t $f \" output footer title +.nr ?h 0 +.bp +.. +.de @t \" --- output header or footer title +.if !\\n(?h \ +\{\ +. sz \\n(tp \" set header/footer type fonts, etc. +. @F \\n(tf +. lt \\n(_Lu \" make title span entire page +. nf +. \\$1 +. br +.\} +.. +.de $h \" $$$ print header +.rm |z +.if !\\n(?c \ +\{\ +. if e .ds |z "\\*(|0 +. if o .ds |z "\\*(|1 +.\} +.if !\(ts\\*(|z\(ts\(ts \ +' tl \\*(|z +.rm |z +.. +.de $f \" $$$ print footer +.rm |z +.if \\n(?c \ +\{\ +. if e .ds |z "\\*(|0 +. if o .ds |z "\\*(|1 +.\} +.if \(ts\\*(|z\(ts\(ts \ +\{\ +. if e .ds |z "\\*(|2 +. if o .ds |z "\\*(|3 +.\} +.if !\(ts\\*(|z\(ts\(ts \ +' tl \\*(|z +.rm |z +.. +.de @r \" --- reprocess overflow footnotes +.if \n@>3 .tm >> @r .z=\\n(.z ?f=\\n(?f ?a=\\n(?a ?b=\\n(?b _b=\\n(_b +.di |o \" save overflow footnote +.nr ?o 1 +.nr _D \\n(dn +.ns +.. +.\" *** COMMANDS WITH VARIANT DEFINITIONS *** +.rn bp @b \" --- begin page +.de bp \" *** begin new page (overrides columns) +.nr $c \\n($m \" force new page, not new column +.ie \\n(nl>0 \ +. @b \\$1 +.el \ +\{\ +. if \\n(.$>0 \ +. pn \\$1 +. if \\n(?I \ +. @h \" 'spring' the header trap +.\} +.br +.wh 0 @h \" reset header +.. +.rn ll xl \" *** special line length (local) +.de ll \" *** line length (global to environments) +.xl \\$1 +.lt \\$1 +.nr $l \\n(.l +.if (\\n($m<=1):(\\n($l>\\n(_L) \ +. nr _L \\n(.l +.. +.rn po @O \" --- local page offset +.de po \" *** page offset +.@O \\$1 +.nr _o \\n(.o +.. +.\" *** MISCELLANEOUS ROFF COMMANDS *** +.de hx \" *** suppress headers and footers next page +.nr ?H 1 +.. +.de ix \" *** indent, no break +'in \\$1 +.. +.de bl \" *** contiguous blank lines +.br +.ne \\$1 +.rs +.sp \\$1 +.. +.de n1 \" *** line numbering 1 +.nm 1 +.xl -\w'0000'u +.nr ?n 1 +.. +.de n2 \" *** line numbering 2 +.nm \\$1 +.ie \\n(.$ \ +. xl -\w'0000'u +.el \ +. xl \\n($lu +.. +.de pa \" *** new page +.bp \\$1 +.. +.de ro \" *** roman page numbers +.af % i +.. +.de ar \" *** arabic page numbers +.af % 1 +.. +.de m1 \" *** position one space +.nr _0 \\n(hmu +.nr hm \\$1v +.nr tm +\\n(hmu-\\n(_0u +.rr _0 +.. +.de m2 \" *** position two space +.nr tm \\n(hmu+\\n(tpp+\\$1v +.. +.de m3 \" *** position three space +.nr bm \\n(fmu+\\n(tpp+\\$1v +.. +.de m4 \" *** position four space +.nr _0 \\n(fmu +.nr fm \\$1v +.nr bm +\\n(fmu-\\n(_0u +.. +.de sk \" *** leave a blank page (next page) +.if \\n(.$>0 \ +. tm Line \\n(c. -- I cannot skip multiple pages +.nr ?s 1 +.. +.\" *** MISCELLANEOUS USER SUPPORT COMMANDS *** +.de re \" *** reset tabs (TROFF defines 15 stops default) +.ta 0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +0.5i +.. +.if t .ig +.de re \" *** reset tabs (NROFF version) +.ta 0.8i +0.8i +0.8i +0.8i +0.8i +0.8i +0.8i +0.8i +0.8i +0.8i +0.8i +0.8i +0.8i +0.8i +0.8i +.. +.de ba \" *** set base indent +.ie \\n(.$ \ +. nr $i \\$1n +.el \ +. nr $i \\n(siu*\\n($0u +.. +.de hl \" *** draw horizontal line +.br +\l'\\n(.lu-\\n(.iu' +.sp +.. +.\" *** PARAGRAPHING *** +.de pp \" *** paragraph +.lp \\n(piu +.. +.de lp \" *** left aligned paragraph +.@p +.if \\n(.$ \ +. ti +\\$1 +.nr $p 0 1 +.. +.de ip \" *** indented paragraph w/ optional tag +.if (\\n(ii>0)&(\\n(ii<1n) \ +. nr ii \\n(iin +.nr _0 \\n(ii +.if \\n(.$>1 \ +. nr _0 \\$2n +.@p \\n(_0u +.if \\w"\\$1" \ +\{\ +. ti -\\n(_0u +. ie \\w"\\$1">=\\n(_0 \ +\{\ +\&\\$1 +. br +. \} +. el \&\\$1\h'|\\n(_0u'\c +.\} +.rr _0 +.. +.de np \" *** numbered paragraph +.nr $p +1 +.ip (\\n($p) +.. +.de @p \" --- initialize for paragraph +.@I \" initialize macro processor +.if "\\n(.z"|e" .tm Line \\n(c. -- Unmatched continued equation +.in \\n($iu+\\n(pou +.if \\n(.$ \ +. in +\\$1n +.ce 0 +.fi +.@F \\n(pf +.sz \\n(ppu +.sp \\n(psu +.ne \\n(.Lv+\\n(.Vu +.ns +.. +.\" *** SECTION HEADINGS *** +.de sh \" &&& section heading +.rn sh @T +.so \\*(||/sh.me +.sh "\\$1" "\\$2" \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 +.rm @T +.. +.de $p \" $$$ print section heading +.if (\\n(si>0)&(\\n(.$>2) \ +. nr $i \\$3*\\n(si +.in \\n($iu +.ie !"\\$1\\$2"" \ +\{\ +. sp \\n(ssu \" one of them is non-null +. ne \\n(.Lv+\\n(.Vu+\\n(psu+(\\n(spu*\\n($ru*\\n(.Lu) +. ie \\n(.$>2 \ +. ti -(\\n(siu-\\n(sou) +. el \ +. ti +\\n(sou +. @F \\n(sf +. sz \\n(spu +. if \\$3>0 \ +. $\\$3 +. if \w"\\$2">0 \\$2. +. if \w"\\$1">0 \\$1\f1\ \ \" +.\} +.el \ +. sp \\n(psu +.@F \\n(pf +.sz \\n(ppu +.. +.de uh \" *** unnumbered section heading +.rn uh @T +.so \\*(||/sh.me +.uh "\\$1" +.rm @T +.. +.\" *** COLUMNNED OUTPUT *** +.de 2c \" *** double columned output +.br +.if \\n($m>1 \ +. 1c \" revert to 1c if already 2c +.nr $c 1 +.nr $m 2 +.if \\n(.$>1 \ +. nr $m \\$2 +.if \\n(.$>0 \ +. nr $s \\$1n \" param 1: column seperation +.nr $l (\\n(.l-((\\n($m-1)*\\n($s))/\\n($m +.xl \\n($lu +.mk _k +.ns +.. +.de 1c \" *** single columned output +.br +.nr $c 1 +.nr $m 1 +.ll \\n(_Lu \" return to normal output +.sp |\\n(.hu +.@O \\n(_ou +.. +.de bc \" *** begin column +.sp 24i +.. +.\" *** FLOATING TABLES AND NONFLOATING BLOCKS *** +.de (z \" &&& begin floating keep +.rn (z @T +.so \\*(||/float.me +.(z \\$1 \\$2 +.rm @T +.. +.de )z \" &&& end floating keep +.tm Line \\n(c. -- unmatched .)z +.. +.de (t \" XXX temp ref to (z +.(z \\$1 \\$2 +.. +.de )t \" XXX temp ref to )t +.)z \\$1 \\$2 +.. +.de (b \" *** begin block +.br +.@D 3 \\$1 \\$2 +.sp \\n(bsu +.@( +.. +.de )b \" *** end block +.br +.@) +.if (\\n(bt=0):(\\n(.t<\\n(bt) \ +. ne \\n(dnu \" make it all on one page +.ls 1 +.nf +.|k +.ec +.fi +.in 0 +.xl \\n($lu +.ev +.rm |k +.sp \\n(bsu+\\n(.Lv-1v +.. +.de @( \" --- begin keep +.if !"\\n(.z"" .tm Line \\n(c. -- Illegal nested keep \\n(.z +.@M +.di |k +\!'rs +.. +.de @M \" --- set modes for display +.nr ?k 1 +.@C 1 +.@F \\n(df +.vs \\n(.su*\\n($Ru +.nf +.if "\\*(|p"F" \ +. fi \" set fill mode if "F" parameter +.if \\n(_d=4 \ +. in 0 +.if \\n(_d=3 \ +\{\ +. in +\\n(biu +. xl -\\n(biu +.\} +.if \\n(_d=1 \ +. ce 10000 +.. +.de @) \" --- end keep +.br +.if !"\\n(.z"|k" .tm Line \\n(c. -- Close of a keep which has never been opened +.nr ?k 0 +.di +.in 0 +.ce 0 +.. +.de (c \" *** begin block centered text +.if "\\n(.z"|c" .tm Line \\n(c. -- Nested .(c requests +.di |c +.. +.de )c \" *** end block centered text +.if !"\\n(.z"|c" .tm Line \\n(c. -- Unmatched .)c +.di +.if \n@>4 .tm >> .)c .l=\\n(.l .i=\\n(.i $i=\\n($i dl=\\n(dl +.ev 1 +.ls 1 +.in (\\n(.lu-\\n(.iu-\\n(dlu)/2u +.if \n@>4 .tm -- .)c << .in .l=\\n(.l .i=\\n(.i dl=\\n(dl +.nf +.|c +.ec +.in +.ls +.ev +.rm |c +.. +.\" *** BLOCK QUOTES (OR WHATEVER) AND LISTS *** +.de (q \" *** begin block quote +.br +.@C 1 +.fi +.sp \\n(qsu +.in +\\n(qiu +.xl -\\n(qiu +.sz \\n(qp +.. +.de )q \" *** end block quote +.br +.ev +.sp \\n(qsu+\\n(.Lv-1v +.nr ?k 0 +.. +.de (l \" *** begin list +.br +.sp \\n(bsu +.@D 3 \\$1 \\$2 +.@M +.. +.de )l \" *** end list +.br +.ev +.sp \\n(bsu+\\n(.Lv-1v +.nr ?k 0 +.. +.\" *** PREPROCESSOR SUPPORT *** +.de EQ \" &&& begin equation +.rn EQ @T +.so \\*(||/eqn.me +.EQ \\$1 \\$2 +.rm @T +.. +.de TS \" &&& begin table +.rn TS @T +.so \\*(||/tbl.me +.TS \\$1 \\$2 +.rm @T +.. +.\" *** FONT AIDS *** +.de sz \" *** set point size and vertical spacing +.ps \\$1 +.vs \\n(.su*\\n($ru \" default vs at pointsize + 20% +.bd S B \\n(.su/3u +.. +.de r \" *** enter roman font +.nr _F \\n(.f +.ul 0 +.ft 1 +.if \\n(.$ \&\\$1\f\\n(_F\\$2 +.rr _F +.. +.de i \" *** enter italic +.nr _F \\n(.f +.ul 0 +.ft 2 +.if \\n(.$ \&\\$1\f\\n(_F\\$2 +.rr _F +.. +.de b \" *** enter boldface (underline in NROFF) +.nr _F \\n(.f +.ul 0 +.ie t \ +. ft 3 +.el \ +. ul 10000 +.if \\n(.$ \&\\$1\f\\n(_F\\$2 +.if \\n(.$ \ +. ul 0 +.rr _F +.. +.de rb \" *** enter real boldface (not underlined in NROFF) +.nr _F \\n(.f +.ul 0 +.ft 3 +.if \\n(.$ \&\\$1\f\\n(_F\\$2 +.rr _F +.. +.de u \" *** enter underlined word +\&\\$1\l'|0\(ul'\\$2 +.. +.de q \" *** enter quoted word +\&\\*(lq\\$1\\*(rq\\$2 +.. +.de bi \" *** enter word in bold italics +.ft 2 +.ie t \&\k~\\$1\h'|\\n~u+(\\n(.su/3u)'\\$1\fP\\$2 +.el \&\\$1\fP\\$2 +.. +.de bx \" *** enter boxed word +.ie \\n($T \&\f2\\$1\fP\\$2 +.el \k~\(br\|\\$1\|\(br\l'|\\n~u\(rn'\l'|\\n~u\(ul'\^\\$2 +.. +.de @F \" --- change font (8 -> underlined, 0 -> no change) +.nr ~ \\$1 +.if \\n~>0 \ +\{\ +. ul 0 +. ie \\n~>4 \ +\{\ +. if n .ul 10000 +. if t .ft 3 +. \} +. el \ +. ft \\n~ +.\} +.rr ~ +.. +.\" *** FOOTNOTING *** +.de (f \" &&& begin footnote +.rn (f @T +.so \\*(||/footnote.me +.(f \\$1 \\$2 +.rm @T +.. +.de )f \" &&& end footnote +.tm Line \\n(c. -- unmatched .)f +.. +.de $s \" $$$ footnote separator +\l'2i' +.if n \ +. sp 0.3 +.. +.\" *** DELAYED TEXT *** +.de (d \" &&& begin delayed text +.rn (d @T +.so \\*(||/deltext.me +.(d \\$1 \\$2 +.rm @T +.. +.de )d \" &&& end delayed text +.tm Line \\n(c. -- unmatched .)d +.. +.\" *** INDEXES (TABLE OF CONTENTS) *** +.de (x \" &&& begin index +.rn (x @T +.so \\*(||/index.me +.(x \\$1 \\$2 +.rm @T +.. +.de )x \" &&& end index entry +.tm Line \\n(c. -- unmatched .)x +.. +.\" *** STUFF FOR "STANDARD" PAPERS *** +.de th \" *** set "thesis" mode +.so \\*(||/thesis.me +.rm th +.. +.de +c \" *** begin chapter +.ep \" force out footnotes +.if \\n(?o:\\n(?a \ +\{\ +. bp \" force out a table or more footnote +. rs +. ep +.\} +.nr ?C 1 +.nr $f 1 1 +.ds * \\*[1\\*]\k* +.if \\n(?R \ +. pn 1 +.bp +.in \\n($iu \" reset the indent +.rs +.ie \\n(.$ \ +. $c "\\$1" +.el \ +. sp 3 +.. +.de ++ \" *** declare chapter type +.nr _0 0 +.if "\\$1"C" \ +. nr _0 1 \" chapter +.if "\\$1"RC" \ +. nr _0 11 \" renumbered chapter +.if "\\$1"A" \ +. nr _0 2 \" appendix +.if "\\$1"RA" \ +. nr _0 12 \" renumbered appendix +.if "\\$1"P" \ +. nr _0 3 \" preliminary material +.if "\\$1"B" \ +. nr _0 4 \" bibliographic material +.if "\\$1"AB" \ +. nr _0 5 \" abstract +.if \\n(_0=0 \ +. tm Line \\n(c. -- Bad mode to .++ +.nr ?R 0 +.if \\n(_0>10 \ +.\{ +. nr ?R 1 +. nr _0 -10 +.\} +.nr ch 0 1 +.if (\\n(_0=3):(\\n(_0=5) \ +. pn 1 \" must do before .ep +.ep \" end page for correct page number types +.if \\n(_0=1 \ +\{\ +. af ch 1 +. af % 1 +.\} +.if \\n(_0=2 \ +\{\ +. af ch A +. af % 1 +.\} +.if \\n(_0=3 \ +. af % i +.if \\n(_0=4 \ +. af % 1 +.if \\n(_0=5 \ +. af % 1 +.if \\n(.$>1 \ +. he \\$2 +.if !\\n(_0=\\n(_M .if \\n(_M=3 \ +. pn 1 +.nr _M \\n(_0 +.rr _0 +.. +.de $c \" $$$ print chapter title +.sz 12 +.ft B +.ce 1000 +.if \\n(_M<3 \ +. nr ch +1 +.ie \\n(_M=1 CHAPTER\ \ \\n(ch +.el .if \\n(_M=2 APPENDIX\ \ \\n(ch +.if \w"\\$1" .sp 3-\\n(.L +.if \w"\\$1" \\$1 +.if (\\n(_M<3):(\w"\\$1") \ +. sp 4-\\n(.L +.ce 0 +.ft +.sz +.ie \\n(_M=1 \ +. $C Chapter \\n(ch "\\$1" +.el .if \\n(_M=2 \ +. $C Appendix \\n(ch "\\$1" +.. +.de tp \" *** title page +.hx +.bp +.br +.rs +.pn \\n% +.. +.de ac \" *** setup for ACM photo-ready paper +.rn ac @T +.so \\*(||/acm.me +.ac "\\$1" "\\$2" +.rm @T +.. +.de lo \" *** pull in the set of local macros +.\" all these macros should be named "*X", where X is any letter +.so \\*(||/local.me +.rm lo +.. +.\" *** DATES *** +.if \n(mo=1 .ds mo January +.if \n(mo=2 .ds mo February +.if \n(mo=3 .ds mo March +.if \n(mo=4 .ds mo April +.if \n(mo=5 .ds mo May +.if \n(mo=6 .ds mo June +.if \n(mo=7 .ds mo July +.if \n(mo=8 .ds mo August +.if \n(mo=9 .ds mo September +.if \n(mo=10 .ds mo October +.if \n(mo=11 .ds mo November +.if \n(mo=12 .ds mo December +.if \n(dw=1 .ds dw Sunday +.if \n(dw=2 .ds dw Monday +.if \n(dw=3 .ds dw Tuesday +.if \n(dw=4 .ds dw Wednesday +.if \n(dw=5 .ds dw Thursday +.if \n(dw=6 .ds dw Friday +.if \n(dw=7 .ds dw Saturday +.ds td \*(mo \n(dy, 19\n(yr +.\" *** PARAMETRIC INITIALIZATIONS *** +.if (1m<0.1i)&(\nx!=0) \ +. vs 9p \" for 12-pitch DTC terminals +.rr x +.nr $r \n(.v/\n(.s \" ratio of vs to ps for .sz request +.nr $R \n($r \" ratio 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 +.hy 14 +.nr bi 4n \" 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 +.ds || /usr/lib/me +.if \n@>0 .ds || . +.bd S B 3 +.\" *** OTHER INITIALIZATION *** +.ds [ \u\x'-0.25v' +.ds ] \d +.ds < \d\x'0.25v' +.ds > \u +.ds - -- +.if t \ +\{\ +. ds [ \v'-0.4m'\x'-0.2m'\s-3 +. ds ] \s0\v'0.4m' +. ds < \v'0.4m'\x'0.2m'\s-3 +. ds > \s0\v'-0.4m' +. ds - \- +.\} +.nr _o \n(.o +.if n .po 1i +.if \n(.V=1v \ +. nr $T 2 +.if \n(.T=0 \ +. nr $T 1 +.if t \ +\{\ +. nr $T 0 +. po -0.5i \" make ugly line on LHS +.\} +.if \n($T \ +\{\ +. if \n($T=1 \ +. po 0 +. ds [ [ +. ds ] ] +. ds < < +. ds > > +.\} +.nr ps 0.5v \" paragraph pre/post spacing +.if \n($T \ +. nr ps 1v +.if t .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 fs 0.2v \" footnote prespacing +.if \n($T \ +. nr fs 0 +.if n .nr es 1v \" equation pre/postspacing +.if t .nr es 0.5v +.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 +.ds * \*[1\*]\k*\" \" footnote "name" +.nr $d 1 1 \" delayed text number +.ds # [1]\k#\" \" delayed text "name" +.nr _M 1 \" chapter mode is chapter +.ds lq \&"\" \" left quote +.ds rq \&"\" \" right quote +.if t \ +. ds lq `` +.if t \ +. ds rq '' +.em @z +.\" *** FOREIGN LETTERS AND SPECIAL CHARACTERS *** +.de sc \" *** define special characters +.so \\*(||/chars.me +.rm sc +.. +.ll 6.0i +.lt 6.0i -- 2.20.1