|         |      1 % ACMCONF DOCUMENT STYLE - Updated 17 August 1995. | 
|         |      2 % | 
|         |      3 % This is a patched version of the 5 April 1993 release.  No stylistic changes | 
|         |      4 % have been made; it should produce output identical to the 1993 release if | 
|         |      5 % that release worked properly on your system.  A LaTeX2e patch has been added | 
|         |      6 % for systems having problems with the section header font.  There is also a | 
|         |      7 % macro for producing an ACM copyright notice and a box with reprint info. | 
|         |      8 % | 
|         |      9 % If you get an error message similar to | 
|         |     10 % | 
|         |     11 % ! Undefined control sequence. | 
|         |     12 % l.165 \font\ninsfb = cmssbx10\@ptscale | 
|         |     13 % | 
|         |     14 % then see the comments beginning on line 173 (look for "DIAGNOSTICS"). | 
|         |     15 %----------------------------------------------------------------------- | 
|         |     16 %	Modification of Traub/Shivers version by Kevin Theobald, McGill | 
|         |     17 %	University.  New version has automatic copyright space, option | 
|         |     18 %	for box around "to appear" entry, and style option to indent | 
|         |     19 %	first paragraph after subheadings.  Released 5 April 1993. | 
|         |     20 % | 
|         |     21 %	To use: install in reachable directory (one contained in TEXINPUTS | 
|         |     22 %	environment variable); use \documentstyle[<options>]{acmconf} | 
|         |     23 %----------------------------------------------------------------------- | 
|         |     24 %    adapted from ARTICLE document style by Ken Traub | 
|         |     25 %    Hacked for [preprint] option by Olin Shivers 4/91 | 
|         |     26 % ARTICLE DOCUMENT STYLE -- Released 16 March 1988 | 
|         |     27 %    for LaTeX version 2.09 | 
|         |     28 % Copyright (C) 1988 by Leslie Lamport | 
|         |     29  | 
|         |     30 %%% ACMCONF is a document style for producing two-column camera-ready pages for | 
|         |     31 %%% ACM conferences, according to ACM specifications.  The main features of | 
|         |     32 %%% this style are: | 
|         |     33 %%% | 
|         |     34 %%% 1)  Two columns. | 
|         |     35 %%% 2)  Side and top margins of 4.5pc, bottom margin of 6pc, column gutter of | 
|         |     36 %%%     2pc, hence columns are 20pc wide and 55.5pc tall.  (6pc = 1in, approx) | 
|         |     37 %%% 3)  First page has title information, and an extra 6pc of space at the | 
|         |     38 %%%     bottom of the first column for the ACM copyright notice. | 
|         |     39 %%% 4)  Text is 9pt on 10pt baselines; titles (except main) are 9pt bold. | 
|         |     40 %%% | 
|         |     41 %%% This document style supports a [preprint] style option that allows | 
|         |     42 %%% you to run off a copy for a preprint -- with page numbers, "to | 
|         |     43 %%% appear" information, and so forth. This is documented below. | 
|         |     44 %%% | 
|         |     45 %%% This document style also supports a [secindent] style option which | 
|         |     46 %%% causes paragraphs following (sub)section heads to be indented like | 
|         |     47 %%% the others.	 (Added by KBT) | 
|         |     48 %%% | 
|         |     49 %%% Finally, the macro \acmcopy{y} (y is year, e.g., 1995) prints the text of | 
|         |     50 %%% an ACM copyright notice.  This is useful for making a copy of the paper on | 
|         |     51 %%% the author's FTP site (ACM requires a copyright notice).  (Added by KBT) | 
|         |     52 %%% | 
|         |     53 %%% There are a few restrictions you must observe: | 
|         |     54 %%% | 
|         |     55 %%% 1)  You cannot change the font size; ACM wants you to use 9pt. | 
|         |     56 %%% 3)  You must start your paper with the \maketitle command.  Prior to the | 
|         |     57 %%%     \maketitle you must have \title and \author commands.  If you have a | 
|         |     58 %%%     \date command it will be ignored; no date appears on the paper, since | 
|         |     59 %%%     the proceedings will have a date on the front cover. | 
|         |     60 %%% 4)  Marginal paragraphs, tables of contents, lists of figures and tables, | 
|         |     61 %%%     and page headings are all forbidden. | 
|         |     62 %%% 5)  The `figure' environment will produce a figure one column wide; if you | 
|         |     63 %%%     want one that is two columns wide, use `figure*'. | 
|         |     64 %%% | 
|         |     65 %%% Page Headings: | 
|         |     66 %%% Normally, \pagestyle commands are ignored --- pages have no headings or | 
|         |     67 %%% numbers. ACM will number the pages for you when they are inserted into the | 
|         |     68 %%% proceedings (you should put page numbers on the BACK of each page, in | 
|         |     69 %%% light pencil, in case someone drops your paper on the floor). | 
|         |     70 %%% | 
|         |     71 %%% If the [preprint] option is present, then \pagestyle commands are obeyed, | 
|         |     72 %%% and the default is \pagestyle{plain}.  All pages (including the first) | 
|         |     73 %%% are numbered.  (This is useful if you want to make a reprint version | 
|         |     74 %%% of your paper, with page numbering identical to the conference | 
|         |     75 %%% proceedings.  In such a case, you may need to insert the command | 
|         |     76 %%% \setcounter{page}{...} before \maketitle.) The [twoside] option is | 
|         |     77 %%% also useful when using headers. | 
|         |     78 %%% | 
|         |     79 %%% Copyright Space: | 
|         |     80 %%% This style automatically leaves 1" blank space at the bottom of page 1/ | 
|         |     81 %%% column 1.  This space can optionally be filled with some text using the | 
|         |     82 %%% \toappear{...} command.  If used, this command must be BEFORE the \maketitle | 
|         |     83 %%% command.  If this command is defined AND [preprint] is on, then the | 
|         |     84 %%% space is filled with the {...} text (at the bottom); otherwise, it is | 
|         |     85 %%% blank.  If you use \toappearbox{...} instead of \toappear{...} then a | 
|         |     86 %%% box will be drawn around the text (if [preprint] is on). | 
|         |     87 %%% | 
|         |     88 %%% A typical usage looks like this: | 
|         |     89 %%%     \toappear{To appear in the Ninth AES Conference on Medievil Lithuanian | 
|         |     90 %%%               Embalming Technique, June 1991, Alfaretta, Georgia.} | 
|         |     91 %%% This will be included in the preprint, and left out of the conference | 
|         |     92 %%% version. | 
|         |     93 %%% | 
|         |     94 %%% Acmconf defines two useful conditionals. | 
|         |     95 %%% - \ifacmconf{true-stuff}{false-stuff} | 
|         |     96 %%%   expands to true-stuff. | 
|         |     97 %%% - \ifpreprint true-stuff \else else-stuff \fi | 
|         |     98 %%%   expands to true-stuff if the [preprint] option is being used, | 
|         |     99 %%%   otherwise it expands to else-stuff. | 
|         |    100 %%% \ifacmconf is a latex command; \ifpreprint is a real latex conditional. | 
|         |    101 %%% | 
|         |    102 %%% WARNING: | 
|         |    103 %%% Some dvi-ps converters heuristically allow chars to drift from their | 
|         |    104 %%% true positions a few pixels. This loses noticeably with the 9pt sans-serif | 
|         |    105 %%% bold font used for section headers. You turn this hackery off in our | 
|         |    106 %%% dvi-ps converters with the -e option: | 
|         |    107 %%%     dvips -e 0 foo.dvi >foo.ps | 
|         |    108  | 
|         |    109 \typeout{Document Style `acmconf' <22 May 89>. Hacked 4/91 by} | 
|         |    110 \typeout{ shivers@cs.cmu.edu, 4/93 by theobald@cs.mcgill.ca} | 
|         |    111 \typeout{Bugs to theobald@cs.mcgill.ca} | 
|         |    112  | 
|         |    113 \def\acmcopy#1{Copyright \copyright {#1} by the Association for Computing | 
|         |    114 Machinery, Inc. Permission to make digital or hard copies of part or all of | 
|         |    115 this work for personal or classroom use is granted without fee provided that | 
|         |    116 copies are not made or distributed for profit or direct commercial advantage | 
|         |    117 and that copies bear this notice and the full citation on the first page. | 
|         |    118 Copyrights for components of this work owned by others than ACM must be | 
|         |    119 honored. Abstracting with credit is permitted. To copy otherwise, to | 
|         |    120 republish, to post on servers, or to redistribute to lists, requires prior | 
|         |    121 specific permission and/or a fee. Request permissions from Publications | 
|         |    122 Dept., ACM Inc., fax +1 (212) 869-0481, or (permissions@acm.org).} | 
|         |    123  | 
|         |    124 \newif\if@acmconf\@acmconftrue | 
|         |    125 \long\def\ifacmconf#1#2{\if@acmconf#1\else#2\fi} | 
|         |    126  | 
|         |    127 \newif\ifpreprint | 
|         |    128 \def\ds@preprint{\preprinttrue} | 
|         |    129 \def\ds@twoside{\@twosidetrue \@mparswitchtrue} | 
|         |    130 \def\ds@secindent{\def\@afterindentfalse{\@afterindenttrue}} | 
|         |    131  | 
|         |    132 % | 
|         |    133 % The following macro added 8/17/95 by KBT.  Use to make box above title with | 
|         |    134 % name of proceedings and/or copyright notice.  This box is created only if | 
|         |    135 % [preprint] is on.  Use: \coverbox{vert. pos.}{horiz. pos.}{box width}{text} | 
|         |    136 % Creates box with officially zero dimension, so does not affect layout. | 
|         |    137 % | 
|         |    138 \def\coverbox#1#2#3#4{\ifpreprint{\makebox[0pt][l]{\raisebox{#1}[0pt][0pt]{\hspace*{#2}\fbox{\parbox{#3}{#4}}}}}\else{}\fi} | 
|         |    139  | 
|         |    140 \@namedef{ds@10pt}{\@latexerr{The `10pt' option is not allowed in the `acmconf' | 
|         |    141   document style.}\@eha} | 
|         |    142 \@namedef{ds@11pt}{\@latexerr{The `11pt' option is not allowed in the `acmconf' | 
|         |    143   document style.}\@eha} | 
|         |    144 \@namedef{ds@12pt}{\@latexerr{The `12pt' option is not allowed in the `acmconf' | 
|         |    145   document style.}\@eha} | 
|         |    146  | 
|         |    147 \@options | 
|         |    148  | 
|         |    149 \lineskip 1pt		% \lineskip is 1pt for all font sizes. | 
|         |    150 \normallineskip 1pt | 
|         |    151 \def\baselinestretch{1} | 
|         |    152  | 
|         |    153 \def\@normalsize{\@setsize\normalsize{10pt}\ixpt\@ixpt | 
|         |    154 \abovedisplayskip 9pt plus2pt minus4.5pt% | 
|         |    155 \belowdisplayskip \abovedisplayskip | 
|         |    156 \abovedisplayshortskip  \z@ plus3pt% | 
|         |    157 \belowdisplayshortskip  5.4pt plus3pt minus3pt% | 
|         |    158 \let\@listi\@listI}	% Setting of \@listi added 9 Jun 87 | 
|         |    159  | 
|         |    160 \def\small{\@setsize\small{9pt}\viiipt\@viiipt | 
|         |    161 \abovedisplayskip 7.6pt plus 3pt minus 4pt% | 
|         |    162 \belowdisplayskip \abovedisplayskip | 
|         |    163 \abovedisplayshortskip \z@ plus2pt% | 
|         |    164 \belowdisplayshortskip 3.6pt plus2pt minus 2pt | 
|         |    165 \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 | 
|         |    166 \topsep 4pt plus 2pt minus 2pt\parsep 2pt plus 1pt minus 1pt | 
|         |    167 \itemsep \parsep}} | 
|         |    168  | 
|         |    169 \def\footnotesize{\@setsize\footnotesize{8pt}\viipt\@viipt | 
|         |    170 \abovedisplayskip 6.4pt plus 2pt minus 4pt% | 
|         |    171 \belowdisplayskip \abovedisplayskip | 
|         |    172 \abovedisplayshortskip \z@ plus 1pt% | 
|         |    173 \belowdisplayshortskip 2.7pt plus 1pt minus 2pt | 
|         |    174 \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 | 
|         |    175 \topsep 3pt plus 1pt minus 1pt\parsep 2pt plus 1pt minus 1pt | 
|         |    176 \itemsep \parsep}} | 
|         |    177  | 
|         |    178 \def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt} | 
|         |    179 \def\tiny{\@setsize\tiny{6pt}\vpt\@vpt} | 
|         |    180 \def\large{\@setsize\large{13.6pt}\xipt\@xipt} | 
|         |    181 \def\Large{\@setsize\Large{16pt}\xiipt\@xiipt} | 
|         |    182 \def\LARGE{\@setsize\LARGE{18pt}\xivpt\@xivpt} | 
|         |    183 \def\huge{\@setsize\huge{22pt}\xviipt\@xviipt} | 
|         |    184 \def\Huge{\@setsize\Huge{25pt}\xxpt\@xxpt} | 
|         |    185  | 
|         |    186 %%% Patch for LaTeX-2e (LaTeX 2.09 compatibility mode) | 
|         |    187 %%% The line \font\ninsfb = cmssbx10\@ptscale9 is replaced by | 
|         |    188 \expandafter\ifx\csname fontseries\endcsname\relax | 
|         |    189   \font\ninsfb = cmssbx10\@ptscale9 | 
|         |    190  \else | 
|         |    191   \def\ninsfb{\fontfamily{cmss}\fontseries{bx}\fontshape{n} | 
|         |    192   \fontsize{9}{\f@baselineskip}\selectfont} | 
|         |    193 \fi | 
|         |    194 %%% End patch for LaTeX-2e | 
|         |    195 \def\@acmtitlestyle{\normalsize\ninsfb} | 
|         |    196 %%% | 
|         |    197 %%% DIAGNOSTICS: | 
|         |    198 %%% The ten lines above (the patch and the \def\@acmtitlestyle command) will | 
|         |    199 %%% cause problems if your printer doesn't have the 9pt. bold sans-serif font. | 
|         |    200 %%% If this is a problem, try commenting out those lines and uncommenting one | 
|         |    201 %%% of the following alternatives.  (It is best to try them in order until | 
|         |    202 %%% finding one that works; the earlier alternatives cause less change.) | 
|         |    203 %%% | 
|         |    204 %%% ALTERNATIVE 1: (works if your system has the same font in 10pt.) | 
|         |    205 %%% \font\tensfb = cmssbx10 | 
|         |    206 %%% \def\@acmtitlestyle{\normalsize\tensfb} | 
|         |    207 %%% ALTERNATIVE 2: | 
|         |    208 %%% \def\@acmtitlestyle{\normalsize\ninbf} | 
|         |    209 %%% ALTERNATIVE 3: | 
|         |    210 %%% \def\@acmtitlestyle{\normalsize\tenbf} | 
|         |    211  | 
|         |    212 \normalsize  % Choose the normalsize font. | 
|         |    213  | 
|         |    214 \oddsidemargin 4.5pc | 
|         |    215 \evensidemargin 4.5pc | 
|         |    216 \advance\oddsidemargin by -1in	% Correct for LaTeX gratuitousness | 
|         |    217 \advance\evensidemargin by -1in % Correct for LaTeX gratuitousness | 
|         |    218 \marginparwidth 0pt		% Margin pars are not allowed. | 
|         |    219 \marginparsep 11pt		% Horizontal space between outer margin and | 
|         |    220 				% marginal note | 
|         |    221  | 
|         |    222 				% Top of page: | 
|         |    223 \topmargin 4.5pc		% Nominal distance from top of page to top of | 
|         |    224 				% box containing running head. | 
|         |    225 \advance\topmargin by -1in	% Correct for LaTeX gratuitousness | 
|         |    226 \headheight 0pt			% Height of box containing running head. | 
|         |    227 \headsep 0pt			% Space between running head and text. | 
|         |    228 				% Bottom of page: | 
|         |    229 \footskip 30pt			% Distance from baseline of box containing foot | 
|         |    230 				% to baseline of last line of text. | 
|         |    231 \footheight 12pt		% Height of box containing running foot. | 
|         |    232  | 
|         |    233 %% Must redefine the top margin so there's room for headers and | 
|         |    234 %% page numbers if you are using the preprint option. Footers | 
|         |    235 %% are OK as is. Olin. | 
|         |    236 \advance\topmargin by -37pt	% Leave 37pt above text for headers | 
|         |    237 \headheight 12pt		% Height of box containing running head. | 
|         |    238 \headsep 25pt			% Space between running head and text. | 
|         |    239  | 
|         |    240 \textheight 666pt	% 9 1/4 column height | 
|         |    241 \textwidth 42pc		% Width of text line. | 
|         |    242 			% For two-column mode: | 
|         |    243 \columnsep 2pc		%    Space between columns | 
|         |    244 \columnseprule 0pt	%    Width of rule between columns. | 
|         |    245 \hfuzz 1pt		% Allow some variation in column width, otherwise it's | 
|         |    246 			% too hard to typeset in narrow columns. | 
|         |    247  | 
|         |    248 \footnotesep 5.6pt 	% Height of strut placed at the beginning of every | 
|         |    249 			% footnote = height of normal \footnotesize strut, | 
|         |    250 			% so no extra space between footnotes. | 
|         |    251  | 
|         |    252 \skip\footins 8.1pt plus 4pt minus 2pt	% Space between last line of text and | 
|         |    253     					% top of first footnote. | 
|         |    254 \floatsep 11pt plus 2pt minus 2pt	% Space between adjacent floats moved | 
|         |    255 					% to top or bottom of text page. | 
|         |    256 \textfloatsep 18pt plus 2pt minus 4pt	% Space between main text and floats | 
|         |    257 					% at top or bottom of page. | 
|         |    258 \intextsep 11pt plus 2pt minus 2pt	% Space between in-text figures and | 
|         |    259 					% text. | 
|         |    260 \@maxsep 18pt				% The maximum of \floatsep, | 
|         |    261 					% \textfloatsep and \intextsep (minus | 
|         |    262 					% the stretch and shrink). | 
|         |    263 \dblfloatsep 11pt plus 2pt minus 2pt	% Same as \floatsep for double-column | 
|         |    264 					% figures in two-column mode. | 
|         |    265 \dbltextfloatsep 18pt plus 2pt minus 4pt% \textfloatsep for double-column | 
|         |    266 					% floats. | 
|         |    267 \@dblmaxsep 18pt			% The maximum of \dblfloatsep and | 
|         |    268 					% \dbltexfloatsep. | 
|         |    269 \@fptop 0pt plus 1fil	 % Stretch at top of float page/column. (Must be | 
|         |    270 			 % 0pt plus ...) | 
|         |    271 \@fpsep 8pt plus 2fil	 % Space between floats on float page/column. | 
|         |    272 \@fpbot 0pt plus 1fil	 % Stretch at bottom of float page/column. (Must be | 
|         |    273 			 % 0pt plus ... ) | 
|         |    274 \@dblfptop 0pt plus 1fil % Stretch at top of float page. (Must be 0pt plus ...) | 
|         |    275 \@dblfpsep 8pt plus 2fil % Space between floats on float page. | 
|         |    276 \@dblfpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be | 
|         |    277 			 % 0pt plus ... ) | 
|         |    278 \marginparpush 5pt	 % Minimum vertical separation between two marginal | 
|         |    279 			 % notes. | 
|         |    280  | 
|         |    281 \parskip 0pt plus 1pt		 % Extra vertical space between paragraphs. | 
|         |    282 \parindent 13.5pt		 % Width of paragraph indentation. | 
|         |    283 %\topsep 8pt plus 2pt minus 4pt	 % Extra vertical space, in addition to | 
|         |    284 				 % \parskip, added above and below list and | 
|         |    285 				 % paragraphing environments. | 
|         |    286 \partopsep 2pt plus 1pt minus 1pt% Extra vertical space, in addition to | 
|         |    287 				 % \parskip and \topsep, added when user | 
|         |    288 				 % leaves blank line before environment. | 
|         |    289 %\itemsep 4pt plus 2pt minus 1pt % Extra vertical space, in addition to | 
|         |    290 				 % \parskip, added between list items. | 
|         |    291 % See \@listI for values of \topsep and \itemsep | 
|         |    292  | 
|         |    293 \@lowpenalty   51	% Produced by \nopagebreak[1] or \nolinebreak[1] | 
|         |    294 \@medpenalty  151	% Produced by \nopagebreak[2] or \nolinebreak[2] | 
|         |    295 \@highpenalty 301	% Produced by \nopagebreak[3] or \nolinebreak[3] | 
|         |    296  | 
|         |    297 \@beginparpenalty -\@lowpenalty	% Before a list or paragraph environment. | 
|         |    298 \@endparpenalty   -\@lowpenalty	% After a list or paragraph environment. | 
|         |    299 \@itempenalty     -\@lowpenalty	% Between list items. | 
|         |    300  | 
|         |    301 % \clubpenalty		% 'Club line'  at bottom of page. | 
|         |    302 % \widowpenalty		% 'Widow line' at top of page. | 
|         |    303 % \displaywidowpenalty	% Math display widow line. | 
|         |    304 % \predisplaypenalty	% Breaking before a math display. | 
|         |    305 % \postdisplaypenalty	% Breaking after a math display. | 
|         |    306 % \interlinepenalty	% Breaking at a line within a paragraph. | 
|         |    307 % \brokenpenalty	% Breaking after a hyphenated line. | 
|         |    308  | 
|         |    309 \def\part{\par		% New paragraph | 
|         |    310    \addvspace{4ex}	% Adds vertical space above title. | 
|         |    311    \@afterindentfalse	% Suppresses indent in first paragraph.  Change | 
|         |    312    \secdef\@part\@spart}% to \@afterindenttrue to have indent. | 
|         |    313  | 
|         |    314 \def\@part[#1]#2{\ifnum \c@secnumdepth >\m@ne	% IF secnumdepth > -1 | 
|         |    315         \refstepcounter{part}			%  THEN step part counter | 
|         |    316         \addcontentsline{toc}{part}{\thepart	%       add toc line | 
|         |    317         \hspace{1em}#1}\else			%  ELSE add unnumbered line | 
|         |    318       \addcontentsline{toc}{part}{#1}\fi	% FI | 
|         |    319    { \parindent 0pt \raggedright | 
|         |    320     \ifnum \c@secnumdepth >\m@ne% IF secnumdepth > -1 | 
|         |    321       \Large \bf Part \thepart	%   THEN Print 'Part' and | 
|         |    322       \par \nobreak		%          number in \Large boldface. | 
|         |    323     \fi				% FI | 
|         |    324     \huge \bf			% Select \huge boldface. | 
|         |    325     #2\markboth{}{}\par }	% Print title and set heading marks null. | 
|         |    326     \nobreak			% TeX penalty to prevent page break. | 
|         |    327     \vskip 3ex			% Space between title and text. | 
|         |    328    \@afterheading		% Routine called after part and | 
|         |    329     }				%     section heading. | 
|         |    330  | 
|         |    331 \def\@spart#1{{\parindent 0pt \raggedright | 
|         |    332     \huge \bf | 
|         |    333     #1\par}			% Title. | 
|         |    334     \nobreak			% TeX penalty to prevent page break. | 
|         |    335     \vskip 3ex			% Space between title and text. | 
|         |    336     \@afterheading		% Routine called after part and | 
|         |    337   }				%     section heading. | 
|         |    338  | 
|         |    339 \def\section{\@startsection {section}{1}{\z@}{-3.5ex plus -1ex minus | 
|         |    340     -.2ex}{2.3ex plus .2ex}{\@acmtitlestyle}} | 
|         |    341 \def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus -1ex minus | 
|         |    342    -.2ex}{1.5ex plus .2ex}{\@acmtitlestyle}} | 
|         |    343 \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-3.25ex plus | 
|         |    344 -1ex minus -.2ex}{1.5ex plus .2ex}{\@acmtitlestyle}} | 
|         |    345 \def\paragraph{\@startsection | 
|         |    346      {paragraph}{4}{\z@}{3.25ex plus 1ex minus .2ex}{-1em}{\@acmtitlestyle}} | 
|         |    347 \def\subparagraph{\@startsection | 
|         |    348      {subparagraph}{4}{\parindent}{3.25ex plus 1ex minus | 
|         |    349      .2ex}{-1em}{\@acmtitlestyle}} | 
|         |    350  | 
|         |    351 \setcounter{secnumdepth}{3} | 
|         |    352  | 
|         |    353 \def\appendix{\par | 
|         |    354   \setcounter{section}{0} | 
|         |    355   \setcounter{subsection}{0} | 
|         |    356   \def\thesection{\Alph{section}}} | 
|         |    357  | 
|         |    358 \leftmargini 22.5pt | 
|         |    359 \leftmarginii 19.8pt	% > \labelsep + width of '(m)' | 
|         |    360 \leftmarginiii 16.8pt	% > \labelsep + width of 'vii.' | 
|         |    361 \leftmarginiv 15.3pt	% > \labelsep + width of 'M.' | 
|         |    362 \leftmarginv 9pt | 
|         |    363 \leftmarginvi 9pt | 
|         |    364  | 
|         |    365 \leftmargin\leftmargini | 
|         |    366 \labelsep 4.5pt | 
|         |    367 \labelwidth\leftmargini\advance\labelwidth-\labelsep | 
|         |    368 % \parsep 4pt plus 2pt minus 1pt (Removed 9 Jun 87) | 
|         |    369  | 
|         |    370 % \@listI defines top level and \@listi values of | 
|         |    371 % \leftmargin, \topsep, \parsep, and \itemsep | 
|         |    372 % (Added 9 Jun 87) | 
|         |    373 \def\@listI{\leftmargin\leftmargini \parsep 3.6pt plus 2pt minus 1pt% | 
|         |    374 \topsep 7.2pt plus 2pt minus 4pt% | 
|         |    375 \itemsep 3.6pt plus 2pt minus 1pt} | 
|         |    376  | 
|         |    377 \let\@listi\@listI | 
|         |    378 \@listi | 
|         |    379  | 
|         |    380 \def\@listii{\leftmargin\leftmarginii | 
|         |    381    \labelwidth\leftmarginii\advance\labelwidth-\labelsep | 
|         |    382    \topsep 3.6pt plus 2pt minus 1pt | 
|         |    383    \parsep 1.8pt plus 0.9pt minus 0.9pt | 
|         |    384    \itemsep \parsep} | 
|         |    385  | 
|         |    386 \def\@listiii{\leftmargin\leftmarginiii | 
|         |    387     \labelwidth\leftmarginiii\advance\labelwidth-\labelsep | 
|         |    388     \topsep 1.8pt plus 0.9pt minus 0.9pt | 
|         |    389     \parsep \z@ \partopsep 1pt plus 0pt minus 1pt | 
|         |    390     \itemsep \topsep} | 
|         |    391  | 
|         |    392 \def\@listiv{\leftmargin\leftmarginiv | 
|         |    393      \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} | 
|         |    394  | 
|         |    395 \def\@listv{\leftmargin\leftmarginv | 
|         |    396      \labelwidth\leftmarginv\advance\labelwidth-\labelsep} | 
|         |    397  | 
|         |    398 \def\@listvi{\leftmargin\leftmarginvi | 
|         |    399      \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} | 
|         |    400  | 
|         |    401 \def\labelenumi{\theenumi.} | 
|         |    402 \def\theenumi{\arabic{enumi}} | 
|         |    403  | 
|         |    404 \def\labelenumii{(\theenumii)} | 
|         |    405 \def\theenumii{\alph{enumii}} | 
|         |    406 \def\p@enumii{\theenumi} | 
|         |    407  | 
|         |    408 \def\labelenumiii{\theenumiii.} | 
|         |    409 \def\theenumiii{\roman{enumiii}} | 
|         |    410 \def\p@enumiii{\theenumi(\theenumii)} | 
|         |    411  | 
|         |    412 \def\labelenumiv{\theenumiv.} | 
|         |    413 \def\theenumiv{\Alph{enumiv}} | 
|         |    414 \def\p@enumiv{\p@enumiii\theenumiii} | 
|         |    415  | 
|         |    416 \def\labelitemi{$\bullet$} | 
|         |    417 \def\labelitemii{\bf --} | 
|         |    418 \def\labelitemiii{$\ast$} | 
|         |    419 \def\labelitemiv{$\cdot$} | 
|         |    420  | 
|         |    421 \def\verse{\let\\=\@centercr | 
|         |    422   \list{}{\itemsep\z@ \itemindent -1.5em\listparindent \itemindent | 
|         |    423           \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]} | 
|         |    424 \let\endverse\endlist | 
|         |    425  | 
|         |    426 \def\quotation{\list{}{\listparindent 1.5em | 
|         |    427     \itemindent\listparindent | 
|         |    428     \rightmargin\leftmargin \parsep 0pt plus 1pt}\item[]} | 
|         |    429 \let\endquotation=\endlist | 
|         |    430  | 
|         |    431 \def\quote{\list{}{\rightmargin\leftmargin}\item[]} | 
|         |    432 \let\endquote=\endlist | 
|         |    433  | 
|         |    434 \def\descriptionlabel#1{\hspace\labelsep \bf #1} | 
|         |    435 \def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin | 
|         |    436        \let\makelabel\descriptionlabel}} | 
|         |    437  | 
|         |    438 \let\enddescription\endlist | 
|         |    439  | 
|         |    440 %\newdimen\descriptionmargin | 
|         |    441 %\descriptionmargin=3em | 
|         |    442  | 
|         |    443 \def\theequation{\arabic{equation}} | 
|         |    444  | 
|         |    445 % \jot = 3pt	% Extra space added between lines of an eqnarray environment | 
|         |    446  | 
|         |    447 % The macro \@eqnnum defines how equation numbers are to appear in equations. | 
|         |    448 % | 
|         |    449 % \def\@eqnnum{(\theequation)} | 
|         |    450 % | 
|         |    451  | 
|         |    452 % Changed pagenum to 1, so margins work right in twoside option. | 
|         |    453 % It's not clear to me that this environment is useful for acmconf.sty | 
|         |    454 % anyway. -Olin | 
|         |    455 \def\titlepage{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn | 
|         |    456      \else \newpage \fi \thispagestyle{empty}\c@page\@ne} | 
|         |    457  | 
|         |    458 \def\endtitlepage{\if@restonecol\twocolumn \else \newpage \fi \c@page\@ne} | 
|         |    459  | 
|         |    460 \arraycolsep 4.5pt	% Half the space between columns in an array environment. | 
|         |    461 \tabcolsep 5.4pt	% Half the space between columns in a tabular environment. | 
|         |    462 \arrayrulewidth .4pt	% Width of rules in array and tabular environment. | 
|         |    463 \doublerulesep 1.8pt	% Space between adjacent rules in array or tabular env. | 
|         |    464  | 
|         |    465 \tabbingsep \labelsep	% Space used by the \' command.  (See LaTeX manual.) | 
|         |    466  | 
|         |    467 \skip\@mpfootins = \skip\footins | 
|         |    468  | 
|         |    469 \fboxsep = 2.7pt	% Space left between box and text by \fbox and \framebox. | 
|         |    470 \fboxrule = .4pt	% Width of rules in box made by \fbox and \framebox. | 
|         |    471  | 
|         |    472 \newcounter{part} | 
|         |    473 \newcounter {section} | 
|         |    474 \newcounter {subsection}[section] | 
|         |    475 \newcounter {subsubsection}[subsection] | 
|         |    476 \newcounter {paragraph}[subsubsection] | 
|         |    477 \newcounter {subparagraph}[paragraph] | 
|         |    478  | 
|         |    479 \def\thepart{\Roman{part}} % Roman numeral part numbers. | 
|         |    480 \def\thesection       {\arabic{section}} | 
|         |    481 \def\thesubsection    {\thesection.\arabic{subsection}} | 
|         |    482 \def\thesubsubsection {\thesubsection .\arabic{subsubsection}} | 
|         |    483 \def\theparagraph     {\thesubsubsection.\arabic{paragraph}} | 
|         |    484 \def\thesubparagraph  {\theparagraph.\arabic{subparagraph}} | 
|         |    485  | 
|         |    486 \def\@pnumwidth{1.55em} | 
|         |    487 \def\@tocrmarg {2.55em} | 
|         |    488 \def\@dotsep{4.5} | 
|         |    489 \setcounter{tocdepth}{3} | 
|         |    490  | 
|         |    491 \def\tableofcontents{\@latexerr{\tableofcontents: Tables of contents are not | 
|         |    492   allowed in the `acmconf' document style.}\@eha} | 
|         |    493  | 
|         |    494 \def\l@part#1#2{\addpenalty{\@secpenalty} | 
|         |    495    \addvspace{2.25em plus 1pt}  % space above part line | 
|         |    496    \begingroup | 
|         |    497    \@tempdima 3em	% width of box holding part number, used by | 
|         |    498      \parindent \z@ \rightskip \@pnumwidth	%% \numberline | 
|         |    499      \parfillskip -\@pnumwidth | 
|         |    500      {\large \bf	% set line in \large boldface | 
|         |    501      \leavevmode	% TeX command to enter horizontal mode. | 
|         |    502      #1\hfil \hbox to\@pnumwidth{\hss #2}}\par | 
|         |    503      \nobreak		% Never break after part entry | 
|         |    504    \endgroup} | 
|         |    505  | 
|         |    506 \def\l@section#1#2{\addpenalty{\@secpenalty} % good place for page break | 
|         |    507    \addvspace{1.0em plus 1pt}	% space above toc entry | 
|         |    508    \@tempdima 1.5em		% width of box holding section number | 
|         |    509    \begingroup | 
|         |    510      \parindent \z@ \rightskip \@pnumwidth | 
|         |    511      \parfillskip -\@pnumwidth | 
|         |    512      \bf			% Boldface. | 
|         |    513      \leavevmode		% TeX command to enter horizontal mode. | 
|         |    514       \advance\leftskip\@tempdima %% added 5 Feb 88 to conform to | 
|         |    515       \hskip -\leftskip		  %% 25 Jan 88 change to \numberline | 
|         |    516      #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par | 
|         |    517    \endgroup} | 
|         |    518  | 
|         |    519  | 
|         |    520 \def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}} | 
|         |    521 \def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}} | 
|         |    522 \def\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}} | 
|         |    523 \def\l@subparagraph{\@dottedtocline{5}{10em}{5em}} | 
|         |    524  | 
|         |    525 \def\listoffigures{\@latexerr{\listoffigures: Lists of figures are not | 
|         |    526   allowed in the `acmconf' document style.}\@eha} | 
|         |    527  | 
|         |    528 \def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} | 
|         |    529  | 
|         |    530 \def\listoftables{\@latexerr{\listoftables: Lists of tables are not | 
|         |    531   allowed in the `acmconf' document style.}\@eha} | 
|         |    532 \let\l@table\l@figure | 
|         |    533  | 
|         |    534  | 
|         |    535 \def\thebibliography#1{\section*{References\@mkboth | 
|         |    536   {REFERENCES}{REFERENCES}}\list | 
|         |    537   {[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}\leftmargin\labelwidth | 
|         |    538     \advance\leftmargin\labelsep | 
|         |    539     \usecounter{enumi}} | 
|         |    540     \def\newblock{\hskip .11em plus .33em minus .07em} | 
|         |    541     \sloppy\clubpenalty4000\widowpenalty4000 | 
|         |    542     \sfcode`\.=1000\relax} | 
|         |    543  | 
|         |    544 \let\endthebibliography=\endlist | 
|         |    545  | 
|         |    546 % \def\@biblabel#1{[#1]\hfill}	% Produces the label for a \bibitem[...] | 
|         |    547 				% command. | 
|         |    548 % \def\@cite#1{[#1]}		% Produces the output of the \cite command. | 
|         |    549  | 
|         |    550 \newif\if@restonecol | 
|         |    551  | 
|         |    552 \def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi | 
|         |    553 \columnseprule \z@ | 
|         |    554 \columnsep 35pt\twocolumn[\section*{Index}] | 
|         |    555     \@mkboth{INDEX}{INDEX}\thispagestyle{empty}\parindent\z@ | 
|         |    556     \parskip\z@ plus .3pt\relax\let\item\@idxitem} | 
|         |    557  | 
|         |    558 \def\@idxitem{\par\hangindent 40pt} | 
|         |    559  | 
|         |    560 \def\subitem{\par\hangindent 40pt \hspace*{20pt}} | 
|         |    561  | 
|         |    562 \def\subsubitem{\par\hangindent 40pt \hspace*{30pt}} | 
|         |    563  | 
|         |    564 \def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi} | 
|         |    565  | 
|         |    566 \def\indexspace{\par \vskip 10pt plus 5pt minus 3pt\relax} | 
|         |    567  | 
|         |    568 \def\footnoterule{\kern-3\p@ | 
|         |    569   \hrule width .4\columnwidth | 
|         |    570   \kern 2.6\p@}			% The \hrule has default height of .4pt . | 
|         |    571  | 
|         |    572 \long\def\@makefntext#1{\parindent 1em\noindent | 
|         |    573             \hbox to 1.8em{\hss$^{\@thefnmark}$}#1} | 
|         |    574  | 
|         |    575 \setcounter{topnumber}{2} | 
|         |    576 \def\topfraction{.7} | 
|         |    577 \setcounter{bottomnumber}{1} | 
|         |    578 \def\bottomfraction{.3} | 
|         |    579 \setcounter{totalnumber}{3} | 
|         |    580 \def\textfraction{.2} | 
|         |    581 \def\floatpagefraction{.5} | 
|         |    582 \setcounter{dbltopnumber}{2} | 
|         |    583 \def\dbltopfraction{.7} | 
|         |    584 \def\dblfloatpagefraction{.5} | 
|         |    585  | 
|         |    586 \long\def\@makecaption#1#2{ | 
|         |    587    \vskip 10pt | 
|         |    588    \setbox\@tempboxa\hbox{#1: #2} | 
|         |    589    \ifdim \wd\@tempboxa >\hsize	% IF longer than one line: | 
|         |    590        #1: #2\par		%   THEN set as ordinary paragraph. | 
|         |    591      \else			%   ELSE  center. | 
|         |    592        \hbox to\hsize{\hfil\box\@tempboxa\hfil} | 
|         |    593    \fi} | 
|         |    594  | 
|         |    595 \newcounter{figure} | 
|         |    596 \def\thefigure{\@arabic\c@figure} | 
|         |    597  | 
|         |    598 \def\fps@figure{tbp} | 
|         |    599 \def\ftype@figure{1} | 
|         |    600 \def\ext@figure{lof} | 
|         |    601 \def\fnum@figure{Figure \thefigure} | 
|         |    602 \def\figure{\@float{figure}} | 
|         |    603 \let\endfigure\end@float | 
|         |    604 \@namedef{figure*}{\@dblfloat{figure}} | 
|         |    605 \@namedef{endfigure*}{\end@dblfloat} | 
|         |    606  | 
|         |    607 \newcounter{table} | 
|         |    608 \def\thetable{\@arabic\c@table} | 
|         |    609  | 
|         |    610 \def\fps@table{tbp} | 
|         |    611 \def\ftype@table{2} | 
|         |    612 \def\ext@table{lot} | 
|         |    613 \def\fnum@table{Table \thetable} | 
|         |    614 \def\table{\@float{table}} | 
|         |    615 \let\endtable\end@float | 
|         |    616 \@namedef{table*}{\@dblfloat{table}} | 
|         |    617 \@namedef{endtable*}{\end@dblfloat} | 
|         |    618  | 
|         |    619 \def\maketitle{\par | 
|         |    620  \begingroup | 
|         |    621    \def\thefootnote{\fnsymbol{footnote}} | 
|         |    622    \def\@makefnmark{\hbox | 
|         |    623        to 0pt{$^{\@thefnmark}$\hss}} | 
|         |    624    \if@twocolumn | 
|         |    625      \twocolumn[\@maketitle] | 
|         |    626      \else \newpage | 
|         |    627      \global\@topnum\z@		% Prevents figures from going at top of page. | 
|         |    628 %     \@maketitle \fi\thispagestyle{empty}\@thanks | 
|         |    629      \@maketitle \fi\@thanks | 
|         |    630  \endgroup | 
|         |    631  \setcounter{footnote}{0} | 
|         |    632  \let\maketitle\relax | 
|         |    633  \let\@maketitle\relax | 
|         |    634  \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax | 
|         |    635  \@copyrightspace} | 
|         |    636  | 
|         |    637 \newbox\@acmtitlebox | 
|         |    638 \def\@maketitle{\newpage | 
|         |    639  \null | 
|         |    640  \setbox\@acmtitlebox\vbox{% | 
|         |    641    \vskip 2em			% Vertical space above title. | 
|         |    642    \begin{center} | 
|         |    643     {\LARGE \@title \par}	% Title set in \LARGE size. | 
|         |    644     \vskip 1.5em		% Vertical space after title. | 
|         |    645     {\large			% each author set in \large, in a | 
|         |    646      \lineskip .5em		% tabular environment | 
|         |    647      \begin{tabular}[t]{c}\@author | 
|         |    648      \end{tabular}\par} | 
|         |    649     \vskip 1.5em		% Vertical space after author. | 
|         |    650    \end{center}} | 
|         |    651  \dimen0=\ht\@acmtitlebox | 
|         |    652  \advance\dimen0 by -14.5pc\relax % Increased space for title box -- KBT | 
|         |    653  \unvbox\@acmtitlebox | 
|         |    654  \ifdim\dimen0<0.0pt\relax\vskip-\dimen0\fi} | 
|         |    655  | 
|         |    656 \def\abstract{\if@twocolumn | 
|         |    657 \section*{Abstract} | 
|         |    658 \else \small | 
|         |    659 \begin{center} | 
|         |    660 {\bf Abstract\vspace{-.5em}\vspace{0pt}} | 
|         |    661 \end{center} | 
|         |    662 \quotation | 
|         |    663 \fi} | 
|         |    664  | 
|         |    665 \def\endabstract{\if@twocolumn\else\endquotation\fi} | 
|         |    666  | 
|         |    667 %%% This section (written by KBT) handles the 1" box in the lower left | 
|         |    668 %%% corner of the left column of the first page by creating a picture, | 
|         |    669 %%% and inserting the predefined string at the bottom (with a negative | 
|         |    670 %%% displacement to offset the space allocated for a non-existent | 
|         |    671 %%% caption). | 
|         |    672 %%% | 
|         |    673 \def\ftype@copyrightbox{8} | 
|         |    674 \def\@copyrightspace{ | 
|         |    675 \@float{copyrightbox}[b] | 
|         |    676 \begin{center} | 
|         |    677 \setlength{\unitlength}{1pc} | 
|         |    678 \begin{picture}(20,2.8) | 
|         |    679 \ifpreprint \put(0,-0.95){\@toappear} \else \fi | 
|         |    680 \end{picture} | 
|         |    681 \end{center} | 
|         |    682 \end@float} | 
|         |    683  | 
|         |    684 \def\@toappear{} % Default setting blank - commands below change this. | 
|         |    685 \def\toappear#1{\def\@toappear{\parbox[b]{20pc}{#1}}} | 
|         |    686 \def\toappearbox#1{\def\@toappear{\raisebox{5pt}{\framebox[20pc]{\parbox[b]{19pc}{#1}}}}} | 
|         |    687  | 
|         |    688 \def\marginpar{\@latexerr{The \marginpar command is not allowed in the | 
|         |    689   `acmconf' document style.}\@eha} | 
|         |    690  | 
|         |    691 \mark{{}{}}	% Initializes TeX's marks | 
|         |    692  | 
|         |    693 %% Headings are ignored unless the [preprint] option is in force. | 
|         |    694 \ifpreprint | 
|         |    695   \if@twoside | 
|         |    696       \def\ps@headings{ | 
|         |    697 	  \def\@oddfoot{} | 
|         |    698 	  \def\@evenfoot{} | 
|         |    699 	  \def\@evenhead{\rm\thepage\hfil \sl \leftmark} | 
|         |    700 	  \def\@oddhead{\hbox{}\sl \rightmark \hfil\rm\thepage} | 
|         |    701 	  \def\sectionmark##1{\markboth {\uppercase{\ifnum\c@secnumdepth>\z@ | 
|         |    702 			      \thesection \hskip 1em\relax \fi ##1}}{}} | 
|         |    703 	  \def\subsectionmark##1 | 
|         |    704 	      {\markright {\ifnum \c@secnumdepth >\@ne \thesubsection | 
|         |    705 	       	    \hskip 1em\relax \fi ##1}}} | 
|         |    706  | 
|         |    707   \else | 
|         |    708       \def\ps@headings{ | 
|         |    709 	  \def\@oddfoot{} | 
|         |    710 	  \def\@evenfoot{} | 
|         |    711 	  \def\@oddhead{\hbox{}\sl \rightmark \hfil \rm\thepage} | 
|         |    712 	  \def\sectionmark##1{\markright{\uppercase{\ifnum \c@secnumdepth >\z@ | 
|         |    713 					 \thesection\hskip 1em\relax \fi ##1}}}} | 
|         |    714   \fi | 
|         |    715  | 
|         |    716   \def\ps@myheadings{\def\@oddhead{\hbox{}\sl\rightmark \hfil\rm\thepage}% | 
|         |    717 		     \def \@evenhead{\rm \thepage\hfil\sl\leftmark\hbox{}}% | 
|         |    718 		     \def\@oddfoot{}% | 
|         |    719 		     \def\@evenfoot{}% | 
|         |    720 		     \def\sectionmark##1{}% | 
|         |    721 		     \def\subsectionmark##1{}} | 
|         |    722  | 
|         |    723 \else % preprint off -- all \pagestyle commands ==> \pagestyle{empty}. | 
|         |    724   \let\ps@plain\ps@empty | 
|         |    725   \let\ps@headings\ps@empty | 
|         |    726   \let\ps@myheadings\ps@empty | 
|         |    727 \fi | 
|         |    728  | 
|         |    729 \def\today{\ifcase\month\or | 
|         |    730   January\or February\or March\or April\or May\or June\or | 
|         |    731   July\or August\or September\or October\or November\or December\fi | 
|         |    732   \space\number\day, \number\year} | 
|         |    733  | 
|         |    734 \ps@plain | 
|         |    735 \pagenumbering{arabic}	% Arabic page numbers | 
|         |    736 \twocolumn		% Double column. | 
|         |    737 \raggedbottom		% Ragged bottom |