% acmtr.tex
% revised 1/20/97
% $Header: acmtr.tex,v 1.5 2/14/96 11:07:57 boyland Exp $

\documentclass[hyperref]{acmtrans2e}
\usepackage[pdfmark]{hyperref}

%&t&{\tt #}&
%&v&\verb|#|&

\newcommand{\BibTeX}{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}

\firstfoot{ACM Transactions on Document Formatting,
  Vol.\ 8, No.\ 1, January 1999, Pages \pages.}

\runningfoot{ACM Transactions on Document Formatting,
  Vol.\ 8, No.\ 1, January 1999.}

\markboth{Leslie Lamport et al.}{Preparing Articles for the ACM Transactions}

\title{Preparing Articles for the ACM Transactions
with \LaTeX}
\author{LESLIE LAMPORT\\Digital Equipment Corporation\\
ANDREW W. APPEL\\Princeton University \and
JOHN TANG BOYLAND\\University of California, Berkeley}
\begin{abstract}
The \LaTeX\ {\tt acmtrans} document style formats articles in 
the style of the ACM transactions.  Users who have prepared their
document with \LaTeX\ can, with very little effort, produce
camera-ready copy for these journals.  
%Then the ACM production department
%will re-typeset from scratch anyway, introducing typographical errors.
\end{abstract}

\category{D.2.7}{Software Engineering}{Distribution and Main\-ten\-ance}%
[documentation]

\category{H.4.0}{Information Systems Applications}{General}

\category{I.7.2}{Text Processing}{Document Preparation}[languages \and
  photocomposition]

\terms{Documentation, Languages}

\keywords{Document preparation, publications, typesetting}

\begin{document}

\setcounter{page}{111}

\begin{bottomstuff}
Author's address: L. Lamport, System Research Center,
Digital Equipment Corporation, 130 Lytton Ave., Palo Alto, CA 94301.\newline
Start of a second footnote ...
\permission
\copyright\ 1999 ACM 0164-0925/99/0100-0111 \$00.75
\end{bottomstuff}
\maketitle

\section{Introduction}

This article is a description of the \LaTeX\ {\tt acmtrans} document
style for typesetting articles in the format of the ACM
transactions---{\em Transactions on Programming Languages and
Systems}, {\em Transactions on Database Systems}, etc.  It has, of
course, been typeset using this document style, so it is a
self-illustrating article.  The reader is assumed to be familiar
with \LaTeX, as described by~\citeN{lamport:latex}.

This document also describes the {\tt acmtrans} bibliography style.

\LaTeX\ is a document preparation system
implemented as a macro package in Donald Knuth's
\TeX\ typesetting system~\cite{knuth:texbook}.  It is based
upon the premise that the user should describe the logical structure of
his document and not how the document is to be formatted.  Formatting
is under the direction of a {\em document style} chosen by the user.
The user can dramatically change the way the document is formatted by
simply choosing a different document style.  The idea of separating the
logical structure from the formatting comes from Brian Reid's {\em
Scribe\/} system~\cite{reid:scribe}.  


It is impossible to provide predefined logical structures to handle all
situations that may arise in a document, so users must sometimes make
their own formatting decisions.  \LaTeX\ provides a number of features
to assist in this task and, if necessary, the user can call upon the
full power of \TeX, which is probably the most powerful typesetting
system currently available.  However, very little user formatting is
necessary for the majority of documents that appear in journals such as
the ACM transactions.  Consequently, it is quite easy to convert
an existing \LaTeX\ input file to the {\tt acmtrans} style.

\section{The Title Page}

\subsection{The Title, Author(s), and Abstract}

Following order is mandatory to generate a correct title page:

\begin{verbatim}
		      \documentstyle{acmtrans}
		      \markboth{}{}
		      \title{}
		      \author{}
		      \begin{abstract} ...  \end{abstract}
		      \category{}{}{}
		      \terms{} 
		      \keywords{}
		      \begin{document}
		      \begin{bottomstuff} ... \end{bottomstuff}
		      \maketitle
\end{verbatim}

\subsubsection{Title and Author}
The \LaTeX\ \verb|\title| and \verb|\author| declarations and the
\verb|\maketitle| command are employed as usual.  However, the user
must format the author a little differently to match the ACM standard.
The following example \cite{6:1:1} illustrates most features:
\begin{quote}
\begin{verbatim}
\author{JAMES E. ARCHER, JR.\\ Rational Machines
        \and RICHARD CONWAY and FRED B. SCHNEIDER \\ 
             Cornell University}
\end{verbatim}
\end{quote}
Note that authors' names are in uppercase letters, authors are
separated from their affiliation by a \verb|\\| command, multiple
authors with the same affiliation are separated by ``and'' (or commas
and ``and'' if there are more than two), and authors with different
affiliations are separated by an \verb|\and| command.  The following
example \cite{6:3:380} shows what to do if there are more than
two affiliations:
\begin{quote}
\begin{verbatim}
\author{E. KORACH \\ IBM Israel \\
        D. ROTEM \\ University of Waterloo
        \and N. SANTORO \\ Carleton University}
\end{verbatim}
\end{quote}
In both the title and the author, you may have to insert \verb|\\|
commands if lines need to be broken. 

\subsubsection{Abstract}
The abstract is typed as usual with the {\tt abstract} environment.
However, this environment must come before the \verb|\maketitle|
command.


\subsection{Content Indicators and Keywords}

The content indicators and keywords are entered with \LaTeX\ 
declarations.  The CR categories are indicated with \verb|\category|
declarations.  The first CR category of this article, appearing
right below the abstract, was entered with the following command:
\begin{quote}
\begin{verbatim}
\category{D.2.7}{Software Engineering}{Distribution and 
  Maintenance}[Documentation]
\end{verbatim}
\end{quote}
Note that the last argument (which contains the subject descriptors)
is optional, since some categories have none.  Multiple subject descriptors
are separated by \verb|\and| commands, as in the last category of
this article:
\begin{quote}
\begin{verbatim}
\category{I.7.2}{Text Processing}{Document Preparation}
         [Languages \and Photocomposition]
\end{verbatim}
\end{quote}
Use a separate \verb|\category| declaration for each CR category;
they will be listed in the order that the commands appear.  The
\verb|\category| commands must precede the \verb|\maketitle|
command.

The General Terms are declared with a (single) \verb|\terms|
command as in the one for this article:
\begin{quote}
\begin{verbatim}
\terms{Documentation, Languages}
\end{verbatim}
\end{quote}
The \verb|\terms| declaration must come before the \verb|\maketitle|
command.  The terms {\it must} be chosen from the following list:
\begin{quote}
Algorithms; 
Design; 
Documentation; 
Economics; 
Experimentation; 
Human factors; 
Languages; 
Legal aspects; 
Management; 
Measurement; 
Performance; 
Reliability; 
Security; 
Standardization; 
Theory; 
Verification; 
\end{quote}
The general terms are
orthogonal to the Categories, at least theoretically, and so
may be applied to any elements of the classification tree.

Think of them as `perspectives' from which any topic may
be approached. Thus you could use {\em Theory} or {\em Performance} for an
article about {\em C.2.1 Distributed Networks}. However, 
some of these general terms actually slide over into
content areas. Thus {\em Legal aspects} is a general term
applicable to any category, but also an entire node in the tree,
{\em K.5}, devoted to {\em Legal aspects of computing,} with many sub-topics.

So, though perhaps not perfect, the General Terms are most useful
in online searches when used in combination with categories.

The ``Additional Keywords and Phrases'' item on the title page
is provided by the \verb|\keywords| declaration, {\bf listed alphabetically\/}.
For this article,  
they were produced by the following command:
\begin{quote}
\begin{verbatim}
\keywords{Document preparation, publications, typesetting}
\end{verbatim}
\end{quote}
There is no prescribed list of ``additional keywords;'' use any that
you want.

\subsection{The Bottom of the Title Page}

The bottom of the article's title page contains acknowledgment of
support, the author(s) address(es), a ``permission to copy'' statement,
and a line containing a copyright symbol (\copyright) and a mysterious
number.  This is all entered with a {\tt bottomstuff} environment;
there must be no blank line after the \verb|\begin{bottomstuff}|
command.  The permission to copy statement is produced by the
\verb|\permission| command.

\subsection{The Page Headers}

\verb|\markboth{}{}| generates the left- and right-page headers. The first 
argument is the author's name(s):

\begin{itemize}
\item If there is one author, then use author's full name (ex. Leslie Lamport);
\item If there are two authors, then abbreviate each author's first name
           (L.~Lamport and A.~Appel);
\item If there are more than two authors, then the format is Leslie Lamport et al.
\end{itemize}

The second argument of \verb|markboth| is the title;
if the title is too long, 
contract it by omitting subtitles and phrases, not by abbreviating words.


\section{Ordinary Text}

Most of the body of the text is typed just as in an ordinary
document.  This section lists the differences.

\subsection{Lists}

\subsubsection{Enumeration and Itemization}

Let's begin with enumeration.
\begin{longenum}
\item The ACM style has two different formats for 
itemized lists, which I will call the {\em long\/} and {\em short\/}
formats.  The long format is generally used when the individual items
are more than two or three lines long, but ACM has been inconsistent in
their choice of format, sometimes using the long format for lists whose
items are all one or two lines long and the short format for lists of
long items.  This list is an example of the long format.

\item The ordinary {\tt enumerate} environment
produces the short format.  For the long format, use the
{\tt longenum} environment.
\begin{enumerate}\itemindent 10pt
\item This inner enumeration uses the short format.
\item It was produced using \LaTeX's ordinary {\tt enumerate}
      environment.
\item ACM has no standard for enumerations nested more than
      two levels deep, so the {\tt acmtrans} style does not
      handle them well.
\end{enumerate}
\end{longenum}

Itemized lists are similar to enumerated ones.
\begin{longitem}
\item As with enumerations, there is a long and a short
format for itemized lists.  This list is in the long format.

\item The long format is produced by the {\tt longitem}
environment.  The ordinary {\tt itemize} environment
uses the short format.
\begin{itemize}
\item This is an itemized list using the short format.

\item It was produced  with the {\tt itemize} environment
that is used in ordinary \LaTeX\ input.
\end{itemize}
\end{longitem}

It is interesting to observe that the style of tick mark used
for an itemization changed around 1985 from an en dash
(--) to an em dash (---). % jtb: changed!

\subsubsection{Descriptions}

A list is a sequence of displayed text elements, called items, each
composed of the following two elements:
\begin{describe}{{\em item body\/}:}
\item[{\em label\/}:]
A marker that identifies or sets off the item.  It
is a number in an enumerated list and a tick mark in an itemized list.

\item[{\em item body\/}:] The text of the item.  It is usually ordinary prose,
but sometimes consists of an equation, a program statement, etc.

Or another paragraph, which will be indented like normal paragraphs.
\end{describe}

When the labels of a list are names rather than numbers or tick marks,
the list is called a {\em description\/} list.
The ACM style
has both long and short description lists.  The above list is a short
description list; the bodies of all the items are indented enough to
accommodate the widest label.
The following list is a long description list.
The {\tt acmtrans} style provides both kinds of description lists:
\begin{description}
\item[short]
The {\tt describe} environment 
%that works the
%same as the {\tt description} environment except that it 
takes an argument, which should be the same as the argument of the \verb|\item|
command that produces the widest label.  Thus, the above description
list was begun with the command
\begin{quote}
\begin{verbatim}
\begin{describe}{{\em item body\/}:}
\end{verbatim}
\end{quote}

A description label is often emphasized in some way; in this example I
used the \LaTeX\ \verb|\em| command, italicized the label.  The ACM
appears to have no standard convention for formatting the labels of a
description list, so the {\tt describe} environment leaves the label
formatting up to you.  An \verb|\hfill| command can be used to produce
a label like ``{\em gnu \hfill --\/}'' where {\em gnu\/} is flush left
against the margin and the ``--'' is aligned flush right next to the
item body.

\item[long]
The standard \LaTeX\ {\tt description} environment produces a long
description list.  It italicizes the labels, and puts a period after
them, which seems to be what is done in the ACM transactions.
\end{description}

\subsection{Theorems, Etc.}

%\newtheorem{theorem}{Theorem}[subsection]
%\begin{theorem}
%testing section counter
%\end{theorem}

\LaTeX\ provides a single class of theorem-like environments, which are
defined with the \verb|\newtheorem| command.  The ACM transactions
style divides this class into two subclasses that are formatted
differently.  The first class includes theorems, corollaries, lemmas,
and propositions.  It is produced with the \verb|\newtheorem| command.
Such a theorem-like environment is often followed by a proof, for which
the {\tt acmtrans} style provides a {\tt proof} environment.

\newtheorem{subtheorem}{Theorem}[subsection]
\begin{subtheorem}
Notice that theorems are numbered inside the nearest section\newline subsection.
\end{subtheorem}

When listing within the theorem environment, this style will now produce
roman parantheses. Thank you David Sands.

\begin{proof}	
This theorem is an instance of {\tt subtheorem}, theorems nested in
subsections.
\end{proof}


The second subclass of theorem-like environments includes ones for
definitions, examples, and remarks.  These environments are defined
with the \verb|\newdef| command, which works the same as
\verb|\newtheorem|.  Here
is an example of such an environment.

\newdef{subexample}[subtheorem]{Definition}

\begin{subexample}
This is an example of a Definition, typed with an {\tt subexample}
environment defined with \verb|\newdef|.
As you can see theorems are italicized and definitions are not.
\end{subexample}

\newtheorem{subproperty}[subtheorem]{Property}

Sometimes theorem-like environments are numbered in unusual ways, or
are identified by a name.  Consider the following example
from~\citeN{7:3:359}.
\begin{subproperty}[{\rm Ca}]
Let syn $\in$ Syn, occ $\in$ Occ be maximal and sta $\in$ Sta.  Then
Tcol\/{\rm [[}syn\/{\rm ]]} occ sta\hspace{-2pt} $\downarrow\!1$ $=$
Tsto\/{\rm [[}syn\/{\rm ]]} sta.
\end{subproperty}
\begin{proof}[of Property {\rm Ca}]
By straightforward structural induction, and is \linebreak
omitted.
\end{proof}
It was obtained by giving optional arguments to the
{\tt property} environment (defined with \verb|\newtheorem|)
and the {\tt proof} environment and was typed as follows.
\begin{quote}
\begin{verbatim}
\begin{subproperty}[{\rm Ca}] Let ...  \end{subproperty}
\begin{proof}[of Property {\rm Ca}]  By straightforward ...
\end{verbatim}
\end{quote}
Notice that the optional argument to the {\tt property} environment
suppresses the automatic numbering.  If a null optional argument
were given to this environment by typing ``{\tt []}'', then
it would have produced the label ``{\sc Property.}''  This is
how unnumbered theorems, etc.\ are produced.

Environments defined by \verb|\newdef| use the optional
argument the same way as those defined by \verb|\newtheorem|.

\vskip10pt
With this definition

\begin{verbatim}
     \newtheorem{secthm}{Theorem}[section]
\end{verbatim}
\noindent
one can solve the counter problems and counter and label problems for
theorems, lemmas and definitions etc.

With the above definition and with the following variations
\begin{verbatim}
     \newdef{secdefn}[secthm]{Definition} or
     \newdef{seclem}[secthm]{Lemma} or
     \newdef{sectheo}{secthm]{Theorem} etc.
\end{verbatim}
\noindent
one can achieve
\begin{enumerate} 
\item correct counters in definitions, theorems etc. in \verb|\section| environment.
For example, to generate ``Definition 4.1.''; without the above two definitions, it produces ``Definition 4.0.1.'' and
\item correct counter and label associated with definitions, theorems etc. in any environment (section or subsection). For example, 
\begin{verbatim}
     \begin{secdefn}[\thesecthm\ (label)] 
       text text text
     \end{secdefn}
\end{verbatim}
produces the correct definition counter + correct placement of the period as in
``Definition 3.1 (label).''.
\end{enumerate}

\subsection{Overfull hbox - Stretching/filling one horizontal line}

To solve a line break due to ``Overfull \verb|\hbox|'', here is a plain \TeX\ 
solution; here \verb|\hsize| is the default setting of acmtrans.sty:

\begin{center}
\verb|\hbox to \hsize{line sentence to be stretched}|
\end{center}

This can be used in a list environment as well but \verb|\hsize| declared to a reduce
dimension:

\begin{verbatim}
   \hbox{\vbox{\hsize = less than the default setting
   \hbox to \hsize{line sentence to be stretched}}}
\end{verbatim}

\subsection{Programs}

Good formatting of programs requires a knowledge of their semantics,
and is beyond the scope of a document production system.  While
``pretty printers'' are useful for handling the many pages of a real
program, the short examples that are published in articles should be
formatted by hand to improve their clarity.  The \LaTeX\ {\tt tabbing}
environment makes the formatting of programs relatively easy,
especially if the user defines commands for his particular language
constructs.
One may also use the {\tt verbatim} environment.

The ACM transactions style requires that programs be formatted with
different size fonts, depending upon whether they appear in the text or
in a figure, but that is handled by the figure macro which
automatically sets the correct font size.
%The {\tt acmtrans} style provides a {\tt program}
%environment that is exactly the same as the standard {\tt tabbing}
%environment except for the size of the fonts it uses.  This environment
%should be used for formatting programs, whether they appear in the
%running text or in a figure.
Moreover, programs in running text should be indented two ems 
on each side (as provided by the {\tt quote} environment), and
programs in regular figures should be centered.
(Programs in ``narrow figures'' (q.v.) are left or right justified
automatically).

Here is an example of a program:
\begin{quote}
\begin{tabbing}
{\bf type} date =\\
\hspace*{1em}\= {\bf record} \= day: 1\,.\,.\,31;\+\+\\
                                month: 1\,.\,.\,12;\\
                                year: integer \-\\
                {\bf end} \-\\
{\bf var} mybirth, today : date;\\
{\bf var} myage : integer;
\end{tabbing}
\end{quote}
Figure~\ref{fig:prog} shows how the same program looks in a figure.
\begin{figure}
\centerline{\parbox{104pt}{% it's safe to overestimate the size here
\begin{tabbing}
{\bf type} date =\\
\hspace*{1em}\= {\bf record} \= day: 1\,.\,.\,31;\+\+\\
                                month: 1\,.\,.\,12;\\
                                year: integer \-\\
                {\bf end} \-\\
{\bf var} mybirth, today : date;\\
{\bf var} myage : integer;
\end{tabbing}}}
\caption{An example of a program centered in a figure}
\label{fig:prog}
\end{figure}

%The ACM standard calls for the program to start flush at the left
%margin, with each new level of nesting indented by a distance of one
%em, and with the continuation of broken lines indented two ems.  However,
%this standard is not applied consistently.

In addition to formatting programs, the {\tt tabbing} environment may be
used for similar displayed material such as BNF syntax specifications
and rewrite rules.

\subsection{User-specified Formatting}

If \LaTeX\ does not provide a particular text structure, the user must
define it himself and specify how it is to be formatted.  This is most
easily done by defining the new structure in terms of existing ones;
the \LaTeX\ {\tt list} and {\tt trivlist} environments are useful
tools.  However, it is occasionally necessary for the user to provide
explicit formatting commands.  

The best guide to how something should be formatted is what has been
done in the ACM transactions.  While horizontal spacing tends to depend
strongly upon the particular text, there is a standard amount of
vertical space used to set off text.  The ordinary \LaTeX\ 
\verb|\medskip| command produces a vertical space of the appropriate
size.

\section{Figures and Tables}

\subsection{Figures}

The ordinary \LaTeX\ {\tt figure} environment works as usual.
Figure~\ref{fig:ordinary}, which is Figure~6 of \citeN{7:3:359}, a bogus reference,
\begin{figure}
\centering
\(\begin{array}{c|ccc}
     & \bot & F & T \\
\hline
\bot & \bot & \bot & T \\
F    & \bot & F    & T \\
T    & \bot & T    & T
\end{array}\)
\caption{The truth table for the parallel-or.}
\label{fig:ordinary}
\end{figure}
was produced in this way.
Note that figures should never appear in the text or at the bottom of
a page. (If you use the figure placement optional argument, use only
\verb"t" or \verb"p" or both; do not use \verb"h" or \verb"b").

Some figures (and tables) have no caption except for the figure number.
For such figures (and tables), one uses a \verb|\nocaption| command,
which has no argument, instead of the \verb|\caption| command.

\begin{narrowfig}{3in}
\begin{tabbing}
{\bf type} date =\\
\hspace*{1em}\= {\bf record} \= day: 1\,.\,.\,31;\+\+\\
                                month: 1\,.\,.\,12;\\
                                year: integer \-\\
                {\bf end} \-\\
{\bf var} mybirth, today : date;\\
{\bf var} myage : integer;
\end{tabbing}
\caption{An example of a program displayed in a figure.}
\label{fig:narrow}
\end{narrowfig}

In addition to this method of formatting figures, the ACM transactions
also uses figures with side captions, as in Figure~\ref{fig:narrow}.
Such a figure is produced with the {\tt narrowfig} environment.  This
environment has a single mandatory argument, which is the width of the
figure.
Note that if the figure is generated by {\tt tabbing} or {\tt
tabular}, one can safely overestimate the size.
It works just like the ordinary {\tt figure} environment,
except it must contain only one \verb|\caption| or \verb|\nocaption|
command, which must come after the figure itself.  

The {\tt narrowfig} environment should obviously not be used unless the
figure is narrow enough to leave a reasonable amount of space beside it
for the caption.  The ACM seems to have no consistent policy for choosing
which style of figure to employ.

\subsection{Tables}

The ordinary \LaTeX\ {\tt table} environment can be used, but it
requires the user to add formatting commands to match the ACM
transactions style.  This formatting is performed automatically
if the {\tt acmtable} environment is used instead, producing
the result shown in Table~\ref{tab:table}, which shows the same
table displayed in Figure~\ref{fig:ordinary}.
\begin{acmtable}{100pt}
\centering
\(\begin{array}{c|ccc}
     & \bot & F & T \\
\hline
\bot & \bot & \bot & T \\
F    & \bot & F    & T \\
T    & \bot & T    & T
\end{array}\)
\caption{The truth table for the parallel-or.}
\label{tab:table}
\end{acmtable}
This environment has a mandatory argument that equals the width
of the table---more precisely, it specifies the width of the rules
above and below the table.  There must be only one 
\verb|\caption| or \verb|\nocaption|
command, which must come after the text of the table.  
(Even though the table caption is printed above the table, the
\verb|\caption| command comes after the table in the input file.)


\section{The End of the Document}

\subsection{Appendix}

The appendix (if the article has one) should precede the
acknowledgments (if any) and bibliography.
If the appendix isn't broken into separate sections,
then you should add the following commands after the \verb|\appendix|
command:
\begin{quote}
\begin{verbatim}
\section*{APPENDIX}
\setcounter{section}{1}
\end{verbatim}
\end{quote}
Setting the counter is necessary so that numbered subsections and
theorems will have the names ``A.{\em N\/}'' in the text.

For an article with multiple appendices, one begins
the appendix with an \verb|\appendix| followed by
\verb|\section*{APPENDIX}|, and then starts each
appendix with an ordinary \verb|\section| command.

Information about electronic appendices is given in
Section~\ref{sec:elecappendix} and in the Appendix.

\subsection{Acknowledgments}

An optional acknowledgments section follows all the text of the
article, including any appendices.  It is produced with the
{\tt acks} environment.  (Since I can never remember how many
{\em e\/}'s there are in {\em acknowledgments}, it seemed
like an abbreviation was in order for the environment name.
One may also spell out the name as {\tt acknowledgments}).
Sometimes, there is just a single acknowledgment.
This may be given using the {\tt ack} or {\tt acknowledgment}
environment.

\subsection{Bibliography}

The bibliography follows the acknowledgments, and is the last
significant body of text in the article.  It is produced by the usual
\LaTeX\ commands. 

In 1993 the ACM changed bibliography styles, from numerical citations [13]
to author's name and year \cite{7:3:359}. 
The user is encouraged to let \LaTeX\ produce his bibliography
with the \verb|\bibliography| command, letting \BibTeX\ handle the
formatting of the entries.
The \verb|acmtrans.sty|
bibliography style file now generates citations in this format.
Put
\begin{quote}
\begin{verbatim}
\bibliographystyle{acmtrans}
\end{verbatim}
\end{quote}
between the \verb|\begin{document}| and the \verb|\end{document}|.

The conventional \verb|\cite| command will generate citations as usual in
\LaTeX.
Note that the style file automatically omits repeating author
names~\cite{7:3:359,test}.
If you mention the work explicitly in your prose, you should use
\verb|\citeN| command. This command generates for example, \citeN{7:3:359}
discusses denotational program transformations. Or, you use 
\verb|\citeyear| and say that Nielson \citeyear{7:3:359} discusses
them.
The command \verb|\shortcite| is an alias for \verb|\citeyear|.
Either command may be used in cases where one refers to multiple
works (of the same authors!).
For example, \verb|Nielson~\shortcite{7:3:359,test}| generates
Nielson~\shortcite{7:3:359,test}.
%To generate author~[year1; year2], give the author's name and then use
%the command \verb|\citeNN{year1,year2}|, 
%which generates ``Nielson~\citeNN{7:3:359,test}.''

More variations of \verb|\cite| are discussed in comments in the
\verb|acmtrans.sty| file. Here are some {\bf examples} on how to get

\begin{enumerate}
\item{Appel [1996]} $\rightarrow$ using either \verb|\citeN| or \verb|\citeyear|
\item{[Kempe 1879]} $\rightarrow$ \verb|\cite{kempe79}|
\item{Appel [1995; 1996]} $\rightarrow$ \verb|\shortcite{ref1-key,ref2-key}| 
\item{Fil\'e [1981a; 1981b]} $\rightarrow$ \verb|Fil\'{e}~\shortcite{engelfriet/file:81sweep,|\\
\hbox{}\kern.2in\verb|engelfriet/file:81passes}| or simply \verb|\shortcite{ref1-key, ref2-key}|
\item{[Appel and Shao 1992; Shao and Appel 1994]} $\rightarrow$ 
\verb|\cite{appel-zhong-lsc92,|\\
\hbox{}\kern3.5in\verb|shao94:clo}|
\item{Chow and Harrison [1992; 1994]} $\rightarrow$ 
   Chow~and~Harrison~[\verb|\citeyearNP{CH-popl92};|
   \hbox{}\kern2in\verb|\citeyearNP{CH-iccl94}|]  
\item{[Chow and Harrison 1992; 1994; Cousot and Cousot 1984]} $\rightarrow$ 
\verb|[\citeNP{CH-popl92};|\\
  \hbox{}\kern1.7in \verb|\citeyearNP{CH-iccl94}; \citeNP{CC-apct77}]|
\item{[Cytron et al. 1991]} $\rightarrow$ \verb|\cite{cytron-et-al-toplas91}|
\item{Briggs et al. [1994]} $\rightarrow$ \verb|\citeN{briggs-cooper-torczon-toplas94}| or
\item{Duri et al. [1993]} $\rightarrow$ \verb|Duri~et~al.~\citeyear{DBDS-sigsoft93}|
\item{[Chaitin 1982; Chaitin et al. 1981]} $\rightarrow$ \verb|\cite{chaitin-pldi82,chaitin-et-al-cl81}|
\item{[Alblas 1991; Deransart et al. 1988; Knuth 1868]} $\rightarrow$ 
\verb|\cite{alblas:91intro,|
\hbox{}\kern1in\verb|deransart/jourdan/lorho:88ag,knuth:68semantics}|
\item{[Gary and Johnson 1979]} $\rightarrow$ \verb|\cite{garey-johnson-bk79}|
\item{[Brand and Zafiropulo 1983; Gouda et al. 1984;1987]} $\rightarrow$ \newline
\verb|[\citeNP{brand83}; \citeNP{gouda84};\citeyearNP{gouda87}]|
\end{enumerate}
\noindent
The list will be updated as we find unique cases.

\subsection{Received Date}

An ACM transactions article ends with the dates that the article and its
revised versions were received and the date it was accepted for
publication.  In the {\tt acmtrans} document style, this information is
produced with the {\tt received} environment.  Type the body of the
environment just as it should appear in the printed version.
(Note that only \verb"Received" and the months should be capitalized,
the entries should be separated by semicolons,
and the whole ``sentence'' should {\em not} be terminated by a period.)
You can get these dates from the editor-in-chief.

\section{Running Heads and Feet}

The running foot of all but the title page of the article is declared
with the \linebreak
\verb|\runningfoot| command.  It contains the name of the
journal, volume, number, and date.  The foot for the title page
contains this information plus the page numbers.  It is declared
with the \verb|\firstfoot| command.

The \verb|\pages| command prints the page numbers of the article,
producing something like ``123--132''.  It is implemented with the
\LaTeX\ \verb|\pageref| command, so it will not produce the correct
page numbers the first time the file is run through \LaTeX, or if the
number of the first or last page has changed since the last time.

The default page style for the {\tt acmtrans} style is {\tt
myheadings}.  Thus, a \verb|\markboth| command is used to set the
running heads.  The left head contains the author's name (or authors'
names) and the right head contains the title.  For long titles,
some contraction of the title is used.

{\bf
At present, the ACM prefers to strip in their own running heads and
feet, so it is unnecessary to worry about them when producing
camera-ready copy.
}

\section{Interacting with ACM's Production Staff}

After your article is accepted, format your document and send
a Postscript file to the editor-in-chief.  An ACM copy editor will
mark up a paper copy and send it back to you for corrections.
If there are just a few corrections, they may be sent to you by e-mail.
Iterate this process until the copy editor is satisfied (it may take
one or two iterations).

Then print your final camera-ready copy on a 1200-dpi phototypesetter
(or a 600-dpi laser printer, if you must) and mail it to ACM.

If you are using a laser printer for your final camera-ready copy,
you may enjoy using special paper designed for this purpose (it gives
a sharper image on a whiter background).  One such paper
(manufactured by Hammermill Papers) is:
\begin{verse}
   Hammermill Laser Plus (Featuring Wax Holdout)\\
   8$\frac{1}{2}$x11--12M--S24/60\\
   10450--5\\
   For Prepress Proofing and Camera-Ready Masters.
\end{verse}

But the use of special paper is entirely optional; plain white laser-printer 
paper is fine.

\subsection{ACM Copy Editors' Preferences}

We wish to thank the authors who have mailed to us copies of their page proofs.
From the page proofs (and explicit requests from ACM), here is a list of items most 
frequently marked up by the copy editors. 

\begin{description}\itemindent\labelsep  % that is, no indentation
\item[\bf Center] Displayed items like figures, pieces of program codes, and equations.  Equation numbers to appear right flushed. Remember to add a period if the displayed equation ends in a sentence. 
\item[\bf Fonts] Following items in regular Roman font:
\begin{itemize}
\item such words like et al., e.g., i.e., ad hoc, and bona fide, and 
\item the body of the definition environment.
\end{itemize} 
\item[\bf Etc] No double period when a sentence ends with ``etc.''
\item[\bf Figure] Spell out the word ``figure'' when using in a sentence, as in Figure 1.
Use a period as in ``Fig. 1.'' and not a colon as in ``Fig. 1:''
\item[\bf Contractions] Avoid the use of contractions; for example, use 
{\em do not} instead of {\em don't}.  
(If you prefer to use contractions to avoid
stuffiness, you'll have to tell the copy editor explicitly after you
get the marked-up proofs.)
\item[\bf Conference References] Please use {\it 4th International Conf. on
Document Formatting}, not {\it Fourth International Conference ...}; that
is, do not spell out the number.
\item[\bf Journal References] Figure~\ref{fig:abbrev} gives common journal abbreviations; there is a duplicate list in the acmtrans.bst file for your convenience.  Using the {\it abbreviation} feature of \BibTeX\  for journal
names (and months!) makes it easy to follow the rules.
\end{description} 

\begin{figure}\noindent
\begin{tabular}{l|l||l|l}
\footnotesize
acmcs&ACM Comput. Surv.&jlp&J. Logic Program.\\
acmlett&ACM Lett. Program. Lang. Syst.&jcss&J. Comput. Syst. Sci.\\
acta&Acta Inf.&jsmrp&J. Softw. Maint. Res. Pract.\\
al&Ada Lett.&jss&J. Syst. Softw.\\
acr&Adv. Comput. Res.&jlsc&J. Lisp Symb. Comput.\\
bit&Bit&lpls&Lett. Program. Lang. Syst.\\
cacm&Commun. ACM&mscs&Math. Struct. Comput. Sci.\\
cj&Comput. J.&mst&Math. Syst. Theor.\\
cn&Comput. J.&ngc&New Gen. Comput.\\
cl&Comput. Lang.&scp&Sci. Comput. Program.\\
ict&Inf. Contr.&sicomp&SIAM J. Comput.\\
ieebcs&IEE/BCS Softw. Eng. J.&spe&Softw. Pract. Exper.\\
ieees&IEEE Softw.&tocs&ACM Trans. Comput. Syst.\\
ieeese&IEEE Trans. Softw. Eng.&tods&ACM Trans. Database Syst.\\
ieeetc&IEEE Trans. Comput.&tog&ACM Trans. Graphics\\
ieeetpds&IEEE Trans. Parall. Distrib. Syst.&toms&ACM Trans. Math. Softw.\\
ieeetit&IEEE Trans. Inf. Theory&toois&ACM Trans. Office Inf. Syst.\\
ipl&Inf. Process. Lett.&toplas&ACM Trans. Program. Lang. Syst.\\
icp&Inf. Comput.&tcs&Theor. Comput. Sci.\\
ist&Inf. Softw. Tech.&tr&Tech. Rep.\\
ijsa&Int. J. Supercomput. Appl.&jf&J. Funct. Program.\\
ijpp&Int. J. Parallel Program.&jlc&J. Logic and Comput.\\
\end{tabular}
\caption{Common journal abbreviations.}
\label{fig:abbrev}
\end{figure}

The best method of
reducing the number of copy editorial markups is by using a recent ACM journal 
as a guide  to typesetting your article.  

\section{Electronic Appendices}
\label{sec:elecappendix}

Because of severe constraints on how many pages it can print,
{\it ACM Transactions on Programming Languages and Systems} (TOPLAS)
accepts some articles with {\it electronic appendices:}  appendices
in Postscript format that will not appear in the printed article but
will be available separately.  If your article is accepted with an
electronic appendix, you should put an appendix header where the
appendix normally belongs (before the ``acknowledgments'').
The body of the electronic appendix should be given after the
references.
The \verb|appendixhead| command is given
\begin{quote}
{\tt \verb|\|appendixhead\{{\it journal}\}\{{\it article-id}\}}
\end{quote}
where {\it journal} is the name of the journal (e.g. {\tt toplas} or
{\tt todf}), and
{\it article-id} is a number given to you by the Editor.
The result of \verb|\appendixhead| looks like this:\footnote{%
See the end of this document for the remainder of the explanation of
electronic appendices}

\appendix
\section*{ONLINE-ONLY APPENDICES}
\setcounter{secnumbookdepth}{-1}
% \begin{NoHyper}
\section{Splitting off the electronic appendix}
\section{Single appendix}
\section{Multiple appendices}
% \end{NoHyper}
\setcounter{secnumbookdepth}{3}

\appendixhead{Appendix A is}{appendix}{http://www.acm.org/toplas}

\begin{acks}
We wish to thank Howard Trickey for providing the now-obsolete
version of the {\tt acmtrans}
bibliography style, and for giving advice on creating the new one;
Rebecca Davies for helping to adapt
Glenn Paulley's ``Chicago'' bibliography
style to fit the new ACM style; 
and Marilyn Salmansohn and George Criscione for providing information
on the official ACM transactions style.
\end{acks}

\bibliographystyle{acmtrans}
\bibliography{acmtr}
\begin{received}
Received February 1986;
November 1993;
accepted January 1996
\end{received}

elecappendix{http://www.acm.org/toplas}{1998}{ACM Transactions on Document Formatting,
     Vol.~8, No.~1, January 1999, Pages \pages.}{
\copyright\ 1999 ACM 0164-0925/98/0100-0208A \$5.00}

The contents of the electronic appendix is written after the references
and the ``received'' environment.
The electronic appendix is started 
by an \verb|\elecappendix| command that takes two
required arguments:
\begin{quote}
{\tt \verb|\|elecappendix\{{\it year}\}\{{\it ref\/}\}}
\end{quote}
where
{\it year} is the year of appearance (or, if this not known, the year
of acceptance), necessary for the copyright notice, and
{\it ref\/} is a sentence provided by the Editor describing the
publication reference
information regarding your article.

\section{Splitting off the electronic appendix}

If you have an electronic appendix, only the main body of the
article, up through and including the description of how to obtain
the electronic appendix, will be printed in the journal.

It will be necessary to split your dvi or Postscript file into
two parts: one to be printed, the other to be available by
FTP.  Please split your Postscript into two separate postscript files 
using {\tt dvipages} or {\tt pslpr} and
email them separately to the Editor.

Note that the pages of the appendix are numbered A-1, A-2, etc.
so as not to interfere with the normal journal pagination.

\section{Single Appendix}

When an article has a single electronic appendix, then after
the \verb|\elecappendix| command, type the following.
\begin{quote}
\begin{verbatim}
\setcounter{section}{1}
\end{verbatim}
\end{quote}
If the text starts immediately, add a \verb|\medskip| to set off the
text from the horizontal rule created by \verb|\elecappendix|.

\section{Multiple appendices}

For an article with multiple electronic appendices, one begins
the appendix with an \verb|\elecappendix|
command, then starts each
appendix with an ordinary \verb|\section| command.  Lower levels of
sectioning are produced by the ordinary sectioning commands.

\end{document}





