Subversion Repositories HelenOS-doc

Rev

Details | Last modification | View Log | RSS feed

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