%\iffalse
%<*class>

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% `acmconf' class to use with LaTeX2e.
%%
%% This class is used to typeset articles to be published in the proceedings
%% of the ACM (Association for Computing Machinery) conferences and workshops.
%%
%% Copyright (C) 1999, Dr. Juergen Vollmer
%%                     Viktoriastrasse 15, D-76133 Karlsruhe, Germany
%%                     Juergen.Vollmer@acm.org
%% License:
%%   This program can be redistributed and/or modified under the terms
%%   of the LaTeX Project Public License Distributed from CTAN
%%   archives in directory macros/latex/base/lppl.txt; either
%%   version 1 of the License, or any later version.
%%
%% If you find this software useful, please send me a postcard.
%%
%% $Id: acmconf.dtx,v 1.19 2000/05/18 17:14:51 vollmer Exp $
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%</class>
%\fi
%
%%
%\iffalse
%% to test the checksum, uncomment    \OnlyDescription
%% in the driver
%%\fi
%%
% \CheckSum{1307}
%% \CharacterTable
%%  {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
%%   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
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
% \DoNotIndex{\begin,\CodelineIndex,\CodelineNumbered,\def,\DisableCrossrefs}
% \DoNotIndex{\DocInput,\documentclass,\EnableCrossrefs,\end,\GetFileInfo}
% \DoNotIndex{\NeedsTeXFormat,\OnlyDescription,\RecordChanges,\usepackage}
% \DoNotIndex{\ProvidesClass,\ProvidesPackage,\ProvidesFile,\RequirePackage}
% \DoNotIndex{\LoadClass,\PassOptionsToClass,\PassOptionsToPackage}
% \DoNotIndex{\DeclareOption,\CurrentOption,\ProcessOptions,\ExecuteOptions}
% \DoNotIndex{\AtEndOfClass,\AtEndOfPackage,\AtBeginDocument,\AtEndDocument}
% \DoNotIndex{\InputIfFileExists,\IfFileExists,\ClassError,\PackageError}
% \DoNotIndex{\if,\else,\fi,\emph,\footnotesize,\footrulewidth,\let}
% \DoNotIndex{\newcount,\newif,\number,\or,\parindent,\plainfootrulewidth}
% \DoNotIndex{\PrintChanges,\PrintIndex,\relax,\setlength,\space}
% \DoNotIndex{\the,\textwidth,\thepage,\newcommand,\texttt,\verb,\vfill}
% \DoNotIndex{\input,\newpage,\setcounter,\newcounter,\\,\ ,\typeout,\today}
%
% \changes{v1.3}{2000-05-18}{Avoid superfluous spaces. Thanks to
%                            Henning Niss \texttt{(hniss@diku.dk)}}
% \changes{v1.2}{1999-11-05}{Added the box and nobox options.}
% \changes{v1.1}{1999-06-16}{Adopted to rules as given shown in the file
%                            pubform.tex}
% \changes{v1.0}{1999-05-30}{The initial version.}
%
% \title{The \texttt{acmconf} Class\\--\\
%        Typesetting Papers for Proceedings of the ACM
%       }
% \author{Dr.~J{\"u}rgen Vollmer\\
%         Viktoriastra{\ss}e 15\\
%         D-76133 Karlsruhe, Germany\\
%         {\small Juergen.Vollmer@acm.org}}
% \date{May 18, 2000; Version 1.3}
%
% \maketitle
%
% \MakeShortVerb{\'}
% \newcommand{\Meta}[1]{\{\meta{#1}\}}
%
% \begin{abstract}
% This class is used to typeset articles to be published in the proceedings
% of ACM (Association for Computing Machinery) conferences and workshops.
% \end{abstract}
%
% \section{Introduction}
% %%%%%%%%%%%%%%%%%%%%%%%
%
% The purpose of this class is to make the proceedings of the ACM
% to look more similar.
% The 'acmconf' class is an extension (or restriction as one sees) of the
% standard 'article' class.
% The text is typeset within two columns, the page bounds (width and height)
% are predefined and should not be modified.
% You may use all stuff of the 'article' class in the 'acmconf' class.
% (E.g.~'\title', '\author', '\maketitle', '\section', '\tabular', etc.
% Please have a look to the examples shipped with this class).
%
% The layout produced by the 'acmconf' class is based on the description
% contained in \texttt{www.acm.org/sigs/pubs/proceed/pubform.doc}\footnote{It
% follows this document concerning fonts and sizes, etc., but some
% distances (e.g.\ before and after section heads), are taken unchanged form
% the 'article' class, which results in differences to the file
% \texttt{pubform.doc}.}. For the specification of the layout, have a look into
% the file \texttt{pubform.tex} (with is the \LaTeX2e-variant of
% \texttt{pubform.doc}).
%
% The page \texttt{www.acm.org/sigs/pubs/proceed/template.html} contains
% the \emph{ACM SIG Proceedings Templates} for some other word processors.
%
% Besides the layout, this class offers some support in managing the
% process of preparing, submitting, and publishing the paper.
% The basic idea is that a paper is in one of the following five "states":
% \begin{enumerate}
% \item First the paper is in \emph{preparation}, then it will be
% \item \emph{submitted} to the conference chair.
% \item It may be \emph{accepted}, but is not yet published in the proceedings,
% \item then it must be typeset for the \emph{publication} in the proceedings,
%       and sometimes you need a
% \item \emph{printout} of the published paper.
% \end{enumerate}
%
% These states are indicated by the options passed to the class.
% Changing the option from one state to the next should not modify the
% printed result except for foot- and head lines (i.e.~each page should
% contain the same material on the same position on the page).
% The options are 'prepare', 'submit', 'accept', 'publish' and 'print'.
% In the text we speak of the \emph{prepared}, \emph{submitted},
% \emph{accepted}, \emph{published} or \emph{printed} text, as an
% abbreviation, that text was processed by \LaTeX\ with the corresponding
% option.
%
% Depending on the state, the head- and foot line of a page are filled
% with various informations (see below). Except for 'publish'  the foot line
% contains the page number, starting with one.
%
% Depending on the state, some macros must be used to define important
% informations (e.g.~the conference name must be given always, while
% the copyright notice must be given only when the 'publish' or 'print'
% option is used. Warnings will be emitted, if they are missing.
%
% You may give conditional text depending on the option, using the
% '\If...' commands shown below. Using them may cause different results when
% printing the text.
%
% \section{Thanks}
% %%%%%%%%%%%%%%%%
%
% The initial layout of this class was based on the former \LaTeX-style file,
% which states:\\
%    \emph{Adapted from ARTICLE document style by Ken Traub.
%          Hacked for [preprint] option by Olin Shivers 4/91.
%          Fixed up for LaTeX version 2e by Peter Lee 10/94 (with
%          help from Simon Peyton Jones).}
%
% The 'flushend'-package of  Sigitas Tolu\v sis \texttt{sigitas@vtex.lt} is
% used to balance the columns on the last page of the paper. It is
% \emph{Copyright 1997 Sigitas Tolu\v sis, VTeX Ltd., Akademijos 4,
% Vilnius, Lithuania}. Its ``home'' is
% \texttt{www.vtex.lt/tex/download/macros/flushend.sty}.
%
% The 'flushend'-package is distributed with the permisssion of
% Sigitas Tolu\v sis together with the 'acmconf' class. It is stored
% in the separate file \texttt{flushend.sty}.
%
% \section{User Interface}
% %%%%%%%%%%%%%%%%%%%%%%%%
%
% \subsection{Options}
%
% All except the following options of the 'article' class are allowed
% by 'acmconf'.
% \begin{itemize}\setlength{\itemsep}{0cm}
% \item '10pt'
% \item '11pt'
% \item '12pt'
% \end{itemize}
%
% \noindent
% New options for 'acmconf' are:
% \begin{center}
% \begin{tabular}{|l|p{0.75\textwidth}|}\hline
%   'prepare'  & Paper in preparation (default option).             \\
%   'submit'   & Typeset paper for submission.                      \\
%   'accept'   & Typeset accepted paper.                            \\
%   'publish'  & Typeset accepted paper for publishing in the
%                proceedings.                                       \\
%   'print'    & Typeset the published paper for printing separate
%                from from the proceedings.                         \\
%   'box'      & Place a box around the copyright notice (default). \\
%   'nobox'    & Do not place a box around the copyright notice.    \\
% \hline
% \end{tabular}
% \end{center}
%
% \subsection{Commands}
% %%%%%%%%%%%%%%%%%%%%%
%
% Additionally to the options, the following commands (macros) and environments% may be used:
%
% \begin{itemize}\setlength{\itemsep}{0cm}
% \item \DescribeMacro{\ConferenceName}
%        '\ConferenceName'\Meta{ConferenceName}\\
%        defines the full name of the conference.
%
% \item \DescribeMacro{\ConferenceShortName}
%        '\ConferenceShortName'\Meta{ConferenceShortName}\\
%        defines the abbreviation of the conference name.
%
% \item \DescribeMacro{\TheConferenceName}
%        '\TheConferenceName' is the full name of the conference, defined by
%        '\ConferenceName'.
%
% \item \DescribeMacro{\TheConferenceShortName}
%        '\TheConferenceShortName' is the full name of the conference,
%        defined by '\ConferenceShortName'.
%
% \item \DescribeMacro{\PrepareText}
%        '\PrepareText'\Meta{PrepareText}\\
%        \meta{PrepareText} is printed on top of a first page
%        of a prepared paper. Default: \\
%        \emph{Intended for submission to the \meta{ConferenceName}}
%
% \item \DescribeMacro{\SubmitText}
%        '\SubmitText'\Meta{SubmitText}\\
%        \meta{SubmitText} is printed on top of a first page
%        of a submitted paper. Default: \\
%        \emph{Submitted to the \meta{ConferenceName}}
%
% \item \DescribeMacro{\AcceptText}
%        '\AcceptText'\Meta{AcceptText}\\
%        \meta{AcceptText} is printed on top of a first page
%        of an accepted paper. Default: \\
%        \emph{Accepted for the \meta{ConferenceName}}
%
% \item \DescribeMacro{\PrintText}
%        '\PrintText'\Meta{PrintText}\\
%        \meta{PrintText} is printed on top of a first page
%        of a prepared paper. Default: \\
%        \emph{Published in the Proceedings of the \meta{ConferenceName},
%              pages \meta{Published\-Page\-From}--\meta{Published\-Page\-To}}
%
% \item \DescribeMacro{\PublishedPageFrom}
%        '\PublishedPageFrom'\Meta{PublishedPageFrom}
%
% \item \DescribeMacro{\PublishedPageTo}
%        '\PublishedPageTo'\Meta{PublishedPageTo}\\
%        The published paper is printed in the proceedings from page
%        \meta{Published\-Page\-From} to page \meta{Published\-Page\-To}.
%
% \item \DescribeMacro{\CopyrightText}
%        '\CopyrightText'\Meta{CopyrightText}\\
%        \meta{CopyrightText} must be given for the accepted, published and
%        printed paper. It may be given for the prepared and submitted paper.
%        It is printed below the left column on the first page.
%
% \item \DescribeMacro{\IfPrepare}
%       '\IfPrepare'\Meta{then}\Meta{else} executes \meta{then},
%       if the 'prepare' option was given, otherwise executes \meta{else}.
%
% \item \DescribeMacro{\IfSubmit}
%       '\IfSubmit'\Meta{then}\Meta{else} executes \meta{then},
%       if the 'submit' option was given, otherwise executes \meta{else}.
%
% \item \DescribeMacro{\IfAccept}
%       '\IfAccept'\Meta{then}\Meta{else} executes \meta{then},
%       if the 'accept' option was given, otherwise executes \meta{else}.
%
% \item \DescribeMacro{\IfPublish}
%       '\IfPublish'\Meta{then}\Meta{else} executes \meta{then},
%       if the 'publish' option was given, otherwise executes \meta{else}.
%
% \item \DescribeMacro{\IfPrint}
%       '\IfPrint'\Meta{then}\Meta{else} executes \meta{then},
%       if the 'print' option was given, otherwise executes \meta{else}.
%
% \item \DescribeMacro{\Author}
%        '\Author'\Meta{Author}\\
%        is used to typeset the auther(s) in the title.
%
% \item \DescribeMacro{\Address}
%        '\Address'\Meta{Address}\\
%        is used to typeset the authors postal address in the title.
%
% \item \DescribeMacro{\Phone}
%        '\Phone'\Meta{Phone}\\
%        is used to typeset the authors phone number in the title.
%
% \item \DescribeMacro{\Email}
%        '\Email'\Meta{Email}\\
%        is used to typeset the authors email address in the title.
%
%        '\Author', '\Address', '\Phone', and '\Email' should be used only
%        withing the standard '\author'-command, used to produce the title
%        section of the paper
%
%        The first given \meta{Author} is printed with
%        the \meta{ConferenceShortName} and the '\date' in the foot line of
%        the submitted paper\footnote{To ease the job of the referee,
%        in case a thunderstorm visits his office.}.
% \item \DescribeEnv{keywords}
%       The 'keywords' environment has no parameters and should follow the
%       'abstract' environment.
%       It is used to give some keywords of the article.
% \end{itemize}
%
% All macros above except '\If...', '\ConferenceName', '\ConferenceShortName',
% '\Author',  '\Address', and '\Email' must be given in the preamble of the
% document.
%
% \DescribeMacro{\subsubsubsection}
% \DescribeMacro{\subsubsubsubsection}
% The following two section commands are defined additionally:\\
% '\subsubsubsection' and '\subsubsubsubsection'. They may be used as the other
% '\section'-commands.
%
% \DescribeMacro{\tableofcontents}
% \DescribeMacro{\listoffigures}
% \DescribeMacro{\listoftables}
% \DescribeMacro{\pagestyle}
% The following commands provided by the 'article' class
% are not allowed in 'acmconf',
% except when preparing the text:
% '\tableofcontents', '\listoffigures', '\listoftables', and '\pagestyle'.
%
% \subsection{Commands of the \texttt{flushend}-package}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% The 'flushend' package of Sigitas Tolu\v sis \texttt{sigitas@vtex.lt} is
% used to balance the columns on the last page of the paper.
% It is loaded automatically by the 'acmconf' class.
% It offers the following commands:
% \begin{itemize}\setlength{\itemsep}{0cm}
% \item \DescribeMacro{\flushend}
%        '\flushend'\\
%        Switches on column balancing at last. This is the default.
% \item \DescribeMacro{\raggedend}
%        '\raggedend'\\
%        Switches off column balancing at last page.
% \item \DescribeMacro{\atColsBreak}
%       '\atColsBreak'\Meta{text}\\
%        Adds \meta{text} in place of original column break
%        (without balancing). Example: '\atColsBreak{\vskip-2pt}'.
%\item \DescribeMacro{\showcolsendrule}
%      '\showcolsendrule'\\
%      Adds rule to the bottom of columns (just for debugging).
% \end{itemize}

% \subsection{Predefined Stuff}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% 'acmconf' defines the following things, which should not be overwritten
% by the user:
% \begin{itemize}\setlength{\itemsep}{0cm}
% \item The paper is set in twocolumn-mode. The columns on  the last page
%       are balanced.
% \item The '\normalfont' size is 9pt with a '\baselineskip' of 9pt and a
%       '\baselinestretch' of 1.2.
% \item The page size and some distances.
% \item The layout of '\section', '\subsection', '\subsubsection',
%       '\paragraph', and '\subparagraph'.
% \end{itemize}
%
% \section{Example}
% %%%%%%%%%%%%%%%%%
% \begin{verbatim}
% \documentclass[print]{acmconf}
% \ConferenceName{1.~Conference on Designing a \LaTeX2e Class for
%                 Typesetting ACM Papers, Hawaii 2000}
% \ConferenceShortName{CONF-2000}
% \CopyrightText{\copyright ACM 2000, .....}
% \PublishedPageFrom{123}
% \PublishedPageTo{456}
% \begin{document}
% \date{May 18, 2000; Version 1.3}
% \title{A New Intuitionistic Proof of Usability\\
%        of the Recommended Style File for the ACM Conference Papers}
% \author{\Author{J\"urgen Vollmer}\\
%         \Address{Karlsruhe}\\
%         \Email{Juergen.Vollmer@acm.org}\\
%         \and
%         \Author{Mickey Mouse}\\
%         \Address{Enthausen University}\\
%         \Email{Mickey.Mouse@entenhausen.org}
%        }
% \maketitle
% \begin{abstract}
%   This document demonstrates how to use the \LaTeX2e \verb|acmconf|
%   ....
% \end{abstract}
%
% \begin{keywords}
% \LaTeX2e, ACM proceedings
% \end{keyowrds}
% \section{Introduction}
% To understand this file read the \emph{source} and not the typeset
% ....
% \end{document}
% \end{verbatim}
%
% \section{Copyright and License}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% \begin{tabular}{ll}
% Copyright (\copyright) 1999, & Dr.~J\"urgen Vollmer, Karlsruhe, Germany\\
%                              & \texttt{Juergen.Vollmer@acm.org}       \\
% \end{tabular}
%
% This program can be redistributed and/or modified under the terms
% of the \LaTeX Project Public License Distributed from CTAN
% archives in directory 'macros/latex/base/lppl.txt'; either
% version 1 of the License, or any later version.
%
% \medskip\noindent
% If you find this software useful, please send me a postcard.
%
% \bigskip
% The 'flushend'-package is  Copyright (\copyright) 1997,
% Sigitas Tolu\v sis, VTeX Ltd., Akademijos 4,Vilnius, Lithuania.
% \texttt{sigitas@vtex.lt}.
%
%
% \StopEventually{}
%
% \section{The Documentation Driver File}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% The next bit of code contains the documentation driver file for
% \TeX{}, i.e., the file that will produce the documentation you are
% currently reading. It will be extracted from this file by the
% \texttt{docstrip} program.
%    \begin{macrocode}
%<*driver>
\documentclass[a4paper]{article} \usepackage{doc}
\OnlyDescription
\RecordChanges
\EnableCrossrefs
\CodelineIndex
\begin{document}
\DocInput{acmconf.dtx}
\PrintChanges
\setcounter{IndexColumns}{2}
\PrintIndex
\end{document}
%</driver>
%    \end{macrocode}
%
% \section{The Implementation}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% The information xxx given by the user is stored in the macro \@AcmConfxxx.
%
% What do we need, and who we are:
%    \begin{macrocode}
%<*class>
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{acmconf}[2000/05/18 v1.3 ACM Conference Papers]
%    \end{macrocode}
%
% Declare some flags to store which options have been given. Their value
% is by default "false".
%    \begin{macrocode}
\newif\if@AcmConfPrepare@
\newif\if@AcmConfSubmit@
\newif\if@AcmConfAccept@
\newif\if@AcmConfPublish@
\newif\if@AcmConfPrint@
\newif\if@AcmConfBox@
%    \end{macrocode}
%
% Declare the options. We set the flags so, that only one flag is true, and
% all others are false.
%    \begin{macrocode}
\DeclareOption{prepare}{
  \@AcmConfPrepare@true
  \@AcmConfSubmit@false
  \@AcmConfAccept@false
  \@AcmConfPublish@false
  \@AcmConfPrint@false
}
\DeclareOption{submit}{
  \@AcmConfPrepare@false
  \@AcmConfSubmit@true
  \@AcmConfAccept@false
  \@AcmConfPublish@false
  \@AcmConfPrint@false
}
\DeclareOption{accept}{
  \@AcmConfPrepare@false
  \@AcmConfSubmit@false
  \@AcmConfAccept@true
  \@AcmConfPublish@false
  \@AcmConfPrint@false
}
\DeclareOption{publish}{
  \@AcmConfPrepare@false
  \@AcmConfSubmit@false
  \@AcmConfAccept@false
  \@AcmConfPublish@true
  \@AcmConfPrint@false
}
\DeclareOption{print}{
  \@AcmConfPrepare@false
  \@AcmConfSubmit@false
  \@AcmConfAccept@false
  \@AcmConfPublish@false
  \@AcmConfPrint@true
}
\DeclareOption{box}{
  \@AcmConfBox@true
}
\DeclareOption{nobox}{
  \@AcmConfBox@false
}
%    \end{macrocode}
%
% The point size and the 'landscape' options are forbidden:
%    \begin{macrocode}
\DeclareOption{10pt}{
  \ClassWarningNoLine{acmconf}{%
    The `10pt' option is not allowed in the `acmconf' class}
  \OptionNotUsed
}
\DeclareOption{11pt}{
  \ClassWarningNoLine{acmconf}{%
    The `11pt' option is not allowed in the `acmconf' class}
  \OptionNotUsed
}
\DeclareOption{12pt}{
  \ClassWarningNoLine{acmconf}{%
    The `12pt' option is not allowed in the `acmconf' class}
  \OptionNotUsed
}
\DeclareOption{landscape}{
  \ClassWarningNoLine{acmconf}{%
    The `landscape' option is not allowed in the `acmconf' class}
  \OptionNotUsed
}
%    \end{macrocode}
%
% Pass all other options to our base class, i.e.~'article'.
%    \begin{macrocode}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
%    \end{macrocode}
%
% Use these default options:
%    \begin{macrocode}
\ExecuteOptions{prepare,box}
%    \end{macrocode}
%
% Process the user options.
%    \begin{macrocode}
\ProcessOptions\relax
%    \end{macrocode}
%
% Load our base class and tell it, we want the twocolumn layout, with balanced
% column on the last page.
%    \begin{macrocode}
\LoadClass[twocolumn]{article}
\RequirePackage{flushend}
%    \end{macrocode}
%
% \begin{macro}{\IfPrepare}
% \begin{macro}{\IfSubmit}
% \begin{macro}{\IfAccept}
% \begin{macro}{\IfPublish}
% \begin{macro}{\IfIfPrint}
% Define the conditional text macros.
%    \begin{macrocode}
\newcommand{\IfPrepare}[2]{\if@AcmConfPrepare@#1\else#2\fi}
\newcommand{\IfSubmit}[2]{\if@AcmConfSubmit@#1\else#2\fi}
\newcommand{\IfAccept}[2]{\if@AcmConfAccept@#1\else#2\fi}
\newcommand{\IfPublish}[2]{\if@AcmConfPublish@#1\else#2\fi}
\newcommand{\IfPrint}[2]{\if@AcmConfPrint@#1\else#2\fi}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\ConferenceName}
% \begin{macro}{\TheConferenceName}
% \begin{macro}{\ConferenceShortName}
% \begin{macro}{\TheConferenceShortName}
% \begin{macro}{\PublishedPageFrom}
% \begin{macro}{\PublishedPageTo}
% Define the macros to store the information about the paper.
%    \begin{macrocode}
\def\@AcmConfConferenceName{}
\def\@AcmConfConferenceShortName{}
\def\@AcmConfPublishedPageFrom{}
\def\@AcmConfPublishedPageTo{}
\newcommand{\ConferenceName}[1]{
  \def\@AcmConfConferenceName{#1}
}
\newcommand{\TheConferenceName}{%
  \@AcmConfConferenceName
}
\newcommand{\ConferenceShortName}[1]{
  \def\@AcmConfConferenceShortName{#1}
}
\newcommand{\TheConferenceShortName}{
  \@AcmConfConferenceShortName
}
\newcommand{\PublishedPageFrom}[1]{
  \def\@AcmConfPublishedPageFrom{#1}
}
\newcommand{\PublishedPageTo}[1]{
  \def\@AcmConfPublishedPageTo{#1}
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% Define the default texts to be printed on top of the first page.
%    \begin{macrocode}
\def\@AcmConfPrepareText{
  Intended for submission to the \emph{\@AcmConfConferenceName}
}
\def\@AcmConfSubmitText{
  Submitted to the \emph{\@AcmConfConferenceName}
}
\def\@AcmConfAcceptText{
  Accepted for the \emph{\@AcmConfConferenceName}
}
\def\@AcmConfPrintText{
  Published in the Proceedings of the \emph{\@AcmConfConferenceName},
  pages \@AcmConfPublishedPageFrom--\@AcmConfPublishedPageTo
}
%    \end{macrocode}
%
% There is no default text for the copyright.
%    \begin{macrocode}
\def\@AcmConfCopyrightText{}
%    \end{macrocode}
%
% \begin{macro}{\PrepareText}
% \begin{macro}{\SubmitText}
% \begin{macro}{\AcceptText}
% \begin{macro}{\PrintText}
% \begin{macro}{\CopyrightText}
% The user may redefine these defaults by using:
%    \begin{macrocode}
\newcommand{\PrepareText}[1]{\def\@AcmConfPrepareText{#1}}
\newcommand{\SubmitText}[1]{\def\@AcmConfSubmitText{#1}}
\newcommand{\AcceptText}[1]{\def\@AcmConfAcceptText{#1}}
\newcommand{\PrintText}[1]{\def\@AcmConfPrintText{#1}}
\newcommand{\CopyrightText}[1]{\def\@AcmConfCopyrightText{#1}}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\@AcmConfCopyrightSpace}
% The copyright text will be printed below the first column on first page.
% If the copyright should not be printed, the space must be allocated too,
% but should be empty. The text is placed into a new defined float.
%    \begin{macrocode}
\newcommand{\AcmConfBox}[1]{%
 \if@AcmConfBox@
   \framebox[\columnwidth]{#1}
 \else
   \parbox{\columnwidth}{#1}
 \fi
}
\newcommand{\@AcmConfCopyrightSpace}{
  \def\ftype@AcmConfCopyrightBox{8}
  \@float{AcmConfCopyrightBox}[b]
  \AcmConfBox{
    \parbox[t][1.5in][t]{\columnwidth}{%
      \IfPrepare{\ifx\@AcmConfCopyrightText\empty
                     \copyright-Notice
                 \else
                     \@AcmConfCopyrightText
                 \fi}{}
      \IfSubmit{\ifx\@AcmConfCopyrightText\empty
                    \copyright-Notice
                 \else
                    \@AcmConfCopyrightText
                 \fi}{}
      \IfAccept{\@AcmConfCopyrightText}{}
      \IfPublish{\@AcmConfCopyrightText}{}
      \IfPrint{\@AcmConfCopyrightText}{}
    }
  }
  \end@float
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\date}
% \begin{macro}{\@AcmConfDate}
% \begin{macro}{\@AcmConfDateCmd}
% Since we want to print the date given by the user in the foot line of a
% submitted paper, we have to store the argument from the '\date' command given
% by the user. Therefore we redefine '\date'. The redefinition stores the
% argument as a side effect, and calls the original '\date'. If the user does
% not call '\date', we use '\today'. The date is stored in '\@AcmConfDate'.
%    \begin{macrocode}
\def\@AcmConfDate{\today}
\let\@AcmConfDateCmd\date
\renewcommand{\date}[1]{
    \@AcmConfDateCmd{#1}
    \def\@AcmConfDate{#1}
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\@AcmConfFirstAuthor}
% Store the first author given with '\Author'.
%    \begin{macrocode}
\def\@AcmConfFirstAuthor{}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\maketitle}
% \begin{macro}{\@AcmConfMaketitle}
% '\maketitle' is redefined, so that additionally the copyright text (contained
% in the '\@AcmConfCopyrightSpace' float box) is printed below the first
% column, as well as the ``status''-text above the title.
% '\@AcmConfMaketitle' stores the original '\maketitle'.
%    \begin{macrocode}
\let\@AcmConfMaketitle\maketitle
\renewcommand{\maketitle}{
  \@AcmConfMaketitle
  \@AcmConfCopyrightSpace
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\@maketitle}
% Definition of the specific layout of ACM\'{}s conference title.  The
% \meta{PrepareText}, \meta{SubmitText}, or \meta{PrintText} is printed
% over the title, if required. '\@maketitle' is called by '\maketitle' (via our
% '\@AcmConfMaketitle'), as defined in article.
%    \begin{macrocode}
\renewcommand{\@maketitle}{
%    \end{macrocode}
%
% \begin{macro}{\Author}
% Define font etc.\ how the author, etc.\ should be printed.
% Store the first author for later usage.
%    \begin{macrocode}
  \newcommand{\Author}[1]{%
    \LARGE\sffamily ##1%
    \ifx\@AcmConfFirstAuthor\empty
        \gdef\@AcmConfFirstAuthor{##1}
    \fi
    }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\Address}
% \begin{macro}{\Phone}
% \begin{macro}{\Email}
%    \begin{macrocode}
  \newcommand{\Address}[1]{\large\sffamily ##1}
  \newcommand{\Phone}[1]{\large\sffamily   ##1}
  \newcommand{\Email}[1]{\LARGE\sffamily   ##1}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\and}
% Add '@{}' in the tabular column definition, so that no space is around
% the columns in the table used to typeset the author.
%    \begin{macrocode}
  \def\and{
      \end{tabular}
      \hskip 1em \@plus.17fil
      \begin{tabular}[t]{@{}c@{}}
  }
%    \end{macrocode}
% \end{macro}
%
% The following is stolen form 'article.cls':
%    \begin{macrocode}
  \newpage
  \null
%    \end{macrocode}
% Show the various texts above the title.
%    \begin{macrocode}
  \IfPublish{}{
    \hfill
    \parbox[t][0mm][t]{0.9\textwidth}{
      \vspace*{-10mm}
      \IfPrepare{\@AcmConfPrepareText}{}
      \IfSubmit{\@AcmConfSubmitText}{}
      \IfAccept{\@AcmConfAcceptText}{}
      \IfPrint{\@AcmConfPrintText}{}
      \vspace{1mm}\hrule
      }
    \hfill
    \vspace*{-5mm}
  }
%    \end{macrocode}
% Create the title.
%    \begin{macrocode}
  \parbox[t][14pc][t]{\textwidth}{
    \vskip 2em                   % Vertical space above title.
    \begin{center}
      {\sffamily\bfseries\Huge \@title \par}
      \vskip 1.5em               % Vertical space after title.
      {\lineskip .5em            % tabular environment
       \noindent
       \begin{tabular}[t]{@{}c@{}}\@author
       \end{tabular}\par
      }
      \vskip 1.5em                % Vertical space after author.
    \end{center}
    \vfill
  }
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\tableofcontents}
% \begin{macro}{\listoffigures}
% \begin{macro}{\listoftables}
% \begin{macro}{\pagestyle}
% These command are allowed in acmconf only for prepared papers.
%    \begin{macrocode}
\IfPrepare{}{
  \renewcommand{\tableofcontents}{
     \ClassError{acmconf}{%
      \protect\tableofcontents\space is not
      allowed in the `acmconf' class except with option `prepare'}{}
  }
  \renewcommand{\listoffigures}{
     \ClassError{acmconf}{%
      \protect\listoffigures\space is not
      allowed in the `acmconf' class except with option `prepare'}{}
  }
  \renewcommand{\listoftables}{
     \ClassError{acmconf}{%
     \protect\listoftables\space is not
     allowed in the `acmconf' class except with option `prepare'}{}
  }
  \renewcommand{\pagestyle}[1]{
     \ClassError{acmconf}{%
      \protect\pagestyle\space is not
      allowed in the `acmconf' class except with option `prepare'}{}
  }
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% Set some sizes and length.
% 'classes.dtx' states: ``All margin dimensions are measured from a point one
% inch from the top and lefthand side of the page.''. Hence we define:
%    \begin{macrocode}
\setlength{\voffset}{-1in}
\setlength{\hoffset}{-1in}
%    \end{macrocode}
%
%    \begin{macrocode}
\setlength{\textwidth}{7in}
\setlength{\textheight}{9.25in}
\setlength{\topmargin}{1in}
\setlength{\topskip}{9pt}
\setlength{\oddsidemargin}{0.75in}
\setlength{\evensidemargin}{0.75in}
\setlength{\footskip}{.35in}
\setlength{\columnsep}{.83cm}
\setlength{\columnseprule}{0pt}
%    \end{macrocode}
%
%    \begin{macrocode}
\setlength{\headheight}{9pt}
\setlength{\headsep}{20pt}
%    \end{macrocode}
%
% No margins.
%    \begin{macrocode}
\setlength{\marginparwidth}{0in}
\setlength{\marginparsep}{0in}
%    \end{macrocode}

% Font sizes, based on: '9pt.sty' 17-Apr-90 Patrick van der Smagt.\\
% We use as baseline skip the font size multipiled with 1.2.
%    \begin{macrocode}
\def\normalsize{%
  \@setfontsize\normalsize{9}{10.8}%
  \abovedisplayskip 8pt plus2pt minus4pt%
  \belowdisplayskip\abovedisplayskip%
  \abovedisplayshortskip \z@ plus3pt%
  \belowdisplayshortskip 5pt plus3pt minus3pt%
  \let\@listi\@listI%
}
\def\small{%
  \@setfontsize\small{8}{9.6}%
  \abovedisplayskip 7.5pt plus 3pt minus 4pt%
  \belowdisplayskip\abovedisplayskip%
  \abovedisplayshortskip \z@ plus2pt%
  \belowdisplayshortskip 4pt plus2pt minus 2pt%
  \def\@listi{%
    \leftmargin\leftmargini%
    \topsep 3pt plus 2pt minus 2pt%
    \parsep 2pt plus 1pt minus 1pt%
    \itemsep \parsep%
    }%
}
\def\footnotesize{\@setfontsize\normalsize{9}{10.8}} % \normalsize
\def\scriptsize{\@setfontsize\scriptsize{6}{7.2}}
\def\tiny{\@setfontsize\tiny{5}{6}}
\def\large{\@setfontsize\large{10}{12}}
\def\Large{\@setfontsize\Large{11}{13.2}}
\def\LARGE{\@setfontsize\LARGE{12}{14.4}}
\def\huge{\@setfontsize\huge{14}{16.8}}
\def\Huge{\@setfontsize\Huge{20.4}{24.48}}
%    \end{macrocode}

% \begin{macro}{keywords}
% The 'keywords' environment ist just another 'section*'
%    \begin{macrocode}
\newenvironment{keywords}{\section*{KEYWORDS}}{}
%    \end{macrocode}
% \end{macro}

% \begin{macro}{secnumdepth}
% (Re)define the layout of the sectioning commands. We want numbering for
% all '\section' copmmands, i.e.\ up to level 5.
%    \begin{macrocode}
\setcounter{secnumdepth}{5}
\setcounter{tocdepth}{5}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\abstractname}
% \begin{macro}{\refname}
% The section title should be in upper case. Using '\MakeUppercase'
% results in some error, when a '\pagesyle{headings}' is given.
% It seems that '\MakeUppercase' can not be used twice. Hence we use
% '\uppercase'. Due to this we have to define the '\abstractname' and the
% '\refmane' in uppercase explicitly.
%    \begin{macrocode}
\renewcommand{\abstractname}{ABSTRACT}
\renewcommand{\refname}{REFERENCES}
%    \end{macrocode}
% \end{macro}
% \end{macro}

% \begin{macro}{\section}
% \begin{macro}{\subsection}
% \begin{macro}{\subsubsection}
% \begin{macro}{\subsubsubsection}
% \begin{macro}{\subsubsubsubsection}
% \begin{macro}{\paragraph}
% \begin{macro}{\subparagraph}
% Define the layout of the section headers, and define two more sectioning
% commands.
%    \begin{macrocode}
\renewcommand{\section}{
  \@startsection{section}{1}{\z@}%
  {-3.5ex \@plus -1ex \@minus -.2ex}%
  {2.3ex \@plus.2ex}%
  {\normalfont\LARGE\bfseries\uppercase}%
}
\renewcommand{\subsection}{
  \@startsection{subsection}{2}{\z@}%
  {-3.25ex\@plus -1ex \@minus -.2ex}%
  {1.5ex \@plus .2ex}%
  {\normalfont\LARGE\bfseries}%
}
\renewcommand{\subsubsection}{
  \@startsection{subsubsection}{3}{\z@}%
  {-3.25ex\@plus -1ex \@minus -.2ex}%
  {1.5ex \@plus .2ex}%
  {\normalfont\Large\itshape}%
}
\newcommand{\subsubsubsection}{
  \@startsection{subsubsubsection}{4}{\z@}%
  {-3.25ex\@plus -1ex \@minus -.2ex}%
  {1.5ex \@plus .2ex}%
  {\normalfont\Large\itshape}%
}
\newcommand{\subsubsubsubsection}{
  \@startsection{subsubsubsubsection}{5}{\z@}%
  {-3.25ex\@plus -1ex \@minus -.2ex}%
  {1.5ex \@plus .2ex}%
  {\normalfont\Large\itshape}%
}
\renewcommand{\paragraph}{
  \@startsection{paragraph}{6}{\z@}%
  {3.25ex \@plus1ex \@minus.2ex}%
  {-1em}%
  {\normalfont\normalsize\bfseries}%
}
\renewcommand{\subparagraph}{
  \@startsection{subparagraph}{7}{%
  \parindent}%
  {3.25ex \@plus1ex \@minus .2ex}%
  {-1em}%
  {\normalfont\normalsize\sffamily\bfseries}%
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% Things needed for page headings:
%    \begin{macrocode}
\newcommand{\subsubsubsectionmark}[1]{}
\newcommand{\subsubsubsubsectionmark}[1]{}
%    \end{macrocode}
%
% The required counters:
%    \begin{macrocode}
\newcounter{subsubsubsection}[subsubsection]
\newcounter{subsubsubsubsection}[subsubsubsection]
\renewcommand{\thesubsubsubsection}{%
  \thesubsubsection .\@arabic\c@subsubsubsection%
}
\renewcommand{\thesubsubsubsubsection}{%
  \thesubsubsubsection .\@arabic\c@subsubsubsubsection%
}
%    \end{macrocode}
%
% Stuff needed by the table of contents, c.f.\ 'classes.dtx'.
%    \begin{macrocode}
\newcommand{\l@subsubsubsection}{\@dottedtocline{4}{3.8em}{3.8em}}
\newcommand{\l@subsubsubsubsection}{\@dottedtocline{5}{3.8em}{4.2em}}
\renewcommand{\l@paragraph}{\@dottedtocline{6}{7.0em}{4.1em}}
\renewcommand{\l@subparagraph}{\@dottedtocline{7}{10em}{5em}}
%    \end{macrocode}
%
% Give the user a hint, in which state he is typesetting his text.
%    \begin{macrocode}
\IfPrepare{\typeout{**** Paper in preparation ****}}{}
\IfSubmit{\typeout{**** Sumbitted paper ****}}{}
\IfAccept{\typeout{**** Accepted paper ****}}{}
\IfPublish{\typeout{**** Published in proceedings ****}}{}
\IfPrint{\typeout{****  Published paper printed outside
                        proceedings ****}}{}
%    \end{macrocode}
%
% Check that the user has given all required information, depending on the
% options he gave.
%    \begin{macrocode}
\AtBeginDocument{
  \normalsize
  \ifx\@AcmConfConferenceShortName\empty
    \ClassError{acmconf}{%
      You have not specified a conference short name.
      \MessageBreak
      Use \protect\ConferenceShortName\space in the preamble}{}
  \fi
  \ifx\@AcmConfConferenceName\empty
    \ClassError{acmconf}{%
      You have not specified a conference name.
      \MessageBreak
      Use \protect\ConferenceName\space in the preamble}{}
  \fi
  \IfSubmit{
    \def\@oddfoot{\parbox{0.3\textwidth}{\@AcmConfFirstAuthor,
                                         \@AcmConfDate}
                  \hfill
                  \thepage
                  \hfill
                  \parbox{0.3\textwidth}{\hfill
                                         \@AcmConfConferenceShortName}
    }
  }{}
  \IfAccept{
    \def\@oddfoot{\hfill\thepage\hfill}
    \ifx\@AcmConfCopyrightText\empty
      \ClassError{acmconf}{%
        You have not specified the copyright notice
        \MessageBreak
        Use \protect\CopyrightText\space in the preamble}{}
    \fi
  }{}
  \IfPublish{
    \let\ps@plain\ps@empty
    \let\ps@headings\ps@empty
    \let\ps@myheadings\ps@empty
    \def\@oddfoot{}
    \ifx\@AcmConfCopyrightText\empty
      \ClassError{acmconf}{%
        You have not specified the copyright notice
        \MessageBreak
        Use \protect\CopyrightText\space in the preamble}{}
    \fi
  }{}
  \IfPrint{
    \def\@oddfoot{\hfill\thepage\hfill}
    \ifx\@AcmConfCopyrightText\empty
      \ClassError{acmconf}{%
        You have not specified the copyright notice
        \MessageBreak
        Use \protect\CopyrightText\space in the preamble}{}
    \fi
    \ifx\@AcmConfPublishedPageFrom\empty
      \ClassError{acmconf}{%
        You have not specified the start page of the publication
        \MessageBreak
        Use \protect\PublishedPageFrom\space in the preamble}{}
    \fi
    \ifx\@AcmConfPublishedPageTo\empty
      \ClassError{acmconf}{%
        You have not specified the end page of the publication
        \MessageBreak
        Use \protect\PublishedPageTo\space in the preamble}{}
    \fi
  }{}
}
%    \end{macrocode}
%
% Check that the '\Author' command has been used. Done by testing
% '\@AcmConfFirstAuthor'.
%    \begin{macrocode}
\AtEndDocument{
  \IfSubmit{
     \ifx\@AcmConfFirstAuthor\empty
     \ClassError{acmconf}{%
       You have not specified the name of the (first) author.
       \MessageBreak
       Use \protect\Author to typeset the author(s) of the paper.
       }{}
     \fi
  }{}
}
%</class>
%    \end{macrocode}
%
% \section{Test files}
% %%%%%%%%%%%%%%%%%%%%
%    \begin{macrocode}
%<*prepare>

\documentclass[prepare]{acmconf}
\pagestyle{headings}
%</prepare>
%    \end{macrocode}
%
%    \begin{macrocode}
%<*submit>

\documentclass[nobox,submit]{acmconf}
\CopyrightText{\copyright 1999, J\"urgen Vollmer, et.al.,
	       used with the \texttt{nobox} option.
}
%</submit>
%    \end{macrocode}
%
%    \begin{macrocode}
%<*accept>

\documentclass[box,accept]{acmconf}
\CopyrightText{\copyright ACM 2000, ....., used with the \texttt{box} option.}
%</accept>
%    \end{macrocode}
%
%    \begin{macrocode}
%<*publish>

\documentclass[publish]{acmconf}
\CopyrightText{\copyright ACM 2000, ....., default: with box}
%</publish>
%    \end{macrocode}
%
%    \begin{macrocode}
%<*print>

\documentclass[print]{acmconf}
\CopyrightText{\copyright ACM 2000, .....}
\PublishedPageFrom{123}
\PublishedPageTo{456}
%</print>
%    \end{macrocode}
%
%    \begin{macrocode}
%<*error>

\documentclass[print]{acmconf}

%% LaTeXing this file should produce some errors.

\pagestyle{headings}

%</error>
%    \end{macrocode}
%
%    \begin{macrocode}
%<*body>
\IfFileExists{graphicx.sty}{\usepackage{graphicx}}{}
%</body>
%    \end{macrocode}
%
%    \begin{macrocode}
%<*head>
\ConferenceName{1. Conference on Designing a \LaTeX2e Class for
  Typesetting ACM Papers, Hawaii 2000}
\ConferenceShortName{CONF-2000}
%</head>
%    \end{macrocode}
%
%    \begin{macrocode}
%<*body>

\def\XX{More text should follow, but keep in mind that a limit of 6
  pages has been set, including figures and references.  More text
  should follow, but keep in mind that a limit of 6 pages has been
  set, including figures and references.  More text should follow, but
  keep in mind that a limit of 6 pages has been set, including figures
  and references.  More text should follow, but keep in mind that a
  limit of 6 pages has been set, including figures and references.
  \par
}

\begin{document}
\date{31. December 1999}
\title{A New Intuitionistic Proof of Usability\\
       of the Recommended Style File for the ACM Conference Papers}
\author{\Author{J\"urgen Vollmer\thanks{Happy \LaTeX{}ing}}\\
         \Address{Karlsruhe}\\
         \Email{Juergen.Vollmer@acm.org}\\
         \and
         \Author{Mickey Mouse}\\
         \Address{Enthausen University}\\
         \Email{Mickey.Mouse@entenhausen.org}
       }
\maketitle

\begin{abstract}
  This document demonstrates how to use the \LaTeX2e \verb|acmconf|
  class by exhibiting itself as an example.  You are expected to be
  familiar with~\cite{Lam94}.  The best way to use this file is to use
  it as a template, i.e., replace the prose in it by your
  own\footnote{And may use footnotes.}.
\end{abstract}

\begin{keywords}
\LaTeX2e-class, ACM proceedings
\end{keywords}

\section{Introduction}
To understand this file read the \emph{source} and not the typeset
version.  If you are reading this in the typeset version you might as
well stop --- it is not supposed to make sense.

\section{The Story Begins\ldots}
A real article is supposed to have some deep results and good
explanations.  That, however, is your job and not mine so you should
replace this text with something more appropriate\footnote{Another a
  footnote}..

\section{Some often used \LaTeX\ commands}

\subsection{\texttt{emph}, etc.}
Text may be set as \emph{emph}.\\
Text may be set as \texttt{texttt}.\\
Text may be set as \underline{unterline}.\\
Text may be set as \textbf{textbf}.\\
Text may be set as \textrm{textrm}.\\
Text may be set as {\tiny tiny}.\\
Text may be set as {\scriptsize scriptsize}.\\
Text may be set as {\footnotesize footnotesize}.\\
Text may be set as {\normalfont normalsize}.\\
Text may be set as {\large large}.\\
Text may be set as {\Large Large}.\\
Text may be set as {\LARGE LARGE}.\\
Text may be set as {\huge huge}.\\
Text may be set as {\Huge Huge}.\\
Text may have$^{\textrm{super}}$ and$_{\textrm{sub}}$scripts.

\subsection{\texttt{itemize}}
\begin{itemize}
\item More text should follow, but keep in mind that a limit of 6
     pages has been set, including figures and references.  More text
     should follow, but keep in mind that a limit of 6 pages has been
     set, including figures and references.
\item More text should follow, but keep in mind that a limit of 6
     pages has been set, including figures and references.  More text
     should follow, but keep in mind that a limit of 6 pages has been
     set, including figures and references.
\end{itemize}

\subsection{\texttt{enumerate}}
\begin{enumerate}
\item More text should follow, but keep in mind that a limit of 6
     pages has been set, including figures and references.  More text
     should follow, but keep in mind that a limit of 6 pages has been
     set, including figures and references.
\item More text should follow, but keep in mind that a limit of 6
     pages has been set, including figures and references.  More text
     should follow, but keep in mind that a limit of 6 pages has been
     set, including figures and references.
\end{enumerate}

\subsection{\texttt{description}}
\begin{description}
\item[Foo] More text should follow, but keep in mind that a limit of 6
     pages has been set, including figures and references.  More text
     should follow, but keep in mind that a limit of 6 pages has been
     set, including figures and references.
\item[Bar] More text should follow, but keep in mind that a limit of 6
     pages has been set, including figures and references.  More text
     should follow, but keep in mind that a limit of 6 pages has been
     set, including figures and references.
\end{description}

\subsection{\texttt{center} and \texttt{tabular}}
\begin{center}
\begin{tabular}{|l|c|r|}\hline
left     & center   & right    \\\hline\hline
AAAAAAAA & BBBBBBBB & CCCCCCCC \\
AAAAAAAA & BBBBBBBB & CCCCCCCC \\\cline{3-3}
AAAAAAAA & BBBBBBBB & CCCCCCCC \\\cline{2-2}
AAAAAAAA & BBBBBBBB & CCCCCCCC \\\cline{1-2}
AAAAAAAA & BBBBBBBB & CCCCCCCC \\\hline
AAAAAAAA & BBBBBBBB & CCCCCCCC \\\hline
1          & \multicolumn{2}{|c|}{2} \\\hline
\end{tabular}
\end{center}

\subsection{\texttt{figure} and Postscript pictures}
Have a look to to figure~\ref{fig-1} and~\ref{fig-2}.

\begin{figure}
\hrule
Nice Postscript, isn't it?
\begin{center}
\IfFileExists{graphicx.sty}{
  \includegraphics{body.eps}
}{
  Sorry, package \texttt{graphicx} not present.
}
\end{center}

Same, a little bit smaller:
\begin{center}
\IfFileExists{graphicx.sty}{
  \includegraphics[scale=.5]{body.eps}
  }{
  Sorry, package \texttt{graphicx} not present.
}
\end{center}
\caption{\label{fig-1}This is a nice floating figure}
\hrule
\end{figure}

\begin{figure*}
\hrule
This figure uses both columns, using \texttt{figure*}
\begin{center}
\IfFileExists{graphicx.sty}{
  \includegraphics[scale=.5]{body.eps}
  \hspace{1cm}
  \includegraphics[scale=.5]{body.eps}
}{
  Sorry, package \texttt{graphicx} not present.
}
\end{center}
\caption{\label{fig-2}This is a nice floating figure}
\hrule
\end{figure*}

\section{The Story Continues 1}

This is a \verb+\section+.

\XX\XX

\subsection{The Story Continues 2}

This is a \verb+\subsection+.

\XX\XX

\subsubsection{The Story Continues 3}

This is a \verb+\subsubsection+.

\XX\XX

\subsubsubsection{The Story Continues 4}

This is a \verb+\subsubsubsection+.

\XX\XX

\subsubsubsubsection{The Story Continues 5}

This is a \verb+\subsubsubsubsection+.

\XX\XX

\paragraph{The Story Continues 6}

This is a \verb+\paragraph+.
\XX\XX

\subparagraph{The Story Continues 7}
This is a \verb+\subparagraph+.
\XX\XX\XX

\section{Conclusion}
The end, at last!  In this example there really are no results or
points to summarize but I trust your article has more food for though
and thus will need a conclusion.

\appendix
\section{Appendices}
If you have any, appendices might go here.  Note that appendices
should not be used to circumvent the word count limit.

This is "doing it by hand" --- you might be better off using BibTeX.

\begin{thebibliography}{X}
\bibitem[1]{Lam94} Leslie Lamport: {\em \LaTeX, A Document
    Preparation System,} Addison Wesley~1994.
\end{thebibliography}
\IfPrepare{
  \tableofcontents
  \listoffigures
  \listoftables
}{}
%<*error>
\tableofcontents
\listoffigures
\listoftables
%</error>
\end{document}
%
%</body>
%    \end{macrocode}
%
% \section{The "Official" Description of the Class Layout}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%    \begin{macrocode}
%<*pubform>
\documentclass[submit]{acmconf}
\usepackage{flushend}

\CopyrightText{LEAVE BLANK THE LAST 3.81 cm
               (1.5'') OF THE LEFT COLUMN ON THE FIRST PAGE
               FOR THE COPYRIGHT NOTICE }
\ConferenceName{1. Conference on Designing a \LaTeX2e Class for
                Typesetting ACM Papers, Hawaii 2000}
\ConferenceShortName{CONF-2000}

\begin{document}
\date{31. December 1999}
\title{ACM SIG Proceedings Format}
\author{\Author{1st Author}                               \\
        \Address{First author's affiliation}              \\
        \Address{1st line of address}                     \\
        \Address{2st line of address}                     \\
        \Address{Telephone number, incl.\ country code}   \\
        \Email{1st author's email address}                \\
        \and
        \Author{2nd Author}                               \\
        \Address{First author's affiliation}              \\
        \Address{1st line of address}                     \\
        \Address{2st line of address}                     \\
        \Address{Telephone number, incl.\ country code}   \\
        \Email{2nd author's email address}                \\
        \and
        \Author{3rd Author}                               \\
        \Address{First author's affiliation}              \\
        \Address{1st line of address}                     \\
        \Address{2st line of address}                     \\
        \Address{Telephone number, incl.\ country code}   \\
        \Email{3rd author's email address}                \\
       }
\maketitle

\begin{abstract}
In this paper, we describe the formatting guidelines for ACM SIG
Proceedings.
\end{abstract}

\begin{keywords}
Guides, instructions, authors kit, conference publications.
\end{keywords}

\section{Introduction}

The proceedings are the records of the conference. ACM hopes to
give these conference by-products a single, high-quality appearance.
To do this, we ask that authors follow some simple guidelines. In
essence, we ask you to make your paper look exactly like this
document. The easiest way to do this is simply to down-load a
template from \cite{template.1999}, and replace the content with
your own material.

\section{Page Size}

All material on each page should fit within a rectangle of
18 x 23.5 cm (6" x 9.25"), centered on the page, beginning
2.54 cm (1") from the top of the page and ending with
2.54 cm (1") from the bottom.  The right and left margins
should be 1.9 cm (.75'').  The text should be in two
8.45 cm (3.33") columns with a .83 cm (.33") gutter.

\section{Typeset Text}

Prepare your submissions on a typesetter or word processor.

\subsection{Normal or Body Text}

Please use a 9-point Times Roman font, or other Roman font with
serifs, as close as possible in appearance to Times Roman in
which these guidelines have been set. The goal is to have a
9-point text, as you see here. Please use sans-serif or
non-proportional fonts only for special purposes, such as
distinguishing source code text. The Press 9-point font available
to users of Script is a good substitute for Times Roman. If
Times Roman is not available, try the font named Computer
Modern Roman. On a Macintosh, use the font named Times.
Right margins should be justified, not ragged.

\subsection{Title and Authors}

The title (Helvetica 18-point bold), authors' names (Helvetica
12-point) and affiliations (Helvetica 10-point) run across the full
width of the page - one column wide. We also recommend phone number
(Helvetica 10-point) and e-mail address (Helvetica 12-point). See the
top of this page for three addresses. If only one address is needed,
center all address text. For two addresses, use two centered tabs, and
so on. For more than three authors, you may have to
improvise\footnote{If necessary, you may place some address
information in a foortone, or in a named section at the end of your
paper.}

\subsection{First Page Copyright Notice}

Leave 3.81 cm (1.5") of blank space at the bottom of the left
column of the first page for the copyright notice.

\subsection{Subsequent Pages}

For pages other than the first page, start at the top of the page, and
continue in double-column format.  The two columns on the last page
should be of equal length.

\subsection{References and Citations}

Footnotes should be Times New Roman 9-point.

Use the standard Communications of the ACM format for references -
that is, a numbered list at the end of the article, ordered
alphabetically by first author, and referenced by numbers in
brackets \cite{anderson.1992}. See the examples of citations at
the end of this document
\cite{conger.1995,mackay.1995,schwartz.1995}. Within this template
file, use the style named references for the text of your citation.

References should be published materials accessible to the public.
Internal technical reports may be cited only if they are easily
accessible (i.e. you can give the address to obtain the report within
your citation) and may be obtained by any reader. Proprietary
information may not be cited. Private communications should be
acknowledged, not referenced  (e.g., ``[Robertson, personal
communication]'').

\subsection{Page Numbering, Headers and Footers}

Do not include headers, footers or page numbers in your submission.
These will be added when the publications are assembled.

\section{Sections}

The heading of a section should be in Times New Roman 12-point bold in
all-capitals flush left.  Sections and subsequent subsections should
be numbered and flush left.

\subsection{Subsections}

The heading of subsections should be in Times New Roman 12-point bold
with only the initial letters capitalized. (Note: For subsections and
subsubsections, a word like the or a is not capitalized unless it is
the first word of the header.)

\subsubsection{Subsubsections}

The heading for subsubsections should be in Times New Roman 11-point
italic with initial letters capitalized.

\subsubsubsection{Subsubsubsection}

The heading for subsubsubsections should be in
Times New Roman 11-point italic with initial letters capitalized.

\subsubsubsubsection{Subsubsubsubsection}

The heading for subsubsubsubsections should be in
Times New Roman 11-point italic with initial letters capitalized.

\section{Figures/Captions}

Place Tables/Figures/Images in text as close to the reference as
possible.  It may extend across both columns to a maximum width of
17.78 cm (7'').

Captions should be Times New Roman 9-point bold.  They should be
numbered (e.g., ``Table 1'' or ``Figure 2'') and be centered beneath
each table, figure or image.


\section{Acknowledgments}

Our thanks to ACM SIGCHI for allowing us to modify templates they had
developed.

\medskip

\bibliographystyle{plain}
\bibliography{pubform}

Columns on Last Page Should Be Made Equal Length
\end{document}
%</pubform>
%    \end{macrocode}
%
% \section{The BiB\TeX-Bibliography of the "Official" Description of
%          the Class Layout}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%    \begin{macrocode}
%<*bib>
@TECHREPORT{template.1999,
AUTHOR          = "ACM",
TITLE           = "{ACM} {SIG} {PROCEEDINGS} template",
INSTITUTION     = "ACM",
ADDRESS         = "http://www.acm.org/sigs/
                   pubs/proceed/template.html",
YEAR            = 1999,
}

@ARTICLE{anderson.1992,
AUTHOR          = "Anderson, R.E",
TITLE           = "Social impacts of computing: Codes of
                   professional ethics",
JOURNAL         = "Social Science Computing Review",
YEAR            = 1992,
NUMBER          = 4,
VOLUME          = 10,
PAGES           = "453--469",
}

@ARTICLE{conger.1995,
AUTHOR          = "Conger, Sue          AND
                   Loch, Karen D.",
TITLE           = "Ethics and computer use",
JOURNAL         = "Communications of the {ACM}",
VOLUME          = 38,
MONTH           = dec,
YEAR            = 1995,
NUMBER          = 12,
PAGES           = "30--32",
}

@INPROCEEDINGS{mackay.1995,
AUTHOR          = "Mackay, W.E.",
TITLE           = "Ethics, lies and videotape...",
BOOKTITLE       = "Proceedings of {CHI} '95 (Denver CO)",
PUBLISHER       = "ACM Press",
MONTH           = may,
YEAR            = 1995,
PAGES           = "138--145",
}

@TECHREPORT{schwartz.1995,
AUTHOR          = "Schwartz, M.                 AND
                   {Task Force on Bias-Free Language}",
TITLE           = "Guidelines for Bias-Free Writing",
INSTITUTION     = "Indiana University",
PUBLISHER       = "Indiana University Press, Bloomington IN",
YEAR            = 1995,
}
%</bib>
%    \end{macrocode}
%
% \section{A Postscript Picture, Used in the Examples}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%    \begin{macrocode}
%<*eps>
%!PS-Adobe-2.0 EPSF-2.0
%%Title: body.eps
%%Creator: fig2dev Version 3.2 Patchlevel 1
%%CreationDate: Tue Jun  1 10:19:01 1999
%%For: Juergen.Vollmer@acm.org
%%Orientation: Portrait
%%BoundingBox: 0 0 101 91
%%Pages: 0
%%BeginSetup
%%EndSetup
%%Magnification: 1.0000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def

end
save
-172.0 122.0 translate
1 -1 scale

/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
  bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
  4 -2 roll mul srgb} bind def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
%%EndProlog

$F2psBegin
10 setmiterlimit
n -1000 2922 m -1000 -1000 l 5333 -1000 l 5333 2922 l cp clip
 0.06299 0.06299 sc
% Polyline
7.500 slw
n 2745 900 m 2745 920 l 2747 941 l 2753 964 l 2761 988 l 2772 1014 l
 2786 1041 l 2803 1070 l 2822 1101 l 2843 1133 l 2866 1167 l
 2892 1201 l 2918 1237 l 2947 1274 l 2976 1312 l 3007 1350 l
 3038 1388 l 3070 1427 l 3102 1465 l 3135 1503 l 3167 1540 l
 3199 1577 l 3231 1612 l 3262 1646 l 3293 1679 l 3323 1710 l
 3352 1739 l 3380 1766 l 3407 1791 l 3434 1813 l 3459 1834 l
 3484 1851 l 3508 1867 l 3532 1880 l 3555 1890 l 3581 1899 l
 3608 1905 l 3634 1909 l 3662 1910 l 3690 1908 l 3719 1904 l
 3748 1899 l 3779 1891 l 3810 1882 l 3842 1871 l 3874 1859 l
 3907 1846 l 3939 1831 l 3972 1816 l 4005 1801 l 4037 1784 l
 4069 1768 l 4100 1751 l 4129 1734 l 4158 1716 l 4185 1699 l
 4209 1681 l 4232 1664 l 4253 1646 l 4271 1628 l 4287 1609 l
 4299 1591 l 4309 1571 l 4316 1551 l 4320 1530 l 4321 1509 l
 4319 1487 l 4314 1463 l 4306 1438 l 4295 1411 l 4282 1383 l
 4266 1354 l 4248 1323 l 4227 1290 l 4205 1257 l 4181 1222 l
 4155 1187 l 4127 1151 l 4099 1115 l 4070 1078 l 4041 1041 l
 4011 1004 l 3982 967 l 3953 931 l 3924 896 l 3896 861 l
 3870 828 l 3844 796 l 3820 765 l 3798 736 l 3777 709 l
 3758 683 l 3741 660 l 3726 638 l 3712 618 l 3700 601 l
 3690 585 l 3683 574 l 3676 564 l 3670 555 l 3666 547 l
 3662 540 l 3659 534 l 3657 529 l 3657 525 l 3657 522 l
 3658 519 l 3660 518 l 3663 517 l 3667 516 l 3671 516 l
 3676 517 l 3681 518 l 3687 520 l 3693 521 l 3699 524 l
 3705 526 l 3711 528 l 3717 531 l 3723 534 l 3728 537 l
 3733 540 l 3737 543 l 3740 546 l 3743 549 l 3745 552 l
 3746 555 l 3746 557 l 3744 560 l 3742 563 l 3738 566 l
 3734 569 l 3727 572 l 3720 575 l 3711 578 l 3701 581 l
 3690 585 l 3673 591 l 3654 597 l 3632 603 l 3607 610 l
 3579 617 l 3549 625 l 3516 632 l 3480 640 l 3442 648 l
 3401 655 l 3359 663 l 3315 671 l 3271 679 l 3225 688 l
 3180 696 l 3134 705 l 3089 714 l 3046 723 l 3004 734 l
 2964 744 l 2926 755 l 2891 767 l 2860 780 l 2832 794 l
 2807 808 l 2786 824 l 2770 841 l 2758 859 l 2749 879 l
 cp gs col0 s gr
$F2psEnd
rs
%</eps>
%    \end{macrocode}
%
% \section{The \texttt{flushend} Package}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% To make the 'acmconf' class "selfcontained", the
% 'flushend' package is distributed with the permission of
% Sigitas Tolu\v sis (\texttt{sigitas@vtex.lt}) with this class.
%
%    \begin{macrocode}
%<*flushend>
%% flushend.sty
%% Copyright 1997 Sigitas Tolu\v sis
%% VTeX Ltd., Akademijos 4, Vilnius, Lithuania
%% e-mail sigitas@vtex.lt
%% http://www.vtex.lt/tex/download/macros/
%%
%% This program can redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN
%% archives in directory macros/latex/base/lppl.txt; either
%% version 1 of the License, or (at your option) any later version.
%%
%% PURPOSE:   Balanced columns on last page in twocolumn mode.
%%
%% SHORT DESCRIPTION:
%%
%% \flushend (loaded by default)
%% ---------
%%   Switches on column balancing at last page
%%
%% \raggedend
%% ----------
%%   Switches off column balancing at last page
%%
%% \atColsBreak={#1}
%% ------------------
%%   Adds #1 in place of original column break (without balancing)
%%   Example: \atColsBreak{\vskip-2pt}
%%
%% \showcolsendrule
%% ----------------
%%   Adds rule to the bottom of columns (just for debugging)
%%
%% P.S. To stretch right column by #1 add command \vskip-#1 just before
%%      command \end{document}.
%%      TO shrink right column by #1 add command \vskip#1 just before
%%      command \end{document}.
%%      Example: \vskip-10pt
%%               \end{document}
%%
%% \changes{1997/05/16}{first version}
%% \changes{1997/09/09}{support for compatibility with cuted.sty}
%% \changes{1997/10/01}{\vipersep changed to \stripsep for
%%                      compatibility with cuted.sty}
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{flushend}[1997/10/01]
%
\newbox\@aaa
\newbox\@ccc
\@ifundefined{@viper}{\newbox\@viper}{}
\@ifundefined{hold@viper}{\newbox\hold@viper}{}
\newtoks\atColsBreak \atColsBreak={}
\newdimen\@extra@skip \@extra@skip\z@
\newdimen\@nd@page@rule \@nd@page@rule\z@
\def\last@outputdblcol{%
  \if@firstcolumn
    \global \@firstcolumnfalse
    \global \setbox\@leftcolumn \box\@outputbox
  \else
    \global \@firstcolumntrue
    \if@lastpage
      \@tempdima\ht\@leftcolumn
      \splittopskip\topskip\splitmaxdepth\maxdepth
      \setbox\@tempboxa\vbox{%
                \unvbox\@leftcolumn\setbox0\lastbox\unskip%
                \the\atColsBreak%
                \unvbox\@outputbox\setbox0\lastbox\unskip}%
      \@tempdimb .5\ht\@tempboxa%
     \loop
     \setbox\@aaa\copy\@tempboxa%
     \setbox\@ccc\vbox to\@tempdimb{%
                \vsplit\@aaa to\@tempdimb\vss%
                \vsplit\@aaa to\@tempdimb}%
     \wlog{Extra height:\the\ht\@aaa\space when \the\@tempdimb}%
     \ifvoid\@aaa \else \advance\@tempdimb 1pt \repeat%
     \loop
     \setbox\@aaa\copy\@tempboxa%
     \setbox\@ccc\vbox to\@tempdimb{%
                \vsplit\@aaa to\@tempdimb\vss}%
     \wlog{(2)Left:\the\ht\@ccc\space
              Right:\the\ht\@aaa\space Output:\the\@tempdimb}%
     \ifdim \ht\@ccc<\ht\@aaa \@tempdimb \the\ht\@aaa \repeat%
     \wlog{- LAST -^^J
           Extra skip:\the\@extra@skip^^J
           Left:\the\ht\@ccc^^JRight:\the\ht\@aaa^^J
           Output:\the\@tempdimb}%
    \setbox\@ccc\vbox to\@tempdimb{%
                \vsplit\@tempboxa to\@tempdimb\vss}%
    \setbox\@leftcolumn\vbox to\@tempdima{%
                \vbox to\@tempdimb{\unvbox\@ccc}%
                \hrule\@height\@nd@page@rule%
                \vss}%
    \setbox\@outputbox\vbox to\@tempdima{%
                \vbox to\@tempdimb{\unvbox\@tempboxa\vfilneg%
                                   \vskip\@extra@skip}%
                \hrule\@height\@nd@page@rule%
                \vss}%
    \setbox\@outputbox \vbox {%
                         \hb@xt@\textwidth {%
                           \hb@xt@\columnwidth {%
                             \box\@leftcolumn \hss}%
                           \hfil
                           \vrule \@width\columnseprule
                           \hfil
                           \hb@xt@\columnwidth {%
                             \box\@outputbox \hss}%
                                             }%
                              }%
    \else
    \setbox\@outputbox \vbox {%
                         \hb@xt@\textwidth {%
                           \hb@xt@\columnwidth {%
                             \box\@leftcolumn \hss}%
                           \hfil
                           \vrule \@width\columnseprule
                           \hfil
                           \hb@xt@\columnwidth {%
                             \box\@outputbox \hss}%
                                             }%
                              }%
    \fi
    \ifvoid\hold@viper
    \else
      \setbox\@outputbox \vbox{\box\hold@viper\box\@outputbox}%
    \fi
    \@combinedblfloats
    \@outputpage
    \begingroup
      \@dblfloatplacement
      \@startdblcolumn
      \@whilesw\if@fcolmade \fi
        {\@outputpage
         \@startdblcolumn}%
      \ifvoid\@viper
      \else
        \global\setbox\@viper\vbox{%
                \vskip-\stripsep\unvbox\@viper}\@viperoutput
      \fi
    \endgroup
  \fi
}
\let\prev@enddocument\enddocument
\newif\if@lastpage \@lastpagefalse
\def\enddocument{%
  \global\@lastpagetrue%
  \let\@outputdblcol\last@outputdblcol%
  \prev@enddocument%
}
\def\raggedend{%
  \global\let\enddocument\prev@enddocument%
}
\def\flushend{%
  \gdef\enddocument{%
    \global\@lastpagetrue%
    \let\@outputdblcol\last@outputdblcol%
    \prev@enddocument%
    }
  }
\def\showcolsendrule{\global\@nd@page@rule=.4pt}
\endinput
%</flushend>
%    \end{macrocode}
%
% \hrule
% \medskip
% \centerline{The End}
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \Finale
\endinput
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
