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