% The Chicago Journal of Theoretical Computer Science, Volume 1992, Article 0
% Published by MIT Press, Cambridge Massachusetts USA
%
\newtoks\rstyle
\rstyle={cjlook}
\ifx\documentclass\undeftex
\documentstyle[v1.1,published]{cjstruct}
\else
\documentclass[v1.1,published]{cjstruct}
\fi
%
% Special style resources for this article.
%
\usestyleresource{amstex}
%
% Local macro definitions for this article.
%
% \BIBTeX produces the BibTeX logo.
%
\newcommand{\BIBTeX}{{\sc Bib\hspace{-0.1em}\TeX}}
%
% \AMS produces the AMS logo.
%
\newcommand{\AMS}{AMS}
%
% \ttbs produces the backslash character (\) in the \tt font, \ttct
% produces the caret (^), \ttpl produces the plus (+), \ttds produces
% the dollar sign ($), and \ttat produces the at sign (@).
%
\newcommand{\ttbs}{{\tt \char`\\}}
\newcommand{\ttct}{{\tt \char`\^}}
\newcommand{\ttus}{{\tt \char`\_}}
\newcommand{\ttpl}{{\tt \char`\+}}
\newcommand{\ttds}{{\tt \char`\$}}
\newcommand{\ttat}{{\tt \char`\@}}
%
% Mathematical type definitions.
%
\mathstyleclass{\sampord}{\mathord}{\bf}
%
\mathstyleclass{\samprel}{\mathrel}{\it}
%
\mathstyleclass{\lispfunction}{\mathord}{\it}
%
\ifltwoe\else\newcommand{\mathbb}{\Bbb}\fi
%
\newcommand{\universe}[1]{\mathbb{#1}}
%
% Mathematical operators.
%
% \tuple{<list>} wraps up the comma-separated <list> of terms as a
% tuple.
%
\newcommand{\tuple}[1]{\langle #1\rangle}
%
% \setof{<term>}{<predicate>} defines the set of values of the given
% <term> whose variables satisfy the given <predicate>.
%
\newcommand{\setof}[2]{\{#1\:|\:#2\}}
%
% \embed{<set>} represents the relation between an object and its
% embedding in the given set by an arrow with the set name underneath.
%
\catcode`\@=13
\newcommand{\embed}[1]{%
  @>>{#1}>%
}
\catcode`\@=12
%
% \car and \cons are the well-known Lisp functions.
%
\newcommand{\car}{\lispfunction{car}}
\newcommand{\cons}{\lispfunction{cons}}
%
% \verseindent indents a line in a poem.
%
\newcommand{\verseindent}{\hspace*{1em}}
%
% Macros for programs
%
\renewenvironment{algorithm}[2]{%
  \begingroup%
  \proglang={#1}%
  \expandafter\ifx\csname\the\proglang\endcsname\LaTeX%
    \tt%
  \else\expandafter\ifx\csname\the\proglang\endcsname\BIBTeX%
    \tt%
  \fi\fi
}{%
  \endgroup%
}
%
\renewcommand{\algo}[3]{%
  {%
    \proglang={#1}%
    \expandafter\ifx\csname\the\proglang\endcsname\LaTeX%
      \tt%
    \else\expandafter\ifx\csname\the\proglang\endcsname\BIBTeX%
      \tt%
    \fi\fi
    #3%
  }%
}
%
\renewcommand{\idr}[1]{%
  \expandafter\ifx\csname\the\proglang\endcsname\Pascal%
    \mathord{\mbox{\it #1}}%
  \else%
    #1%
  \fi%
}
%
\renewcommand{\kwd}[1]{\mbox{\bf #1}}
%
\renewcommand{\schlabel}[1]{\makebox[0em][r]{#1\hspace*{0.5em}}}
%
%
\newcommand{\emdash}{\mbox{---}}
%
% \schemaparam{<text>} marks <text> as the description of a formal
% parameter in a program schema.
%
\renewcommand{\schemaparam}[1]{%
  \expandafter\ifx\csname\the\proglang\endcsname\LaTeX%
    \mbox{{\rm\it \emdash#1\emdash}}%
  \else\expandafter\ifx\csname\the\proglang\endcsname\BIBTeX%
    \mbox{{\rm\it \emdash#1\emdash}}%
  \else\expandafter\ifx\csname\the\proglang\endcsname\Pascal%
    \mathord{\langle\mbox{\sl #1}\rangle}%
  \fi\fi\fi%
}
%
\newcommand{\assigned}{\mathrel{:=}}
%
\newcommand{\algindent}{
  \expandafter\ifx\csname\the\proglang\endcsname\LaTeX%
    \mbox{\ \ }%
  \else\expandafter\ifx\csname\the\proglang\endcsname\BIBTeX%
    \mbox{\ \ }%
  \else\expandafter\ifx\csname\the\proglang\endcsname\Pascal%
    \hspace*{1.2em}
  \fi\fi\fi%
}
%
\begin{document}
%
\begin{articleinfo}
%
  \publisher{MIT Press}
%
  \publishercomment{We're tickled pink to be publishing
    electronically. The folks at MIT Press.}
%
  \copyrightstmt{Copyright is held by MIT Press, with a friendly license
    to subscribers.}
%
  \journal{Chicago\nolinebreak[1] Journal of Theoretical Computer\nolinebreak[1] Science}
%
  \journalcomment{We do tough refereeing. The editorial gang.}
%
  \bannerfile{cjtcs-banner.tex}
%
  \volume{1992}
%
  \articleid{0}
%
  \selfcitation{
%
    @article{cj92-00,
      author={Michael J. O'Donnell and Mitchell Marks and Donald A. Ziff and
               Stuart A. Kurtz and Janos Simon and Chevy van Mini},
      title={Sample Article for the
              {\em Chicago Journal of Theoretical Computer Science}},
      journal={Chicago Journal of Theoretical Computer Science},
      volume={1992},
      number={0},
      publisher={MIT Press},
      month={September},
      year={1992}
    }
%
  }
%
  \begin{retrievalinfo}
  \end{retrievalinfo}
%
  \title{Sample Article for the {\em Chicago Journal of Theoretical
  Computer Science}}
%
  \shorttitle{Sample Article}
%
  \collectiontitle{Metapapers on Journal Organization}
%
  \editorcomment{%
    This is the only paper in the special collection,
    {\em Metapapers on Journal Organization,} consisting of the best
    papers from the Nullannual Symposium on Scholarly Scholarship\@.
    Roger Rabbit, editor.
  }
%
  \editorname{Roger Rabbit}
%
  \begin{authorinfo}
    \printname{Michael J.\ O'Donnell}\priority{1}
    \collname{}{O'Donnell, Michael James}
    \begin{institutioninfo}
      \instname{The University of Chicago}
      \department{Department of Computer Science}
      \address{Ryerson Hall, 1100 E. 58th Street}{Chicago}{IL}{USA}{60637}
    \end{institutioninfo}
    \begin{institutioninfo}
      \instname{The Navajo Nation}
      \address{General delivery}{Chinle}{AZ}{USA}{86503}
    \end{institutioninfo}
    \email{odonnell@cs.uchicago.edu}
  \end{authorinfo}
%
  \begin{authorinfo}
    \printname{Mitchell Marks}\priority{2}
    \collname{}{Marks, Mitchell}
    \begin{institutioninfo}
      \instname{The University of Chicago}
      \department{Department of Computer Science}
      \address{Ryerson Hall, 1100 E. 58th Street}{Chicago}{IL}{USA}{60637}
    \end{institutioninfo}
    \email{mitchell@cs.uchicago.edu}
  \end{authorinfo}
%
  \begin{authorinfo}
    \printname{Donald A. Ziff}\priority{2}
    \collname{}{Ziff, Donald A.}
    \begin{institutioninfo}
      \instname{The University of Chicago}
      \department{Department of Computer Science}
      \address{Ryerson Hall, 1100 E. 58th Street}{Chicago}{IL}{USA}{60637}
    \end{institutioninfo}
    \email{ziff@cs.uchicago.edu}
  \end{authorinfo}
%
  \begin{authorinfo}
    \printname{Stuart A.\ Kurtz}\priority{3}
    \collname{}{Kurtz, Stuart Arthur}
    \begin{institutioninfo}
      \instname{The University of Chicago}
      \department{Department of Computer Science}
      \address{Ryerson Hall, 1100 E. 58th Street}{Chicago}{IL}{USA}{60637}
    \end{institutioninfo}
    \email{stuart@cs.uchicago.edu}
  \end{authorinfo}
%
  \begin{authorinfo}
    \printname{Janos Simon}\priority{3}
    \collname{}{Simon, Janos}
    \begin{institutioninfo}
      \instname{The University of Chicago}
      \department{Department of Computer Science}
      \address{Ryerson Hall, 1100 E. 58th Street}{Chicago}{IL}{USA}{60637}
    \end{institutioninfo}
    \email{simon@cs.uchicago.edu}
  \end{authorinfo}
%
  \begin{authorinfo}
    \printname{Chevy van Mini}\priority{4}
    \collname{van}{Mini, Chevy}
    \begin{institutioninfo}
      \instname{Wotsamatta U}
      \department{Pre-Post-Modernism}
      \address{43 1/2 N. South Street}{Metropolis}{}{Fredonia}{}
    \end{institutioninfo}
  \end{authorinfo}
%
  \shortauthors{O'Donnell, Marks, Ziff, Kurtz, Simon, van Mini}
%
  \support{Van Mini's research was supported in part by GMC 43367\@.}
%
  \begin{editinfo}
    \submitted{3}{1}{1990}\reported{8}{6}{1990}
    \submitted{23}{8}{1990}\reported{12}{9}{1990}
    \submitted{10}{9}{1992}\reported{12}{9}{1992}\published{14}{9}{1992}
  \end{editinfo}
%
\end{articleinfo}
%
\begin{abstract}
  \apar{Abstract-1}
  This is a self-descriptive sample article whose source shows the
  form in which \LaTeX\ source is stored in the archives of the
  {\em \the\journalstring}\@. This is not the same as the form in which
  articles are submitted to the journal\@. Some material is added by
  the editors, and some by automatic processing\@. We have attempted
  to illustrate all of the types of uses of specialized features of
  the\/ \algo{LaTeX}{}{cjstruct} style that may be required\@. Text that does\/
  {\em not\/} describe the journal is likely to be fictitious material
  chosen randomly for example\@.
\end{abstract}
%
\begin{articletext}
%
\apar{Head-1}
This sample article was actually written by Michael J.\ O'Donnell, as
part of the development of a \LaTeX\ style file, {\tt cjstruct.sty},
to represent the logical structure of journal articles while allowing
the reader maximum flexibility in choosing an actual layout style\@.
Mitchell D.\ Marks and Donald A.\ Ziff provided crucial help and
advice in developing {\tt cjstruct.sty} and the guidelines for copy
editors\@. Stuart A.\ Kurtz and Janos Simon are founding editors for
the {\em \the\journalstring,} and were instrumental in the decision to
launch the project\@. ``Chevy van Mini'' is a fictitious name,
included to test prefixes to last names\@. The article was actually
revised on 4 April, 1995, but the earlier date was kept for example
purposes\@.
%
\asection{1}{Source Structure vs.\ Printed Format}
\apar{1-1}
The \LaTeX\ source code for an article in the {\em \the\journalstring\/} is
the permanent definitive text of the article\@. Over the years, that
text may be printed and displayed in a variety of formats, and
processed by a variety of information processing methods that cannot
be foreseen\@. Interactive audio presentation of \LaTeX\ documents is
already available\@. The source code is structured so as to allow as
much flexibility as possible for future printing, displaying, and
processing, as well as printing reasonably nicely with the typesetting
technology available today\@. See \cite{cj92-00-3} for a discussion of
the advantages of structural formats\@.
\apar{1-2}
The \LaTeX\ document preparation system allows source text
for a document to be organized according to the logical structure of
the contents of the document, but it is far from perfect for the
purposes of the journal archive\@. In particular, \LaTeX\ is designed
to help an author produce a series of drafts, culminating in a final
definitive version printed on paper, rather than to represent a
permanent definitive version of a document in the source code
itself\@.
\apar{1-3}
\LaTeX\ source code leaves certain items, such as section numbers, 
unspecified, and \LaTeX\ processors fill in these items automatically
for each draft\@. In the definitive version of an article, all
important landmarks for reference, including section numbers, must be
fixed explicitly so that all future references to parts of the article
will be comprehensible\@. On the other hand, \LaTeX\ source code fixes
the point size and similar style parameters in the header of a
document\@. All such stylistic items need to be specified {\em
separately\/} from a journal article, so that readers can change
formats easily without editing the definitive version of the
article\@.
%
\asection{2}{Outer Structure of an Article}
\apar{2-1}
Each article in the {\em \the\journalstring\/} is stored in the form shown in
Table~1\@.
%
\begin{table*}%
%
\begin{algorithm}{LaTeX}
  \comment{\mbox{\% The Chicago Journal of Theoretical Computer Science, %
    \schemaparam{article id}}}\\
  \comment{\% Published by MIT Press, Cambridge Massachusetts USA}\\
  \%\\
  \ttbs newtoks\ttbs rstyle\\
  \ttbs rstyle=\{\schemaparam{style}\}\\
  \ttbs ifx\ttbs documentclass\ttbs undeftex\\
  \ttbs documentstyle[%
  \schemaparam{version},published]\{cjstruct\}\\
  \ttbs else\\
  \ttbs documentclass[%
  \schemaparam{version},published]\{cjstruct\}\\
  \ttbs fi\\
  \%\\
  \schemaparam{input of style resources for the article}\\
  \%\\
  \schemaparam{definitions of \LaTeX\ macros for the article}\\
  \%\\
  \ttbs begin\{document\}\\
  \%\\
  \ttbs begin\{articleinfo\}\\
  \algindent\schemaparam{information about the article (see Table~2)}\\
  \ttbs end\{articleinfo\}\\
  \%\\
  \ttbs begin\{abstract\}\\
  \algindent\schemaparam{abstract of the article}\\
  \ttbs end\{abstract\}\\
  \%\\
  \ttbs begin\{articletext\}\\
  \schemaparam{text of the article}\\
  \ttbs end\{articletext\}\\
  \%\\
  \ttbs begin\{articlebib\}\\
  \schemaparam{bibliography for the article}\\
  \ttbs end\{articlebib\}\\
  \%\\
  \ttbs end\{document\}%
\end{algorithm}
%
\atabcap{1}{Structure of an Article Source File}
%
\end{table*}%
%
The percent sign ``{\tt \%}'' is the comment symbol in \LaTeX\@. The first 
line of the \LaTeX\ source file for an article is a comment with the 
name of the journal, followed by an article identifier of the form 
%
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    Volume \schemaparam{volume no}, Article \schemaparam{article no}
  \end{algorithm}
\end{quote}
\sentence
\apar{2-2}
Blank lines denote paragraph boundaries in \LaTeX, so space added 
to the article source file is in the form of empty comment lines\@. All 
sizable commands and environments are set off by such empty comment 
lines, unless they are already set off by paragraph breaks\@. 
\apar{2-3}
After the initial comment, the conditional execution of either a
\algo{LaTeX}{}{\ttbs documentstyle} or \algo{LaTeX}{}{\ttbs documentclass}
command allows the file to be interpreted equally well by \LaTeX\ or
\LaTeX2e\@. All articles have the same document style/class, with two
varying options, given by
%
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs documentstyle[v\schemaparam{version no},published]\{cjstruct\}
  \end{algorithm}
\end{quote}
\sentence
%
The \algo{LaTeX}{}{cjstruct} style is designed so that details of the
output style are determined by options and macro definitions placed in
auxiliary files {\tt cjropts.tex} and {\tt cjrdefs.tex} by the
reader\@. The \algo{LaTeX}{}{\ttbs defaultstyle} line establishes a
default style that will determine the actual formatting\@. This may be
redefined by the reader, and it reverts to the secondary default
\algo{LaTeX}{article} if the specified style is not available\@. In
this way, variations in output style do not require editing of the
article source file, and standardization of the article text is more
secure\@. \algo{LaTeX}{}{v\schemaparam{version no}} is a version
identifier, \algo{LaTeX}{}{v1}, \algo{LaTeX}{}{v2}, etc., used so that
later versions of the \algo{LaTeX}{}{cjstruct} style can be written to
emulate the earlier versions when processing old source files\@. The
second option, always given the value \algo{LaTeX}{}{published} in a
published {\em \the\journalstring\/} article, distinguishes a
published article from a draft\@.
\apar{2-4}
After the conditional \algo{LaTeX}{}{\ttbs documentstyle} or
\algo{LaTeX}{}{\ttbs documentclass} come commands to input special
style resources for this article\@. Currently, only the \AMS-\LaTeX\ 
options \algo{LaTeX}{}{amstex}, \algo{LaTeX}{}{amsbsy},
\algo{LaTeX}{}{amscd}, \algo{LaTeX}{}{amsfonts},
\algo{LaTeX}{}{amssymb}, and \algo{LaTeX}{}{amstext} are allowed\@.
These resources are input with the command
\algo{LaTeX}{}{\ttbs usestyleresource}\@. Next come any local macro
definitions required by the article\@. \apar{2-5} The first section
within the \algo{LaTeX}{}{document} environment is an
\algo{LaTeX}{}{articleinfo} environment, giving information about the
article as a text\@. This information may be used or omitted at the
discretion of the editors\@. Table~2 shows the structure of the
\algo{LaTeX}{}{articleinfo}
environment\@.
%
\begin{table*}%
%
\begin{algorithm}{LaTeX}{}
  \ttbs begin\{articleinfo\}\\
  \algindent%
   \schemaparam{volume and article numbers identifying this article uniquely}\\
  \algindent%
   \schemaparam{various comments and bibliographic information}\\
  \algindent\ttbs begin\{retrievalinfo\}\\
  \algindent\algindent%
    \schemaparam{information to aid automatic retrieval of the article}\\
  \algindent\ttbs end\{retrievalinfo\}\\
  \%\\
  \algindent\ttbs title\{\schemaparam{title of article}\}\\
  \%\\
  \algindent\ttbs shorttitle\{%
    \schemaparam{short title for headers}\}\\
  \%\\
  \algindent\ttbs collectiontitle\{%
    \schemaparam{title of special collection}\}\\
  \%\\
  \algindent\ttbs editorcomment\{\%\\
  \algindent\algindent\schemaparam{comments by the editor}\\
  \algindent\}\\
  \%\\
  \algindent\ttbs editorname\{\schemaparam{editor's name}\}\\
  \%\\
  \algindent\ttbs begin\{authorinfo\}\\
  \algindent\algindent\schemaparam{identifying information about an author}\\
  \algindent\ttbs end\{authorinfo\}\\
  \algindent
    \schemaparam{additional {\tt authorinfo} environments for other authors}\\
  \%\\
  \algindent\ttbs shortauthors\{%
    \schemaparam{short author list for headers}\}\\
  \%\\
  \algindent\ttbs begin\{editinfo\}\\
  \algindent\algindent%
    \schemaparam{dates of receipt, review, revision, acceptance}\\
  \algindent\ttbs end\{editinfo\}\\
  \%\\
  \ttbs end\{articleinfo\}
\end{algorithm}
%
\atabcap{2}{Structure of the \algo{LaTeX}{}{articleinfo} Environment}
%
\end{table*}%
%
First comes a sequence of two commands,
\algo{LaTeX}{}{\ttbs volume\{\schemaparam{volume no}\}}, and
\algo{LaTeX}{}{\ttbs articleid\{\schemaparam{article no}\}},
repeating the information in the first line in a form that is usable
by \LaTeX\@. The volume number identifies a volume uniquely by the
year of publication\@. The article number identifies the article
within its volume\@. Article numbers are generally assigned
sequentially within a volume in the order of publication date\@.
\apar{2-6}
The second section in the \algo{LaTeX}{}{document} environment is a
\algo{LaTeX}{}{retrievalinfo} environment\@. This environment contains
information intended for the use of automatic document retrieval
systems that access the article\@.
\apar{2-7}
Next come two or three commands giving information about the title of
the article\@.
%
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs title\{\schemaparam{title of article}\}
  \end{algorithm}
\end{quote}
%
gives the official full title of the article\@.
%
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs shorttitle\{\schemaparam{short title for headers}\}
  \end{algorithm}
\end{quote}
%
gives an abbreviated form for headers and other short
references\@. Finally, the optional command
%
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs collectiontitle\{\schemaparam{title of special collection}\}
  \end{algorithm}
\end{quote}
%
gives the name of a special collection containing this article, if
there is one\@. Most articles are not in special
collections\@. Typical collections are papers selected from important
conferences\@.
\apar{2-8}
If the scholarly editor responsible for the paper wishes to comment
about any editorial issues concerning the paper and/or the special
collection, those comments appear next in the form
%
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs editorcomment\{\\
    \algindent\schemaparam{editorial comments}\\
    \}
  \end{algorithm}
\end{quote}
%
\sentence
The editor's name may optionally be given in the form
%
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs editorname\{\schemaparam{editor's name}\}
  \end{algorithm}
\end{quote}
%
\sentence
\apar{2-9}
One or more \algo{LaTeX}{}{authorinfo} environments give information about the
authors of the article---each such environment describes one author\@.
The order of presentation of the authors' environments determines the
order in which their names are listed on the title page\@. Within each
\algo{LaTeX}{}{authorinfo} environment, the command
%
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs printname\{\schemaparam{printed name}\}
  \end{algorithm}
\end{quote}
%
gives the form in which the author's name should be printed in the
title\@. The command
%
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs collname\{\schemaparam{unordered prefix}\}\{%
      \schemaparam{alphabetizable name}\}
  \end{algorithm}
\end{quote}
%
gives the form in which the author's name should be alphabetized and
indexed\@. The \algo{LaTeX}{}{\schemaparam{alphabetizable name}} is
typically in the form \algo{LaTeX}{}{\schemaparam{last},
\algo{LaTeX}{}{\schemaparam{first}}
\algo{LaTeX}{}{\schemaparam{middle}}}, and the
\algo{LaTeX}{}{unordered prefix} typically contains prefixes to the
last name, such as ``van'', that are printed in an index, but not used
for determining alphabetical order. If authors have varying priorities
for credit, the priority may be indicated unambiguously with an
optional command of the form
%
\begin{quote}
  \begin{algorithm}{LaTeX}{}
  \ttbs priority\{\schemaparam{pri}\}
  \end{algorithm}
\end{quote}
%
where the principal authors are given the priority 1, and lesser
authors are given larger numbers as appropriate\@. Usually one, but
occasionally more, \algo{LaTeX}{}{institutioninfo} environments use
the commands \algo{LaTeX}{}{\ttbs instname},
\algo{LaTeX}{}{\ttbs department}, \algo{LaTeX}{}{\ttbs address}, to
describe the institutional affiliation(s) of the author at the time of
publication, and the mail addresses at which he or she may be reached
for professional purposes\@. The \algo{LaTeX}{}{\ttbs email} gives a
single network address for the author\@. After the last
\algo{LaTeX}{}{authorinfo} environment, the
\algo{LaTeX}{}{\ttbs shortauthors} command gives a short string naming
the authors for headers and other short references---typically it is a
list of last names\@. Then, the command \algo{LaTeX}{}{\ttbs support}
may be used optionally to acknowledge grants that supported the
research reported in the article\@.
\apar{2-10}
The last section of the \algo{LaTeX}{}{articleinfo} environment is an
\algo{LaTeX}{}{editinfo} environment, giving the dates of submission of the original
article and each revision, and the dates on which an editorial
decision based on referee's opinions was reported to the contact
author for each revision, and finally the date on which the article
was published by placing it in the journal's public archives\@.
\apar{2-11}
Next comes a standard \LaTeX\ \algo{LaTeX}{}{abstract} environment,
containing a short abstract of the article\@.
\apar{2-12}
The largest section is the main text of the article, given in an
\algo{LaTeX}{}{articletext} environment\@. Sections 3--7 describe the
contents of the \algo{LaTeX}{}{articletext} environment\@.
\apar{2-13}
The final section is the article bibliography, given in an
\algo{LaTeX}{}{articlebib} environment\@. Section 8 describes the
contents of the \algo{LaTeX}{}{articlebib} environment\@.
%
\asection{3}{Sectional Units}
\apar{3-1}
After the abstract of an article, there may be some head matter not
contained in any section\@.  Other matter is divided into titled
sections, using the \algo{LaTeX}{}{\ttbs asection} command\@. Once
sectioning is introduced, all subsequent text falls into the section
associated with the most recent \algo{LaTeX}{}{\ttbs asection} command\@.
%
\asubsection{3.1}{Subsections}
\apar{3.1-1}
The text of a section\/ {\em may\/} be further partitioned into
subsections and subsubsections\@. A section or subsection is not
required to be partitioned, and preliminary text is allowed to precede
the first subsection of a section, or the first subsubsection of a
subsection\@. After the preliminary text, however, all further
material in a section (subsection) must be contained in a subsection
(subsubsection)\@. \LaTeX\ also provides paragraph and subparagraph
sections, using the \algo{LaTeX}{}{\ttbs paragraph} and
\algo{LaTeX}{}{\ttbs subparagraph} commands\@. These are sectional
units within subsubsections, and must not be confused with normal
textual paragraphs, which are separated in \LaTeX\ by blank lines or
\algo{LaTeX}{}{\ttbs par} commands. Paragraph and subparagraph
sections, in fact, contain paragraphs\@. The terminology is
unfortunate, but fixed in the \LaTeX\ definition\@. Each subparagraph
section must be contained in a paragraph section, and each paragraph
section must be contained in a subsubsection, or in the
body of a labelled subtext such as a proof (see Section 4)\@.
%
\asubsection{3.2}{Numbering of Sectional Units}
\apar{3.2-1}
The special \algo{LaTeX}{}{cjstruct} commands
\algo{LaTeX}{}{\ttbs asection}, \algo{LaTeX}{}{\ttbs asubsection}, and
\algo{LaTeX}{}{\ttbs asubsubsection} are used for sectional units,
instead of the corresponding \LaTeX\ commands
\algo{LaTeX}{}{\ttbs section}, \algo{LaTeX}{}{\ttbs subsection},
\algo{LaTeX}{}{\ttbs subsubsection}, \algo{LaTeX}{}{\ttbs aparagraph}, and
\algo{LaTeX}{}{\ttbs asubparagraph}\@. The ``{\tt a}'' stands for\/
{\em absolute\/}, since instead of using an automatically incremented
counter to determine the number, each of these new sectioning commands
has an extra argument preceding the heading that gives the identifying
hierarchical numbered tag for the ((sub)sub)section, in the style of\/
\algo{LaTeX}{}{\ttbs thesection}, \algo{LaTeX}{}{\ttbs thesubsection},
\algo{LaTeX}{}{\ttbs thesubsubsection}\@. Periods are used to separate
numbers at different hierarchical levels, except that a colon is used
in front of the paragraph section level\@.
\apar{3.2-2}
When appendixes are present, they are contained in the
\algo{LaTeX}{}{articletext} environment, and separated from the
remainder of the text by the standard \LaTeX\ macro
\algo{LaTeX}{}{\ttbs appendix}\@. Appendix sections are labelled A, B,
C, etc., and subsections are numbered in
the usual way\@.
%
\asubsection{3.3}{Paragraphs and Sentences}
\apar{3.3-1}
Text in a ((sub)sub)section is divided into one or more paragraphs\@.
These are normal textual paragraphs, {\em not\/} the titled
\algo{LaTeX}{}{\ttbs paragraph} sections allowed in certain \LaTeX\ 
styles\@. The usual \LaTeX\ command for a paragraph boundary is
denoted by a blank line, but articles in the {\em \the\journalstring\/} have
paragraphs beginning with the special command
\algo{LaTeX}{}{\ttbs apar}\@. \algo{LaTeX}{}{\ttbs apar} takes a
single argument numbering the paragraph unambigously for citation and
reference purposes\@. Paragraphs are numbered sequentially within the
smallest sectional units containing them\@. A paragraph reference is
given as a ((sub)sub)section number, followed by hyphen, followed by
the sequential number of the paragraph\@. Paragraphs in head matter
before the first section are labelled as
\algo{LaTeX}{}{Head-\schemaparam{n}}\@. Different layout styles may
or may not print the paragraph numbers, but they are always available
as landmarks for references in information processing software\@.
Blank lines may be included in \LaTeX\ source files at the discretion
of the copy editor, if they seem likely to improve output under
typical styles, but they have no official meaning as delimiters of
paragraphs or any other structures\@.
\apar{3.3-2}
Theorems, proofs, and similar subtexts are contained in paragraphs,
and may also contain paragraphs\@. In principle, very short subtexts
may be regarded as consisting of single paragraphs, but there is
little or no value in marking them\@. When a subtext contains two or
more paragraphs (this happens most often in proofs, occasionally in
footnotes), the paragraphs are numbered sequentially within the
subtext\@. Labels are constructed by taking the label of the subtext,
followed by a hyphen, followed by the sequential number of the
paragraph in the subtext\@. For example, the second paragraph in the
proof of Lemma 4 is labelled by \algo{LaTeX}{}{Lemma 4 Proof-2}\@.
\apar{3.3-3}
Paragraphs are divided into sentences\@. In normal \LaTeX\ source, 
sentences end in period ``{\tt .}'', question mark ``{\tt ?}'', 
exclamation point ``{\tt !}'', but not every instance of these 
punctuation marks ends a sentence\@. And, some sentences end with no 
punctuation, when the last part of the sentence is in some special 
environment that displays out of line, such as a displayed 
mathematical formula\@. For example, this sentence ends, not in a 
punctuation mark such as period, but with a display of the famous 
formula 
%
\begin{displaymath}
  e=mc^2
\end{displaymath}
\sentence
\apar{3.3-4}
\LaTeX\ is only concerned with determining whether extra space should
be added after a given punctuation mark, but {\em \the\journalstring\/}
articles may be more accessible through automated document retrieval
systems if sentences are marked unambiguously\@. So, {\em every\/}
sentence in an article ends with the command \algo{LaTeX}{}{\ttbs @}
followed by period, question mark, exclamation point, or with the
command \algo{LaTeX}{}{\ttbs sentence} when there is no terminal
punctuation\@. The original intention of \algo{LaTeX}{}{\ttbs @} was
to mark only those punctuation marks that would otherwise be taken by
\LaTeX\ {\em not\/} to end a sentence (rather, e.g., to be part of
abbreviations)\@. Our overuse of \algo{LaTeX}{}{\ttbs @} does not
affect \LaTeX's formatting, and it makes sentence boundaries
unambiguous\@. Does this work for question marks and exclamation
points, as well as for periods\@? It does\@!
\apar{3.3-5}
A {\em sentence\/} in a {\em \the\journalstring\/} article starts at the
beginning of a paragraph, or at the end of a previous sentence\@. The
sentence ends at the first subsequent occurrence of the
\algo{LaTeX}{}{\ttbs @} or \algo{LaTeX}{}{\ttbs sentence} command
where all intervening beginnings of environments and other brackets
have been matched\@. Thus, sentences and paragraphs may be nested
within sentences, but only when some environment intervenes\@.
\apar{3.3-6}
In principle, it would be nice to go deeper into sentence structure, 
and mark subjects, predicates, various kinds of phrases, etc\@. That 
is too large a task for the present journal staff, and is left to 
further research and development\@. For {\em \the\journalstring\/}
articles, no internal structure is imposed on sentences\@. 
%
\asection{4}{Theorems, Lemmas, Definitions, Figures, Tables, etc.}
\apar{4-1}

Several special sorts of subtexts may be identified in order to
introduce theorems and other relatively short special statements in a
text\@. Theorem-like subtexts are contained within paragraphs, which
themselves are parts of (sub(sub))sections\@. Theorem-like subtexts
contain one or more paragraphs (\algo{LaTeX}{}{\ttbs apar}), and they
may be divided into paragraph and subparagraph sections
(\algo{LaTeX}{}{\ttbs aparagraph} and
\algo{LaTeX}{}{\ttbs asubparagraph}), but they may {\em not\/} contain
(sub(sub))sections\@. The division into (sub)paragraph sections is
most likely to occur in a proof (see Section 4.1)\@. In this case, the
(sub)paragraphs are regarded as subdivisions of the labelled subtext,
not of the ((sub)sub)section containing it, and are numbered
accordingly\@. Theorem-like subtexts are not normally nested within
one another, but there may be unusual cases in which such
nesting occurs, such as a lemma within a proof\@.
%
\begin{alabsubtext}{Definition}{1}{Theorem-Like Things}
  \apar{Definition 1-1}
  Theorem-like things are short statements set off from surrounding text 
  for ease of reference\@. 
\end{alabsubtext}
%
\sentence
Theorem-like subtexts are marked by the \algo{LaTeX}{}{alabsubtext}
environment (absolutely numbered labelled subtext), which takes three
arguments: the type of subtext (Theorem, Lemma, etc.), the sequential
number of the subtext within its type, and a descriptive name (often
left empty) of the particular subtext\@.
\begin{alabsubtext}{Proposition}{1}{}
  \apar{Proposition 1-1}
  Labelled subtexts are not {\em required} to be named, but authors
  and copy editors are encouraged to propose mnemonic names whenever
  possible\@. When there is no name, the third argument to the {\tt
  alabsubtext} environment is empty\@.
\end{alabsubtext}
%
\sentence
\apar{4-2}
Figures, tables, and other floating subtexts are treated just as
theorem-like subtexts---the source format is responsible for marking
them properly, and the fact that they are often printed out of the
order given in the source file makes no difference, {\em except\/}
that it is not obvious where in the source text to place such a
subtext\@. In the source files for {\em \the\journalstring\/} articles, a
figure, table, or similar subtext is placed immediately after the
sentence containing the prime (usually the first) reference to it\@.
The normal \algo{LaTeX}{}{figure*} and \algo{LaTeX}{}{table*}
environments are used to define figures and tables, but captions are
defined with the special commands \algo{LaTeX}{}{\ttbs atabcap} and
\algo{LaTeX}{}{\ttbs afigcap}\@. These commands take two arguments,
the first of which is the sequential number of the figure or table,
the second of which is the caption text\@.
%
\apar{4-3}
Labelled displayed equations are produced by the \algo{LaTeX}{}{aequation}
environment, taking the equation number as the sole argument\@. See
Equations 1 and 2 for examples\@.
\begin{aequation}{1}
  formula+number=equation
\end{aequation}
\sentence
Equations may be numbered sequentially through the whole article, or
hierarchically within each sectional unit, as appropriate for
individual articles\@.
\begin{aequation}{2}
  numbering=global\vee hierarchical
\end{aequation}
\sentence
For arrays of labelled equations, use the standard
\algo{LaTeX}{}{\ttbs eqnarray*} command, and {\em begin\/} each line
with \algo{LaTeX}{}{\ttbs aequationnumber\{\schemaparam{n}\}} where
\algo{LaTeX}{}{\schemaparam{n}} is the number of the equation on that
line\@. For example, see Equations 3 and 4 below\@.
\begin{eqnarray*}
  \aequationnumber{3} y' & = & Av \\
  \aequationnumber{4} v' & = & -By
\end{eqnarray*}
\asubsection{4.1}{Proofs and Such}
\apar{4.1-1}
Certain subtexts are linked in crucial ways to theorem-like objects
(Definition~1)\@. For example, proofs are linked to theorems and
lemmas\@.
%
\begin{alabsubtext}{Theorem}{1}{Rule of Confusion} 
  \apar{Theorem 1-1}
  If the author does not mark carefully the connection between theorem 
  and proof, then the reader will be confused\@.
\end{alabsubtext}
\sentence
%
Proofs must follow the theorems to which they are linked, but not 
always immediately\@. It is sometimes convenient to delay a proof until 
some additional definitions and lemmas have been given\@. In order to 
prevent terrible confusion, the label given to the theorem (or 
theorem-like thing) to which the proof is linked is required as an 
argument to proof and similar environments\@. 
%
\begin{alabsubtext}{Proof of Theorem}{1}{Rule of Confusion}
  \apar{Proof of Theorem 1-1}
  What if this ``proof'' were unlabelled\@?  Imagine the confusion\@.
  If this proof were long or nested with other subtexts, the end mark
  might be important as well\@.
\end{alabsubtext}
\markendlst{Proof of Theorem 1}
\sentence
%

When a labelled subtext is long, or is nested with other subtexts, the
end may be marked by
\algo{LaTeX}{}{\ttbs markendlst\{\schemaparam{label}\}} for clarity\@.
In principle, any labelled subtext may be so marked, but the technique
is most common with proofs\@. The label should match the one at the
head
of the subtext\@.
%
\asubsection{4.2}{Itemizations, Enumerations, Footnotes}
\apar{4.2-1}
In order to establish absolute item numbers within enumerations, all
uses of the \algo{LaTeX}{}{\ttbs item} command within
\algo{LaTeX}{}{enumerate} environments must have the optional
{\em label\/} argument\@. At the discretion of the editors, authors may
be given wide discretion in choosing styles for the labels in
enumerations\@. Itemizations have even wider discretion, and the
optional argument remains optional\@.
\apar{4.2-2}
Similarly, uses of the \algo{LaTeX}{}{\ttbs footnote},
\algo{LaTeX}{}{\ttbs footnotemark}, and
\algo{LaTeX}{}{\ttbs footnotetext} commands to produce footnotes must
carry the optional {\em num\/} argument\@. Footnotes are numbered
sequentially through the whole article, starting with 1\@. The editors
should discourage footnotes as much as possible\footnote[1]{But, there
may be occasional legitimate uses for them\@.}\@. It must be
understood that different \LaTeX\ styles may move footnotes to
different places\@.
%
\asection{5}{Mathematical Formulae}
\apar{5-1}
It is premature to impose strict standards on mathematical formulae\@.
In the long term, all formulae should be structured so that they may
be parsed easily and exported to mathematical software such as Maple,
Macsyma, and Mathematica, and so that information retrieval systems
may search for particular formulae as well as they do for particular
words and phrases\@. Until such standards are defined for structuring
mathematical formulae, the clarity of formulae depends on the taste of
the author and particularly the copy editor\@. The basic idea is to let
each mathematical concept in a formula be represented by a
syntactically well-formed piece of \LaTeX\@. Whenever several symbols
are grouped together to represent a single concept, that grouping
should be embedded in a macro definition\@. For example, in the formula
\[
\setof{\tuple{x,y,z}}{x^2+y^2=z^2}
\]
it is sensible to define a macro \algo{LaTeX}{}{\ttbs setof} by
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs newcommand\{\ttbs setof\}[2]\{\ttbs\{\#1\ttbs :|\ttbs :\#2\ttbs\}\}
  \end{algorithm}
\end{quote}
and a macro \algo{LaTeX}{}{\ttbs tuple} by
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs newcommand\{\ttbs tuple\}[1]\{\ttbs langle \#1\ttbs rangle\}
  \end{algorithm}
\end{quote}
so that the whole formula may be given as
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs setof\{\ttbs tuple\{x,y,z\}\}\{x\ttct 2\ttpl y\ttct 2=z\ttct 2\}
  \end{algorithm}
\end{quote}
\sentence
In general \LaTeX\ spacing macros, such as \algo{LaTeX}{}{\ttbs :}, should not
be used directly in formulae\@. Rather, they should be incorporated
into other macros defining meaningful mathematical concepts\@.
\apar{5-2}
Similarly, in the formula
\[
\car(\cons(x,y))=x
\]
it is sensible to define macros \algo{LaTeX}{}{\ttbs car} and
\algo{LaTeX}{}{\ttbs cons} so that the whole formula may be given as
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs car(\ttbs cons(x,y))=x
  \end{algorithm}
\end{quote}
\sentence
The natural way to define such macros is
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs newcommand\{\ttbs car\}%
      \{\ttbs mathord\{\ttbs mbox\{\ttbs it car\ttbs /\}\}\}\\
    \ttbs newcommand\{\ttbs cons\}%
      \{\ttbs mathord\{\ttbs mbox\{\ttbs it cons\ttbs /\}\}\}
  \end{algorithm}
\end{quote}
\sentence
Notice that we needed the \algo{LaTeX}{}{\ttbs mbox} macro to format
{\em car} and {\em cons\/} as words, rather than as products of
individual letters, and then we needed the
\algo{LaTeX}{}{\ttbs mathord} macro to give them the status of
ordinary symbols in a formula\@. There are two problems with the
definitions of \algo{LaTeX}{}{\ttbs car} and
\algo{LaTeX}{}{\ttbs cons} above, one of them typographical and one of
them structural\@. The typographical problem is that there are four
different sizes in which symbols may be set in math mode, depending on
context (display, text, script, and scriptscript sizes)\@. The
structural problem is that the definitions hide the useful information
that \(\car\) and \(\cons\) are marked with italics because they are
both functions in the Lisp programming language\@. In order to deal
with these problems, the \algo{LaTeX}{}{cjstruct} style provides a
special command, \algo{LaTeX}{}{\ttbs mathstyleclass}, to associate
type styles with particular classes of mathematical objects\@. To
introduce such a type, say
%
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs mathstyleclass\{\schemaparam{name}\}\{%
      \schemaparam{math flavor}\}\{\schemaparam{type style}\}
  \end{algorithm}
\end{quote}
%
where \algo{LaTeX}{}{\schemaparam{name}} is the name that you choose for
the class of objects, \algo{LaTeX}{}{\schemaparam{math flavor}} is the
appropriate math atom \algo{LaTeX}{}{\ttbs mathord},
\algo{LaTeX}{}{\ttbs mathop}, \algo{LaTeX}{}{\ttbs mathbin}, etc., and
\algo{LaTeX}{}{\schemaparam{type style}} is a type style command
\algo{LaTeX}{}{\ttbs rm}, \algo{LaTeX}{}{\ttbs it}, etc. (in this case
\algo{LaTeX}{}{\ttbs it} is appropriate, and \algo{LaTeX}{}{\ttbs em}
is not)\@. So, \algo{LaTeX}{}{\ttbs car} and \algo{LaTeX}{}{\ttbs cons}
may be redefined as
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs mathstyleclass\{\ttbs lispfunction\}%
      \{\ttbs mathord\}\{\ttbs it\}\\
    \ttbs newcommand\{\ttbs car\}\{\ttbs lispfunction\{car\}\}\\
    \ttbs newcommand\{\ttbs cons\}\{\ttbs lispfunction\{cons\}\}
  \end{algorithm}
\end{quote}
\sentence
Simliarly, you may define a sample ordinary object class to be
displayed in bold type style, and a class of binary relations to be
displayed in italics:
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs mathstyleclass\{\ttbs sampord\}%
      \{\ttbs mathord\}\{\ttbs bf\}\\
    \ttbs mathstyleclass\{\ttbs samprel\}%
      \{\ttbs mathrel\}\{\ttbs it\}
  \end{algorithm}
\end{quote}
\sentence
Then, the two formulae
\[
\sampord{online}_{\sampord{sub}_{\sampord{sub}}}%
  ^{\sampord{sup}_{\sampord{sub}}}
\]
and
\[
\sampord{before}(\sampord{left})\samprel{middle}\sampord{right}(\sampord{more})
\]
may be defined in \LaTeX\ source as
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs sampord\{online\}\ttus \{\ttbs sampord\{sub\}\ttus%
      \{\ttbs sampord\{sub\}\}\}\%\\
    \algindent\ttct \{\ttbs sampord\{sup\}\ttus \{\ttbs sampord\{sub\}\}\}
  \end{algorithm}
\end{quote}
and
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs sampord\{before\}(\ttbs sampord\{left\})%
      \ttbs samprel\{middle\}\%\\
    \algindent\ttbs sampord\{right\}(\ttbs sampord\{more\})
  \end{algorithm}
\end{quote}
\sentence
Type styles that are peculiar to math mode, such as the AMS styles,
should be declared directly with \algo{LaTeX}{}{\ttbs newcommand}\@. For
example, the formula
\[
\universe{N}\subseteq\universe{Z}
\]
should be presented as
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs universe\{N\}\ttbs subseteq\ttbs universe\{Z\}
  \end{algorithm}
\end{quote}
after providing the definitions
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs ifltwoe\ttbs else%
      \ttbs newcommand\{\ttbs mathbb\}\{\ttbs Bbb\}\ttbs fi\\
    \%\\
    \ttbs newcommand\{\ttbs universe\}[1]\{\ttbs mathbb\{\#1\}\}
  \end{algorithm}
\end{quote}
\sentence
\apar{5-3}
Macro definitions should {\em not\/} be used to reduce the typing of
repeated composite subformulae\@. For example, in the formula
\[
(t+u+v+w+x+y+z)/(t+u+v+w+x+y+z+1)
\]
it is not sensible to define a macro {\tt \ttbs s} by
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs newcommand\{\ttbs s\}%
      \{t\ttpl u\ttpl v\ttpl w\ttpl x\ttpl y\ttpl z\}
  \end{algorithm}
\end{quote}
\sentence
Rather, the formula should be set as
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    (t\ttpl u\ttpl v\ttpl w\ttpl x\ttpl y\ttpl z)/%
      (t\ttpl u\ttpl v\ttpl w\ttpl x\ttpl y\ttpl z\ttpl 1)
  \end{algorithm}
\end{quote}
so that the structure of the subformula \(t+u+w+x+y+z\) is apparent\@.
When repeated portions of formulae are important enough to be noted
formally, they should be treated by definitions in the text, visible
to the reader, rather than by invisible macro definitions\@.
\apar{5-4} Mathematical formulae, however structured internally,
should be set off by the brackets \algo{LaTeX}{}{\ttbs (} and
\algo{LaTeX}{}{\ttbs )} for in-text formulae, \algo{LaTeX}{}{\ttbs [}
and \algo{LaTeX}{}{\ttbs ]} for displayed formulae, rather than the
alternate forms \algo{LaTeX}{}{\ttds} and
\algo{LaTeX}{}{\ttds\ttds}\@. The matched brackets allow for more
robust parsing\@.  Since page economy is not a major issue for an
electronic journal, but robustness and flexibility are crucial, prefer
displayed math when there is any doubt which form to use\@.
\apar{5-5}
The \AMS-\LaTeX\ resources are extremely useful in mathematical
formulae, but they sometimes interact badly with other \LaTeX\
features\@. In particular, \algo{LaTeX}{}{amstex.sty} changes the
character code of the at sign ``@'' to \algo{LaTeX}{}{13} (active)
instead of the usual \algo{LaTeX}{}{11} (other), which is troublesome
for other uses of this sign in text\@. The way in which the
\algo{LaTeX}{}{\ttbs usestyleresource} loads {\tt amstex.sty} insures
that @ is redefined to category \algo{LaTeX}{}{13}\@. In order to use
\AMS-\LaTeX\ notation represented by the active @, use the
\algo{LaTeX}{}{\ttbs catcode} command to redefine the category code of
@ to active, and then again to other\@. Uses of the reassigned @
should always be hidden in a macro definition named by a meaningful
mathematical concept\@. For example, with the macro definition
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs catcode`\ttbs \ttat =13\\
    \ttbs newcommand\{\ttbs embed\}[1]\{\%\\
    \algindent\ttat >>\{\#1\}>\%\\
    \}\\
    \ttbs catcode`\ttbs \ttat =12
  \end{algorithm}
\end{quote}
the following representation
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs pi\ttbs embed\{\ttbs universe\{N\}\}3
  \end{algorithm}
\end{quote}
produces the formatted equation
\[
  \pi\embed{\universe{N}}3
\]
\sentence
It is essential that the \algo{LaTeX}{}{\ttbs catcode} commands go
outside the definition, since they must be expanded at define time in
order to affect the way that the @s are parsed in the definition\@.
%
\asection{6}{Diagrams and Pictures}
\apar{6-1}
Pictures may be provided either in \LaTeX\ \algo{LaTeX}{}{picture}
environments, or in separate files of encapsulated PostScript\@. All
pictures must be included in floating bodies such as figures and
tables\@. A sample picture in encapsulated PostScript is shown in
Figure~1\@.
\begin{figure*}
\placeeps{343pt}{181pt}{c9200f1}
%
\afigcap{1}{Funny Picture of a Spring}
%
\end{figure*}%
\sentence
Encapsulated PostScript files are included by using the {\tt \ttbs
placeeps} command, in the form
\begin{quote}
  \begin{algorithm}{LaTeX}{}
  \mbox{{\tt \ttbs placeeps\{}\schemaparam{width}%
    {\tt \}\{}\schemaparam{height}{\tt \}}\{\schemaparam{file name}{\tt \}}}
  \end{algorithm}
\end{quote}
\sentence
The width and height values are those in the encapsulated Postscript
file\@. By providing them as parameters in the \LaTeX\ source, we can
make a box of the appropriate size for cut and paste when readers do
not have encapsulated PostScript support\@. The copy editor should
scale each encapsulated PostScript picture for a conventional 8 1/2 by
11 inch page\@. The bounding box should be sized to the actual
picture, not expanded to provide margins\@. Margins should be provided
at the \LaTeX\ level of processing\@.
\apar{6-2}
File names for encapsulated PostScript pictures are in the form
\begin{quote}
  {\tt c}\(yynnoii\){\tt .eps}
\end{quote}
where \(yy\) is the last two digits of the volume in which the article
appears (normally the year of publication), \(nn\) is a two-digit
rendering of the article number, \(o\) is {\tt t} for a
table, {\tt f} for a figure, \(ii\) is a one- or two-digit
rendering of the number of the table or figure\@. Each encapsulated
PostScript file starts off with a block of comments used by {\em eps}
processors, and ending in \algo{LaTeX}{}{\%\%EndComments}\@.
Immediately after that block, each encapsulated PostScript file used
in an article contains a repetition of the identifying comment at the
head of the \LaTeX\ source file for the article, and a separate
comment line identifying the figure or table:
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \% The Chicago Journal of Theoretical Computer Science, \schemaparam{article id}\\
    \% \schemaparam{float identifier}
  \end{algorithm}
\end{quote}
\sentence
The copy editor will also add a small identifying tag to be printed at
some unobtrusive location in the picture\@.
%
\asection{7}{Foreign Language and Algorithm Markup}
\apar{7-1}
When a subtext of an article is expressed in a language other than
English, it is useful to mark it\@. \mbox{\tt cjstruct.sty} does not format
foreign language text any differently from English, but other
processors, such as information retrieval engines and audio
translators, may need this marking\@.
%
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs frnlang\{\schemaparam{language}%
      \}\{\schemaparam{text}\}
  \end{algorithm}
\end{quote}
%
marks a relatively short subtext (typically a word or phrase) as
belonging to a given foreign language:
\frnlang{French}{peut-\^{e}tre que ce sera la langue
fran\c{c}aise}\@.
%
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs begin\{foreignlanguage\}\{\schemaparam{language}%
    \}\\
  \algindent\schemaparam{text}\\
  \ttbs end\{foreignlanguage\}
  \end{algorithm}
\end{quote}
%
marks a longer subtext (typically one or more sentences) in the same
way\@. For example, this famous ancient poem should be marked as
German:
%
\begin{foreignlanguage}{German}
  \begin{verse}
    Es brillig war\@. Die schlichte Toven\\
    \verseindent Wirrten und wimmelten in Waben;\\
    Und aller-m\"{u}msiget Burggoven\\
    \verseindent Die mohmen R\"{a}th' ausgraben\@.
  \end{verse}
\end{foreignlanguage}
%
\sentence
We need to develop a standard list of names of languages\@. If the
{\em Babel\/} system provides such a list soon, we might adopt it\@.
Otherwise, the most natural unpunctuated English name for the given
foreign language is probably best (French, German, Galician, etc.)\@.
\apar{7-2}
Similarly, programs, algorithms, and fragments of programs and
algorithms are marked in the following forms\@.
%
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs algo\{\schemaparam{language}\}%
      \{\schemaparam{program id}\}%
      \{\schemaparam{program text}\}
  \end{algorithm}
\end{quote}
%
marks a relatively short algorithm fragment, such as
\algo{Pascal}{}{\(\idr{posint}\assigned\idr{posint}-1\)}\@.
%
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs begin\{algorithm\}\{\schemaparam{language}%
      \}\{\schemaparam{program id}\}\\
    \algindent\schemaparam{program text}\\
    \ttbs end\{algorithm\}
  \end{algorithm}
\end{quote}
%
marks a longer algorithm or fragment, such as
%
\begin{quote}
  \begin{algorithm}{Pascal}{}
    \comment{/* Decrement \(\idr{posint}\) until it hits \(0\) */}\\
    \schlabel{loop:}%
      \algindent\kwd{while} \(\idr{posint}>0\) \kwd{do}
      \kwd{begin}\\
    \schlabel{decrement:}%
      \algindent\algindent\(\idr{posint}\assigned%
      \idr{posint}-1\)\\
    \algindent\(\kwd{end}\)
  \end{algorithm}
\end{quote}
%
\sentence
In both cases the \algo{LaTeX}{}{\schemaparam{program id}} may
optionally be used to indicate how the given fragment connects to
other fragments to create a complete program\@. The syntax of
\algo{LaTeX}{}{\schemaparam{program id}} is left to a future study of literate
programming techniques\@. This argument has no impact on layout\@.
\apar{7-3}
Within algorithms, the forms
%
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs idr\{\schemaparam{identifier}\}\\
    \ttbs kwd\{\schemaparam{keyword}\}\\
    \ttbs comment\{\schemaparam{comment text}\}\\
    \ttbs schlabel\{\schemaparam{schematic label}\}\\
    \ttbs schemaparam\{\schemaparam{schematic parameter}\}
  \end{algorithm}
\end{quote}
%
are used to mark program identifiers, keywords, comments, labels on
lines, and schematic parameters standing for unspecified program
fragments\@. The first four are all illustrated in the examples
above\@. The \algo{Pascal}{}{\ttbs schemaparam} is typically used to
present program forms, such as the form of a
\algo{Pascal}{}{\kwd{while}}-loop:
%
\begin{quote}
  \begin{algorithm}{Pascal}{}
    \kwd{while} \(\schemaparam{condition}\) \kwd{do}\\ 
    \algindent\(\schemaparam{body}\)
  \end{algorithm}
\end{quote}
%
\sentence
The copy editors are encouraged to redefine the program markup macros
to provide sensible layout in individual papers\@.
%
\asection{8}{\LaTeX\ Source Restrictions}
\apar{8-1}
The prime considerations in the format restrictions on the \LaTeX\
source for {\em \the\journalstring\/} articles are 
%
\begin{itemize}
\item The source file must display, as much as possible, the
  meaningful textual structure of the article, in a form convenient
  for automatic processing\@. 
\item The source file must be displayable under the widest possible 
  variety of typographical styles and on the widest possible variety 
  of output devices\@. 
\item Reasonable well-formed fragments of the source text must be 
  easy to incorporate as quotes into other \LaTeX\ documents, 
  without changing their essential textual form. 
\end{itemize}
\sentence
Based on these considerations, a number of \TeX\ and \LaTeX\ commands 
and parameters are discouraged or prohibited: 
%
\begin{itemize}
\item Reference to absolute sizes is prohibited\@. The absolute length
  units \algo{LaTeX}{}{cm}, \algo{LaTeX}{}{mm}, and \algo{LaTeX}{}{in}
  are prohibited---relative units \algo{LaTeX}{}{em} and
  \algo{LaTeX}{}{ex} are used instead, and commands
  \algo{LaTeX}{}{\ttbs ,}, \algo{LaTeX}{}{\ttbs ;}, etc. that add
  space relative to the type size in use\@. Similarly, the absolute
  type size units \algo{LaTeX}{}{pc} and \algo{LaTeX}{}{pt} are
  prohibited---commands such as \algo{LaTeX}{}{\ttbs tiny},
  \algo{LaTeX}{}{\ttbs normalsize}, \algo{LaTeX}{}{\ttbs Huge}, etc.,
  referring to relative sizes, are used instead\@. Direct reference
  even to relative sizes is discouraged\@. Rather, size manipulations
  should normally appear in the definitions of macros that indicate
  the {\em meaning\/} carried by the size change\@.
\item Reference to specific font designs is prohibited\@. In
  particular, the command \algo{LaTeX}{}{\ttbs newfont} is
  prohibited\@. The type styles \algo{LaTeX}{}{\ttbs rm},
  \algo{LaTeX}{}{\ttbs bf}, \algo{LaTeX}{}{\ttbs it},
  \algo{LaTeX}{}{\ttbs sl}, \algo{LaTeX}{}{\ttbs sf},
  \algo{LaTeX}{}{\ttbs sc}, and \algo{LaTeX}{}{\ttbs tt}, which are
  available in a variety of different font families, are used
  instead\@. Direct reference even to these type styles and sizes is
  discouraged in the text of an article\@. Rather, type styles and
  sizes should be chosen through commands (specially defined for the
  article when truly necessary) that indicate the {\em meaning\/}
  carried by the type size and style, such as \algo{LaTeX}{}{\ttbs em}
  for emphasis\@. The \algo{LaTeX}{}{\ttbs verb} command is
  prohibited\@. Direct use of the \algo{LaTeX}{}{\ttbs char} command
  is discouraged\@. When it is essential to produce an unusual
  character, such as the backslash in the \algo{LaTeX}{}{\ttbs tt}
  font (\algo{LaTeX}{}{\ttbs}), the \algo{LaTeX}{}{\ttbs char} command
  should be hidden in a macro definition\@.
\item Reference to information external to the article source file is
  prohibited\@. For example, the commands
  \algo{LaTeX}{}{\ttbs input}, \algo{LaTeX}{}{\ttbs include},
  \algo{LaTeX}{}{\ttbs typein}, and \algo{LaTeX}{}{\ttbs today} are
  prohibited.
\item Commands that produce information or change the computing
  environment for purposes other than formatting of the article text
  are prohibited\@.  For example, \algo{LaTeX}{}{\ttbs batchmode} and
  \algo{LaTeX}{}{\ttbs write} are prohibited\@.  Use of
  \algo{LaTeX}{}{\ttbs typeout} is strongly discouraged---exceptions
  may be made if a difficult text seems to require advice about how to
  customize its format (but {\em not\/} about the content of the text)
  to be printed during the execution of \LaTeX\@.
\item Commands intended to place text outside the normal formatting
  boundaries are forbidden, in particular
  \algo{LaTeX}{}{\ttbs marginpar}, \algo{LaTeX}{}{\ttbs markboth},
  \algo{LaTeX}{}{\ttbs markright},
  \algo{LaTeX}{}{\ttbs normalmarginpar}, and
  \algo{LaTeX}{}{\ttbs reversemarginpar}\@.
\item Commands that determine or depend on the details of page layout
  are prohibited, including \algo{LaTeX}{}{\ttbs advancepageno},
  \algo{LaTeX}{}{\ttbs cleardoublepage},
  \algo{LaTeX}{}{\ttbs clearpage}, \algo{LaTeX}{}{\ttbs flushbottom},
  \algo{LaTeX}{}{\ttbs multicolumn}, \algo{LaTeX}{}{\ttbs newpage},
  \algo{LaTeX}{}{\ttbs onecolumn}, \algo{LaTeX}{}{\ttbs pageref},
  \algo{LaTeX}{}{\ttbs pagestyle}, \algo{LaTeX}{}{\ttbs raggedbottom},
  \algo{LaTeX}{}{\ttbs thepage}, \algo{LaTeX}{}{\ttbs thispagestyle},
  and \algo{LaTeX}{}{\ttbs twocolumn}\@. Commands that guide \LaTeX\ 
  in laying out pages, such as \algo{LaTeX}{}{\ttbs pagebreak},
  \algo{LaTeX}{}{\ttbs nopagebreak}, and
  \algo{LaTeX}{}{\ttbs samepage} are discouraged\@.
\item Calculation of text or parameters based on global considerations
  or distant portions of the text is prohibited\@.  This includes most
  uses of \algo{LaTeX}{}{\ttbs addtocounter},
  \algo{LaTeX}{}{\ttbs addtolength}, \algo{LaTeX}{}{\ttbs label},
  \algo{LaTeX}{}{\ttbs newcounter}, \algo{LaTeX}{}{\ttbs newlength},
  \algo{LaTeX}{}{\ttbs pageref}, \algo{LaTeX}{}{\ttbs ref},
  \algo{LaTeX}{}{\ttbs refstepcounter}, \algo{LaTeX}{}{\ttbs setcounter},
  \algo{LaTeX}{}{\ttbs setlength}, \algo{LaTeX}{}{\ttbs settowidth},
  \algo{LaTeX}{}{\ttbs usecounter}, and \algo{LaTeX}{}{\ttbs value}\@.
  Legitimate uses of these commands must be carefully localized,
  typically within the definition of a locally defined command\@.
  Commands that number their items, such as the section commands
  \algo{LaTeX}{}{\ttbs section}, etc., and the
  \algo{LaTeX}{}{theorem}-like environments are prohibited: the
  \algo{LaTeX}{}{cjstruct} commands \algo{LaTeX}{}{\ttbs asection}
  etc., and the environment \algo{LaTeX}{}{alabsubtext}, are used
  instead\@. Commands to compile global information about the contents
  of the article are prohibited (many of these services are provided
  already by {\tt cjstruct.sty}): \algo{LaTeX}{}{\ttbs listoffigures},
  \algo{LaTeX}{}{\ttbs listoftables},
  \algo{LaTeX}{}{\ttbs makeglossary}, \algo{LaTeX}{}{\ttbs makeindex},
  \algo{LaTeX}{}{\ttbs maketitle}, \algo{LaTeX}{}{\ttbs makeindex},
  and \algo{LaTeX}{}{\ttbs tableofcontents}\@.
\end{itemize}
\sentence 
Commented blank lines should be used to make natural breakpoints in
the \LaTeX\ source for improved readability\@.
%
\asection{9}{Bibliographies and Citations}
\apar{9-1}
Bibliographies for {\em \the\journalstring\/} articles are expressed as
\BIBTeX\ files\@. All of the material in the \LaTeX\ source file
relating to bibliography is contained in an \algo{LaTeX}{}{articlebib}
environment, occurring at the end of the source file, after the
\algo{LaTeX}{}{articletext} environment\@. The name of the
bibliography file for an article is
\begin{quote}
  \mbox{{\tt cj}\(yy\){\tt -}\(nn\){\tt .bib}}
\end{quote}
where \(yy\) is the last two digits of the volume (normally the year)
of publication and \(nn\) is a two-digit presentation of the article
number\@. The {\tt *.bib} file begins with a comment identifying the
article, and a separate comment line stating that this is the
bibliography:
\begin{quote}
  \begin{algorithm}{BIBTeX}{}
    \tt \% The Chicago Journal of Computer Science, %
      \schemaparam{article id}\\
    \% Bibliography
  \end{algorithm}
\end{quote}
\sentence
After the comment comes a preamble declaration identifying the article
in a way that will carry over in normal printed versions:
\begin{quote}
  \begin{algorithm}{BIBTeX}{}
    \ttat string\{articleid="\{\ttbs section*\{\} %
      \{\ttbs bf References for CJTCS\\
    \algindent Volume \schemaparam{year}, Article %
      \schemaparam{article number}\}\}"\\
    \}\\ \\
    \ttat preamble\{articleid\}
  \end{algorithm}
\end{quote}
\sentence
Each entry in the bibliography is given a key of the form
\algo{BIBTeX}{}{cj\schemaparam{year}-\schemaparam{number}-\schemaparam{i}},
where \algo{BIBTeX}{}{\schemaparam{year}} is the last two digits of the
year, \algo{BIBTeX}{}{\schemaparam{number}} is a two-digit presentation of
the article number, and \algo{BIBTeX}{}{\schemaparam{i}} is the
sequential number of the item in the bibliography\@.
\apar{9-2}
In the \LaTeX\ source file for an article, the bibliography is invoked
in the form:
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs bibliographystyle\{\ttbs the\ttbs rbibstyle\}\\
    \ttbs bibliography\{cj\schemaparam{year}-\schemaparam{number}\}\\
    \schemaparam{optional nocites}
  \end{algorithm}
\end{quote}
\sentence
Keys of all bibliographic items {\em not\/} mentioned in specific
citations are mentioned in \algo{LaTeX}{}{\ttbs nocite} commands here\@.
\apar{9-3}
Citations in the article body are all given in the form
\algo{LaTeX}{}{\ttbs cite\{\schemaparam{key}\}\@}.
%
\appendix
%
\asection{A}{Escapes for Future Modifications}
\apar{Appendix A-1}
To ease the backward compatibily problems in future versions of
{\tt cjstruct.sty}, there are escapes that are defined to merely print
their contents\@. When these escapes are redefined in later
versions,they will at least provide reasonable results in the old version\@.
%
\asubsection{A.1}{Hypertextual Links}
\apar{Appendix A.1-1}
The most likely change to the journal format in the near future is the
addition of some sort of hypertextual links, such as the URLs in
HTML\@. Two sorts of link markups are provided\@:
%
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs htlink\{\schemaparam{type}\}\{%
      \schemaparam{link}\}\{\schemaparam{anchor text}\}
  \end{algorithm}
\end{quote}
%
attaches a link to a
\htlink{anchored link}{thing to link to}{short subtext}
(typically a word or phrase in current HTML usage)\@.
%
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs begin\{hytxtlink\}\{\schemaparam{type}\}\{%
      \schemaparam{link}\}\\
    \algindent\schemaparam{anchor text}\\
    \ttbs end\{hytxtlink\}
  \end{algorithm}
\end{quote}
%
\begin{hytxtlink}{anchored link}{thing to link to}
  attaches a link to a longer subtext contained in an environment\@.
\end{hytxtlink}
%
\asubsection{A.2}{General Escape Mechanism}
\apar{Appendix A.2-1}
Other additions to the markup language are unpredictable\@. So, we
provide two general-purpose escapes, analogous to the two
hypertextual escapes\@:
%
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs ftrmkp\{\schemaparam{type}\}\{\schemaparam{marked text}\}
  \end{algorithm}
\end{quote}
%
attaches markup information to a
\ftrmkp{anchored link}{short subtext} (probably a word or
phrase, perhaps a punctuation)\@.
%
\begin{quote}
  \begin{algorithm}{LaTeX}{}
    \ttbs begin\{futuremarkup\}\{\schemaparam{type}\}\\
    \algindent\schemaparam{marked text}\\
    \ttbs end\{futuremarkup\}
  \end{algorithm}
\end{quote}
%
\begin{futuremarkup}{anchored link}
  attaches a mark to a longer subtext contained in an environment\@.
\end{futuremarkup}
%
\asubsubsection{A.2.1}{Pointless Subsubsection}
\apar{Appendix A.2.1-1}
This is a sample of a pointless subsubsection in an appendix\@.
%
\aparagraph{A.2.1:1}{Pointless Paragraph Section}
\apar{Appendix A.2.1.1:1-1}
This is a sample of a pointless paragraph section in an appendix\@.
%
\asubparagraph{A.2.1:1.1}{Pointless Subparagraph Section}
\apar{Appendix A.2.1:1.1-1}
This is a sample of a pointless subparagraph section in an appendix\@.
%
\end{articletext}
%
\begin{articlebib}
%
\bibliographystyle{\the\rbibstyle}
\bibliography{cj92-00}
\nocite{cj92-00-1}
\nocite{cj92-00-2}
\nocite{cj92-00-4}
%
\end{articlebib}
%
\end{document}
