]> AND Private Git Repository - canny.git/blob - acm_proc_article-sp.cls
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
y
[canny.git] / acm_proc_article-sp.cls
1 % ACM_PROC_ARTICLE-SP.CLS - VERSION 3.2SP\r
2 % COMPATIBLE WITH THE "SIG-ALTERNATE" V2.4\r
3 % Gerald Murray - April 22nd. 2009\r
4 %\r
5 % ---- Start of 'updates'  ----\r
6 %\r
7 % April 22nd. 2009 - Fixed 'Natbib' incompatibility problem - Gerry\r
8 % April 22nd. 2009 - Fixed 'Babel' incompatibility problem - Gerry\r
9 % April 22nd. 2009 - Inserted various bug-fixes and improvements - Gerry\r
10 %\r
11 % To produce Type 1 fonts in the document plus allow for 'normal LaTeX accenting' in the critical areas;\r
12 % title, author block, section-heads, etc. etc. \r
13 % i.e. the whole purpose of this version update is to NOT resort to 'inelegant accent patches'.\r
14 % After much research, three extra .sty packages were added to the the tail (ae, aecompl, aeguill) to solve,\r
15 % in particular, the accenting problem(s). We _could_ ask authors (via instructions/sample file) to 'include' these in\r
16 % the source .tex file - in the preamble - but if everything is already provided ('behind the scenes' - embedded IN the .cls)\r
17 % then this is less work for authors and also makes everything appear 'vanilla'.\r
18 % NOTE: all 'patchwork accenting" has been commented out (here) and is no longer 'used' in the sample .tex file (either).\r
19 % Gerry June 2007\r
20 %\r
21 % Rule widths changed to .5, author count (>6) fixed, roll-back for Type 3 problem. Gerry March 20th. 2007\r
22 % Changes made to 'modernize' the fontnames but esp. for MikTeX users V2.4/2.5 - Nov. 30th. 2006\r
23 % Updated the \email definition to allow for its use inside of 'shared affiliations' - Nov. 30th. 2006\r
24 % Fixed the 'section number depth value' - Nov. 30th. 2006\r
25 %\r
26 % Footnotes inside table cells using \minipage (Oct. 2002)\r
27 % Georgia fixed bug in sub-sub-section numbering in paragraphs (July 29th. 2002)\r
28 % JS/GM fix to vertical spacing before Proofs (July 30th. 2002)\r
29 %\r
30 % Allowance made to switch default fonts between those systems using\r
31 % normal/modern font names and those using 'Type 1' or 'Truetype' fonts.\r
32 % See LINE NUMBER 269 for details.\r
33 % Also provided for enumerated/annotated Corollaries 'surrounded' by\r
34 % enumerated Theorems (line 844).\r
35 % Gerry November 11th. 1999\r
36 %\r
37 % This 'sp' version does NOT produce the permission block.\r
38 %\r
39 % Major change in January 2000 was to include a "blank line" in between\r
40 % new paragraphs. This involved major changes to the, then, acmproc-sp.cls  1.0SP\r
41 % file, precipitating a 'new' name: "acm_proc_article-sp.cls" V2.01SP.\r
42 %\r
43 % ---- End of 'updates' ----\r
44 %\r
45 \def\fileversion{V3.2SP}         % for ACM's tracking purposes\r
46 \def\filedate{April 22, 2009}    % Gerry Murray's tracking data\r
47 \def\docdate {Wednesday 22nd. April 2009} % Gerry Murray (with deltas to doc}\r
48 \usepackage{epsfig}\r
49 \usepackage{amssymb}\r
50 \usepackage{amsmath}\r
51 \usepackage{amsfonts}\r
52 % Need this for accents in Arial/Helvetica\r
53 %\usepackage[T1]{fontenc}  % Gerry March 12, 2007 - causes Type 3 problems (body text)\r
54 %\usepackage{textcomp}\r
55 %\r
56 % ACM_PROC_ARTICLE-SP  DOCUMENT STYLE\r
57 % G.K.M. Tobin August-October 1999\r
58 %    adapted from ARTICLE document style by Ken Traub, Olin Shivers\r
59 %    also using elements of esub2acm.cls\r
60 % LATEST REVISION V3.2SP - APRIL 2009\r
61 % ARTICLE DOCUMENT STYLE -- Released 16 March 1988\r
62 %    for LaTeX version 2.09\r
63 % Copyright (C) 1988 by Leslie Lamport\r
64 %\r
65 %\r
66 %%% ACM_PROC_ARTICLE-SP is a document style for producing two-column camera-ready pages for\r
67 %%% ACM conferences, according to ACM specifications.  The main features of\r
68 %%% this style are:\r
69 %%%\r
70 %%% 1)  Two columns.\r
71 %%% 2)  Side and top margins of 4.5pc, bottom margin of 6pc, column gutter of\r
72 %%%     2pc, hence columns are 20pc wide and 55.5pc tall.  (6pc =3D 1in, approx)\r
73 %%% 3)  First page has title information, and an extra 6pc of space at the\r
74 %%%     bottom of the first column for the ACM copyright notice.\r
75 %%% 4)  Text is 9pt on 10pt baselines; titles (except main) are 9pt bold.\r
76 %%%\r
77 %%%\r
78 %%% There are a few restrictions you must observe:\r
79 %%%\r
80 %%% 1)  You cannot change the font size; ACM wants you to use 9pt.\r
81 %%% 3)  You must start your paper with the \maketitle command.  Prior to the\r
82 %%%     \maketitle you must have \title and \author commands.  If you have a\r
83 %%%     \date command it will be ignored; no date appears on the paper, since\r
84 %%%     the proceedings will have a date on the front cover.\r
85 %%% 4)  Marginal paragraphs, tables of contents, lists of figures and tables,\r
86 %%%     and page headings are all forbidden.\r
87 %%% 5)  The `figure' environment will produce a figure one column wide; if you\r
88 %%%     want one that is two columns wide, use `figure*'.\r
89 %%%\r
90 %\r
91 %%% Copyright Space:\r
92 %%% This style automatically leaves 1" blank space at the bottom of page 1/\r
93 %%% column 1.  This space can optionally be filled with some text using the\r
94 %%% \toappear{...} command.  If used, this command must be BEFORE the \maketitle\r
95 %%% command.  If this command is defined AND [preprint] is on, then the\r
96 %%% space is filled with the {...} text (at the bottom); otherwise, it is\r
97 %%% blank.  If you use \toappearbox{...} instead of \toappear{...} then a\r
98 %%% box will be drawn around the text (if [preprint] is on).\r
99 %%%\r
100 %%% A typical usage looks like this:\r
101 %%%     \toappear{To appear in the Ninth AES Conference on Medievil Lithuanian\r
102 %%%               Embalming Technique, June 1991, Alfaretta, Georgia.}\r
103 %%% This will be included in the preprint, and left out of the conference\r
104 %%% version.\r
105 %%%\r
106 %%% WARNING:\r
107 %%% Some dvi-ps converters heuristically allow chars to drift from their\r
108 %%% true positions a few pixels. This may be noticeable with the 9pt sans-serif\r
109 %%% bold font used for section headers.\r
110 %%% You may turn this hackery off via the -e option:\r
111 %%%     dvips -e 0 foo.dvi >foo.ps\r
112 %%%\r
113 \typeout{Document Class 'acm_proc_article-sp' <22nd. April '09>.  Modified by G.K.M. Tobin}\r
114 \typeout{Based in part upon document Style `acmconf' <22 May 89>. Hacked 4/91 by}\r
115 \typeout{shivers@cs.cmu.edu, 4/93 by theobald@cs.mcgill.ca}\r
116 \typeout{Excerpts were taken from (Journal Style) 'esub2acm.cls'.}\r
117 \typeout{****** Bugs/comments/suggestions  to Gerry Murray -- murray@hq.acm.org ******}\r
118 \r
119 \oddsidemargin 4.5pc\r
120 \evensidemargin 4.5pc\r
121 \advance\oddsidemargin by -1in  % Correct for LaTeX gratuitousness\r
122 \advance\evensidemargin by -1in % Correct for LaTeX gratuitousness\r
123 \marginparwidth 0pt             % Margin pars are not allowed.\r
124 \marginparsep 11pt              % Horizontal space between outer margin and\r
125                                 % marginal note\r
126 \r
127                                 % Top of page:\r
128 \topmargin 4.5pc                % Nominal distance from top of page to top of\r
129                                 % box containing running head.\r
130 \advance\topmargin by -1in      % Correct for LaTeX gratuitousness\r
131 \headheight 0pt                 % Height of box containing running head.\r
132 \headsep 0pt                    % Space between running head and text.\r
133                                 % Bottom of page:\r
134 \footskip 30pt                  % Distance from baseline of box containing foot\r
135                                 % to baseline of last line of text.\r
136 \@ifundefined{footheight}{\newdimen\footheight}{}% this is for LaTeX2e\r
137 \footheight 12pt                % Height of box containing running foot.\r
138 \r
139 \r
140 %% Must redefine the top margin so there's room for headers and\r
141 %% page numbers if you are using the preprint option. Footers\r
142 %% are OK as is. Olin.\r
143 \advance\topmargin by -37pt     % Leave 37pt above text for headers\r
144 \headheight 12pt                % Height of box containing running head.\r
145 \headsep 25pt                   % Space between running head and text.\r
146 \r
147 \textheight 666pt       % 9 1/4 column height\r
148 \textwidth 42pc         % Width of text line.\r
149                         % For two-column mode:\r
150 \columnsep 2pc          %    Space between columns\r
151 \columnseprule 0pt      %    Width of rule between columns.\r
152 \hfuzz 1pt              % Allow some variation in column width, otherwise it's\r
153                         % too hard to typeset in narrow columns.\r
154 \r
155 \footnotesep 5.6pt      % Height of strut placed at the beginning of every\r
156                         % footnote =3D height of normal \footnotesize strut,\r
157                         % so no extra space between footnotes.\r
158 \r
159 \skip\footins 8.1pt plus 4pt minus 2pt  % Space between last line of text and\r
160                                         % top of first footnote.\r
161 \floatsep 11pt plus 2pt minus 2pt       % Space between adjacent floats moved\r
162                                         % to top or bottom of text page.\r
163 \textfloatsep 18pt plus 2pt minus 4pt   % Space between main text and floats\r
164                                         % at top or bottom of page.\r
165 \intextsep 11pt plus 2pt minus 2pt      % Space between in-text figures and\r
166                                         % text.\r
167 \@ifundefined{@maxsep}{\newdimen\@maxsep}{}% this is for LaTeX2e\r
168 \@maxsep 18pt                           % The maximum of \floatsep,\r
169                                         % \textfloatsep and \intextsep (minus\r
170                                         % the stretch and shrink).\r
171 \dblfloatsep 11pt plus 2pt minus 2pt    % Same as \floatsep for double-column\r
172                                         % figures in two-column mode.\r
173 \dbltextfloatsep 18pt plus 2pt minus 4pt% \textfloatsep for double-column\r
174                                         % floats.\r
175 \@ifundefined{@dblmaxsep}{\newdimen\@dblmaxsep}{}% this is for LaTeX2e\r
176 \@dblmaxsep 18pt                        % The maximum of \dblfloatsep and\r
177                                         % \dbltexfloatsep.\r
178 \@fptop 0pt plus 1fil    % Stretch at top of float page/column. (Must be\r
179                          % 0pt plus ...)\r
180 \@fpsep 8pt plus 2fil    % Space between floats on float page/column.\r
181 \@fpbot 0pt plus 1fil    % Stretch at bottom of float page/column. (Must be\r
182                          % 0pt plus ... )\r
183 \@dblfptop 0pt plus 1fil % Stretch at top of float page. (Must be 0pt plus ...)\r
184 \@dblfpsep 8pt plus 2fil % Space between floats on float page.\r
185 \@dblfpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be\r
186                          % 0pt plus ... )\r
187 \marginparpush 5pt       % Minimum vertical separation between two marginal\r
188                          % notes.\r
189 \r
190 \parskip 0pt                % Extra vertical space between paragraphs.\r
191                     % Set to 0pt outside sections, to keep section heads\r
192                     % uniformly spaced.  The value of parskip is set\r
193                     % to leading value _within_ sections.\r
194                     % 12 Jan 2000 gkmt\r
195 \parindent 0pt                % Width of paragraph indentation.\r
196 \partopsep 2pt plus 1pt minus 1pt% Extra vertical space, in addition to\r
197                                  % \parskip and \topsep, added when user\r
198                                  % leaves blank line before environment.\r
199 \r
200 \@lowpenalty   51       % Produced by \nopagebreak[1] or \nolinebreak[1]\r
201 \@medpenalty  151       % Produced by \nopagebreak[2] or \nolinebreak[2]\r
202 \@highpenalty 301       % Produced by \nopagebreak[3] or \nolinebreak[3]\r
203 \r
204 \@beginparpenalty -\@lowpenalty % Before a list or paragraph environment.\r
205 \@endparpenalty   -\@lowpenalty % After a list or paragraph environment.\r
206 \@itempenalty     -\@lowpenalty % Between list items.\r
207 \r
208 %\@namedef{ds@10pt}{\@latexerr{The `10pt' option is not allowed in the `acmconf'\r
209 \@namedef{ds@10pt}{\ClassError{The `10pt' option is not allowed in the `acmconf'        % January 2008\r
210   document style.}\@eha}\r
211 %\@namedef{ds@11pt}{\@latexerr{The `11pt' option is not allowed in the `acmconf'\r
212 \@namedef{ds@11pt}{\ClassError{The `11pt' option is not allowed in the `acmconf'        % January 2008\r
213   document style.}\@eha}\r
214 %\@namedef{ds@12pt}{\@latexerr{The `12pt' option is not allowed in the `acmconf'\r
215 \@namedef{ds@12pt}{\ClassError{The `12pt' option is not allowed in the `acmconf'        % January 2008\r
216   document style.}\@eha}\r
217 \r
218 \@options\r
219 \r
220 \lineskip 2pt           % \lineskip is 1pt for all font sizes.\r
221 \normallineskip 2pt\r
222 \def\baselinestretch{1}\r
223 \r
224 \abovedisplayskip 9pt plus2pt minus4.5pt%\r
225 \belowdisplayskip \abovedisplayskip\r
226 \abovedisplayshortskip  \z@ plus3pt%\r
227 \belowdisplayshortskip  5.4pt plus3pt minus3pt%\r
228 \let\@listi\@listI     % Setting of \@listi added 9 Jun 87\r
229 \r
230 \def\small{\@setsize\small{9pt}\viiipt\@viiipt\r
231 \abovedisplayskip 7.6pt plus 3pt minus 4pt%\r
232 \belowdisplayskip \abovedisplayskip\r
233 \abovedisplayshortskip \z@ plus2pt%\r
234 \belowdisplayshortskip 3.6pt plus2pt minus 2pt\r
235 \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87\r
236 \topsep 4pt plus 2pt minus 2pt\parsep 2pt plus 1pt minus 1pt\r
237 \itemsep \parsep}}\r
238 \r
239 \def\footnotesize{\@setsize\footnotesize{9pt}\ixpt\@ixpt\r
240 \abovedisplayskip 6.4pt plus 2pt minus 4pt%\r
241 \belowdisplayskip \abovedisplayskip\r
242 \abovedisplayshortskip \z@ plus 1pt%\r
243 \belowdisplayshortskip 2.7pt plus 1pt minus 2pt\r
244 \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87\r
245 \topsep 3pt plus 1pt minus 1pt\parsep 2pt plus 1pt minus 1pt\r
246 \itemsep \parsep}}\r
247 \r
248 \newcount\aucount\r
249 \newcount\originalaucount\r
250 \newdimen\auwidth\r
251 \auwidth=\textwidth\r
252 \newdimen\auskip\r
253 \newcount\auskipcount\r
254 \newdimen\auskip\r
255 \global\auskip=1pc\r
256 \newdimen\allauboxes\r
257 \allauboxes=\auwidth\r
258 \newtoks\addauthors\r
259 \newcount\addauflag\r
260 \global\addauflag=0 %Haven't shown additional authors yet\r
261 \r
262 \newtoks\subtitletext\r
263 \gdef\subtitle#1{\subtitletext={#1}}\r
264 \r
265 \gdef\additionalauthors#1{\addauthors={#1}}\r
266 \r
267 \gdef\numberofauthors#1{\global\aucount=#1\r
268 \ifnum\aucount>3\global\originalaucount=\aucount \global\aucount=3\fi %g}  % 3 OK - Gerry March 2007\r
269 \global\auskipcount=\aucount\global\advance\auskipcount by 1\r
270 \global\multiply\auskipcount by 2\r
271 \global\multiply\auskip by \auskipcount\r
272 \global\advance\auwidth by -\auskip\r
273 \global\divide\auwidth by \aucount}\r
274 \r
275 % \and was modified to count the number of authors.  GKMT 12 Aug 1999\r
276 \def\alignauthor{%                  % \begin{tabular}\r
277 \end{tabular}%\r
278   \begin{tabular}[t]{p{\auwidth}}\centering}%\r
279 \r
280 \r
281 %  *** NOTE *** NOTE *** NOTE *** NOTE ***\r
282 %  If you have 'font problems' then you may need\r
283 %  to change these, e.g. 'arialb' instead of "arialbd".\r
284 %  Gerry Murray 11/11/1999\r
285 %  *** OR ** comment out block A and activate block B or vice versa.\r
286 % **********************************************\r
287 %\r
288 %  -- Start of block A -- (Type 1 or Truetype fonts)\r
289 %\newfont{\secfnt}{timesbd at 12pt} % was timenrb originally - now is timesbd\r
290 %\newfont{\secit}{timesbi at 12pt}   %13 Jan 00 gkmt\r
291 %\newfont{\subsecfnt}{timesi at 11pt} % was timenrri originally - now is timesi\r
292 %\newfont{\subsecit}{timesbi at 11pt} % 13 Jan 00 gkmt -- was times changed to timesbi gm 2/4/2000\r
293 %                         % because "normal" is italic, "italic" is Roman\r
294 %\newfont{\ttlfnt}{arialbd at 18pt} % was arialb originally - now is arialbd\r
295 %\newfont{\ttlit}{arialbi at 18pt}    % 13 Jan 00 gkmt\r
296 %\newfont{\subttlfnt}{arial at 14pt} % was arialr originally - now is arial\r
297 %\newfont{\subttlit}{ariali at 14pt} % 13 Jan 00 gkmt\r
298 %\newfont{\subttlbf}{arialbd at 14pt}  % 13 Jan 00 gkmt\r
299 %\newfont{\aufnt}{arial at 12pt} % was arialr originally - now is arial\r
300 %\newfont{\auit}{ariali at 12pt} % 13 Jan 00 gkmt\r
301 %\newfont{\affaddr}{arial at 10pt} % was arialr originally - now is arial\r
302 %\newfont{\affaddrit}{ariali at 10pt} %13 Jan 00 gkmt\r
303 %\newfont{\eaddfnt}{arial at 12pt} % was arialr originally - now is arial\r
304 %\newfont{\ixpt}{times at 9pt} % was timenrr originally - now is times\r
305 %\newfont{\confname}{timesi at 8pt} % was timenrri - now is timesi\r
306 %\newfont{\crnotice}{times at 8pt} % was timenrr originally - now is times\r
307 %\newfont{\ninept}{times at 9pt} % was timenrr originally - now is times\r
308 % *********************************************\r
309 %  -- End of block A --\r
310 %\r
311 %\r
312 % -- Start of block B -- UPDATED FONT NAMES\r
313 % *********************************************\r
314 % Gerry Murray 11/30/2006\r
315 % *********************************************\r
316 \newfont{\secfnt}{ptmb8t at 12pt}\r
317 \newfont{\secit}{ptmbi8t at 12pt}    %13 Jan 00 gkmt\r
318 \newfont{\subsecfnt}{ptmri8t at 11pt}\r
319 \newfont{\subsecit}{ptmbi8t at 11pt}  % \r
320 \newfont{\ttlfnt}{phvb8t at 18pt}\r
321 \newfont{\ttlit}{phvbo8t at 18pt}    % GM 2/4/2000\r
322 \newfont{\subttlfnt}{phvr8t at 14pt}\r
323 \newfont{\subttlit}{phvro8t at 14pt} % GM 2/4/2000\r
324 \newfont{\subttlbf}{phvb8t at 14pt}  % 13 Jan 00 gkmt\r
325 \newfont{\aufnt}{phvr8t at 12pt}\r
326 \newfont{\auit}{phvro8t at 12pt}     % GM 2/4/2000\r
327 \newfont{\affaddr}{phvr8t at 10pt}\r
328 \newfont{\affaddrit}{phvro8t at 10pt} % GM 2/4/2000\r
329 \newfont{\eaddfnt}{phvr8t at 12pt}\r
330 \newfont{\ixpt}{ptmr8t at 9pt}\r
331 \newfont{\confname}{ptmri8t at 8pt}\r
332 \newfont{\crnotice}{ptmr8t at 8pt}\r
333 \newfont{\ninept}{ptmr8t at 9pt}\r
334 % +++++++++++++++++++++++++++++++++++++++++++++\r
335 % -- End of block B --\r
336 \r
337 %\def\email#1{{{\eaddfnt{\vskip 4pt#1}}}}\r
338 % If we have an email, inside a "shared affiliation" then we need the following instead\r
339 \def\email#1{{{\eaddfnt{\par #1}}}}       % revised  - GM - 11/30/2006\r
340 \r
341 \def\addauthorsection{\ifnum\originalaucount>6  % was 3 - Gerry March 2007\r
342     \section{Additional Authors}\the\addauthors\r
343   \fi}\r
344 \r
345 \newcount\savesection\r
346 \newcount\sectioncntr\r
347 \global\sectioncntr=1\r
348 \r
349 \setcounter{secnumdepth}{3}\r
350 \r
351 \def\appendix{\par\r
352 \section*{APPENDIX}\r
353 \setcounter{section}{0}\r
354  \setcounter{subsection}{0}\r
355  \def\thesection{\Alph{section}} }\r
356 \r
357 \r
358 \leftmargini 22.5pt\r
359 \leftmarginii 19.8pt    % > \labelsep + width of '(m)'\r
360 \leftmarginiii 16.8pt   % > \labelsep + width of 'vii.'\r
361 \leftmarginiv 15.3pt    % > \labelsep + width of 'M.'\r
362 \leftmarginv 9pt\r
363 \leftmarginvi 9pt\r
364 \r
365 \leftmargin\leftmargini\r
366 \labelsep 4.5pt\r
367 \labelwidth\leftmargini\advance\labelwidth-\labelsep\r
368 \r
369 \def\@listI{\leftmargin\leftmargini \parsep 3.6pt plus 2pt minus 1pt%\r
370 \topsep 7.2pt plus 2pt minus 4pt%\r
371 \itemsep 3.6pt plus 2pt minus 1pt}\r
372 \r
373 \let\@listi\@listI\r
374 \@listi\r
375 \r
376 \def\@listii{\leftmargin\leftmarginii\r
377    \labelwidth\leftmarginii\advance\labelwidth-\labelsep\r
378    \topsep 3.6pt plus 2pt minus 1pt\r
379    \parsep 1.8pt plus 0.9pt minus 0.9pt\r
380    \itemsep \parsep}\r
381 \r
382 \def\@listiii{\leftmargin\leftmarginiii\r
383     \labelwidth\leftmarginiii\advance\labelwidth-\labelsep\r
384     \topsep 1.8pt plus 0.9pt minus 0.9pt\r
385     \parsep \z@ \partopsep 1pt plus 0pt minus 1pt\r
386     \itemsep \topsep}\r
387 \r
388 \def\@listiv{\leftmargin\leftmarginiv\r
389      \labelwidth\leftmarginiv\advance\labelwidth-\labelsep}\r
390 \r
391 \def\@listv{\leftmargin\leftmarginv\r
392      \labelwidth\leftmarginv\advance\labelwidth-\labelsep}\r
393 \r
394 \def\@listvi{\leftmargin\leftmarginvi\r
395      \labelwidth\leftmarginvi\advance\labelwidth-\labelsep}\r
396 \r
397 \def\labelenumi{\theenumi.}\r
398 \def\theenumi{\arabic{enumi}}\r
399 \r
400 \def\labelenumii{(\theenumii)}\r
401 \def\theenumii{\alph{enumii}}\r
402 \def\p@enumii{\theenumi}\r
403 \r
404 \def\labelenumiii{\theenumiii.}\r
405 \def\theenumiii{\roman{enumiii}}\r
406 \def\p@enumiii{\theenumi(\theenumii)}\r
407 \r
408 \def\labelenumiv{\theenumiv.}\r
409 \def\theenumiv{\Alph{enumiv}}\r
410 \def\p@enumiv{\p@enumiii\theenumiii}\r
411 \r
412 \def\labelitemi{$\bullet$}\r
413 \def\labelitemii{\bf --}\r
414 \def\labelitemiii{$\ast$}\r
415 \def\labelitemiv{$\cdot$}\r
416 \r
417 \def\verse{\let\\=\@centercr\r
418   \list{}{\itemsep\z@ \itemindent -1.5em\listparindent \itemindent\r
419           \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]}\r
420 \let\endverse\endlist\r
421 \r
422 \def\quotation{\list{}{\listparindent 1.5em\r
423     \itemindent\listparindent\r
424     \rightmargin\leftmargin \parsep 0pt plus 1pt}\item[]}\r
425 \let\endquotation=\endlist\r
426 \r
427 \def\quote{\list{}{\rightmargin\leftmargin}\item[]}\r
428 \let\endquote=\endlist\r
429 \r
430 \def\descriptionlabel#1{\hspace\labelsep \bf #1}\r
431 \def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin\r
432        \let\makelabel\descriptionlabel}}\r
433 \r
434 \let\enddescription\endlist\r
435 \r
436 \def\theequation{\arabic{equation}}\r
437 \r
438 \arraycolsep 4.5pt   % Half the space between columns in an array environment.\r
439 \tabcolsep 5.4pt     % Half the space between columns in a tabular environment.\r
440 \arrayrulewidth .5pt % Width of rules in array and tabular environment. % (was .4) updated Gerry March 20 2007\r
441 \doublerulesep 1.8pt % Space between adjacent rules in array or tabular env.\r
442 \r
443 \tabbingsep \labelsep   % Space used by the \' command.  (See LaTeX manual.)\r
444 \r
445 \skip\@mpfootins =\skip\footins\r
446 \r
447 \fboxsep =2.7pt      % Space left between box and text by \fbox and \framebox.\r
448 \fboxrule =.5pt      % Width of rules in box made by \fbox and \framebox. % (was .4) updated Gerry March 20 2007\r
449 \r
450 \def\thepart{\Roman{part}} % Roman numeral part numbers.\r
451 \def\thesection       {\arabic{section}}\r
452 \def\thesubsection    {\thesection.\arabic{subsection}}\r
453 %\def\thesubsubsection {\thesubsection.\arabic{subsubsection}} % GM 7/30/2002\r
454 %\def\theparagraph     {\thesubsubsection.\arabic{paragraph}}  % GM 7/30/2002\r
455 \def\thesubparagraph  {\theparagraph.\arabic{subparagraph}}\r
456 \r
457 \def\@pnumwidth{1.55em}\r
458 \def\@tocrmarg {2.55em}\r
459 \def\@dotsep{4.5}\r
460 \setcounter{tocdepth}{3}\r
461 \r
462 %\def\tableofcontents{\@latexerr{\tableofcontents: Tables of contents are not\r
463 %  allowed in the `acmconf' document style.}\@eha}\r
464 \r
465 \def\tableofcontents{\ClassError{%\r
466     \string\tableofcontents\space is not allowed in the `acmconf' document      % January 2008\r
467     style}\@eha}\r
468 \r
469 \def\l@part#1#2{\addpenalty{\@secpenalty}\r
470    \addvspace{2.25em plus 1pt}  % space above part line\r
471    \begingroup\r
472    \@tempdima 3em       % width of box holding part number, used by\r
473      \parindent \z@ \rightskip \@pnumwidth      %% \numberline\r
474      \parfillskip -\@pnumwidth\r
475      {\large \bf        % set line in \large boldface\r
476      \leavevmode        % TeX command to enter horizontal mode.\r
477      #1\hfil \hbox to\@pnumwidth{\hss #2}}\par\r
478      \nobreak           % Never break after part entry\r
479    \endgroup}\r
480 \r
481 \def\l@section#1#2{\addpenalty{\@secpenalty} % good place for page break\r
482    \addvspace{1.0em plus 1pt}   % space above toc entry\r
483    \@tempdima 1.5em             % width of box holding section number\r
484    \begingroup\r
485      \parindent \z@ \rightskip \@pnumwidth\r
486      \parfillskip -\@pnumwidth\r
487      \bf                        % Boldface.\r
488      \leavevmode                % TeX command to enter horizontal mode.\r
489       \advance\leftskip\@tempdima %% added 5 Feb 88 to conform to\r
490       \hskip -\leftskip           %% 25 Jan 88 change to \numberline\r
491      #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par\r
492    \endgroup}\r
493 \r
494 \r
495 \def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}}\r
496 \def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}}\r
497 \def\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}}\r
498 \def\l@subparagraph{\@dottedtocline{5}{10em}{5em}}\r
499 \r
500 %\def\listoffigures{\@latexerr{\listoffigures: Lists of figures are not\r
501 %  allowed in the `acmconf' document style.}\@eha}\r
502 \r
503 \def\listoffigures{\ClassError{%\r
504     \string\listoffigures\space is not allowed in the `acmconf' document        % January 2008\r
505     style}\@eha}\r
506 \r
507 \def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}\r
508 \r
509 %\def\listoftables{\@latexerr{\listoftables: Lists of tables are not\r
510 %  allowed in the `acmconf' document style.}\@eha}\r
511 %\let\l@table\l@figure\r
512 \r
513 \def\listoftables{\ClassError{%\r
514     \string\listoftables\space is not allowed in the `acmconf' document         % January 2008\r
515     style}\@eha}\r
516  \let\l@table\l@figure\r
517 \r
518 \def\footnoterule{\kern-3\p@\r
519   \hrule width .5\columnwidth   % (was .4) updated Gerry March 20 2007\r
520   \kern 2.6\p@}                 % The \hrule has default height of .4pt % (was .4) updated Gerry March 20 2007\r
521 % ------\r
522 \long\def\@makefntext#1{\noindent \r
523 %\hbox to .5em{\hss$^{\@thefnmark}$}#1}   % original\r
524 \hbox to .5em{\hss\textsuperscript{\@thefnmark}}#1}  % C. Clifton / GM Oct. 2nd. 2002\r
525 % -------\r
526 \r
527 \long\def\@maketntext#1{\noindent\r
528 #1}\r
529 \r
530 \long\def\@maketitlenotetext#1#2{\noindent\r
531             \hbox to 1.8em{\hss$^{#1}$}#2}\r
532 \r
533 \setcounter{topnumber}{2}\r
534 \def\topfraction{.7}\r
535 \setcounter{bottomnumber}{1}\r
536 \def\bottomfraction{.3}\r
537 \setcounter{totalnumber}{3}\r
538 \def\textfraction{.2}\r
539 \def\floatpagefraction{.5}\r
540 \setcounter{dbltopnumber}{2}\r
541 \def\dbltopfraction{.7}\r
542 \def\dblfloatpagefraction{.5}\r
543 \r
544 \long\def\@makecaption#1#2{\r
545    \vskip \baselineskip\r
546    \setbox\@tempboxa\hbox{\textbf{#1: #2}}\r
547    \ifdim \wd\@tempboxa >\hsize % IF longer than one line:\r
548        \textbf{#1: #2}\par               %   THEN set as ordinary paragraph.\r
549      \else                      %   ELSE  center.\r
550        \hbox to\hsize{\hfil\box\@tempboxa\hfil}\par\r
551    \fi}\r
552 \r
553 \@ifundefined{figure}{\newcounter {figure}} % this is for LaTeX2e\r
554 \r
555 \def\fps@figure{tbp}\r
556 \def\ftype@figure{1}\r
557 \def\ext@figure{lof}\r
558 \def\fnum@figure{Figure \thefigure}\r
559 \def\figure{\@float{figure}}\r
560 %\let\endfigure\end@float\r
561 \def\endfigure{\end@float}              % Gerry January 2008\r
562 \@namedef{figure*}{\@dblfloat{figure}}\r
563 \@namedef{endfigure*}{\end@dblfloat}\r
564 \r
565 \@ifundefined{table}{\newcounter {table}} % this is for LaTeX2e\r
566 \r
567 \def\fps@table{tbp}\r
568 \def\ftype@table{2}\r
569 \def\ext@table{lot}\r
570 \def\fnum@table{Table \thetable}\r
571 \def\table{\@float{table}}\r
572 %\let\endtable\end@float\r
573 \def\endtable{\end@float}               % Gerry January 2008\r
574 \@namedef{table*}{\@dblfloat{table}}\r
575 \@namedef{endtable*}{\end@dblfloat}\r
576 \r
577 \newtoks\titleboxnotes\r
578 \newcount\titleboxnoteflag\r
579 \r
580 \def\maketitle{\par\r
581  \begingroup\r
582    \def\thefootnote{\fnsymbol{footnote}}\r
583    \def\@makefnmark{\hbox\r
584        to 0pt{$^{\@thefnmark}$\hss}}\r
585      \twocolumn[\@maketitle]\r
586 \@thanks\r
587  \endgroup\r
588  \setcounter{footnote}{0}\r
589  \let\maketitle\relax\r
590  \let\@maketitle\relax\r
591  \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\gdef\@subtitle{}\let\thanks\relax\r
592  \@copyrightspace}\r
593 \r
594 %% CHANGES ON NEXT LINES\r
595 \newif\if@ll % to record which version of LaTeX is in use\r
596 \r
597 \expandafter\ifx\csname LaTeXe\endcsname\relax % LaTeX2.09 is used\r
598 \else% LaTeX2e is used, so set ll to true\r
599 \global\@lltrue\r
600 \fi\r
601 \r
602 \if@ll\r
603   \NeedsTeXFormat{LaTeX2e}\r
604   \ProvidesClass{acm_proc_article-sp} [2009/04/22 - V3.2SP - based on esub2acm.sty <23 April 96>]\r
605   \RequirePackage{latexsym}% QUERY: are these two really needed?\r
606   \let\dooptions\ProcessOptions\r
607 \else\r
608   \let\dooptions\@options\r
609 \fi\r
610 %% END CHANGES\r
611 \r
612 \def\@height{height}\r
613 \def\@width{width}\r
614 \def\@minus{minus}\r
615 \def\@plus{plus}\r
616 \def\hb@xt@{\hbox to}\r
617 \newif\if@faircopy\r
618 \@faircopyfalse\r
619 \def\ds@faircopy{\@faircopytrue}\r
620 \r
621 \def\ds@preprint{\@faircopyfalse}\r
622 \r
623 \@twosidetrue\r
624 \@mparswitchtrue\r
625 \def\ds@draft{\overfullrule 5\p@}\r
626 %% CHANGE ON NEXT LINE\r
627 \dooptions\r
628 \r
629 \lineskip \p@\r
630 \normallineskip \p@\r
631 \def\baselinestretch{1}\r
632 \def\@ptsize{0} %needed for amssymbols.sty\r
633 \r
634 %% CHANGES ON NEXT LINES\r
635 \if@ll% allow use of old-style font change commands in LaTeX2e\r
636 \@maxdepth\maxdepth\r
637 %\r
638 \DeclareOldFontCommand{\rm}{\ninept\rmfamily}{\mathrm}\r
639 \DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}\r
640 \DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}\r
641 \DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}\r
642 \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}\r
643 \DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}\r
644 \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}\r
645 \DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}}\r
646 \DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}}\r
647 \fi\r
648 %\r
649 \if@ll\r
650  \renewcommand{\rmdefault}{cmr}  % was 'ttm'\r
651 % Note! I have also found 'mvr' to work ESPECIALLY well.\r
652 % Gerry - October 1999\r
653 % You may need to change your LV1times.fd file so that sc is\r
654 % mapped to cmcsc - -for smallcaps -- that is if you decide\r
655 % to change {cmr} to {times} above. (Not recommended)\r
656   \renewcommand{\@ptsize}{}\r
657   \renewcommand{\normalsize}{%\r
658     \@setfontsize\normalsize\@ixpt{10.5\p@}%\ninept%\r
659     \abovedisplayskip 6\p@ \@plus2\p@ \@minus\p@\r
660     \belowdisplayskip \abovedisplayskip\r
661     \abovedisplayshortskip 6\p@ \@minus 3\p@\r
662     \belowdisplayshortskip 6\p@ \@minus 3\p@\r
663     \let\@listi\@listI\r
664   }\r
665 \else\r
666   \def\@normalsize{%changed next to 9 from 10\r
667     \@setsize\normalsize{9\p@}\ixpt\@ixpt\r
668    \abovedisplayskip 6\p@ \@plus2\p@ \@minus\p@\r
669     \belowdisplayskip \abovedisplayskip\r
670     \abovedisplayshortskip 6\p@ \@minus 3\p@\r
671     \belowdisplayshortskip 6\p@ \@minus 3\p@\r
672     \let\@listi\@listI\r
673   }%\r
674 \fi\r
675 \if@ll\r
676   \newcommand\scriptsize{\@setfontsize\scriptsize\@viipt{8\p@}}\r
677   \newcommand\tiny{\@setfontsize\tiny\@vpt{6\p@}}\r
678   \newcommand\large{\@setfontsize\large\@xiipt{14\p@}}\r
679   \newcommand\Large{\@setfontsize\Large\@xivpt{18\p@}}\r
680   \newcommand\LARGE{\@setfontsize\LARGE\@xviipt{20\p@}}\r
681   \newcommand\huge{\@setfontsize\huge\@xxpt{25\p@}}\r
682   \newcommand\Huge{\@setfontsize\Huge\@xxvpt{30\p@}}\r
683 \else\r
684   \def\scriptsize{\@setsize\scriptsize{8\p@}\viipt\@viipt}\r
685   \def\tiny{\@setsize\tiny{6\p@}\vpt\@vpt}\r
686   \def\large{\@setsize\large{14\p@}\xiipt\@xiipt}\r
687   \def\Large{\@setsize\Large{18\p@}\xivpt\@xivpt}\r
688   \def\LARGE{\@setsize\LARGE{20\p@}\xviipt\@xviipt}\r
689   \def\huge{\@setsize\huge{25\p@}\xxpt\@xxpt}\r
690   \def\Huge{\@setsize\Huge{30\p@}\xxvpt\@xxvpt}\r
691 \fi\r
692 \normalsize\r
693 \r
694 % make aubox hsize/number of authors up to 3, less gutter\r
695 % then showbox gutter showbox gutter showbox -- GKMT Aug 99\r
696 \newbox\@acmtitlebox\r
697 \def\@maketitle{\newpage\r
698  \null\r
699  \setbox\@acmtitlebox\vbox{%\r
700 \baselineskip 20pt\r
701 \vskip 2em                   % Vertical space above title.\r
702    \begin{center}\r
703     {\ttlfnt \@title\par}       % Title set in 18pt Helvetica (Arial) bold size.\r
704     \vskip 1.5em                % Vertical space after title.\r
705 %This should be the subtitle.\r
706 {\subttlfnt \the\subtitletext\par}\vskip 1.25em%\fi\r
707     {\baselineskip 16pt\aufnt   % each author set in \12 pt Arial, in a\r
708      \lineskip .5em             % tabular environment\r
709      \begin{tabular}[t]{c}\@author\r
710      \end{tabular}\par}\r
711     \vskip 1.5em               % Vertical space after author.\r
712    \end{center}}\r
713  \dimen0=\ht\@acmtitlebox\r
714  \advance\dimen0 by -12.75pc\relax % Increased space for title box -- KBT\r
715  \unvbox\@acmtitlebox\r
716  \ifdim\dimen0<0.0pt\relax\vskip-\dimen0\fi}\r
717 \r
718 \r
719 \newcount\titlenotecount\r
720 \global\titlenotecount=0\r
721 \newtoks\tntoks\r
722 \newtoks\tntokstwo\r
723 \newtoks\tntoksthree\r
724 \newtoks\tntoksfour\r
725 \newtoks\tntoksfive\r
726 \r
727 \def\abstract{\r
728 \ifnum\titlenotecount>0 % was =1\r
729     \insert\footins{%\r
730     \reset@font\footnotesize\r
731         \interlinepenalty\interfootnotelinepenalty\r
732         \splittopskip\footnotesep\r
733         \splitmaxdepth \dp\strutbox \floatingpenalty \@MM\r
734         \hsize\columnwidth \@parboxrestore\r
735         \protected@edef\@currentlabel{%\r
736         }%\r
737         \color@begingroup\r
738 \ifnum\titlenotecount=1\r
739       \@maketntext{%\r
740          \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\@finalstrut\strutbox}%\r
741 \fi\r
742 \ifnum\titlenotecount=2\r
743       \@maketntext{%\r
744       \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}%\r
745 \@maketntext{%\r
746          \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\@finalstrut\strutbox}%\r
747 \fi\r
748 \ifnum\titlenotecount=3\r
749       \@maketntext{%\r
750          \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}%\r
751 \@maketntext{%\r
752          \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}%\r
753 \@maketntext{%\r
754          \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\@finalstrut\strutbox}%\r
755 \fi\r
756 \ifnum\titlenotecount=4\r
757       \@maketntext{%\r
758          \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}%\r
759 \@maketntext{%\r
760          \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}%\r
761 \@maketntext{%\r
762          \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\par\@finalstrut\strutbox}%\r
763 \@maketntext{%\r
764          \raisebox{4pt}{$\S$}\rule\z@\footnotesep\ignorespaces\the\tntoksfour\@finalstrut\strutbox}%\r
765 \fi\r
766 \ifnum\titlenotecount=5\r
767       \@maketntext{%\r
768          \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}%\r
769 \@maketntext{%\r
770          \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}%\r
771 \@maketntext{%\r
772          \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\par\@finalstrut\strutbox}%\r
773 \@maketntext{%\r
774          \raisebox{4pt}{$\S$}\rule\z@\footnotesep\ignorespaces\the\tntoksfour\par\@finalstrut\strutbox}%\r
775 \@maketntext{%\r
776          \raisebox{4pt}{$\P$}\rule\z@\footnotesep\ignorespaces\the\tntoksfive\@finalstrut\strutbox}%\r
777 \fi\r
778    \color@endgroup} %g}\r
779 \fi\r
780 \setcounter{footnote}{0}\r
781 \section*{ABSTRACT}\normalsize %\the\parskip \the\baselineskip%\ninept\r
782 }\r
783 \r
784 \def\endabstract{\if@twocolumn\else\endquotation\fi}\r
785 \r
786 \def\keywords{\if@twocolumn\r
787 \section*{Keywords}\r
788 \else \small\r
789 \quotation\r
790 \fi}\r
791 \r
792 % I've pulled the check for 2 cols, since proceedings are _always_\r
793 % two-column  11 Jan 2000 gkmt\r
794 \def\terms{%\if@twocolumn\r
795 \section*{General Terms}\r
796 %\else \small\r
797 %\quotation\the\parskip\r
798 %\fi}\r
799 }\r
800 \r
801 % -- Classification needs to be a bit smart due to optionals - Gerry/Georgia November 2nd. 1999\r
802 \newcount\catcount\r
803 \global\catcount=1\r
804 \r
805 \def\category#1#2#3{%\r
806 \ifnum\catcount=1\r
807 \section*{Categories and Subject Descriptors}\r
808 \advance\catcount by 1\else{\unskip; }\fi\r
809     \@ifnextchar [{\@category{#1}{#2}{#3}}{\@category{#1}{#2}{#3}[]}%\r
810 }\r
811 \r
812 \def\@category#1#2#3[#4]{%\r
813     \begingroup\r
814         \let\and\relax\r
815             #1 [\textbf{#2}]%\r
816             \if!#4!%\r
817                 \if!#3!\else : #3\fi\r
818             \else\r
819                 :\space\r
820                 \if!#3!\else #3\kern\z@---\hskip\z@\fi\r
821                 \textit{#4}%\r
822             \fi\r
823     \endgroup\r
824 }\r
825 %\r
826 \r
827 %%% This section (written by KBT) handles the 1" box in the lower left\r
828 %%% corner of the left column of the first page by creating a picture,\r
829 %%% and inserting the predefined string at the bottom (with a negative\r
830 %%% displacement to offset the space allocated for a non-existent\r
831 %%% caption).\r
832 %%%\r
833 \newtoks\copyrightnotice\r
834 \def\ftype@copyrightbox{8}\r
835 \def\@copyrightspace{\r
836 \@float{copyrightbox}[b]\r
837 \begin{center}\r
838 \setlength{\unitlength}{1pc}\r
839 \begin{picture}(20,6) %Space for copyright notice\r
840 \put(0,-0.95){\crnotice{\@toappear}}\r
841 \end{picture}\r
842 \end{center}\r
843 \end@float}\r
844 \r
845 \def\@toappear{} % Default setting blank - commands below change this.\r
846 \long\def\toappear#1{\def\@toappear{\parbox[b]{20pc}{\baselineskip 9pt#1}}}\r
847 \def\toappearbox#1{\def\@toappear{\raisebox{5pt}{\framebox[20pc]{\parbox[b]{19pc}{#1}}}}}\r
848 \r
849 \newtoks\conf\r
850 \newtoks\confinfo\r
851 \def\conferenceinfo#1#2{\global\conf={#1}\global\confinfo{#2}}\r
852 \r
853 \r
854 %\def\marginpar{\@latexerr{The \marginpar command is not allowed in the\r
855 %  `acmconf' document style.}\@eha}\r
856 \r
857 \def\marginpar{\ClassError{%\r
858     \string\marginpar\space is not allowed in the `acmconf' document            % January 2008\r
859     style}\@eha}\r
860 \r
861 \mark{{}{}}     % Initializes TeX's marks\r
862 \r
863 \def\today{\ifcase\month\or\r
864   January\or February\or March\or April\or May\or June\or\r
865   July\or August\or September\or October\or November\or December\fi\r
866   \space\number\day, \number\year}\r
867 \r
868 \def\@begintheorem#1#2{%\r
869     \trivlist\r
870     \item[%\r
871         \hskip 10\p@\r
872         \hskip \labelsep\r
873         {{\sc #1}\hskip 5\p@\relax#2.}%\r
874     ]\r
875     \it\r
876 }\r
877 \def\@opargbegintheorem#1#2#3{%\r
878     \trivlist\r
879     \item[%\r
880         \hskip 10\p@\r
881         \hskip \labelsep\r
882         {\sc #1\ #2\             % This mod by Gerry to enumerate corollaries\r
883    \setbox\@tempboxa\hbox{(#3)}  % and bracket the 'corollary title'\r
884         \ifdim \wd\@tempboxa>\z@ % and retain the correct numbering of e.g. theorems\r
885             \hskip 5\p@\relax    % if they occur 'around' said corollaries.\r
886             \box\@tempboxa       % Gerry - Nov. 1999.\r
887         \fi.}%\r
888     ]\r
889     \it\r
890 }\r
891 \newif\if@qeded\r
892 \global\@qededfalse\r
893 \r
894 % -- original\r
895 %\def\proof{%\r
896 %  \vspace{-\parskip} % GM July 2000 (for tighter spacing)\r
897 %    \global\@qededfalse\r
898 %    \@ifnextchar[{\@xproof}{\@proof}%\r
899 %}\r
900 % -- end of original\r
901 \r
902 % (JSS) Fix for vertical spacing bug - Gerry Murray July 30th. 2002\r
903 \def\proof{%\r
904 \vspace{-\lastskip}\vspace{-\parsep}\penalty-51%\r
905 \global\@qededfalse\r
906 \@ifnextchar[{\@xproof}{\@proof}%\r
907 }\r
908 \r
909 \def\endproof{%\r
910     \if@qeded\else\qed\fi\r
911     \endtrivlist\r
912 }\r
913 \def\@proof{%\r
914     \trivlist\r
915     \item[%\r
916         \hskip 10\p@\r
917         \hskip \labelsep\r
918         {\sc Proof.}%\r
919     ]\r
920     \ignorespaces\r
921 }\r
922 \def\@xproof[#1]{%\r
923     \trivlist\r
924     \item[\hskip 10\p@\hskip \labelsep{\sc Proof #1.}]%\r
925     \ignorespaces\r
926 }\r
927 \def\qed{%\r
928     \unskip\r
929     \kern 10\p@\r
930     \begingroup\r
931         \unitlength\p@\r
932         \linethickness{.4\p@}%\r
933         \framebox(6,6){}%\r
934     \endgroup\r
935     \global\@qededtrue\r
936 }\r
937 \r
938 \def\newdef#1#2{%\r
939     \expandafter\@ifdefinable\csname #1\endcsname\r
940         {\@definecounter{#1}%\r
941          \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}%\r
942          \global\@namedef{#1}{\@defthm{#1}{#2}}%\r
943          \global\@namedef{end#1}{\@endtheorem}%\r
944     }%\r
945 }\r
946 \def\@defthm#1#2{%\r
947     \refstepcounter{#1}%\r
948     \@ifnextchar[{\@ydefthm{#1}{#2}}{\@xdefthm{#1}{#2}}%\r
949 }\r
950 \def\@xdefthm#1#2{%\r
951     \@begindef{#2}{\csname the#1\endcsname}%\r
952     \ignorespaces\r
953 }\r
954 \def\@ydefthm#1#2[#3]{%\r
955     \trivlist\r
956     \item[%\r
957         \hskip 10\p@\r
958         \hskip \labelsep\r
959         {\it #2%\r
960 %         \savebox\@tempboxa{#3}%\r
961          \saveb@x\@tempboxa{#3}%                % January 2008\r
962          \ifdim \wd\@tempboxa>\z@\r
963             \ \box\@tempboxa\r
964          \fi.%\r
965         }]%\r
966     \ignorespaces\r
967 }\r
968 \def\@begindef#1#2{%\r
969     \trivlist\r
970     \item[%\r
971         \hskip 10\p@\r
972         \hskip \labelsep\r
973         {\it #1\ \rm #2.}%\r
974     ]%\r
975 }\r
976 \def\theequation{\arabic{equation}}\r
977 \r
978 \newcounter{part}\r
979 \newcounter{section}\r
980 \newcounter{subsection}[section]\r
981 \newcounter{subsubsection}[subsection]\r
982 \newcounter{paragraph}[subsubsection]\r
983 \def\thepart{\Roman{part}}\r
984 \def\thesection{\arabic{section}}\r
985 \def\thesubsection{\thesection.\arabic{subsection}}\r
986 \def\thesubsubsection{\thesubsection.\arabic{subsubsection}} %removed \subsecfnt 29 July 2002 gkmt\r
987 \def\theparagraph{\thesubsubsection.\arabic{paragraph}} %removed \subsecfnt 29 July 2002 gkmt\r
988 \r
989 \newif\if@uchead\r
990 \@ucheadfalse\r
991 \r
992 %% CHANGES: NEW NOTE\r
993 %% NOTE: OK to use old-style font commands below, since they were\r
994 %% suitably redefined for LaTeX2e\r
995 %% END CHANGES\r
996 \setcounter{secnumdepth}{3}\r
997 \def\part{%\r
998     \@startsection{part}{9}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@}\r
999         {4\p@}{\normalsize\@ucheadtrue}%\r
1000 }\r
1001 \r
1002 % Rationale for changes made in next four definitions:\r
1003 % "Before skip" is made elastic to provide some give in setting columns (vs.\r
1004 % parskip, which is non-elastic to keep section headers "anchored" to their\r
1005 % subsequent text.\r
1006 %\r
1007 % "After skip" is minimized -- BUT setting it to 0pt resulted in run-in heads, despite\r
1008 % the documentation asserted only after-skip < 0pt would have result.\r
1009 %\r
1010 % Baselineskip added to style to ensure multi-line section titles, and section heads\r
1011 % followed by another section head rather than text, are decently spaced vertically.\r
1012 % 12 Jan 2000 gkmt\r
1013 \def\section{%\r
1014     \@startsection{section}{1}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@}%\r
1015     {0.5pt}{\baselineskip=14pt\secfnt\@ucheadtrue}%\r
1016 }\r
1017 \r
1018 \def\subsection{%\r
1019     \@startsection{subsection}{2}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@}\r
1020     {0.5pt}{\baselineskip=14pt\secfnt}%\r
1021 }\r
1022 \def\subsubsection{%\r
1023     \@startsection{subsubsection}{3}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@}%\r
1024     {0.5pt}{\baselineskip=14pt\subsecfnt}%\r
1025 }\r
1026 \r
1027 %\def\paragraph{%\r
1028 %    \vskip 12pt\@startsection{paragraph}{3}{\z@}{6\p@ \@plus \p@}% original\r
1029 %    {-5\p@}{\subsecfnt}%\r
1030 %}\r
1031 %  If one wants sections, subsections and subsubsections numbered,\r
1032 %  but not paragraphs, one usually sets secnumepth to 3.\r
1033 %  For that, the "depth" of paragraphs must be given correctly\r
1034 %  in the definition (``4'' instead of ``3'' as second argument\r
1035 %  of @startsection):\r
1036 \def\paragraph{%\r
1037     \vskip 12pt\@startsection{paragraph}{4}{\z@}{6\p@ \@plus \p@}%    % GM and Wolfgang May - 11/30/06\r
1038     {-5\p@}{\subsecfnt}%\r
1039 }\r
1040 \r
1041 \let\@period=.\r
1042 \def\@startsection#1#2#3#4#5#6{%\r
1043         \if@noskipsec  %gkmt, 11 aug 99\r
1044         \global\let\@period\@empty\r
1045         \leavevmode\r
1046         \global\let\@period.%\r
1047     \fi\r
1048     \par\r
1049     \@tempskipa #4\relax\r
1050     \@afterindenttrue\r
1051     \ifdim \@tempskipa <\z@\r
1052         \@tempskipa -\@tempskipa\r
1053         \@afterindentfalse\r
1054     \fi\r
1055     %\if@nobreak  11 Jan 00 gkmt\r
1056         %\everypar{}\r
1057     %\else\r
1058         \addpenalty\@secpenalty\r
1059         \addvspace\@tempskipa\r
1060     %\fi\r
1061     \parskip=0pt\r
1062     \@ifstar\r
1063         {\@ssect{#3}{#4}{#5}{#6}}\r
1064         {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}%\r
1065 }\r
1066 \r
1067 \r
1068 \def\@ssect#1#2#3#4#5{%\r
1069   \@tempskipa #3\relax\r
1070   \ifdim \@tempskipa>\z@\r
1071     \begingroup\r
1072       #4{%\r
1073         \@hangfrom{\hskip #1}%\r
1074           \interlinepenalty \@M #5\@@par}%\r
1075     \endgroup\r
1076   \else\r
1077     \def\@svsechd{#4{\hskip #1\relax #5}}%\r
1078   \fi\r
1079   \vskip -10.5pt  %gkmt, 7 jan 00 -- had been -14pt, now set to parskip\r
1080   \@xsect{#3}\parskip=10.5pt} % within the starred section, parskip = leading 12 Jan 2000 gkmt\r
1081 \r
1082 \r
1083 \def\@sect#1#2#3#4#5#6[#7]#8{%\r
1084     \ifnum #2>\c@secnumdepth\r
1085         \let\@svsec\@empty\r
1086     \else\r
1087         \refstepcounter{#1}%\r
1088         \edef\@svsec{%\r
1089             \begingroup\r
1090                 %\ifnum#2>2 \noexpand\rm \fi % changed to next 29 July 2002 gkmt\r
1091             \ifnum#2>2 \noexpand#6 \fi\r
1092                 \csname the#1\endcsname\r
1093             \endgroup\r
1094             \ifnum #2=1\relax .\fi\r
1095             \hskip 1em\r
1096         }%\r
1097     \fi\r
1098     \@tempskipa #5\relax\r
1099     \ifdim \@tempskipa>\z@\r
1100         \begingroup\r
1101             #6\relax\r
1102             \@hangfrom{\hskip #3\relax\@svsec}%\r
1103             \begingroup\r
1104                 \interlinepenalty \@M\r
1105                 \if@uchead\r
1106                     \uppercase{#8}%\r
1107                 \else\r
1108                     #8%\r
1109                 \fi\r
1110                 \par\r
1111             \endgroup\r
1112         \endgroup\r
1113         \csname #1mark\endcsname{#7}%\r
1114         \vskip -10.5pt  % -14pt gkmt, 11 aug 99 -- changed to -\parskip 11 Jan 2000\r
1115       \addcontentsline{toc}{#1}{%\r
1116             \ifnum #2>\c@secnumdepth \else\r
1117                 \protect\numberline{\csname the#1\endcsname}%\r
1118             \fi\r
1119             #7%\r
1120         }%\r
1121     \else\r
1122         \def\@svsechd{%\r
1123             #6%\r
1124             \hskip #3\relax\r
1125             \@svsec\r
1126             \if@uchead\r
1127                 \uppercase{#8}%\r
1128             \else\r
1129                 #8%\r
1130             \fi\r
1131             \csname #1mark\endcsname{#7}%\r
1132             \addcontentsline{toc}{#1}{%\r
1133                 \ifnum #2>\c@secnumdepth \else\r
1134                     \protect\numberline{\csname the#1\endcsname}%\r
1135                 \fi\r
1136                 #7%\r
1137             }%\r
1138         }%\r
1139     \fi\r
1140     \@xsect{#5}\parskip=10.5pt% within the section, parskip = leading 12 Jan 2000 gkmt\r
1141 }\r
1142 \def\@xsect#1{%\r
1143     \@tempskipa #1\relax\r
1144     \ifdim \@tempskipa>\z@\r
1145         \par\r
1146         \nobreak\r
1147         \vskip \@tempskipa\r
1148         \@afterheading\r
1149     \else\r
1150         \global\@nobreakfalse\r
1151         \global\@noskipsectrue\r
1152         \everypar{%\r
1153             \if@noskipsec\r
1154                 \global\@noskipsecfalse\r
1155                 \clubpenalty\@M\r
1156                 \hskip -\parindent\r
1157                 \begingroup\r
1158                     \@svsechd\r
1159                     \@period\r
1160                 \endgroup\r
1161                 \unskip\r
1162                 \@tempskipa #1\relax\r
1163                 \hskip -\@tempskipa\r
1164             \else\r
1165                 \clubpenalty \@clubpenalty\r
1166                 \everypar{}%\r
1167             \fi\r
1168         }%\r
1169     \fi\r
1170     \ignorespaces\r
1171 }\r
1172 \r
1173 \def\@trivlist{%\r
1174     \@topsepadd\topsep\r
1175     \if@noskipsec\r
1176         \global\let\@period\@empty\r
1177         \leavevmode\r
1178         \global\let\@period.%\r
1179     \fi\r
1180     \ifvmode\r
1181         \advance\@topsepadd\partopsep\r
1182     \else\r
1183         \unskip\r
1184         \par\r
1185     \fi\r
1186     \if@inlabel\r
1187         \@noparitemtrue\r
1188         \@noparlisttrue\r
1189     \else\r
1190         \@noparlistfalse\r
1191         \@topsep\@topsepadd\r
1192     \fi\r
1193     \advance\@topsep \parskip\r
1194     \leftskip\z@skip\r
1195     \rightskip\@rightskip\r
1196     \parfillskip\@flushglue\r
1197     \@setpar{\if@newlist\else{\@@par}\fi}\r
1198     \global\@newlisttrue\r
1199     \@outerparskip\parskip\r
1200 }\r
1201 \r
1202 %%% Actually, 'abbrev' works just fine as the default - Gerry Feb. 2000\r
1203 %%% Bibliography style.\r
1204 \r
1205 \parindent 0pt\r
1206 \typeout{Using 'Abbrev' bibliography style}\r
1207 \newcommand\bibyear[2]{%\r
1208     \unskip\quad\ignorespaces#1\unskip\r
1209     \if#2..\quad \else \quad#2 \fi\r
1210 }\r
1211 \newcommand{\bibemph}[1]{{\em#1}}\r
1212 \newcommand{\bibemphic}[1]{{\em#1\/}}\r
1213 \newcommand{\bibsc}[1]{{\sc#1}}\r
1214 \def\@normalcite{%\r
1215     \def\@cite##1##2{[##1\if@tempswa , ##2\fi]}%\r
1216 }\r
1217 \def\@citeNB{%\r
1218     \def\@cite##1##2{##1\if@tempswa , ##2\fi}%\r
1219 }\r
1220 \def\@citeRB{%\r
1221     \def\@cite##1##2{##1\if@tempswa , ##2\fi]}%\r
1222 }\r
1223 \def\start@cite#1#2{%\r
1224     \edef\citeauthoryear##1##2##3{%\r
1225         ###1%\r
1226         \ifnum#2=\z@ \else\ ###2\fi\r
1227     }%\r
1228     \ifnum#1=\thr@@\r
1229         \let\@@cite\@citeyear\r
1230     \else\r
1231         \let\@@cite\@citenormal\r
1232     \fi\r
1233     \@ifstar{\@citeNB\@@cite}{\@normalcite\@@cite}%\r
1234 }\r
1235 %\def\cite{\start@cite23}\r
1236 \DeclareRobustCommand\cite{\start@cite23}               % January 2008\r
1237 \def\citeNP{\cite*}                                     % No Parentheses e.g. 5\r
1238 %\def\citeA{\start@cite10}\r
1239 \DeclareRobustCommand\citeA{\start@cite10}              % January 2008\r
1240 \def\citeANP{\citeA*}\r
1241 %\def\shortcite{\start@cite23}                          \r
1242 \DeclareRobustCommand\shortcite{\start@cite23}          % January 2008\r
1243 \def\shortciteNP{\shortcite*}\r
1244 %\def\shortciteA{\start@cite20}\r
1245 \DeclareRobustCommand\shortciteA{\start@cite20}         % January 2008\r
1246 \def\shortciteANP{\shortciteA*}\r
1247 %\def\citeyear{\start@cite30}\r
1248 \DeclareRobustCommand\citeyear{\start@cite30}           % January 2008\r
1249 \def\citeyearNP{\citeyear*}\r
1250 %\def\citeN{%\r
1251 \DeclareRobustCommand\citeN{%                           % January 2008\r
1252     \@citeRB\r
1253     \def\citeauthoryear##1##2##3{##1\ [##3%\r
1254         \def\reserved@a{##1}%\r
1255         \def\citeauthoryear####1####2####3{%\r
1256             \def\reserved@b{####1}%\r
1257             \ifx\reserved@a\reserved@b\r
1258                 ####3%\r
1259             \else\r
1260                 \errmessage{Package acmart Error: author mismatch\r
1261                          in \string\citeN^^J^^J%\r
1262                     See the acmart package documentation for explanation}%\r
1263             \fi\r
1264         }%\r
1265     }%\r
1266     \@ifstar\@citeyear\@citeyear\r
1267 }\r
1268 %\def\shortciteN{%\r
1269 \DeclareRobustCommand\shortciteN{%                      % January 2008\r
1270     \@citeRB\r
1271     \def\citeauthoryear##1##2##3{##2\ [##3%\r
1272         \def\reserved@a{##2}%\r
1273         \def\citeauthoryear####1####2####3{%\r
1274             \def\reserved@b{####2}%\r
1275             \ifx\reserved@a\reserved@b\r
1276                 ####3%\r
1277             \else\r
1278                 \errmessage{Package acmart Error: author mismatch\r
1279                          in \string\shortciteN^^J^^J%\r
1280                     See the acmart package documentation for explanation}%\r
1281             \fi\r
1282         }%\r
1283     }%\r
1284     \@ifstar\@citeyear\@citeyear % changed from  "\@ifstart" 12 Jan 2000 gkmt\r
1285 }\r
1286 \r
1287 \def\@citenormal{%\r
1288     \@ifnextchar [{\@tempswatrue\@citex;}%\r
1289 % original                 {\@tempswafalse\@citex,[]}% was ; Gerry 2/24/00\r
1290 {\@tempswafalse\@citex[]}%      % GERRY FIX FOR BABEL 3/20/2009\r
1291 }\r
1292 \r
1293 \def\@citeyear{%\r
1294     \@ifnextchar [{\@tempswatrue\@citex,}%\r
1295 % original                  {\@tempswafalse\@citex,[]}%\r
1296 {\@tempswafalse\@citex[]}%      %  GERRY FIX FOR BABEL 3/20/2009\r
1297 }\r
1298 \r
1299 \def\@citex#1[#2]#3{%\r
1300     \let\@citea\@empty\r
1301     \@cite{%\r
1302         \@for\@citeb:=#3\do{%\r
1303             \@citea\r
1304 % original            \def\@citea{#1 }%\r
1305             \def\@citea{#1, }%  % GERRY FIX FOR BABEL 3/20/2009 -- SO THAT YOU GET [1, 2] IN THE BODY TEXT\r
1306             \edef\@citeb{\expandafter\@iden\@citeb}%\r
1307             \if@filesw\r
1308                 \immediate\write\@auxout{\string\citation{\@citeb}}%\r
1309             \fi\r
1310             \@ifundefined{b@\@citeb}{%\r
1311                 {\bf ?}%\r
1312                 \@warning{%\r
1313                     Citation `\@citeb' on page \thepage\space undefined%\r
1314                 }%\r
1315             }%\r
1316             {\csname b@\@citeb\endcsname}%\r
1317         }%\r
1318     }{#2}%\r
1319 }\r
1320 %\let\@biblabel\@gobble   % Dec. 2008 - Gerry\r
1321 % ----\r
1322 \def\@biblabelnum#1{[#1]} % Gerry's solution #1 - for Natbib \r
1323 \let\@biblabel=\@biblabelnum  % Gerry's solution #1 - for Natbib\r
1324 \def\newblock{\relax} % Gerry Dec. 2008\r
1325 % ---\r
1326 \newdimen\bibindent\r
1327 \setcounter{enumi}{1}\r
1328 \bibindent=0em\r
1329 \def\thebibliography#1{% \r
1330 \ifnum\addauflag=0\addauthorsection\global\addauflag=1\fi\r
1331      \section[References]{%    <=== OPTIONAL ARGUMENT ADDED HERE\r
1332         {References} % was uppercased but this affects pdf bookmarks (SP/GM October 2004)\r
1333          \@mkboth{{\refname}}{{\refname}}%\r
1334      }%\r
1335      \list{[\arabic{enumi}]}{%\r
1336          \settowidth\labelwidth{[#1]}%\r
1337          \leftmargin\labelwidth\r
1338          \advance\leftmargin\labelsep\r
1339          \advance\leftmargin\bibindent\r
1340          \parsep=0pt\itemsep=1pt % GM July 2000\r
1341          \itemindent -\bibindent\r
1342          \listparindent \itemindent\r
1343          \usecounter{enumi}\r
1344      }%\r
1345      \let\newblock\@empty\r
1346      \raggedright % GM July 2000\r
1347      \sloppy\r
1348      \sfcode`\.=1000\relax\r
1349 }\r
1350 \r
1351 \r
1352 \gdef\balancecolumns\r
1353 {\vfill\eject\r
1354 \global\@colht=\textheight\r
1355 \global\ht\@cclv=\textheight\r
1356 }\r
1357 \r
1358 \newcount\colcntr\r
1359 \global\colcntr=0\r
1360 %\newbox\savebox\r
1361 \newbox\saveb@x                         % January 2008\r
1362 \r
1363 \gdef \@makecol {%\r
1364 \global\advance\colcntr by 1\r
1365 \ifnum\colcntr>2 \global\colcntr=1\fi\r
1366    \ifvoid\footins\r
1367      \setbox\@outputbox \box\@cclv\r
1368    \else\r
1369      \setbox\@outputbox \vbox{%\r
1370 \boxmaxdepth \@maxdepth\r
1371        \@tempdima\dp\@cclv\r
1372        \unvbox \@cclv\r
1373        \vskip-\@tempdima\r
1374        \vskip \skip\footins\r
1375        \color@begingroup\r
1376          \normalcolor\r
1377          \footnoterule\r
1378          \unvbox \footins\r
1379        \color@endgroup\r
1380        }%\r
1381    \fi\r
1382    \xdef\@freelist{\@freelist\@midlist}%\r
1383    \global \let \@midlist \@empty\r
1384    \@combinefloats\r
1385    \ifvbox\@kludgeins\r
1386      \@makespecialcolbox\r
1387    \else\r
1388      \setbox\@outputbox \vbox to\@colht {%\r
1389 \@texttop\r
1390        \dimen@ \dp\@outputbox\r
1391        \unvbox \@outputbox\r
1392    \vskip -\dimen@\r
1393        \@textbottom\r
1394        }%\r
1395    \fi\r
1396    \global \maxdepth \@maxdepth\r
1397 }\r
1398 \def\titlenote{\@ifnextchar[\@xtitlenote{\stepcounter\@mpfn\r
1399 \global\advance\titlenotecount by 1\r
1400 \ifnum\titlenotecount=1\r
1401     \raisebox{9pt}{$\ast$}\r
1402 \fi\r
1403 \ifnum\titlenotecount=2\r
1404     \raisebox{9pt}{$\dagger$}\r
1405 \fi\r
1406 \ifnum\titlenotecount=3\r
1407     \raisebox{9pt}{$\ddagger$}\r
1408 \fi\r
1409 \ifnum\titlenotecount=4\r
1410 \raisebox{9pt}{$\S$}\r
1411 \fi\r
1412 \ifnum\titlenotecount=5\r
1413 \raisebox{9pt}{$\P$}\r
1414 \fi\r
1415          \@titlenotetext\r
1416 }}\r
1417 \r
1418 \long\def\@titlenotetext#1{\insert\footins{%\r
1419 \ifnum\titlenotecount=1\global\tntoks={#1}\fi\r
1420 \ifnum\titlenotecount=2\global\tntokstwo={#1}\fi\r
1421 \ifnum\titlenotecount=3\global\tntoksthree={#1}\fi\r
1422 \ifnum\titlenotecount=4\global\tntoksfour={#1}\fi\r
1423 \ifnum\titlenotecount=5\global\tntoksfive={#1}\fi\r
1424     \reset@font\footnotesize\r
1425     \interlinepenalty\interfootnotelinepenalty\r
1426     \splittopskip\footnotesep\r
1427     \splitmaxdepth \dp\strutbox \floatingpenalty \@MM\r
1428     \hsize\columnwidth \@parboxrestore\r
1429     \protected@edef\@currentlabel{%\r
1430     }%\r
1431     \color@begingroup\r
1432    \color@endgroup}}\r
1433 \r
1434 %%%%%%%%%%%%%%%%%%%%%%%%%\r
1435 \ps@plain\r
1436 \baselineskip=11pt\r
1437 \let\thepage\relax % For  NO page numbers - Gerry Nov. 30th. 1999\r
1438 \def\setpagenumber#1{\global\setcounter{page}{#1}}\r
1439 %\pagenumbering{arabic}  % Arabic page numbers but commented out for NO page numbes - Gerry Nov. 30th. 1999\r
1440 \twocolumn             % Double column.\r
1441 \flushbottom           % Even bottom -- alas, does not balance columns at end of document\r
1442 \pagestyle{plain}\r
1443 \r
1444 % Need Copyright Year and Copyright Data to be user definable (in .tex file).\r
1445 % Gerry Nov. 30th. 1999\r
1446 \newtoks\copyrtyr\r
1447 \newtoks\acmcopyr\r
1448 \newtoks\boilerplate\r
1449 \def\CopyrightYear#1{\global\copyrtyr{#1}}\r
1450 \def\crdata#1{\global\acmcopyr{#1}}\r
1451 \def\permission#1{\global\boilerplate{#1}}\r
1452 %\r
1453 \newtoks\copyrightetc\r
1454 \global\copyrightetc{\ } %  Need to have 'something' so that adequate space is left for pasting in a line if "confinfo" is supplied.\r
1455 \r
1456 \toappear{\the\boilerplate\par\r
1457 {\confname{\the\conf}} \the\confinfo\par \the\copyrightetc}\r
1458 % End of ACM_PROC_ARTICLE-SP.CLS -- V3.2SP - 04/22/2009 --\r
1459 % Gerry Murray -- Wednesday April 22nd. 2009\r
1460 %\r
1461 % The following section (i.e. 3 .sty inclusions) was added in May 2007 so as to fix the problems that many\r
1462 % authors were having with accents. Sometimes accents would occur, but the letter-character would be of a different\r
1463 % font. Conversely the letter-character font would be correct but, e.g. a 'bar' would appear superimposed on the\r
1464 % character instead of, say, an unlaut/diaresis. Sometimes the letter-character would NOT appear at all.\r
1465 % Using [T1]{fontenc} outright was not an option as this caused 99% of the authors to 'produce' a Type-3 (bitmapped)\r
1466 % PDF file - useless for production. \r
1467 %\r
1468 % For proper (font) accenting we NEED these packages to be part of the .cls file i.e. 'ae', 'aecompl' and 'aeguil' \r
1469 % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r
1470 %% This is file `ae.sty' \r
1471 \def\fileversion{1.3}\r
1472 \def\filedate{2001/02/12}\r
1473 \NeedsTeXFormat{LaTeX2e}\r
1474 %\ProvidesPackage{ae}[\filedate\space\fileversion\space  % GM\r
1475 % Almost European Computer Modern]                       % GM - keeping the log file clean(er)\r
1476 \newif\if@ae@slides \@ae@slidesfalse\r
1477 \DeclareOption{slides}{\@ae@slidestrue}\r
1478 \ProcessOptions\r
1479 \fontfamily{aer}\r
1480 \RequirePackage[T1]{fontenc}\r
1481 \if@ae@slides\r
1482     \renewcommand{\sfdefault}{laess}\r
1483     \renewcommand{\rmdefault}{laess} % no roman\r
1484     \renewcommand{\ttdefault}{laett}\r
1485 \else\r
1486     \renewcommand{\sfdefault}{aess}\r
1487     \renewcommand{\rmdefault}{aer}\r
1488     \renewcommand{\ttdefault}{aett}\r
1489 \fi\r
1490 \endinput\r
1491 %% \r
1492 %% End of file `ae.sty'.\r
1493 %\r
1494 %\r
1495 \def\fileversion{0.9}\r
1496 \def\filedate{1998/07/23}\r
1497 \NeedsTeXFormat{LaTeX2e}\r
1498 %\ProvidesPackage{aecompl}[\filedate\space\fileversion\space   % GM\r
1499 %T1 Complements for AE fonts (D. Roegel)]                      % GM -- keeping the log file clean(er)\r
1500  \r
1501 \def\@ae@compl#1{{\fontencoding{T1}\fontfamily{cmr}\selectfont\symbol{#1}}}\r
1502 \def\guillemotleft{\@ae@compl{19}}\r
1503 \def\guillemotright{\@ae@compl{20}}\r
1504 \def\guilsinglleft{\@ae@compl{14}}\r
1505 \def\guilsinglright{\@ae@compl{15}}\r
1506 \def\TH{\@ae@compl{222}}\r
1507 \def\NG{\@ae@compl{141}}\r
1508 \def\ng{\@ae@compl{173}}\r
1509 \def\th{\@ae@compl{254}}\r
1510 \def\DJ{\@ae@compl{208}}\r
1511 \def\dj{\@ae@compl{158}}\r
1512 \def\DH{\@ae@compl{208}}\r
1513 \def\dh{\@ae@compl{240}}\r
1514 \def\@perthousandzero{\@ae@compl{24}}\r
1515 \def\textperthousand{\%\@perthousandzero}\r
1516 \def\textpertenthousand{\%\@perthousandzero\@perthousandzero}\r
1517 \endinput\r
1518 %\r
1519 %\r
1520 %% This is file `aeguill.sty' \r
1521 % This file gives french guillemets (and not guillemots!)\r
1522 % built with the Polish CMR fonts (default), WNCYR fonts, the LASY fonts \r
1523 % or with the EC fonts. \r
1524 % This is useful in conjunction with the ae package\r
1525 % (this package loads the ae package in case it has not been loaded)\r
1526 %  and with or without the french(le) package.\r
1527 %\r
1528 % In order to get the guillemets, it is necessary to either type\r
1529 % \guillemotleft and \guillemotright, or to use an 8 bit encoding\r
1530 % (such as ISO-Latin1) which selects these two commands, \r
1531 % or, if you use the french package (but not the frenchle package), \r
1532 % to type << or >>.\r
1533 %\r
1534 % By default, you get the Polish CMR guillemets; if this package is loaded\r
1535 % with the `cm' option, you get the LASY guillemets; with `ec,' you\r
1536 % get the EC guillemets, and with `cyr,' you get the cyrillic guillemets.\r
1537 %\r
1538 % In verbatim mode, you always get the EC/TT guillemets.\r
1539 %\r
1540 % The default option is interesting in conjunction with PDF,\r
1541 % because there is a Type 1 version of the Polish CMR fonts\r
1542 % and these guillemets are very close in shape to the EC guillemets.\r
1543 % There are no free Type 1 versions of the EC fonts.\r
1544 %\r
1545 % Support for Polish CMR guillemets was kindly provided by \r
1546 % Rolf Niepraschk <niepraschk@ptb.de> in version 0.99 (2000/05/22).\r
1547 % Bernd Raichle provided extensive simplifications to the code\r
1548 % for version 1.00.\r
1549 %\r
1550 % This package is released under the LPPL.\r
1551 %\r
1552 % Changes:\r
1553 %   Date        version\r
1554 %   2001/04/12  1.01    the frenchle and french package are now distinguished.\r
1555 %\r
1556 \def\fileversion{1.01}\r
1557 \def\filedate{2001/04/12}\r
1558 \NeedsTeXFormat{LaTeX2e}\r
1559 %\ProvidesPackage{aeguill}[2001/04/12 1.01 %    % GM\r
1560 %AE fonts with french guillemets (D. Roegel)]   % GM - keeping the log file clean(er)\r
1561 %\RequirePackage{ae}  % GM May 2007 - already embedded here\r
1562 \r
1563 \newcommand{\@ae@switch}[4]{#4}\r
1564 \DeclareOption{ec}{\renewcommand\@ae@switch[4]{#1}}\r
1565 \DeclareOption{cm}{\renewcommand\@ae@switch[4]{#2}}\r
1566 \DeclareOption{cyr}{\renewcommand\@ae@switch[4]{#3}}\r
1567 \DeclareOption{pl}{\renewcommand\@ae@switch[4]{#4}}\r
1568 \ExecuteOptions{pl}\r
1569 \ProcessOptions\r
1570 \r
1571 %\r
1572 % Load necessary packages\r
1573 %\r
1574 \@ae@switch{% ec\r
1575   % do nothing\r
1576 }{% cm\r
1577   \RequirePackage{latexsym}%  GM - May 2007 - already 'mentioned as required' up above\r
1578 }{% cyr\r
1579   \RequirePackage[OT2,T1]{fontenc}%\r
1580 }{% pl\r
1581   \RequirePackage[OT4,T1]{fontenc}%\r
1582 }\r
1583 \r
1584 % The following command will be compared to \frenchname,\r
1585 % as defined in french.sty and frenchle.sty.\r
1586 \def\aeguillfrenchdefault{french}%\r
1587 \r
1588 \let\guill@verbatim@font\verbatim@font\r
1589 \def\verbatim@font{\guill@verbatim@font\ecguills{cmtt}%\r
1590                    \let\guillemotleft\@oguills\let\guillemotright\@fguills}\r
1591 \r
1592 \begingroup \catcode`\<=13 \catcode`\>=13\r
1593 \def\x{\endgroup\r
1594  \def\ae@lfguill{<<}%\r
1595  \def\ae@rfguill{>>}%\r
1596 }\x\r
1597 \r
1598 \newcommand{\ecguills}[1]{%\r
1599   \def\selectguillfont{\fontencoding{T1}\fontfamily{#1}\selectfont}%\r
1600   \def\@oguills{{\selectguillfont\symbol{19}}}%\r
1601   \def\@fguills{{\selectguillfont\symbol{20}}}%\r
1602   } \r
1603 \r
1604 \newcommand{\aeguills}{%\r
1605   \ae@guills\r
1606   % We redefine \guillemotleft and \guillemotright\r
1607   % in order to catch them when they are used \r
1608   % with \DeclareInputText (in latin1.def for instance)\r
1609   % We use \auxWARNINGi as a safe indicator that french.sty is used.\r
1610   \gdef\guillemotleft{\ifx\auxWARNINGi\undefined\r
1611                          \@oguills % neither french.sty nor frenchle.sty\r
1612                       \else\r
1613                          \ifx\aeguillfrenchdefault\frenchname\r
1614                            \ae@lfguill  % french.sty\r
1615                          \else\r
1616                            \@oguills    % frenchle.sty\r
1617                          \fi\r
1618                       \fi}%\r
1619   \gdef\guillemotright{\ifx\auxWARNINGi\undefined\r
1620                          \@fguills % neither french.sty nor frenchle.sty\r
1621                        \else\r
1622                          \ifx\aeguillfrenchdefault\frenchname\r
1623                            \ae@rfguill  % french.sty\r
1624                          \else\r
1625                            \@fguills    % frenchle.sty\r
1626                          \fi\r
1627                        \fi}%\r
1628   }\r
1629 \r
1630 %\r
1631 % Depending on the class option\r
1632 % define the internal command \ae@guills\r
1633 \@ae@switch{% ec\r
1634   \newcommand{\ae@guills}{%\r
1635     \ecguills{cmr}}%\r
1636 }{% cm\r
1637   \newcommand{\ae@guills}{%\r
1638     \def\selectguillfont{\fontencoding{U}\fontfamily{lasy}%\r
1639             \fontseries{m}\fontshape{n}\selectfont}%\r
1640     \def\@oguills{\leavevmode\nobreak\r
1641                 \hbox{\selectguillfont (\kern-.20em(\kern.20em}\nobreak}%\r
1642     \def\@fguills{\leavevmode\nobreak\r
1643                 \hbox{\selectguillfont \kern.20em)\kern-.2em)}%\r
1644                 \ifdim\fontdimen\@ne\font>\z@\/\fi}}%\r
1645 }{% cyr\r
1646   \newcommand{\ae@guills}{%\r
1647     \def\selectguillfont{\fontencoding{OT2}\fontfamily{wncyr}\selectfont}%\r
1648     \def\@oguills{{\selectguillfont\symbol{60}}}%\r
1649     \def\@fguills{{\selectguillfont\symbol{62}}}}\r
1650 }{% pl\r
1651   \newcommand{\ae@guills}{%\r
1652     \def\selectguillfont{\fontencoding{OT4}\fontfamily{cmr}\selectfont}%\r
1653     \def\@oguills{{\selectguillfont\symbol{174}}}%\r
1654     \def\@fguills{{\selectguillfont\symbol{175}}}}\r
1655 }\r
1656 \r
1657 \r
1658 \AtBeginDocument{%\r
1659   \ifx\GOfrench\undefined\r
1660     \aeguills\r
1661   \else\r
1662     \let\aeguill@GOfrench\GOfrench\r
1663     \gdef\GOfrench{\aeguill@GOfrench \aeguills}%\r
1664   \fi\r
1665   }\r
1666 \r
1667 \endinput\r
1668 %\r
1669 \r
1670 \r