Paper/document/acmconf.sty
changeset 1327 670701b19e8e
equal deleted inserted replaced
1324:f5aa2134e199 1327:670701b19e8e
       
     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