/[dtapublic]/sf_code/esrgpubs/acm0010/paper/esub2acm.cls
ViewVC logotype

Annotation of /sf_code/esrgpubs/acm0010/paper/esub2acm.cls

Parent Directory Parent Directory | Revision Log Revision Log


Revision 24 - (hide annotations) (download)
Sat Oct 8 06:15:00 2016 UTC (7 years, 5 months ago) by dashley
File size: 48609 byte(s)
Initial commit.
1 dashley 24 %$Header: /cvsroot/esrg/sfesrg/esrgpubs/acm0010/paper/esub2acm.cls,v 1.1 2001/09/25 21:44:55 dtashley Exp $
2     %%
3     %%--------------------------------------------------------------
4     %% This file is the ESUB2ACM.CLS file, downloaded from the
5     %% ACM's web site in 10/2000, to allow preparation of a
6     %% rational approximation paper and other papers for ACM
7     %% journals.
8     %%
9     %% This file is placed under a version control system
10     %% (Microsoft Visual Source Safe 6.0) at Dave Ashley's home.
11     %% All changes to this file will be accompanied by
12     %% comments automatically inserted in the change history at the
13     %% end of the file.
14     %%--------------------------------------------------------------
15     %%
16     % ESUB2ACM.CLS V1.2 - November 10th. 1999
17     \def\fileversion{v1.2} % for ACM's tracking purposes
18     \def\filedate{November 10, 1999} % Gerry Murray's tracking data
19     \def\docdate {Wed 10 Nov 1999} % Gerry Murray (with deltas to doc}
20     \usepackage{epsfig}
21     %
22     % This is esub2acm.cls.
23     %
24     % It is the class (style) file that you should use
25     % if you intend to submit a LaTeX2e electronic file (.tex) to
26     % ACM for use in their electronic publishing system.
27     %
28     % It is directly derived from esub2acm.sty (LaTeX 2.09 version),
29     % itself a slightly modified version of David M. Jones's style file.
30     % It can work for both LaTeX2e and LaTeX 2.09; name the file
31     % esub2acm.sty to use it with LaTeX 2.09.
32     %
33     % Conversion scripts have been written to successfully convert a
34     % LaTeX2e submission into an SGML file, provided the submission
35     % has been authored using *this* particular (class) style file.
36     %
37     % Vanilla LaTeX is preferred.
38     %
39     % For additional information on submission formats check out:
40     % http://www.acm.org/pubs/submitting_accepted_articles/auth_rd.htm
41     %
42     % Gerry Murray 6/21/99 and 8/5/1999
43     % murray@hq.acm.org
44     %
45     %
46     %%
47     %% \CharacterTable
48     %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
49     %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
50     %% Digits \0\1\2\3\4\5\6\7\8\9
51     %% Exclamation \! Double quote \" Hash (number) \#
52     %% Dollar \$ Percent \% Ampersand \&
53     %% Acute accent \' Left paren \( Right paren \)
54     %% Asterisk \* Plus \+ Comma \,
55     %% Minus \- Point \. Solidus \/
56     %% Colon \: Semicolon \; Less than \<
57     %% Equals \= Greater than \> Question mark \?
58     %% Commercial at \@ Left bracket \[ Backslash \\
59     %% Right bracket \] Circumflex \^ Underscore \_
60     %% Grave accent \` Left brace \{ Vertical bar \|
61     %% Right brace \} Tilde \~}
62     %%
63     %%
64     %
65     % -> \documentclass{esub2acm}
66     % -> \markboth{}{}
67     % takes 2 arguments and it is for the left- and right-page headers:
68     % the first set of braces is assigned for author's name(s)
69     % and
70     % the second set of braces is assigned for the title
71     % (if the title is too long, contraction may be needed
72     % -> \title{}
73     % if the title is too long, it can be separated by \\
74     % -> \author{}
75     % author1 \\ author1 affiliation
76     % \and
77     % author2 \\ author2 affiliation
78     % -> \begin{abstract}
79     % -> \end{abstract}
80     %
81     % -> \category{}{}{}
82     % takes 3 arguments for the Computing Reviews Classification Scheme.
83     % ex: \category{D.3.3}{Programming Languages}{Language Constructs and
84     % Features}[data types and structures]
85     % the last argument, in square brackets, is optional.
86     % -> \terms{} (ex: \terms{Human Factors, Languages})
87     % -> \keywords{} (in alphabetical order \keywords{document processing, sequences,
88     % string searching, subsequences, substrings})
89     % -> \begin{document}
90     %
91     % -> \begin{bottomstuff}
92     % similar to \thanks
93     % for authors' addresses; research/grant statements
94     % -> \end{bottomstuff}
95     % -> \maketitle
96     %
97     % Now you can start the body of the paper; your figures, tables and
98     % use all the latex constructs.
99     %
100     % -> \begin{acks}
101     % acknowledgements
102     % -> \end{acks}
103     %
104     % -> \bibliographystyle{esub2acm}
105     % -> \bibliography{mybib_file}
106     %
107     % ****
108     % If your paper has been accepted with a separate (electronic only)
109     % appendix, you need to add the following control sequence:
110     %
111     % -> \appendixhead{}{}{}{}
112     % takes 4 arguments to identify your appendix section.
113     % first = journal name (e.g. toplas )
114     % second = paper-id (a four-digit number)
115     % third = year of appearance, for copyright notice
116     % (approximation will suffice)
117     % fourth = journal, volume and year of publication if known
118     %
119     % body of appendix
120    
121     % -> \end{document}
122     %
123     % Do not worry about the other definitions in this style file
124     % Remember to compile: latex, bibtex, latex latex
125     %
126     % Bibliographic cite forms needed:
127     %
128     % \cite{key}
129     % which produces citations with full author list and year.
130     % eg. [Brown 1978; Jarke, Turner, Stohl, et al. 1985]
131     % \citeA{key}
132     % which produces citations with only the full author list.
133     % eg. [Brown; Jarke, Turner and Stohl]
134     % \citeN{key}
135     % which produces citations with the full author list and year, but
136     % can be used as nouns in a sentence; no brackets appear around
137     % the author names, but only around the year.
138     % eg. Shneiderman [1978] states that......
139     % \citeN should only be used for a single citation.
140     % \shortcite{key}
141     % which produces citations with abbreviated author list and year.
142     % \shortciteA{key}
143     % which produces only the abbreviated author list.
144     % \shortciteN{key}
145     % which produces the abbreviated author list and year, with only the
146     % year in brackets. Use with only one citation.
147     % \citeyear{key}
148     % which produces the year information only, within brackets.
149     %
150     % Abbreviated author lists use the ``et al.'' construct.
151     %
152     % The above are examples of required ACM bibliographic cite formats needed.
153     % *******************
154     % Here is the complete list of cite forms from the chicago bibliographic style
155     %
156     % \cite{key}
157     % which produces citations with full author list and year.
158     % eg. (Brown 1978; Jarke, Turner, Stohl, et al. 1985)
159     % \citeNP{key}
160     % which produces citations with full author list and year, but without
161     % enclosing parentheses:
162     % eg. Brown 1978; Jarke, Turner and Stohl 1985
163     % \citeA{key}
164     % which produces citations with only the full author list.
165     % eg. (Brown; Jarke, Turner and Stohl)
166     % \citeANP{key}
167     % which produces citations with only the full author list, without
168     % parentheses eg. Brown; Jarke, Turner and Stohl
169     % \citeN{key}
170     % which produces citations with the full author list and year, but
171     % can be used as nouns in a sentence; no parentheses appear around
172     % the author names, but only around the year.
173     % eg. Shneiderman (1978) states that......
174     % \citeN should only be used for a single citation.
175     % \shortcite{key}
176     % which produces citations with abbreviated author list and year.
177     % \shortciteNP{key}
178     % which produces citations with abbreviated author list and year.
179     % \shortciteA{key}
180     % which produces only the abbreviated author list.
181     % \shortciteANP{key}
182     % which produces only the abbreviated author list.
183     % \shortciteN{key}
184     % which produces the abbreviated author list and year, with only the
185     % year in parentheses. Use with only one citation.
186     % \citeyear{key}
187     % which produces the year information only, within parentheses.
188     % \citeyearNP{key}
189     % which produces the year information only.
190     %
191     % Abbreviated author lists use the ``et al.'' construct.
192     %
193     % `NP' means `no parentheses'
194     %
195     %%% End of inserted ACM - esub2acm comments
196    
197     %% CHANGES ON NEXT LINES
198     \newif\if@ll % to record which version of LaTeX is in use
199    
200     \expandafter\ifx\csname LaTeXe\endcsname\relax % LaTeX2.09 is used
201     \else% LaTeX2e is used, so set ll to true
202     \global\@lltrue
203     \fi
204    
205     \if@ll
206     \NeedsTeXFormat{LaTeX2e}
207     \ProvidesClass{esub2acm} [1999/07/18 based on esub2acm.sty <23 April 96>]
208     \RequirePackage{latexsym}% QUERY: are these two really needed?
209     %\RequirePackage{amssymb}
210     \let\dooptions\ProcessOptions
211     \else
212     \let\dooptions\@options
213     \fi
214     %% END CHANGES
215    
216     \typeout{Document Style `esub2acm' Electronic Submissions \fileversion\space <\filedate> (ACM).}
217     \def\@height{height}
218     \def\@width{width}
219     \def\@minus{minus}
220     \def\@plus{plus}
221     \def\hb@xt@{\hbox to}
222     \newif\if@faircopy
223     \@faircopyfalse
224     \def\ds@faircopy{\@faircopytrue}
225    
226     \def\ds@preprint{\@faircopyfalse}
227    
228     \def\ds@twocolumn{%
229     \typeout{Warning! twocolumn mode is not supported by esub2acm}%
230     }
231     \@twosidetrue
232     \@mparswitchtrue
233     \def\ds@draft{\overfullrule 5\p@}
234     %% CHANGE ON NEXT LINE
235     \dooptions
236    
237     \lineskip \p@
238     \normallineskip \p@
239     \def\baselinestretch{1}
240     \def\@ptsize{0} %needed for amssymbols.sty
241    
242     %% CHANGES ON NEXT LINES
243     \if@ll% allow use of old-style font change commands in LaTeX2e
244     \@maxdepth\maxdepth
245     \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
246     \DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
247     \DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
248     \DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
249     \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
250     \DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
251     \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
252     \DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}}
253     \DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}}
254     \fi
255    
256     \if@ll
257     \renewcommand{\@ptsize}{}
258     \renewcommand{\normalsize}{%
259     \@setfontsize\normalsize\@xpt{12\p@}%
260     \abovedisplayskip 6\p@ \@plus2\p@ \@minus\p@
261     \belowdisplayskip \abovedisplayskip
262     \abovedisplayshortskip 6\p@ \@minus 3\p@
263     \belowdisplayshortskip 6\p@ \@minus 3\p@
264     \let\@listi\@listI
265     }
266     \else
267     \def\@normalsize{%
268     \@setsize\normalsize{12\p@}\xpt\@xpt
269     \abovedisplayskip 6\p@ \@plus2\p@ \@minus\p@
270     \belowdisplayskip \abovedisplayskip
271     \abovedisplayshortskip 6\p@ \@minus 3\p@
272     \belowdisplayshortskip 6\p@ \@minus 3\p@
273     \let\@listi\@listI
274     }%
275     \fi
276     \if@ll
277     \newcommand{\small}{%
278     \@setfontsize\small\@ixpt{12\p@}%
279     \abovedisplayskip 5\p@ \@plus 2\p@ \@minus \p@
280     \belowdisplayskip \abovedisplayskip
281     \abovedisplayshortskip 5\p@ \@minus 2\p@
282     \belowdisplayshortskip 5\p@ \@minus 2\p@
283     \def\@listi{%
284     \leftmargin\leftmargini
285     \topsep 5\p@ \@plus 2\p@ \@minus \p@
286     \parsep \z@ \@plus .7\p@
287     \itemsep 1.6\p@ \@plus .8\p@
288     }%
289     }%
290     \else
291     \def\small{%
292     \@setsize\small{11\p@}\ixpt\@ixpt
293     \abovedisplayskip 5\p@ \@plus 2\p@ \@minus \p@
294     \belowdisplayskip \abovedisplayskip
295     \abovedisplayshortskip 5\p@ \@minus 2\p@
296     \belowdisplayshortskip 5\p@ \@minus 2\p@
297     \def\@listi{%
298     \leftmargin\leftmargini
299     \topsep 5\p@ \@plus 2\p@ \@minus \p@
300     \parsep \z@ \@plus .7\p@
301     \itemsep 1.6\p@ \@plus .8\p@
302     }%
303     }%
304     \fi
305    
306     \if@ll
307     \newcommand{\footnotesize}{%
308     \@setfontsize\footnotesize\@viiipt{10\p@}%
309     \abovedisplayskip 4\p@ \@plus \p@
310     \belowdisplayskip \abovedisplayskip
311     \abovedisplayshortskip 4\p@ \@minus \p@
312     \belowdisplayshortskip 4\p@ \@minus \p@
313     \def\@listi{%
314     \leftmargin\leftmargini
315     \topsep 4\p@ \@plus \p@
316     \parsep \z@ \@plus .5\p@
317     \itemsep \p@ \@plus .7\p@
318     }%
319     }%
320     \else
321     \def\footnotesize{%
322     \@setsize\footnotesize{10pt}\viiipt\@viiipt
323     \abovedisplayskip 4\p@ \@plus \p@
324     \belowdisplayskip \abovedisplayskip
325     \abovedisplayshortskip 4\p@ \@minus \p@
326     \belowdisplayshortskip 4\p@ \@minus \p@
327     \def\@listi{%
328     \leftmargin\leftmargini
329     \topsep 4\p@ \@plus \p@
330     \parsep \z@ \@plus .5\p@
331     \itemsep \p@ \@plus .7\p@
332     }%
333     }%
334     \fi
335     \if@ll
336     \newcommand\scriptsize{\@setfontsize\scriptsize\@viipt{8\p@}}
337     \newcommand\tiny{\@setfontsize\tiny\@vpt{6\p@}}
338     \newcommand\large{\@setfontsize\large\@xiipt{14\p@}}
339     \newcommand\Large{\@setfontsize\Large\@xivpt{18\p@}}
340     \newcommand\LARGE{\@setfontsize\LARGE\@xviipt{20\p@}}
341     \newcommand\huge{\@setfontsize\huge\@xxpt{25\p@}}
342     \newcommand\Huge{\@setfontsize\Huge\@xxvpt{30\p@}}
343     \else
344     \def\scriptsize{\@setsize\scriptsize{8\p@}\viipt\@viipt}
345     \def\tiny{\@setsize\tiny{6\p@}\vpt\@vpt}
346     \def\large{\@setsize\large{14\p@}\xiipt\@xiipt}
347     \def\Large{\@setsize\Large{18\p@}\xivpt\@xivpt}
348     \def\LARGE{\@setsize\LARGE{20\p@}\xviipt\@xviipt}
349     \def\huge{\@setsize\huge{25\p@}\xxpt\@xxpt}
350     \def\Huge{\@setsize\Huge{30\p@}\xxvpt\@xxvpt}
351     \fi
352     \normalsize
353    
354     \oddsidemargin .75in
355     \evensidemargin .75in
356     \marginparwidth .5in
357     \marginparsep .125in
358     \topmargin .25in
359     \headheight 12\p@
360     \headsep 16\p@
361     %% CHANGES ON NEXT LINES
362     \if@ll
363     \newlength{\footheight}%
364     \else
365     \fi
366     %% END CHANGES
367     \footheight 10\p@
368     \footskip 15\p@
369    
370     \textheight 47pc
371     \textwidth 30pc
372     \columnsep 10\p@
373     \columnseprule 0\p@
374    
375     \footnotesep 7\p@
376     \skip\footins 15\p@ plus 4\p@ minus 3\p@
377    
378     \floatsep 12\p@ plus 2\p@ minus 2\p@
379     \textfloatsep \floatsep
380    
381     \intextsep 1pc plus 1pc
382    
383     %% CHANGES ON NEXT LINES
384     \if@ll
385     \newlength{\@maxsep}%
386     \else
387     \fi
388     %% END CHANGES
389     \@maxsep 1pc
390    
391     \dblfloatsep 12\p@ plus 2\p@ minus 2\p@
392    
393     \dbltextfloatsep 20\p@ plus 2\p@ minus 4\p@
394    
395     %% CHANGES ON NEXT LINES
396     \if@ll
397     \newlength{\@dblmaxsep}%
398     \else
399     \fi
400     %% END CHANGES
401     \@dblmaxsep 20\p@
402    
403     \@fptop 0\p@ plus 1fil
404    
405     \@fpsep 1pc plus 2fil
406    
407     \@fpbot 0\p@ plus 1fil
408    
409     \@dblfptop 0\p@ plus 1fil
410    
411     \@dblfpsep 8\p@ plus 2fil
412    
413     \@dblfpbot 0\p@ plus 1fil
414    
415     \marginparpush 6\p@
416    
417     \parskip 0\p@ plus .1\p@
418    
419    
420    
421     \partopsep 0\p@
422    
423     \@lowpenalty 51
424     \@medpenalty 151
425     \@highpenalty 301
426    
427     \@beginparpenalty -\@lowpenalty
428     \@endparpenalty -\@lowpenalty
429     \@itempenalty -\@lowpenalty
430     \newcounter{part}
431     \newcounter{section}
432     \newcounter{subsection}[section]
433     \newcounter{subsubsection}[subsection]
434     \newcounter{paragraph}[subsubsection]
435     \def\thepart{\Roman{part}}
436     \def\thesection{\arabic{section}}
437     \def\thesubsection{\thesection.\arabic{subsection}}
438     \def\thesubsubsection{\thesubsection.\arabic{subsubsection}}
439     \def\theparagraph{\thesubsubsection.\arabic{paragraph}}
440     \newif\if@uchead
441     \@ucheadfalse
442    
443     %% CHANGES: NEW NOTE
444     %% NOTE: OK to use old-style font commands below, since they were
445     %% suitably redefined for LaTeX2e
446     %% END CHANGES
447     \setcounter{secnumdepth}{3}
448     \def\part{%
449     \@startsection{part}{9}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@}
450     {4\p@}{\normalsize\sf\@ucheadtrue}%
451     }
452     \def\section{%
453     \@startsection{section}{1}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@}%
454     {4\p@}{\normalsize\sf\@ucheadtrue}%
455     }
456     \def\subsection{%
457     \@startsection{subsection}{2}{\z@}{-8\p@ \@plus -2\p@ \@minus -\p@}
458     {4\p@}{\normalsize\sf}%
459     }
460     \def\subsubsection{%
461     \@startsection{subsubsection}{3}{\parindent}{6\p@ \@plus \p@}%
462     {-5\p@}{\normalsize\it}%
463     }
464     \def\paragraph{%
465     \@startsection{paragraph}{3}{\parindent}{6\p@ \@plus \p@}%
466     {-5\p@}{\normalsize\it}%
467     }
468     \let\@period=.
469     \def\@startsection#1#2#3#4#5#6{%
470     \if@noskipsec
471     \global\let\@period\@empty
472     \leavevmode
473     \global\let\@period.%
474     \fi
475     \par
476     \@tempskipa #4\relax
477     \@afterindenttrue
478     \ifdim \@tempskipa <\z@
479     \@tempskipa -\@tempskipa
480     \@afterindentfalse
481     \fi
482     \if@nobreak
483     \everypar{}%
484     \else
485     \addpenalty\@secpenalty
486     \addvspace\@tempskipa
487     \fi
488     \@ifstar
489     {\@ssect{#3}{#4}{#5}{#6}}
490     {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}%
491     }
492     \def\@sect#1#2#3#4#5#6[#7]#8{%
493     \ifnum #2>\c@secnumdepth
494     \let\@svsec\@empty
495     \else
496     \refstepcounter{#1}%
497     \edef\@svsec{%
498     \begingroup
499     \ifnum#2>2 \noexpand\rm \fi
500     \csname the#1\endcsname
501     \endgroup
502     \ifnum #2=1\relax .\fi
503     \hskip .5em
504     }%
505     \fi
506     \@tempskipa #5\relax
507     \ifdim \@tempskipa>\z@
508     \begingroup
509     #6\relax
510     \@hangfrom{\hskip #3\relax\@svsec}%
511     \begingroup
512     \interlinepenalty \@M
513     \if@uchead
514     \uppercase{#8}%
515     \else
516     #8%
517     \fi
518     \par
519     \endgroup
520     \endgroup
521     \csname #1mark\endcsname{#7}%
522     \addcontentsline{toc}{#1}{%
523     \ifnum #2>\c@secnumdepth \else
524     \protect\numberline{\csname the#1\endcsname}%
525     \fi
526     #7%
527     }%
528     \else
529     \def\@svsechd{%
530     #6%
531     \hskip #3\relax
532     \@svsec
533     \if@uchead
534     \uppercase{#8}%
535     \else
536     #8%
537     \fi
538     \csname #1mark\endcsname{#7}%
539     \addcontentsline{toc}{#1}{%
540     \ifnum #2>\c@secnumdepth \else
541     \protect\numberline{\csname the#1\endcsname}%
542     \fi
543     #7%
544     }%
545     }%
546     \fi
547     \@xsect{#5}%
548     }
549     \def\@xsect#1{%
550     \@tempskipa #1\relax
551     \ifdim \@tempskipa>\z@
552     \par
553     \nobreak
554     \vskip \@tempskipa
555     \@afterheading
556     \else
557     \global\@nobreakfalse
558     \global\@noskipsectrue
559     \everypar{%
560     \if@noskipsec
561     \global\@noskipsecfalse
562     \clubpenalty\@M
563     \hskip -\parindent
564     \begingroup
565     \@svsechd
566     \@period
567     \endgroup
568     \unskip
569     \@tempskipa #1\relax
570     \hskip -\@tempskipa
571     \else
572     \clubpenalty \@clubpenalty
573     \everypar{}%
574     \fi
575     }%
576     \fi
577     \ignorespaces
578     }
579     \def\@trivlist{%
580     \@topsepadd\topsep
581     \if@noskipsec
582     \global\let\@period\@empty
583     \leavevmode
584     \global\let\@period.%
585     \fi
586     \ifvmode
587     \advance\@topsepadd\partopsep
588     \else
589     \unskip
590     \par
591     \fi
592     \if@inlabel
593     \@noparitemtrue
594     \@noparlisttrue
595     \else
596     \@noparlistfalse
597     \@topsep\@topsepadd
598     \fi
599     \advance\@topsep \parskip
600     \leftskip\z@skip
601     \rightskip\@rightskip
602     \parfillskip\@flushglue
603     \@setpar{\if@newlist\else{\@@par}\fi}
604     \global\@newlisttrue
605     \@outerparskip\parskip
606     }
607     \newfont{\apbf}{cmbx9}
608     \def\@withappendix#1{\rm A--\number #1}
609     \def\appenheader{%
610     \global\@topnum\z@
611     \global\@botroom \textheight
612     \begin{@float}{figure}[b]
613     \footnotesize
614     \newfont{\sc}{cmcsc10}% %%* ACK!
615     \parindent\z@
616     \null
617     \vskip -\textfloatsep
618     \vskip 11\p@
619     \hrule \@height .2\p@ \@width 30pc
620     \vskip 2\p@
621     \rule{\z@}{10\p@}%
622     \ignorespaces
623     }
624    
625     \def\endappenheader{%
626     \end{@float}
627     \global\let\appendixhead\@empty
628     }
629     \long\def\appendixhead#1#2#3#4{%
630     \section*{Appendix}
631    
632     An appendix to this paper is available in electronic form
633     (PostScript$^{\mbox{\tiny TM}}$). Any of the following methods
634     may be used to obtain it; or see the inside back cover of a
635     current issue for up-to-date instructions.
636    
637     \begin{itemize}
638     \item By anonymous ftp from {\apbf acm.org}, file
639     {\apbf [pubs.journals.#1.append]p#2.ps}
640     \item Send electronic mail to {\apbf mailserve@acm.org} containing
641     the line\\ {\apbf send~[anonymous.pubs.journals.#1.append]p#2.ps}
642     \item By {\it Gopher} from {\apbf acm.org}
643     \item By anonymous ftp from {\apbf ftp.cs.princeton.edu},
644     file {\apbf pub/#1/append/p#2.ps}
645     \item Hardcopy from {\it Article Express}, for a fee: phone
646     800-238-3458, fax 201-216-8526, or write P.O.~Box~1801, Hoboken NJ
647     07030; and request {\sc acm-#1-appendix-{\small #2}}.
648     \end{itemize}
649    
650     \clearpage
651     \pagenumbering{withappendix}
652     \appendix
653     \par
654     \noindent{\sc this document is the appendix to the following
655     paper:}
656     \hfill
657     \vskip 1em
658     \vbox{\sf \parindent\z@\@title}%
659     \vskip .5em
660     \vbox{\sf \parindent\z@\@author}%
661     \vskip .5em\noindent
662     \vskip 10\p@\noindent #4
663     \vskip 11\p@\noindent
664     \hrule \@height .2\p@
665     \par
666     \begin{bottomstuff}
667     \permission
668     \copyright #3 ACM
669     \par
670     \end{bottomstuff}
671     }
672     \def\appendix{%
673     \par
674     \part{Appendix}%
675     \par
676     \setcounter{section}{0}%
677     \setcounter{subsection}{0}%
678     \def\thesection{\Alph{section}}%
679     \def\thesubsection{\thesection.\arabic{subsection}}%
680     }
681     \labelsep 5\p@
682    
683     \settowidth{\leftmargini}{(9)}
684     \addtolength\leftmargini\labelsep
685    
686     \settowidth{\leftmarginii}{(b)}
687     \addtolength\leftmarginii\labelsep
688    
689     \leftmarginiii \leftmarginii
690     \leftmarginiv \leftmarginii
691     \leftmarginv \leftmarginii
692     \leftmarginvi \leftmarginii
693     \leftmargin \leftmargini
694    
695     \labelwidth\leftmargini
696     \advance\labelwidth-\labelsep
697     \def\@listI{%
698     \leftmargin\leftmargini
699     \parsep \z@ \@plus \p@
700     \topsep 6\p@ \@plus 2\p@ \@minus 2\p@
701     \itemsep 2\p@ \@plus \p@ \@minus .5\p@
702     }
703    
704     \let\@listi\@listI
705    
706     \@listi
707     \def\@listii{%
708     \leftmargin\leftmarginii
709     \labelwidth\leftmarginii
710     \advance\labelwidth-\labelsep
711     \topsep \z@ \@plus \p@
712     \parsep \z@ \@plus .5\p@
713     \itemsep \parsep
714     }
715     \def\@listiii{%
716     \leftmargin\leftmarginiii
717     \labelwidth\leftmarginiii
718     \advance\labelwidth-\labelsep
719     \topsep \z@ \@plus \p@
720     \parsep \z@ \@plus .5\p@
721     \itemsep \parsep
722     }
723     \def\@listiv{%
724     \leftmargin\leftmarginiv
725     \labelwidth\leftmarginiv
726     \advance\labelwidth-\labelsep
727     }
728     \def\@listv{%
729     \leftmargin\leftmarginv
730     \labelwidth\leftmarginv
731     \advance\labelwidth-\labelsep
732     }
733     \def\@listvi{%
734     \leftmargin\leftmarginvi
735     \labelwidth\leftmarginvi
736     \advance\labelwidth-\labelsep
737     }
738     \def\enumerate{%
739     \ifnum \@enumdepth >3
740     \@toodeep
741     \else
742     \advance\@enumdepth \@ne
743     \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
744     \list{\csname label\@enumctr\endcsname}{%
745     \usecounter{\@enumctr}%
746     \def\makelabel##1{##1\hss}%
747     }%
748     \fi
749     }
750    
751     \let\endenumerate\endlist
752     \def\longenum{%
753     \ifnum \@enumdepth >3
754     \@toodeep
755     \else
756     \advance\@enumdepth \@ne
757     \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
758     \list{\csname label\@enumctr\endcsname}{%
759     \usecounter{\@enumctr}%
760     \labelwidth\z@
761     }%
762     \fi
763     }
764    
765     \let\endlongenum\endlist
766     \def\labelenumi{(\arabic{enumi})}
767     \def\theenumi{\arabic{enumi}}
768     \def\labelenumii{(\alph{enumii})}
769     \def\theenumii{\alph{enumii}}
770     \def\p@enumii{\theenumi}
771     \def\labelenumiii{\roman{enumiii}.}
772     \def\theenumiii{\roman{enumiii}}
773     \def\p@enumiii{\theenumi(\theenumii)}
774     \def\labelenumiv{\Alph{enumiv}.}
775     \def\theenumiv{\Alph{enumiv}}
776     \def\p@enumiv{\p@enumiii\theenumiii}
777     \def\itemize{%
778     \list{---\hskip -\labelsep}{%
779     \settowidth{\leftmargin}{---}%
780     \labelwidth\leftmargin
781     \addtolength{\labelwidth}{-\labelsep}%
782     }%
783     }
784    
785     \let\enditemize\endlist
786     \def\longitem{%
787     \list{---}{%
788     \labelwidth\z@
789     \leftmargin\z@
790     \itemindent\parindent
791     \advance\itemindent\labelsep
792     }%
793     }
794    
795     \let\endlongitem\endlist
796     \def\verse{%
797     \let\\=\@centercr
798     \list{}{%
799     \leftmargin 2pc
800     \itemindent -1.5em
801     \listparindent \itemindent
802     \rightmargin\leftmargin
803     \advance\leftmargin 1.5em
804     }%
805     \item[]
806     }
807    
808     \let\endverse\endlist
809     \def\quotation{%
810     \list{}{%
811     \leftmargin 2pc
812     \listparindent .5em
813     \itemindent\listparindent
814     \rightmargin\leftmargin
815     \parsep \z@ \@plus \p@
816     }%
817     \item[]
818     }
819    
820     \let\endquotation=\endlist
821     \def\quote{%
822     \list{}{%
823     \leftmargin 2pc
824     \rightmargin\leftmargin
825     }%
826     \item[]
827     }
828    
829     \let\endquote=\endlist
830    
831     % This version of describe puts unwanted periods and the
832     % indenting is not aesthetic. See replacment below.
833     %\def\description{%
834     % \list{}{%
835     % \listparindent\parindent
836     % \labelwidth\z@
837     % \leftmargin\z@
838     % \itemindent\parindent
839     % \advance\itemindent\labelsep
840     % \def\makelabel##1{\it ##1.}%
841     % }%
842     %}
843     %\let\enddescription\endlist
844    
845     % SUBSTITUTE VERSION
846     % GERRY MURRAY - - NOVEMBER 1999
847     \def\descriptionlabel#1{%
848     \hspace\labelsep \normalfont\bfseries #1%
849     }%
850     \newenvironment{description}{%
851     \list{}{%
852     \labelwidth\z@ \itemindent-\leftmargin
853     \let\makelabel\descriptionlabel
854     }%
855     }{%
856     \endlist
857     }%
858     % END OF SUBSTITUTE VERSION
859    
860     \def\describe#1{%
861     \list{}{%
862     \listparindent\parindent
863     \settowidth{\labelwidth}{#1}%
864     \leftmargin\labelwidth
865     \addtolength\leftmargin\labelsep
866     \def\makelabel##1{##1\hfil}%
867     }%
868     }
869    
870     \let\enddescribe\endlist
871    
872     \def\program{%
873     \ifx\@currsize\normalsize
874     \small
875     \else
876     \rm
877     \fi
878     \tabbing
879     }
880    
881     \let\endprogram\endtabbing
882    
883     \def\@begintheorem#1#2{%
884     \trivlist
885     \item[%
886     \hskip 10\p@
887     \hskip \labelsep
888     {\sc #1\hskip 5\p@\relax#2.}%
889     ]
890     \it
891     }
892     \def\@opargbegintheorem#1#2#3{%
893     \trivlist
894     \item[%
895     \hskip 10\p@
896     \hskip \labelsep
897     {\sc #1\ #2% % Gil Neiger (for numbering collaries and such) Sept. 1999
898     \savebox\@tempboxa{(#3)}% GN
899     \ifdim \wd\@tempboxa>\z@
900     \hskip5\p@\relax
901     \box\@tempboxa
902     \fi.}%
903     ]
904     \it
905     }
906     \newif\if@qeded
907     \global\@qededfalse
908     \def\proof{%
909     \global\@qededfalse
910     \@ifnextchar[{\@xproof}{\@proof}%
911     }
912    
913     \def\endproof{%
914     \if@qeded\else\qed\fi
915     \endtrivlist
916     }
917     \def\@proof{%
918     \trivlist
919     \item[%
920     \hskip 10\p@
921     \hskip \labelsep
922     {\sc Proof.}%
923     ]
924     \ignorespaces
925     }
926     \def\@xproof[#1]{%
927     \trivlist
928     \item[\hskip 10\p@\hskip \labelsep{\sc Proof #1.}]%
929     \ignorespaces
930     }
931     \def\qed{%
932     \unskip
933     \kern 10\p@
934     \begingroup
935     \unitlength\p@
936     \linethickness{.4\p@}%
937     \framebox(6,6){}%
938     \endgroup
939     \global\@qededtrue
940     }
941     \def\newdef#1#2{%
942     \expandafter\@ifdefinable\csname #1\endcsname
943     {\@definecounter{#1}%
944     \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}%
945     \global\@namedef{#1}{\@defthm{#1}{#2}}%
946     \global\@namedef{end#1}{\@endtheorem}%
947     }%
948     }
949     \def\@defthm#1#2{%
950     \refstepcounter{#1}%
951     \@ifnextchar[{\@ydefthm{#1}{#2}}{\@xdefthm{#1}{#2}}%
952     }
953     \def\@xdefthm#1#2{%
954     \@begindef{#2}{\csname the#1\endcsname}%
955     \ignorespaces
956     }
957     \def\@ydefthm#1#2[#3]{%
958     \trivlist
959     \item[%
960     \hskip 10\p@
961     \hskip \labelsep
962     {\it #2%
963     \savebox\@tempboxa{#3}%
964     \ifdim \wd\@tempboxa>\z@
965     \ \box\@tempboxa
966     \fi.%
967     }]%
968     \ignorespaces
969     }
970     \def\@begindef#1#2{%
971     \trivlist
972     \item[%
973     \hskip 10\p@
974     \hskip \labelsep
975     {\it #1\ \rm #2.}%
976     ]%
977     }
978     \def\theequation{\arabic{equation}}
979     \def\titlepage{%
980     \@restonecolfalse
981     \if@twocolumn
982     \@restonecoltrue
983     \onecolumn
984     \else
985     \newpage
986     \fi
987     \thispagestyle{empty}%
988     \c@page\z@
989     }
990    
991     \def\endtitlepage{%
992     \if@restonecol
993     \twocolumn
994     \else
995     \newpage
996     \fi
997     }
998     \arraycolsep 2.5\p@
999    
1000     \tabcolsep 6\p@
1001     \arrayrulewidth .4\p@
1002     \doublerulesep 2\p@
1003     \tabbingsep \labelsep
1004    
1005     \skip\@mpfootins = \skip\footins
1006     \fboxsep = 3pt \fboxrule = .4\p@
1007     \def\@pnumwidth{1.55em}
1008     \def\@tocrmarg {2.55em}
1009     \def\@dotsep{4.5}
1010     \setcounter{tocdepth}{3}
1011     \def\tableofcontents{%
1012     \section*{Contents\@mkboth{CONTENTS}{CONTENTS}}
1013     \@starttoc{toc}%
1014     }
1015     \def\l@part#1#2{%
1016     \addpenalty\@secpenalty
1017     \addvspace{2.25em \@plus \p@}%
1018     \begingroup
1019     \@tempdima 3em
1020     \parindent \z@
1021     \rightskip \@pnumwidth
1022     \parfillskip -\@pnumwidth
1023     \begingroup
1024     \large
1025     \bf
1026     \leavevmode
1027     #1%
1028     \hfil
1029     \hb@xt@\@pnumwidth{\hss #2}%
1030     \endgroup
1031     \par
1032     \nobreak
1033     \endgroup
1034     }
1035     \def\l@section#1#2{%
1036     \addpenalty\@secpenalty
1037     \addvspace{1.0em \@plus \p@}%
1038     \@tempdima 1.5em
1039     \begingroup
1040     \parindent \z@
1041     \rightskip \@pnumwidth
1042     \parfillskip -\@pnumwidth
1043     \bf
1044     \leavevmode
1045     #1%
1046     \hfil
1047     \hb@xt@\@pnumwidth{\hss #2}%
1048     \par
1049     \endgroup
1050     }
1051     \def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}}
1052    
1053     \def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}}
1054     \def\listoffigures{%
1055     \section*{List of Figures\@mkboth{LIST OF FIGURES}{LIST OF FIGURES}}
1056     \@starttoc{lof}%
1057     }
1058    
1059     \def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
1060     \def\listoftables{%
1061     \section*{List of Tables\@mkboth{LIST OF TABLES}{LIST OF TABLES}}
1062     \@starttoc{lot}%
1063     }
1064    
1065     \let\l@table\l@figure
1066     \def\thebibliography#1{%
1067     \par
1068     \footnotesize
1069     \@startsection{subsection}{2}{\z@}{16\p@ \@plus 2\p@ \@minus \p@}
1070     {2\p@}{\sf}*{\uppercase{\refname}}
1071     \list{\arabic{enumi}.}{%
1072     \settowidth\labelwidth{99.}%
1073     \leftmargin\labelwidth
1074     \advance\leftmargin\labelsep
1075     \topsep \z@
1076     \parsep \z@ \@plus .1\p@
1077     \itemsep \parsep
1078     \usecounter{enumi}%
1079     }%
1080     \def\newblock{\hskip .11em \@plus .33em \@minus .07em}%
1081     \sloppy
1082     \widowpenalty4500
1083     \clubpenalty4500
1084     \sfcode`\.=1000
1085     \relax
1086     }
1087    
1088     \let\endthebibliography=\endlist
1089     \newif\if@restonecol
1090     \def\theindex{%
1091     \@restonecoltrue
1092     \if@twocolumn \@restonecolfalse \fi
1093     \columnseprule \z@
1094     \columnsep 35\p@
1095     \twocolumn[\section*{Index}]
1096     \@mkboth{INDEX}{INDEX}%
1097     \thispagestyle{plain}%
1098     \parindent\z@
1099     \parskip\z@ \@plus .3\p@\relax
1100     \let\item\@idxitem
1101     }
1102    
1103     \def\endtheindex{%
1104     \if@restonecol
1105     \onecolumn
1106     \else
1107     \clearpage
1108     \fi
1109     }
1110     \def\@idxitem{\par\hangindent 40\p@}
1111     \def\subitem{\par\hangindent 40\p@ \hspace*{20\p@}}
1112     \def\subsubitem{\par\hangindent 40\p@ \hspace*{30\p@}}
1113     \def\indexspace{\par \vskip 10\p@ \@plus 5\p@ \@minus 3\p@\relax}
1114     \def\footnoterule{%
1115     \kern-3\p@
1116     \hrule \@width 47\p@ %\@height .004\p@
1117     \kern 2.6\p@
1118     }
1119     \long\def\@makefntext#1{%
1120     \parindent 1em
1121     \noindent $^{\@thefnmark}$#1%
1122     }
1123     \setcounter{topnumber}{2}
1124     \def\topfraction{.89}
1125     \setcounter{bottomnumber}{1}
1126     \def\bottomfraction{.5}
1127     \setcounter{totalnumber}{3}
1128     \def\textfraction{.11}
1129     \def\floatpagefraction{.6}
1130     \setcounter{dbltopnumber}{2}
1131     \def\dbltopfraction{.7}
1132     \def\dblfloatpagefraction{.5}
1133     \long\def\@makecaption#1#2{%
1134     \vskip 1pc
1135     \setbox\@tempboxa\hbox{#1.\hskip 1em\relax #2}%
1136     \ifdim \wd\@tempboxa >\hsize
1137     #1.\hskip 1em\relax #2\par
1138     \else
1139     \centerline{\box\@tempboxa}%
1140     \fi
1141     }
1142     \def\nocaption{%
1143     \refstepcounter\@captype
1144     \par
1145     \vskip 1pc
1146     \centerline{\footnotesize \csname fnum@\@captype \endcsname}%
1147     }
1148     \newcounter{figure}
1149     \def\thefigure{\@arabic\c@figure}
1150     \def\fps@figure{tbp}
1151     \def\ftype@figure{1}
1152     \def\ext@figure{lof}
1153     \def\figurename{Fig.}
1154     \def\fnum@figure{\figurename~\thefigure}
1155     \def\figfilename{\gdef\@figfilename}
1156     \let\@figfilename\@empty
1157     \if@faircopy
1158     \newenvironment{figure}{%
1159     \let\normalsize\footnotesize
1160     \normalsize
1161     \@ifnextchar[{\@figure}{\@figure[]}%
1162     }{\end@float
1163     \global\setbox\@currbox\vbox to\textheight{%
1164     \vskip\@fptop
1165     \unvbox\@currbox
1166     \vskip\@fpbot
1167     \noindent \fnum@figure
1168     \ifx\@figfilename\@empty\else
1169     : {\tt \@figfilename}%
1170     \global\let\@figfilename\@empty
1171     \fi
1172     }%
1173     }
1174     \else
1175     \newenvironment{figure}{%
1176     \let\normalsize\footnotesize
1177     \normalsize
1178     \@float{figure}
1179     }{\end@float}
1180     \fi
1181     \def\@figure[#1]{\@float{figure}[p]}
1182     \expandafter\let\csname figure*\endcsname\figure
1183     \expandafter\let\csname endfigure*\endcsname\endfigure
1184     \newenvironment{table}{%
1185     \let\normalsize\footnotesize
1186     \normalsize
1187     \@float{table}%
1188     }{\end@float}
1189     \expandafter\let\csname table*\endcsname\table
1190     \expandafter\let\csname endtable*\endcsname\endtable
1191     \def\thetable{\@Roman\c@table}
1192     \newcounter{table}
1193     \def\fps@table{tbp}
1194     \def\ftype@table{2}
1195     \def\ext@table{lot}
1196     \def\tablename{Table}
1197     \def\fnum@table{\tablename~\thetable}
1198     \newdimen\@narrowfig
1199     \newbox\@nfigbox
1200     \newbox\@nfcapbox
1201     \newif\if@nfeven
1202     \def\acmtable#1{%
1203     \@narrowfig #1\relax
1204     \let\caption\@atcap
1205     \let\nocaption\@atnocap
1206     \@ifnextchar[{\@ntab}{\@ntab[\fps@table]}%
1207     }
1208    
1209     \def\@ntab[#1]{%
1210     \expandafter\table\expandafter[#1]%
1211     \setbox\@nfigbox\vbox\bgroup
1212     \hsize \@narrowfig
1213     \@parboxrestore
1214     }
1215    
1216     \def\endacmtable{%
1217     \hb@xt@\textwidth{%
1218     \hfil
1219     \vbox{%
1220     \hsize \@narrowfig
1221     \box\@nfcapbox{%
1222     \baselineskip 4\p@
1223     \hbox{\vrule \@height .4\p@ \@width \hsize}%
1224    
1225     }%
1226     \vskip -\p@
1227     \box\@nfigbox
1228     \vskip -\p@
1229     \begingroup
1230     \baselineskip 4\p@
1231     \hbox{\vrule \@height .4\p@ \@width \hsize}%
1232     \endgroup
1233     }%
1234     \hfil
1235     }%
1236     \end@float
1237     }
1238     \def\@atmakecap#1#2{%
1239     \setbox\@tempboxa\hbox{#1.\hskip 1em\relax #2}%
1240     \ifdim \wd\@tempboxa >\hsize
1241     \sloppy #1.\hskip 1em\relax #2 \par
1242     \else
1243     \centerline{\box\@tempboxa}%
1244     \fi
1245     }
1246     \def\@atcap{%
1247     \par
1248     \egroup
1249     \refstepcounter\@captype
1250     \@dblarg{\@atcapx\@captype}%
1251     }
1252     \long\def\@atcapx#1[#2]#3{%
1253     \addcontentsline{\csname ext@#1\endcsname}{#1}{%
1254     \protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}%
1255     }%
1256     \setbox\@nfcapbox\vbox{%
1257     \hsize \wd\@nfigbox
1258     \@parboxrestore
1259     \@atmakecap{\csname fnum@#1\endcsname}{\ignorespaces #3}%
1260     \par
1261     }%
1262     }
1263     \def\@atnocap{%
1264     \egroup
1265     \refstepcounter\@captype
1266     \setbox\@nfcapbox\vbox{%
1267     \hsize \wd\@nfigbox
1268     \centerline{\footnotesize \fnum@table}
1269     }%
1270     }
1271     \def\narrowfig#1{%
1272     \@narrowfig #1\relax
1273     \let\caption\@nfcap
1274     \let\nocaption\@nfnocap
1275     \@ifnextchar[{\@nfig}{\@nfig[\fps@figure]}%
1276     }
1277    
1278     \def\@nfig[#1]{%
1279     \expandafter\figure\expandafter[#1]%
1280     \setbox\@nfigbox\vbox\bgroup
1281     \hsize\@narrowfig
1282     \@parboxrestore
1283     }
1284    
1285     \def\endnarrowfig{%
1286     \hb@xt@\textwidth{%
1287     \if@nfeven
1288     \box\@nfcapbox \hfil \box\@nfigbox
1289     \else
1290     \box\@nfigbox \hfil \box\@nfcapbox
1291     \fi
1292     }%
1293     \endfigure
1294     }
1295     \def\@nfcap{%
1296     \par
1297     \egroup
1298     \refstepcounter\@captype
1299     \@dblarg{\@nfcapx\@captype}%
1300     }
1301     \def\@nfmakecap #1#2{%
1302     \setbox\@tempboxa\hbox{#1.\hskip 1em\relax #2}%
1303     \ifdim \wd\@tempboxa >\hsize
1304     \sloppy #1.\hskip 1em\relax #2 \par
1305     \else
1306     \@@line{%
1307     \if@nfeven\else\hfil\fi
1308     \box\@tempboxa
1309     \if@nfeven\hfil\fi
1310     }%
1311     \fi
1312     }
1313     \long\def\@nfcapx#1[#2]#3{%
1314     \addcontentsline{\csname ext@#1\endcsname}{#1}{%
1315     \protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}%
1316     }%
1317     \@seteven
1318     \setbox\@nfcapbox\vbox to \ht\@nfigbox{%
1319     \hsize \textwidth
1320     \advance\hsize -2pc
1321     \advance\hsize -\wd\@nfigbox
1322     \@parboxrestore
1323     \vfil
1324     \@nfmakecap{\csname fnum@#1\endcsname}{\ignorespaces #3}%
1325     \par
1326     \vfil
1327     }%
1328     }
1329     \def\@nfnocap{%
1330     \egroup
1331     \refstepcounter\@captype
1332     \@seteven
1333     \setbox\@nfcapbox\vbox to \ht\@nfigbox{%
1334     \hsize \textwidth
1335     \advance\hsize -2pc
1336     \advance\hsize -\wd\@nfigbox
1337     \@parboxrestore
1338     \vfil
1339     \@@line{%
1340     \if@nfeven\else\hfil\fi
1341     \footnotesize \fnum@figure
1342     \if@nfeven\hfil\fi
1343     }%
1344     \vfil
1345     }%
1346     }
1347     % ________________________________________________________
1348     % ACM / OCLC modifications begin
1349     %
1350     %\def\setbmp#1#2#3#4{\vskip#3\relax\noindent\hskip#1\relax
1351     % \special{bmp:#4 x=#2, y=#3}}
1352     %\def\centerbmp#1#2#3{\vskip#2\relax\centerline{\hbox to#1{\special
1353     % {bmp:#3 x=#1, y=#2}\hfil}}}
1354     %
1355     %\def\seteps#1#2#3#4{\vskip#3\relax\noindent\hskip#1\relax
1356     % \special{eps:#4 x=#2, y=#3}}
1357     %\def\centereps#1#2#3{\vskip#2\relax\centerline{\hbox to#1{\special
1358     % {eps:#3 x=#1, y=#2}\hfil}}}
1359     %
1360     %\def\centertif#1#2#3{\vskip#2\relax\centerline{{
1361     % \it{Figure {(#3)} to be inserted here.}}}}
1362     %
1363     % ACM / OCLC modifications end
1364     % ________________________________________________________
1365    
1366     \def\@seteven{%
1367     \@nfeventrue
1368     \@ifundefined{r@@nf\thefigure}{}{%
1369     \edef\@tmpnf{\csname r@@nf\thefigure\endcsname}%
1370     \edef\@tmpnf{\expandafter\@cdr\@tmpnf\@nil}%
1371     \ifodd\@tmpnf\relax
1372     \@nfevenfalse
1373     \fi
1374     }%
1375     \label{@nf\thefigure}%
1376     \edef\@tmpnfx{\if@nfeven e\else o\fi}%
1377     \edef\@tmpnf{%
1378     \write\@unused{%
1379     \noexpand\ifodd \noexpand\c@page
1380     \noexpand\if \@tmpnfx e%
1381     \noexpand\@nfmsg{\thefigure}
1382     \noexpand\fi
1383     \noexpand\else
1384     \noexpand\if \@tmpnfx o%
1385     \noexpand\@nfmsg{\thefigure}%
1386     \noexpand\fi
1387     \noexpand\fi
1388     }%
1389     }%
1390     \@tmpnf
1391     }
1392    
1393     \def\@nfmsg#1{Bad narrowfig: Figure #1 on page \thepage}
1394     \newdimen\@narrowfig
1395     \newbox\@nfigbox
1396     \newbox\@nfcapbox
1397     \newif\if@nfeven
1398     \newenvironment{authinfo}{%
1399     \newcommand{\name}[1] {Name: ##1\newline }
1400     \newcommand{\address}[1] {Address: ##1\newline }
1401     \newcommand{\affiliation}[1] {Affiliation: ##1\newline }
1402     \newcommand{\biography}[1] {Biography: ##1\newline}
1403     }{}
1404     %
1405     % _________________________________
1406     % ACM / OCLC modifications
1407     \newenvironment{sponsor}[2]{%
1408     Sponsor: #1\strut\newline
1409     \parbox{3.in}{#2}%
1410     }{\newline}
1411     \def\and{\\ and\\}
1412     % _________________________________
1413    
1414     \def\maketitle{%
1415     \newpage
1416     \thispagestyle{titlepage}%
1417     \global\@topnum\z@
1418     \begingroup
1419     \lineskip \z@
1420     \null
1421     \vskip -30\p@\relax
1422     \parindent\z@
1423     \begingroup
1424     \LARGE
1425     \raggedright
1426     \hyphenpenalty\@M
1427     \sf \@title
1428     \par
1429     \endgroup
1430     \vskip 13.5\p@
1431     %vskip 13.5\p@ between title and author
1432     \begingroup
1433    
1434     {
1435     \addtolength{\baselineskip}{2\p@}%
1436     \sf
1437     \@author\par
1438     \ifx \@sponsors\@empty
1439     \else
1440     %\baselineskip 17\p@%\relax
1441     \hbox{\vrule height .2\p@ width 30pc}
1442     \@sponsors \par
1443     \fi
1444     }
1445     \endgroup
1446     \begingroup
1447     \footnotesize
1448     \medskip
1449     \rule{\textwidth}{.2\p@}%
1450     \ifvoid\@abstract
1451     \typeout{^^JPackage acmart Warning: an abstract
1452     is required^^J}%
1453     \else
1454     \vskip 8.5\p@
1455     \box\@abstract
1456     \fi
1457    
1458    
1459     \ifx\@categories\@empty \else
1460     \vskip 4\p@\relax %vskip8.5 space above abstract
1461     \def\and{\unskip{\rm;} }%
1462     Categories and Subject Descriptors: \@categories\par
1463     \fi
1464     \ifx\@terms\@empty\else
1465     \vskip 4\p@
1466     General Terms: \ignorespaces
1467     \@terms
1468     \par
1469     \fi
1470     \ifx\@keywords\@empty\else
1471     \vskip 4\p@
1472     Additional Key Words and Phrases: \ignorespaces
1473     \@keywords
1474     \par
1475     \fi
1476     \endgroup
1477     \label{@firstpg}%
1478     \rule{\textwidth}{.2\p@}%
1479     \vskip 23\p@
1480     \endgroup
1481     \let\maketitle\relax
1482     \global\let\@sponsors\@empty
1483     \global\let\@categories\@empty
1484     \global\let\@terms\@empty
1485     \global\let\@keywords\@empty
1486     }
1487    
1488     \def\sponsor#1{\@ifnextchar
1489     [{\@sponsor{#1}}{\@xsponsor{#1}}}
1490     \def\@sponsor#1[#2]{\edef\@tempa{\ifx \@sponsors\@empty
1491     \else ; \fi}{\def\protect{\noexpand\protect
1492     \noexpand}\def\and{\noexpand\and}\xdef\@sponsors{\@sponsors\@tempa #1 }}}
1493     \def\@xsponsor#1{\edef\@tempa{\ifx \@sponsors\@empty \else ;
1494     \fi}{\def\protect{\noexpand\protect\noexpand}\def\and{\noexpand
1495     \and}\xdef\@sponsors{\@sponsors\@tempa #1}}}
1496     \def\@sponsors{}
1497    
1498    
1499     \newbox\@abstract
1500     \def\abstract{%
1501     \everypar{}%
1502     \global\setbox\@abstract\vbox\bgroup
1503     \footnotesize
1504     \trivlist\item[]\ignorespaces
1505     }
1506    
1507     \def\endabstract{%
1508     \endtrivlist
1509     \egroup
1510     \ifx\maketitle\relax
1511     \typeout{^^JPackage acmart Warning:
1512     the abstract must be specified before the^^J%
1513     \string\maketitle\space command^^J%
1514     }%
1515     \box\@abstract
1516     \fi
1517     }
1518     \def\terms{\gdef\@terms}
1519    
1520     \let\@terms\@empty
1521     \def\keywords{\gdef\@keywords}
1522    
1523     \let\@keywords\@empty
1524     \def\category#1#2#3{%
1525     \@ifnextchar [{\@category{#1}{#2}{#3}}{\@category{#1}{#2}{#3}[]}%
1526     }
1527     \def\@category#1#2#3[#4]{%
1528     \edef\@tempa{\ifx \@categories\@empty \else ; \fi}%
1529     \begingroup
1530     \def\protect{\noexpand\protect\noexpand}%
1531     \let\and\relax
1532     \xdef\@categories{%
1533     \@categories
1534     \@tempa
1535     #1 [{\bf #2}]%
1536     \if!#4!%
1537     \if!#3!\else : #3\fi
1538     \else
1539     :\space
1540     \if!#3!\else #3\kern\z@---\hskip\z@\fi
1541     {\it #4}%
1542     \fi
1543     }%
1544     \endgroup
1545     }
1546    
1547     \let\@categories\@empty
1548     \def\bottomstuff{%
1549     \global\@topnum\z@
1550     \global\@botroom \textheight
1551     \@float{figure}[b]
1552     \footnotesize
1553     \parindent\z@
1554     \null
1555     \vskip -\textfloatsep
1556     \vskip 10\p@
1557     \hrule \@height .2\p@ \@width 30pc
1558     \vskip 4\p@
1559     \ignorespaces
1560     }
1561     \def\endbottomstuff{%
1562     \par
1563     \strut
1564     \end@float
1565     }
1566     \long\def\permission{\par
1567     Permission to make digital or hard copies of part or all of this
1568     work for personal or classroom use is granted without fee provided
1569     that copies are not made or distributed for profit or direct
1570     commercial advantage and that copies show this notice on the first
1571     page or initial screen of a display along with the full citation.
1572     Copyrights for components of this work owned by others than ACM
1573     must be honored. Abstracting with credit is permitted. To copy
1574     otherwise, to republish, to post on servers, to redistribute to
1575     lists, or to use any component of this work in other works,
1576     requires prior specific permission and/or a fee. Permissions may
1577     be requested from Publications Dept, ACM Inc., 1515 Broadway, New
1578     York, NY 10036 USA, fax +1 (212) 869-0481, or {\tt
1579     permissions@acm.org}.
1580     \par
1581     }
1582     % _______________________________________________________
1583     %
1584     % Original acks did not sans serif heading at all.
1585     %
1586     %\newenvironment{acksold}{%
1587     % \@startsection{subsection}{2}{\z@}{-16\p@ \@plus -2\p@ \@minus -\p@}
1588     % {2\p@}{\sf}*{\footnotesize ACKNOWLEDGMENTS}%
1589     %}{\par}
1590     %
1591     %
1592     % ACM / OCLC modification to sans serif the heading.
1593     %
1594     \newenvironment{acks}{%
1595     \@startsection{subsection}{2}{\z@}{-16\p@ \@plus -2\p@ \@minus -\p@}
1596     {2\p@}{}*{\footnotesize\sf ACKNOWLEDGMENTS}%
1597     }{\par}
1598     %
1599     % _____________________________________________________
1600     %
1601     \newenvironment{received}{%
1602     \par
1603     \footnotesize
1604     \addvspace{18\p@ \@minus 4\p@}%
1605     \parindent\z@
1606     }{%
1607     \label{@lastpg}%
1608     \par
1609     }
1610     \mark{{}{}}
1611     \def\ps@myheadings{%
1612     \let\@mkboth\@gobbletwo
1613     \def\@oddhead{%
1614     \hfill\small\sf\rightmark
1615     \hskip 19\p@
1616     {\Large$\cdot$}%
1617     \hskip 17\p@
1618     \thepage
1619     }%
1620     \def\@oddfoot{\null\hfill\tiny\@runningfoot}
1621     \def\@evenhead{%
1622     \small\sf\thepage
1623     \hskip 17\p@
1624     {\Large$\cdot$}%
1625     \hskip 19\p@
1626     \leftmark
1627     \hfill
1628     }%
1629     \def\@evenfoot{\tiny\@runningfoot \hfill\null}%
1630     \let\partmark\@gobble
1631     \let\sectionmark\@gobble
1632     \let\subsectionmark\@gobble
1633     }
1634     \def\runningfoot#1{\def\@runningfoot{#1}}
1635    
1636     \let\@runningfoot\@empty
1637    
1638     \def\firstfoot#1{\def\@firstfoot{#1}}
1639    
1640     \let\@firstfoot\@empty
1641    
1642     \def\pages{\pageref{@firstpg}--\pageref{@lastpg}}
1643     \def\ps@titlepage{%
1644     \let\@mkboth\@gobbletwo
1645     \let\@oddhead\@empty
1646     \def\@oddfoot{\null\hfill\tiny\@firstfoot}%
1647     \let\@evenhead\@empty
1648     \def\@evenfoot{\tiny\@firstfoot\hfill\null}%
1649     }
1650     \def\today{%
1651     \ifcase\month \or
1652     January\or
1653     February\or
1654     March\or
1655     April\or
1656     May\or
1657     June\or
1658     July\or
1659     August\or
1660     September\or
1661     October\or
1662     November\or
1663     December
1664     \fi
1665     \space\number\day, \number\year
1666     }
1667     \def\marray{%
1668     \arraycolsep 2.5\p@
1669     \let\@acol\@arrayacol
1670     \let\@classz\@marrayclassz
1671     \let\@classiv\@marrayclassiv
1672     \let\\\@arraycr
1673     \let\@halignto\@empty
1674     \@tabarray
1675     }
1676    
1677     \let\endmarray\endarray
1678     \def\@marrayclassiv{\@addtopreamble{$\displaystyle \@nextchar$}}
1679    
1680     \def\@marrayclassz{%
1681     \ifcase \@lastchclass
1682     \@acolampacol
1683     \or \@ampacol
1684     \or
1685     \or
1686     \or \@addamp
1687     \or \@acolampacol
1688     \or \@firstampfalse \@acol
1689     \fi
1690     \edef\@preamble{%
1691     \@preamble
1692     \ifcase \@chnum
1693     \hfil$\relax\displaystyle\@sharp$\hfil
1694     \or $\relax\displaystyle\@sharp$\hfil
1695     \or \hfil$\relax\displaystyle\@sharp$%
1696     \fi
1697     }%
1698     }
1699     \ps@myheadings
1700    
1701     \pagenumbering{arabic}
1702    
1703     \onecolumn
1704    
1705    
1706     \parindent10\p@
1707     \typeout{Using ACM bibliography style}
1708     \newcommand\bibyear[2]{%
1709     \unskip\quad\ignorespaces#1\unskip
1710     \if#2..\quad \else \quad#2 \fi
1711     }
1712     \newcommand{\bibemph}[1]{{\em#1}}
1713     \newcommand{\bibemphic}[1]{{\em#1\/}}
1714     \newcommand{\bibsc}[1]{{\sc#1}}
1715     \def\@normalcite{%
1716     \def\@cite##1##2{[##1\if@tempswa , ##2\fi]}%
1717     }
1718     \def\@citeNB{%
1719     \def\@cite##1##2{##1\if@tempswa , ##2\fi}%
1720     }
1721     \def\@citeRB{%
1722     \def\@cite##1##2{##1\if@tempswa , ##2\fi]}%
1723     }
1724     \def\start@cite#1#2{%
1725     \edef\citeauthoryear##1##2##3{%
1726     ###1%
1727     \ifnum#2=\z@ \else\ ###2\fi
1728     }%
1729     \ifnum#1=\thr@@
1730     \let\@@cite\@citeyear
1731     \else
1732     \let\@@cite\@citenormal
1733     \fi
1734     \@ifstar{\@citeNB\@@cite}{\@normalcite\@@cite}%
1735     }
1736     \def\cite{\start@cite23}
1737     \def\citeNP{\cite*}
1738     \def\citeA{\start@cite10}
1739     \def\citeANP{\citeA*}
1740     \def\shortcite{\start@cite23}
1741     \def\shortciteNP{\shortcite*}
1742     \def\shortciteA{\start@cite20}
1743     \def\shortciteANP{\shortciteA*}
1744     \def\citeyear{\start@cite30}
1745     \def\citeyearNP{\citeyear*}
1746     \def\citeN{%
1747     \@citeRB
1748     \def\citeauthoryear##1##2##3{##1\ [##3%
1749     \def\reserved@a{##1}%
1750     \def\citeauthoryear####1####2####3{%
1751     \def\reserved@b{####1}%
1752     \ifx\reserved@a\reserved@b
1753     ####3%
1754     \else
1755     \errmessage{Package acmart Error: author mismatch
1756     in \string\citeN^^J^^J%
1757     See the acmart package documentation for explanation}%
1758     \fi
1759     }%
1760     }%
1761     \@ifstar\@citeyear\@citeyear
1762     }
1763     \def\shortciteN{%
1764     \@citeRB
1765     \def\citeauthoryear##1##2##3{##2\ [##3%
1766     \def\reserved@a{##2}%
1767     \def\citeauthoryear####1####2####3{%
1768     \def\reserved@b{####2}%
1769     \ifx\reserved@a\reserved@b
1770     ####3%
1771     \else
1772     \errmessage{Package acmart Error: author mismatch
1773     in \string\shortciteN^^J^^J%
1774     See the acmart package documentation for explanation}%
1775     \fi
1776     }%
1777     }%
1778     \@ifstar\@citeyear\@citeyear
1779     }
1780     \def\@citenormal{%
1781     \@ifnextchar [{\@tempswatrue\@citex;}
1782     {\@tempswafalse\@citex;[]}%
1783     }
1784     \def\@citeyear{%
1785     \@ifnextchar [{\@tempswatrue\@citex,}%
1786     {\@tempswafalse\@citex,[]}%
1787     }
1788     \def\@citex#1[#2]#3{%
1789     \let\@citea\@empty
1790     \@cite{%
1791     \@for\@citeb:=#3\do{%
1792     \@citea
1793     \def\@citea{#1 }%
1794     \edef\@citeb{\expandafter\@iden\@citeb}%
1795     \if@filesw
1796     \immediate\write\@auxout{\string\citation{\@citeb}}%
1797     \fi
1798     \@ifundefined{b@\@citeb}{%
1799     {\bf ?}%
1800     \@warning{%
1801     Citation `\@citeb' on page \thepage\space undefined%
1802     }%
1803     }%
1804     {\csname b@\@citeb\endcsname}%
1805     }%
1806     }{#2}%
1807     }
1808     \let\@biblabel\@gobble
1809     \newdimen\bibindent
1810     \bibindent=1.5em
1811     \def\refname{References}
1812     \def\thebibliography#1{%
1813     \footnotesize
1814     \section*{%
1815     {\footnotesize\sf REFERENCES}
1816     \@mkboth{\uppercase{\refname}}{\uppercase{\refname}}%
1817     }%
1818     \list{[\arabic{enumi}]}{%
1819     \settowidth\labelwidth{[#1]}%
1820     \leftmargin\labelwidth
1821     \advance\leftmargin\labelsep
1822     \advance\leftmargin\bibindent
1823     \itemindent -\bibindent
1824     \listparindent \itemindent
1825     \parsep \z@
1826     \usecounter{enumi}%
1827     }%
1828     \let\newblock\@empty
1829     \sloppy
1830     \sfcode`\.=1000\relax
1831     }
1832     \endinput
1833    
1834     %
1835     %%
1836     %% End of file `esub2acm.cls' Version 1.2 - Gerry Murray ACM November 10th. 1999
1837    
1838     %$History: esub2acm.cls $
1839     %
1840     % ***************** Version 3 *****************
1841     % User: Dashley1 Date: 10/17/00 Time: 8:43p
1842     % Updated in $/ACM Rational Approximation Paper And Algorithms/LaTeX Paper And Graphics
1843     % Comments added to explain that file under VC and that a change history
1844     % is at the end of file.
1845     %
1846     % ***************** Version 2 *****************
1847     % User: Dashley1 Date: 10/17/00 Time: 8:37p
1848     % Updated in $/ACM Rational Approximation Paper And Algorithms/LaTeX Paper And Graphics
1849     % VC info added.
1850     %
1851     %End of file ESUB2ACM.TEX

dashley@gmail.com
ViewVC Help
Powered by ViewVC 1.1.25