%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%         STRUCTURAL DEFINITIONS FOR THE CHICAGO JOURNAL STYLE
%
%                          (CJstruct)
%
% File name: cjstruct.sty, cjstruct.cls
%
% Version: 1.1, released 4 April 1995
%
% Author: Michael J. O'Donnell
%
% The University of Chicago
% Department of Computer Science
% Ryerson Hall, 1100 E. 57th St.
% Chicago, IL 60637 USA
%
% (312) 702-1269
%
% odonnell@cs.uchicago.edu
%
% *******************************************************************
% *                                                                 *
% *     PLEASE REPORT PROBLEMS TO cjbugs@cs.uchicago.edu            *
% *                                                                 *
% *******************************************************************
%
% With testing and improvements by Mitchell Marks,
% helpful critique by Donald A. Ziff,
% suggestions by Joseph Y. Halpern, Mark Hoover, Stuart A. Kurtz,
% V. T. Raman, Manuel Chakravarty.
%
% COPYRIGHT held by Michael J. O'Donnell, who grants permission to use,
% copy, redistribute, and modify CJstruct freely under the terms of
% the GNU Emacs General Public License (see e.g. the GNU Emacs Manual,
% Richard Stallman, 1985). Essentially, you may use CJstruct however you
% wish, as long as you acknowledge the authorship and copyright, and
% pass on with every copy of CJstruct or derivative work the full
% license granted to you.
%
% The author requests that you avoid using the file names cjstruct.sty,
% cjlook.sty, cjlook.cls, cjstruct.cls, cjropts.tex, cjrdefs.tex, and the
% various names defined in CJstruct in other software related to TeX,
% and in any other context where such reuse of names might lead to
% confusion. Redefinition of macros and other names in order to produce
% customized displays of articles written in the CJstruct style is
% specifically allowed and encouraged---only reuse that might confuse
% other users is to be avoided.
%
% Initial version: 6 May 1992
% Last revised: 4 April 1995
%
% Description: The LaTeX commands in this file are intended to be used
% by latex under the name cjstruct.sty, and by latex2e under the name
% cjstruct.cls. They allow articles published online in the Chicago
% Journal of Theoretical Computer Science, and similar journals such as
% the Journal of Functional and Logic Programming, to represent the logical
% structure of the article text, while leaving to the reader the power
% to determine stylistic issues in the layout. cjstruct.sty by itself
% does not define a layout: a normal *.sty or *.cls file, selectable
% by the reader, is loaded by cjstruct.sty. A default *.sty/*.cls file
% is specified in the article source, article.sty (article.cls) is used
% as a secondary default. Or, you may specify any other *.sty or *.cls file
% that you like, as long as it produces a faithful representation of the
% essential meaning and literary and mathematical (as opposed to
% typographical) expression in the article.
%
% cjstruct.sty/cls relies only on macros defined in latex.tex, or used
% there and required of all style files. So, it should be compatible
% with any LaTeX style. It has been tested with cjlook.sty,
% article.sty, and report.sty, and many widely used variants such as
% 2up.
%
% The Chicago Journal of Theoretical Computer Science is a journal of
% peer-reviewed research published by MIT Press in LaTeX source form
% on the InterNet.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\def\cjversion{1.1}
\def\cjreldate{1995/04/04}
\typeout{CJstruct version \cjversion, \cjreldate}
%
% \@emptycomstring and \@emptydefstring serve as constants for
% comparison purposes.
%
\newcommand{\@emptycomstring}{}
%
\def\@emptydefstring{}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%          DECLARATIONS OF CUSTOMIZATION PARAMETER REGISTERS
%
                  % \rstyle is a token string describing a LaTeX style
                  % set by the reader in cjropts.tex.
                  %
                  % \rstyle is declared, and its default is set, in each
                  % article.
%
\newtoks\roptions % \roptions is a token string describing LaTeX
                  % options set by the reader in cjropts.tex.
                  %
\roptions={}      % The default for \roptions is empty.
%
\newtoks\rbibstyle
                  % \rbibstyle is a token string describing a BibTeX
                  % style set by the reader in cjropts.tex
                  %
\rbibstyle={alpha}
                  % The default for \rbibstyle is alpha.
%
\newif\ifinfo     % \ifinfo controls printing of a preface with
                  % information about the article and its authors.
                  %
\infofalse        % The default for \ifinfo is false.
%
\newif\ifabstractonly
                  % \ifabstractonly, when true, stops formatting after
                  % the abstract.
                  %
\abstractonlyfalse
                  % The default for \ifabstractonly is false.
%
\newif\ifcontents % \ifcontents controls printing of the table of contents.
                  %
\contentstrue     % The default for \ifcontents is true.
%
\newif\iflistfigs % \iflistfigs controls printing of the list of figures.
                  %
\listfigstrue     % The default for \iflistfigs is true.
%
\newif\iflisttabs % \iflisttabs controls printing of the list of tables.
                  %
\listtabstrue     % The default for \iflisttabs is true.
%
\newif\iflistthms % \iflistthms controls printing of the list of
                  % labelled subtexts, such as definitions, theorems, etc.
                  %
\listthmstrue     % The default for \iflistthms is true.
%
\newif\iflisteqns % \iflisteqns controls printing of the list of
                  % equations.
                  %
\listeqnsfalse    % The default for \iflisteqns is false.
%
\newif\ifparnums  % \ifparnums controls printing of paragraph numbers
                  % in the margin.
                  %
\parnumsfalse     % The default for \ifparnums is false.
                  %
\newcommand{\parnumstyle}{\tiny\it}
                  % \parnumstyle controls the size and type style of
                  % paragraph numbers: the default is \tiny\it.
%
\newcommand{\parnumsep}{\hspace{3em}}
                  % \parnumsep separates a marginal paragraph number
                  % from the main text: default \hspace{3em}.
%
\newif\ifincludeeps
                  % \ifincludeeps controls inclusion of encapsulated
                  % PostScript pictures.
                  %
\includeepstrue   % The default for \ifincludeeps is true.
%
\newtoks\epssupport
                  % \epssupport is a token string giving the name of the
                  % file to be read in for encapsulated PostScript
                  % support. If a nonstandard support is chosen, you
                  % will probably need to redefine the command \placeeps
                  % as well.
                  %
\epssupport={epsf.sty}
                  % The default encapsulated PostScript support is
                  % epsf.sty.
%
\newcommand{\secnumsep}{\hspace{1em} }
                  % \secnumsep separates the identifying number of a
                  % section from its title in the header: the default is
                  % 1 em of space.
%
\newcommand{\tocnumsep}{\hspace{0.5em}}
                  % \tocnumsep separates the identifying number of a
                  % section from its title in the table of contents:
                  % the default is 0.5em of space.
%
\newcommand{\tocskip}{\newpage}
                  % \tocskip separates the beginning of the table of
                  % contents from the abstract.
%
\newcommand{\fltnumsep}{\hspace{1em} }
                  % \fltnumsep separates the identifying number of a
                  % table or figure from its title in the caption: the
                  % default is 1 em of space.
%
\newcommand{\lstmarksep}{\hspace{1em}}
                  % \lstmarksep separates the name of a labelled
                  % subtext from the end mark.
%
\newcommand{\epsmagnification}{1.0}
                  % \epsmagnification is multiplied by the natural
                  % size of each encapsulated PostScript picture that
                  % is included in the article: the default is 1.0,
                  % which has no effect.
%
\newcommand{\footerskip}{1em}
                  % \footerskip is the vertical space between the page
                  % number and the descriptive footer: the default is
                  % 1em.
%
% Input reader-defined customization parameters for the article from
% the file cjropts.tex, if it exists. Besides the customization
% options provided by LaTeX, cjstruct.sty/cls provides the following:
%
%   \rstyle={<LaTeX style>}      default set in the article, or article.sty/cls
%                                if that one is not available
%   \roptions={<LaTeX options>}  default empty
%
% The article is formatted as though it began with the command
%
%   \documentstyle[<LaTeX options>]{<LaTeX style>}
%
% or, in the case of LaTeX2e, with
%
%   \documentclass[<LaTeX options>]{<LaTeX style>}
%
% except, of course, for the special modifications of the
% chicago-journal style. The options are given separated by commas,
% just as in the optional argument to \documentstyle or \documentclass.
%
%   \infotrue
%      or
%   \infofalse <- default
%
% These allow or suppress printing of data about the article and its
% authors.
%
%   \contentstrue  <- default (unless \abstractonlytrue)
%      or
%   \contentsfalse
%
% These allow or suppress printing of a table of contents.
%
%   \listfigstrue  <- default (unless \abstractonlytrue)
%      or
%   \listfigsfalse
%
% These allow or suppress printing of a list of figures.
%
%   \listtabstrue  <- default (unless \abstractonlytrue)
%      or
%   \listtabsfalse
%
% These allow or suppress printing of a list of tables.
%
%   \listthmstrue  <- default (unless \abstractonlytrue)
%      or
%   \listthmsfalse
%
% These allow or suppress printing of a list of labelled subtexts,
% such as definitions, theorems, lemmas, proofs, etc.
%
%   \listeqnstrue
%      or
%   \listeqnsfalse <- default
%
% These allow or suppress printing of a list of numbered equations.
%
%   \abstractonlytrue
%      or
%   \abstractonlyfalse <- default
%
% These allow the formatting to terminate after the abstract.
% \abstractonlytrue sets \contentsfalse, \listfigsfalse,
% \listtabsfalse.
%
%   \parnumstrue
%      or
%   \parnumsfalse <- default
%
%   \renewcommand{\parnumstyle}{<style for marginal paragraph numbers>}
%                                              default \tiny\it
%
%   \renewcommand{\parnumsep}{<separator between paragraph nums and text>}
%                                              default \hspace{3em}
%
% These control the printing of paragraph numbers in the margin to
% help identify particular passages.
%
%   \renewcommand{\secnumsep}{<separator between section numbers and titles>}
%                                              default {\hspace{1em} }
%
%   \renewcommand{\fltnumsep}{<separator between float numbers and titles>}
%                                              default {\hspace{1em} }
%
% These provide separating space and/or notation between section
% numbers and titles, figure and table numbers and their captions,
% respectively.
%
%   \rbibstyle={<bibliography style>} default alpha
%
% This style is given to the \bibliographystyle command to determine
% the formatting of the bibliography.
%
%   \includeepstrue  <- default
%      or
%   \includeepsfalse
%
% These determine the inclusion or exclusion of encapsulated
% PostScript figures. Readers without eps support may need to print
% out the encapsulated PostScript files separately.
%
%   \epssupport={eps support file} default epsf.sty
%
% This is the file name in which macro definitions supporting
% encapsulated PostScript are found. If you choose an alternative with a
% different functional interface, you will need to redefine the command
% \placeeps in your cjrdefs.tex customization file, as well.
%
%   \renewcommand{\epsmagnification}{<magnification factor>} default 1.0
%
% This provides a magnification factor applied to all encapsulated
% PostScript pictures.
%
\typeout{CJ: Reader options.}
\@input{cjropts.tex}
\typeout{CJ: End of reader options.}
%
\ifabstractonly\contentsfalse\listthmsfalse\listfigsfalse\listtabsfalse\listeqnsfalse\fi
%
\typeout{CJ: Chicago-Journal style definitions.}
%
% Redefine the plain page style to suppress the header, but not the
% footer. Normal LaTeX suppresses both. The original definition
% modified below came from latex.tex in LaTeX version 2.09 <7 Dec 1989>
%
\def\ps@plain{\let\@mkboth\@gobbletwo
     \def\@oddhead{}
%
% deleted portion:
%                   \def\@oddfoot{\rm\hfil\thepage
%    \hfil}
%
           \def\@evenhead{}\let\@evenfoot\@oddfoot}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%            DECLARATIONS OF GLOBAL TeX REGISTERS AND COMMANDS
%
% \@undeftex is undefined, and is used to check the (un)definedness of
% other macros. Horrible things may happen if someone gives it a
% definition.
%
\newif\ifltwoe        % \ifltwoe is set true if LaTeX2e is active, false if
                      % an older LaTeX is active.
                      %
\ifx\documentclass\@undeftex\ltwoefalse\else\ltwoetrue\fi
%
\newtoks\lasuff       % The suffix for style/class files: set to "cls" if
                      % LaTeX2e is active, to "sty" if an older LaTeX
                      % is active.
%
\lasuff=\ifltwoe{cls}\else{sty}\fi
%
\newif\ifstyfound     % \ifstyfound is set true if the specified or primary
                      % default LaTeX style file for formatting the article
                      % is found.
%
\newif\ifepsfound     % \ifepsfound is set true if the appropriate file
                      % \the\epssupport defining encapsulated PostScript is
                      % found.
%
\newif\ifbannerfound  % \ifbannerfound is set true if the appropriate file
                      % giving a custom journal banner is found.
%
\newtoks\authorstring % \authorstring is a string of tokens set by the
                      % \name command in the \articleinfo environment
                      % to contain the names of the authors, separated
                      % by \and commands. It is then used as argument
                      % in creating the title section of the printed
                      % article.
%
\newif\ifauthors      % \ifauthors controls the concatenation of \and
                      % commands into \authorstring to avoid an
                      % initial \and before the first author's name.
                      % Also used in the bibliography to avoid an initial
                      % comma.
%
\newtoks\supportstring
                      % \supportstring is a string of tokens set by the
                      % \support command in the \articleinfo environment
                      % to contain acknowledgemnents of grants
                      % supporting the work of the authors.
%
\newtoks\volumestring % \volumestring is a string of tokens set by the
                      % \volume command to represent the journal
                      % volume containing this article. Volumes are
                      % identified by their years of publication, given
                      % as 4-digit numerals.
%
\newtoks\artidstring  % \artidstring is a string of tokens set by the
                      % \articleid command to uniquely identify this
                      % article within its volume---normally by its
                      % sequential number in the volume.
%
\newtoks\publstring   % \publstring is a string of tokens set by the
                      % \publisher command to give the name of the
                      % publisher.
%
\newtoks\pubcomstring % \pubcomstring is a string of tokens set by the
\pubcomstring={}      % \publishercomment command.
%
\newcommand{\pubcomstyle}{\noindent\rm}
                      % \pubcomstyle determines the style in which
                      % the publisher's comments are set.
%
\newtoks\copyrtstring % \copyrtstring is a string of tokens set by the
\copyrtstring={}      % \copyrightstmt command to express copyright
                      % claims.
%
\newcommand{\copyrtstyle}{\pubcomstyle}
                      % \copyrtstyle determines the style in which
                      % the copyright claim is set.
%
\newtoks\journalstring
                      % \journalstring is a string of tokens set by the
                      % \journal command to give the title of the
                      % journal.
%
\newtoks\jourcomstring
\jourcomstring={}     % \jourcomstring is a string of tokens set by
                      % the \journalcomment command.
%
\newcommand{\jourcomstyle}{\pubcomstyle}
                      % \jourcomstyle determines the style in which
                      % the journal organization's comments are set.
%
\newtoks\banfilestring
                      % \banfilestring is the name of a file containing a
\banfilestring={}     % custom banner for the journal.
%
\newtoks\shtistring   % \shtistring is a string of tokens set by the
                      % \shorttitle command to give an abbreviated
                      % title for the article.
%
\newtoks\collectionstring
\collectionstring={}
                      % \collectionstring is a string of tokens set by
                      % the \collectiontitle command to give the title
                      % of a special collection that contains the
                      % article. \collectionstring is initially empty,
                      % and usually remains empty.
%
\newtoks\edcomstring
\edcomstring={}
                      % \edcomstring is a string of tokens set by
                      % the \editorcomment command to present comments
                      % by the editor.
%
\newcommand{\edcomstyle}{\pubcomstyle}
                      % \edcomstyle determines the style in which
                      % the editor's comments are set.
%
\newtoks\ednamestring % \ednamestring is a sting of tokens set by the
\ednamestring={}      % \editorname command to gie the name(s) of the
                      % editor(s), if desired.
%
\newcommand{\ednamestyle}{\large\em}
%
\newtoks\shaustring   % \shaustring is a string of tokens set by the
                      % \shortauthors command to give an abbreviated
                      % list of the authors---usually by last names
                      % only.
%
% \listofsubtexts is defined analogously to \listoffigures,
% \listoftables. It produces a section heading for the list of
% labelled subtexts (definitions, theorems, lemmas, proofs, etc.), and
% opens a *.los file to receive items in that list.
%
\def\listofsubtexts{\section*{List of Definitions, Theorems, etc.}
  \@starttoc{los}}
%
% \listofequations is defined analogously to \listoffigures,
% \listoftables. It produces a section heading for the list of
% equations opens a *.loe file to receive items in that list.
%
\def\listofequations{\section*{List of Equations}
  \@starttoc{loe}}
%
% \epscompmagnification computes the magnification applied to each
% encapsulated PostScript picture included in the article to be
% computed individually from
%
%    #1 = the natural width of the picture
%    #2 = the natural height of the picture
%    #3 = prefix of the name of the encapsulated PostScript file
%
% By default, \epscompmagnification evaluates to \epsmagnification,
% but the reader may override this default in cjdefs.tex.
%
\newcommand{\epscompmagnification}[3]{\epsmagnification}
%
% \placeeps places an encapsulated PostScript file given by the third
% argument. The first and second arguments give the width and height
% of the picture in the *.eps file. They are used by a redefined
% version of \placeeps in case the encapsulated PostScript file cannot
% be included.
%
\newcommand{\placeeps}[3]{%
  \epsfxsize=#1%
  \epsfxsize=\epscompmagnification{#1}{#2}{#3}\epsfxsize%
  \centerline{\hbox{\epsfbox{#3.eps}}}%
}
%
% \usestyleresource{name} loads a LaTeX style named by its argument. In
% LaTeX2e, this is done by the \usepackage{name} command. In older LaTeXs it
% requires \input{name.sty}, but the category code for the @ character
% must be manipulated before and after.
%
\newcommand{\usestyleresource}[1]{
  \ifltwoe
    \usepackage{#1}
  \else
    \catcode`\@=11 % @ is used as an alphabetic character in *.sty files
    \input{#1.sty}
  \fi
  \catcode`\@=12 % amstex.sty sets the category of @ to 13, so set it
                 % back just in case
}
%
\newread\@cjinputcheck  % \@cjinputcheck is used to check the
                        % existence of various files by trying to open
                        % them.
%
% \testfileexists{filename}{condname} tests whether there is a file
% with the given filename, and sets the value of \if<condname>found
% appropriately.
%
\newcommand{\testfileexists}[2]{
  \openin\@cjinputcheck#1
  \ifeof\@cjinputcheck\global\csname#2foundfalse\endcsname%
  \else\global\csname#2foundtrue\endcsname\fi\closein\@cjinputcheck
}
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%      AN ENVIRONMENT TO DECLARE INFORMATION ABOUT A PUBLISHED ARTICLE
%
% The articleinfo environment contains declarations of information
% about an article and its authors. Exactly one instance of the
% articleinfo environment must occur as the first thing in each
% published article, with contents in the form:
%
%   \begin{articleinfo}
%   %
%     \publisher{<name of publisher>}
%   %
%     \publishercomment{<comment from the publisher>}
%   %
%     \copyrightstmt{<claims of copyright>}
%   %    
%     \journal{<name of journal>}
%   %
%     \journalcomment{<comment from journal organization>}
%   %
%     \bannerfile{<name of custom banner file for the journal>}
%   %
%     \volume{<volume year>}
%   %
%     \articleid{<unique number of article within volume>}
%   %
%     \selfcitation{
%       <citation to this article in BibTeX format>
%     }
%   %
%     \begin{retrievalinfo}
%       <aids for information retrieval>
%     \end{retrievalinfo}
%   %
%     \title{<the title of the article>}
%   %
%     \shorttitle{<abbreviated mnemonic title of the article>}
%   %
%     \collectiontitle{<title of special collection>} (optional)
%   %
%     \editorcomment{        |
%       <editorial comments> | (optional)
%     }                      |
%   %
%     \editorname{<editor's name(s)>} (optional)
%   %
%     \begin{authorinfo}
%       <information about first author>
%     \end{authorinfo}
%   %
%       ...
%   %
%     \begin{authorinfo}
%       <information about last author>
%     \end{authorinfo}
%   %
%     \shortauthors{<abbreviated list of authors>}
%   %
%     \support{<optional acknowledgement of research grants>}
%   %
%     \begin{editinfo}
%       <editing history of the article>
%      \end{editinfo}
%   %
%   \end{articleinfo}
%
% There is exactly one retrievalinfo environment at the beginning,
% containing aids for information retrieval programs accessing the
% article; then exactly one \title command; then one or more
% authorinfo environments giving information about each author; and
% finally exactly one editinfo environment giving the editing history
% of the article. 
%
\newenvironment{articleinfo}{
%
  \newcommand{\volume}[1]{
    \global\volumestring={##1}
  }
%
  \newcommand{\articleid}[1]{
    \global\artidstring={##1}
  }
%
  \newcommand{\publisher}[1]{
    \global\publstring={##1}
  }
%
  \newcommand{\publishercomment}[1]{
    \global\pubcomstring={##1}
  }
%
  \newcommand{\copyrightstmt}[1]{
    \global\copyrtstring={##1}
  }
%
  \newcommand{\journal}[1]{
    \global\journalstring={##1}
  }
%
  \newcommand{\journalcomment}[1]{
    \global\jourcomstring={##1}
  }
%
  \newcommand{\bannerfile}[1]{
    \global\banfilestring={##1}
  }
%
  \newcommand{\selfcitation}[1]{\relax}
%
  \newenvironment{retrievalinfo}{
  }{
  }
%
  \newcommand{\shorttitle}[1]{
    \global\shtistring={##1}
  }
%
  \newcommand{\collectiontitle}[1]{
    \global\collectionstring={##1}
  }
%
  \newcommand{\editorcomment}[1]{
    \global\edcomstring={##1}
  }
%
  \newcommand{\editorname}[1]{
    \global\ednamestring={##1}
  }
%
  \newcommand{\shortauthors}[1]{
    \global\shaustring={##1}
  }
%
% \support{<grant acknowledgements>} declares its argument to be a
% string of tokens acknowledging grants that supported the research
% reported in the article
%
  \newcommand{\support}[1]{
    \global\supportstring={##1}
  }
%
  \authorstring={} % Initialize list of authors' names to empty.
%
  \authorsfalse    % Suppress \and command when first author's name
                   % is added to \authorstring.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%        AN ENVIRONMENT TO DECLARE INFORMATION ABOUT AN AUTHOR
%
% The authorinfo environment is defined only within the articleinfo
% environment. One or more instances of the authorinfo environment
% must appear, immediately after the \title command, and before the
% editinfo environment.  Each instance of the authorinfo environment
% describes one author of the article, in the following form:
%
%   \begin{authorinfo}
%     \printname{<name as it should be printed in title>}
%     \priority{<priority number>}
%     \collname{<unordered prefix>}{<name as it should be alphabetized>}
%     \begin{institutioninfo}
%       <description of the author's home institution>
%     \end{institutioninfo}
%     \email{<network address>}
%   \end{authorinfo}
%
% If an author is associated with more than one institution, the
% institutioninfo environment may be repeated.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%             COMMANDS USED TO DECLARE AUTHOR INFORMATION
%
% The following commands are used inside authorinfo environments to
% declare information about each author.
%
% \printname{<name as it should be printed>}
%
% declares the style in which to print an author's name in the title
% section of an article.
%
  \newcommand{\printname}[1]{
    \global\authorstring= % Concatenate the new author's name onto
                          % the token list \authorstring, separating
                          % it from previous names, if any, with the
                          % \and command.
      \expandafter{\the\authorstring\ifauthors\and\fi ##1}
    \global\authorstrue   % Concatenate the \and command before any
                          % subsequent authors' names in \authorstring.
    \ifinfo\item Printed name: ##1\fi
  }
%
% \collname{<ignored>}{<alphabetized>}
%
% declares the author's name in the most appropriate form for
% alphabetizing. The <ignored> section is usually empty, but it may
% contain text that should be listed first in an index entry, but
% which does not affect alphabetical order. Prefixes to last names,
% such as "van" are sometimes treated this way. The <alphabetized>
% section is the remainder of the name as it should be given to
% alphabetical sorters and indexers. Typical names will be in the form
% <last name>, <first name> <middle name>.
%
  \newcommand{\collname}[2]{
    \ifinfo\item Name for alphabetical collation: [##1] ##2\fi }
%
% \priority{<priority-number>}
%
% declares the relative priority of this author with respect to the
% others. <priority-number> must be a single digit. '1' indicates
% highest priority. Any number of authors may be assigned the same
% priority. The set of all assigned priorities must be an initial
% segment of the positive integers. Priority is optional, but if given
% for one author it should be given for all.
%
  \newcommand{\priority}[1]{
    \ifx 1##1\else
      \global\authorstring= % Concatenate the author's priority onto
                            % the token list \authorstring.
        \expandafter{\the\authorstring\ {\tiny (##1)}}
    \fi
    \ifinfo\item Priority: ##1\fi
  }
%
  \newenvironment{institutioninfo}{
  }{
  }
%
% \instname{<institution name>}
%
% declares the name of the institution or employer under whose
% auspices the author worked at publication time.
%
  \newcommand{\instname}[1]{
    \ifinfo\item Institution: ##1\fi
  }
%
% \department{<department name>}
%
% declares the name of the department within the institution where
% the author worked.
%
  \newcommand{\department}[1]{
    \ifinfo\item Department: ##1\fi
  }
%
% \address{<street address>}{<city>}{<state/province>}{<country>}{<code>}
%
% declares the author's mailing address.
%
  \newcommand{\address}[5]{
    \ifinfo\item Address: ##1, ##2 ##3, ##4 ##5\fi
  }
%
% \email{<network address>}
%
% declares an address at which the author was reachable through
% the InterNet.
%
  \newcommand{\email}[1]{
    \ifinfo\item Email: {\tt ##1}\fi
  }
%
  \newenvironment{authorinfo}{
    \ifinfo\item\begin{itemize}\fi
  }{
    \ifinfo\end{itemize}\fi
  }
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%           AN ENVIRONMENT TO DESCRIBE EDITING HISTORY
%
% The editinfo environment is defined only within the articleinfo
% environment. Exactly one instance of the editinfo environment must
% occur as the last thing in the articleinfo environment at the head
% of each article. The editinfo environment declares information
% about the editing history of the article, in the form:
%
%   \begin{editinfo}
%     \submitted{<date first received by editor>}
%     \reported{<date of report calling for revisions>}
%        ...
%     \submitted{<date final publication version received by editor>}
%     \reported{<date of final acceptance report>}
%     \published{<date available to the public>}
%   \end{editinfo}
%
% Each date is given as three separate numerical arguments:
%   {<day>}{<month>}{<year>}
%
  \newcommand{\spellmonth}[1]{
    \ifcase##1
      {}\or January\or February\or March\or April\or May\or June\or %
      July\or August\or September\or October\or November\or December%
    \fi
  }
%
  \newcommand{\submitted}[3]{
    \ifinfo\item Draft received: ##1/##2/##3\fi
  }
%
  \newcommand{\reported}[3]{
    \ifinfo\item Draft returned: ##1/##2/##3\fi
  }
%
  \newcommand{\published}[3]{
    \ifinfo\item Article published: ##1/##2/##3\fi
    \date{##1 \spellmonth{##2}, ##3} % Declare publication date
                                     % for \maketitle.
  }
%
% Code for \begin{editinfo}
%
  \newenvironment{editinfo}{
    \ifinfo\item[Edit History:]\begin{itemize}\fi
  }{
%
% Code for \end{editinfo}
%
    \ifinfo\end{itemize}\fi
  }
%
% Code for \begin{articleinfo}
%
% For the listing of article information, use a header giving the
% abbreviated list of authors and the abbreviated title, and a section
% descriptor "(Info)".
%
  \global\def\@oddhead{{\it\the\shaustring}\hfill\the\shtistring\ (Info)}
%
% Use a footer with the page number in lower case roman, the Chicago
% Journal Logo, and the volume and id number of the article.
%
  \global\def\@oddfoot{\parbox{\textwidth}{\hfil[\thepage]\hfil\\[\footerskip]
    {\bf\the\journalstring}\hfill\the\volumestring-\the\artidstring}}
  \pagenumbering{roman}
%
  \ifinfo\begin{enumerate}\fi % Enumerate the list of author information
                              % blocks, followed by the edit history block.
}{
%
% Code for \end{articleinfo}
%
  \ifinfo\end{enumerate}\fi % End the enumeration of author information and
                            % edit history blocks.
%
  \ifinfo
    {\expandafter\def\expandafter\testemptyname\expandafter{\the\collectionstring}%
      \ifx\testemptyname\@emptydefstring\else%
        \par Special Collection: \the\collectionstring
      \fi%
    }
  \fi
%
  \ifinfo
    {\expandafter\def\expandafter\testemptyname\expandafter{\the\ednamestring}%
      \ifx\testemptyname\@emptydefstring\else%
        \par Editor: \the\ednamestring
      \fi%
    }
  \fi
%
  \author{\the\authorstring} % Declare the string of author
                             % names for \maketitle.
%
  \pagebreak\setcounter{page}{1} % Start new page, numbered one, for
                                 % the banner, title, abstract, and
                                 % main text of the article.
%
% Journal banner page.
%
  \begin{titlepage}
%
% Check whether there is a custom banner file for the journal named
% \the\banfilestring.
%
    \testfileexists{\the\banfilestring}{banner}
%
    \ifbannerfound
      % if possible, use a custom banner in the file \the\banfilestring.
      \typeout{CJ: Banner from \the\banfilestring.}
      \@input{\the\banfilestring}
      \typeout{CJ: End of banner.}
    \else
      % otherwise, format an alternate banner.
      \typeout{CJ: Banner file \the\banfilestring\space not found. Using alternate banner.}
      %
      % The code for the alternate banner is based on \maketitle in
      % LaTeX2e's article.cls
      %
      \null\vfil\vskip 60pt
      \begin{center}
        {\Huge\bf\the\journalstring\par}
        \vskip 3em
        {\huge\it\the\publstring\par}
      \end{center}
      \par\vskip 1.5em
    \fi
%
% Comments from the publisher, if any.
%
    {\expandafter\def\expandafter\testemptyname\expandafter{\the\pubcomstring}%
      \ifx\testemptyname\@emptydefstring\else%
        \par\addvspace{\bigskipamount}
        \pubcomstyle\the\pubcomstring
      \fi%
    }
%
% Copyright statement.
%
    {\expandafter\def\expandafter\testemptyname\expandafter{\the\copyrtstring}%
      \ifx\testemptyname\@emptydefstring\else%
        \par\addvspace{\bigskipamount}
        \copyrtstyle\the\copyrtstring
      \fi%
    }
%
% Comments from the journal organization, if any.
%
    {\expandafter\def\expandafter\testemptyname\expandafter{\the\jourcomstring}%
      \ifx\testemptyname\@emptydefstring\else%
        \par\addvspace{\bigskipamount}
        \jourcomstyle\the\jourcomstring
      \fi%
    }
%
% Comments from the editor of the paper or special collection, if any.
%
    {\expandafter\def\expandafter\testemptyname\expandafter{\the\edcomstring}%
      \ifx\testemptyname\@emptydefstring\else%
        \par\addvspace{\bigskipamount}
        \edcomstyle\the\edcomstring
      \fi%
    }
%
    \vfil\null
  \end{titlepage}
%
% End of journal banner page.
%
  \maketitle
%
% For the table of contents, list of figures, etc., use a header
% containing the abbreviated list of authors and title, and the
% section description "(Contents)".
%
  \global\def\@oddhead{{\it\the\shaustring}\hfill\the\shtistring\ (Contents)}
%
% Use a footer with the page number in lower case roman, the Chicago
% Journal Logo, and the volume and id number of the article.
%
  \global\def\@oddfoot{\parbox{\textwidth}{\hfil--\thepage--\hfil\\[\footerskip]
    {\bf\the\journalstring}\hfill\the\volumestring-\the\artidstring}}
  \pagenumbering{roman}
%
}
%
% end of articleinfo environment definition.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%          AN ENVIRONMENT TO DESCRIBE THE TEXT OF AN ARTICLE
%
% The articletext environment contains the main text of the article.
%
\newenvironment{articletext}{
%
\ifabstractonly\end{articletext}\end{document}\fi
%
\ifcontents
\tocskip
\tableofcontents
\fi

  \iflistfigs
    \typeout{CJ: List of figures requires that LaTeX be run twice.}
    \listoffigures
  \fi
%
  \iflisttabs
    \typeout{CJ: List of tables requires that LaTeX be run twice.}
    \listoftables
  \fi
%
  \iflistthms
    \typeout{CJ: List of theorems requires that LaTeX be run twice.}
    \listofsubtexts
  \fi
%
  \iflisteqns
    \typeout{CJ: List of equations requires that LaTeX be run twice.}
    \listofequations
  \fi
%
  \ifcontents
    \pagebreak\setcounter{page}{1}
  \else\iflistthms
    \pagebreak\setcounter{page}{1}
  \else\iflistfigs
    \pagebreak\setcounter{page}{1}
  \else\iflisttabs
    \pagebreak\setcounter{page}{1}
  \else\iflisteqns
    \pagebreak\setcounter{page}{1}
  \fi\fi\fi\fi\fi
%
% For the article itself, use a footer with the page number in arabic,
% the Chicago Journal Logo, and the volume and id number of the
% article. The header gives the abbreviated list of authors and the
% abbreviated title, plus a reference to the last section appearing on
% the page.
%
  \global\def\@oddhead{{\it\the\shaustring}\hfill\the\shtistring
    \ifx\thecjsection\@emptycomstring\else\ \S\thecjsection\fi}
%
  \global\def\@oddfoot{\parbox{\textwidth}{\hfil\thepage\hfil\\[\footerskip]
    {\bf \the\journalstring}\hfill\the\volumestring-\the\artidstring}}
    \pagenumbering{arabic}
%
}{
%
% Code for \end{articletext}
%
  {\expandafter\def\expandafter\testemptyname\expandafter{\the\supportstring}%
    \ifx\testemptyname\@emptydefstring\else%
      \paragraph*{Acknowledgement of support:}
      \the\supportstring
    \fi%
  }
%
}
%
% end of articletext environment definition.
%
% \thecjsection is redefined repeatedly to be a hierarchical
% identifier for the smallest enclosing sectional unit.
%
\newcommand{\thecjsection}{}
%
% \thecjpar is redefined repeatedly to be a hierarchical identifier
% for the paragraph.
%
\newcommand{\thecjpar}{}
%
% COMMANDS FOR ABSOLUTELY NUMBERED OBJECTS
% The following commands, \asection, \asubsection, \asubsubsection,
% \aparagraph, \asubparagraph, \apar, \atabcap, \afigcap, and the
% alabsubtext environment, all provide absolutely numbered versions of
% objects that are usually numbered dynamically by LaTeX using a
% running counter. Each one takes an argument giving the
% hierarchical/sequential number for its object, and calls normal
% LaTeX commands appropriately.
%
% \asection, \asubsection, \asubsubsection, \aparagraph, and
% \asubparagraph are all 2-argument commands defining the beginnings
% of absolutely numbered sectional units. In each case, the first
% argument is a hierarchical identifier for the sectional unit, and
% the second argument is the title.
%
\newcommand{\asection}[2]{
  \section*{#1\secnumsep #2}
  \renewcommand{\thecjsection}{#1}
  \addcontentsline{toc}{section}{#1\tocnumsep #2}
}
%
\newcommand{\asubsection}[2]{
  \subsection*{#1\secnumsep #2}
  \renewcommand{\thecjsection}{#1}
  \addcontentsline{toc}{subsection}{#1\tocnumsep #2}
}
%
\newcommand{\asubsubsection}[2]{
  \subsubsection*{#1\secnumsep #2}
  \renewcommand{\thecjsection}{#1}
  \addcontentsline{toc}{subsubsection}{#1\tocnumsep #2}
}
%
\newcommand{\aparagraph}[2]{
  \paragraph*{#1\secnumsep #2}
  \renewcommand{\thecjsection}{#1}
  \addcontentsline{toc}{paragraph}{#1\tocnumsep #2}
}
%
\newcommand{\asubparagraph}[2]{ \subparagraph*{#1\secnumsep #2}
  \renewcommand{\thecjsection}{#1}
  \addcontentsline{toc}{subparagraph}{#1\tocnumsep #2}
}
%
% \apar marks the beginning of an absolutely numbered (untitled)
% paragraph. The sole argument is a hierarchical identifier for the
% paragraph.
%
\newcommand{\apar}[1]{%
  \renewcommand{\thecjpar}{#1}%
  \par%
  \ifparnums%
    \leavevmode%
    \vadjust{%
      \noindent%
      \raisebox{\dp\strutbox}[0ex]{%
        \makebox[0ex][r]{%
          {\parnumstyle#1\parnumsep}%
        }%
        \hfill%
      }%
    }%
  \fi%
  \ignorespaces%
}
%
% The alabsubtext environment is a generic theorem-like environment for
% defining an absolutely numbered labelled subtext, such as a
% definition, theorem, lemma, proof, etc. The first argument is the
% type of the subtext, the second argument is the sequential number
% within its type, and the third argument (often left empty) is
% an identifying title. For example, a Zorn's Lemma might be put in an
% environment starting \begin{alasubtext}{Lemma}{4}{Zorn's Lemma}.
%
\newenvironment{alabsubtext}[3]{ \def\testemptyname{#3}
  \ifx\testemptyname\@emptydefstring
%
   % if the third argument is empty, use the usual form of
   % theorem-like environment, without optional argument
    \@begintheorem{#1}{#2}
%
  \else
%
    % if the third argument is nonempty, use the optional-argument
    % form of theorem-like environment
    \@opargbegintheorem{#1}{#2}{#3}
%
    \fi \addcontentsline{los}{table}{#1 #2. #3 (Sec~\thecjsection)} }{
    \@endtheorem
}
%
% The \markendlst command marks the end of a labelled subtext. It's
% argument is a label corresponding to the one at the head of the
% subtext.
%
\newcommand{\markendlst}[1]{
  \begin{flushright}
    {\bf #1\lstmarksep}$\Box$
  \end{flushright}
}
%
% The aequation environment provides a numbered displayed formula,
% where the absolute equation number is given as argument to the
% environment.
%
\newenvironment{aequation}[1]{
  $$ % $$ BRACE MATCHING HACK COPIED FROM latex.tex VERSION 2.09
  \newcommand{\@equationnumber}{#1} }{
  % $$ BRACE MATCHING HACK COPIED FROM latex.tex VERSION 2.09
  \eqno\mbox{(\@equationnumber)} \addcontentsline{loe}{table}{Equation
    \@equationnumber.  (Sec~\thecjsection)} $$
}
%
% The \aequationnumber command, used at the beginning of a line in the
% LaTeX source for an eqnarray* environment, provides an absolute
% equation number at the end of the printed line.
%
\newcommand{\aequationnumber}[1]{%
  \noalign{\vbox to 0ex{\hfill\mbox{(#1)}}\nointerlineskip}%
  \addcontentsline{loe}{table}{Equation #1. (Sec~\thecjsection)}%
}
%
% The \atabcap and \afigcap commands produce captions for absolutely
% numbered tables and figures, respectively. In both cases, the first
% argument is the sequential number of the table or figure, and the
% second argument is the title. These commands are used with the
% normal LaTeX table and figure environments.
%
\newcommand{\atabcap}[2]{ \@makecaption{Table #1}{#2}
  \addcontentsline{lot}{table}{#1\fltnumsep #2 (Sec~\thecjsection)}
}
%
\newcommand{\afigcap}[2]{ \@makecaption{Figure #1}{#2}
  \addcontentsline{lof}{figure}{#1\fltnumsep #2 (Sec~\thecjsection)}
}
%
% The \frnlang{<language>}{<text>} command, and the
% \begin{foreignlanguage}{<language>}
%   <text>
% \end{foreignlanguage}
% environment, mark the given text as belonging to the given
% language. cjstruct.sty attaches no formatting information to the
% language markup.
%
\newtoks{\natlang}
%
\natlang={English}
%
\newcommand{\frnlang}[2]{{\natlang={#1}#2}}
%
\newenvironment{foreignlanguage}[1]{\begingroup\natlang={#1}}{\endgroup}
%
% The \algo{<language>}{<text>} command, and the
% \begin{algorithm}{<language>}
%   <text>
% \end{algorithm}
% environment, mark the given text as a program or algorithm in the given
% language. cjstruct.sty attaches no formatting information to the
% algorithm markup.
%
% Within algorithms, \idr{name} marks user-declared
% identifiers, \kwd{name} marks keywords defined by
% the language, \schlabel{tag} marks tags that are not part of the
% program, but aid references to the program from other text,
% \comment{text} marks formal program comments, and
% \schemaparam{name} marks schematic variables that stand for
% algorithm fragments, but are not in the given programming language.
% The copy editors are encouraged to redefine these marks in
% individual papers to provide appropriate formatting and layout.
%
\newtoks{\proglang}
%
\newcommand{\algo}[3]{{\proglang={#1}#3}}
%
\newenvironment{algorithm}[2]{\begingroup\proglang={#1}}{\endgroup}
%
\newcommand{\idr}[1]{#1}
%
\newcommand{\kwd}[1]{#1}
%
\newcommand{\schlabel}[1]{#1}
%
\newcommand{\comment}[1]{#1}
%
\newcommand{\schemaparam}[1]{#1}
%
% The \sentence command marks the end of a sentence that has no
% terminal punctuation mark. It has no effect on formatting.
%
\newcommand{\sentence}{%
  \relax%
}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%         ESCAPES FOR BACKWARD-COMPATIBLE MARKUPS IN THE FUTURE
%
% It is very likely that hypertextual links will be used in journal
% articles in the near future. The syntax may be that of URLs in the
% World Wide Web, or perhaps something different. The following two
% macro definitions provide for a reasonable variety of link
% structures. This version of cjstruct.sty ignores them, so the
% nonhypertextual contents of future hypertextual articles will format
% OK on the old version.
%
% \htlink{<type>}{<link>}{<anchor-text>} represents a link
%                          anchored to a short text.
%
\newcommand{\htlink}[3]{#3}
%
% \begin{hytxtlink}{<type>}{<link>}
%    <anchor-text>
% \end{hytxtlink}
%                          represents a link anchored to the contents
%                          of the environment.
%
\newenvironment{hytxtlink}[2]{\relax}{\relax}
%
% The following commands and environment provide escapes for
% the completely unpredictable features that may be added in the
% future.
%
% \ftrmkp{<type>}{<contents>}
%
\newcommand{\ftrmkp}[2]{#2}
%
% \begin{futuremarkup}{<type>} <contents> \end{futuremarkup}
%
\newenvironment{futuremarkup}[1]{\relax}{\relax}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%               STRUCTURAL SUPPORT FOR MATHEMATICAL FORMULAE
%
% \mathstyleclass{\<cmd>}{<mathtype>}{<typestyle>} defines a command,
% with the name \<cmd> and one argument, so that \<cmd>{<text>}
% formats the given text in the given typestyle and the appropriate
% size given by the context in math mode (normal, subscript, etc.),
% and attaches the given mathtype (\mathord, \mathrel, etc.) to it.
% The name \<cmd> should be mnemonic for the mathematical type of
% object it is expected to be applied to. It is appropriate to have
% more than one name attached to the same formatting information, if
% there are several mathematical types formatted in the same way.

\newcommand{\mathstyleclass}[3]{%
  \newcommand{#1}[1]{%
    #2{\mathchoice{{\mbox{#3{##1}\/}}}%
                  {{\mbox{#3{##1}\/}}}%
                  {{\mbox{\scriptsize#3{##1}\/}}}%
                  {{\mbox{\tiny#3{##1}\/}}}%
       }%
     }
}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%         AN ENVIRONMENT TO DESCRIBE THE BIBLIOGRAPHY OF AN ARTICLE
%
% The articlebib environment contains a description of the
% bibliography cited in the article.
%
\newenvironment{articlebib}{
%
% For the bibliography section, use a header giving the abbreviated
% list of authors and the abbreviated title, and a section descriptor
% "(Ref)". The footer is the same as in the main text.
%
  \global\def\@oddhead{{\it\the\shaustring}\hfill\the\shtistring\ 
    (Ref)} }{
}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\typeout{CJ: End of Chicago-Journal style definitions.}
%
% Prepare reader-defined options for the main default or reader-selected
% style/class file.
%
\ifltwoe%
  % Options for LaTeX2e are handled later by the \LoadClass command.
\else%
  \expandafter\def\expandafter\@optionlist\expandafter{\the\roptions}%
\fi%
%
% Check whether the reader-specified or primary default LaTeX style or
% class file, and the support for encapsulated PostScript, can be
% found.
%
\testfileexists{\the\rstyle.\the\lasuff}{sty}
\testfileexists{\the\epssupport}{eps}
%
\typeout{CJ: The main LaTeX style/class file.}
%
\ifstyfound
%
  % if possible, use the reader-specified style/class file, or the
  % default inherited from the article
  \ifltwoe%
    \LoadClass[\the\roptions]{\the\rstyle}\RequirePackage{latexsym}%
  \else%
    \@input{\the\rstyle.sty}%
  \fi
%
\else
%
  % if the reader-specified or primary default style/class file is
  % unavailable, use article.sty/cls, which is essentially ubiquitous
\typeout{CJ: \the\rstyle.\the\lasuff\space not found, using
  article.\the\lasuff.}
  \ifltwoe%
    \LoadClass[\the\roptions]{article}\RequirePackage{latexsym}%
  \else%
    \@input{article.sty}%
  \fi
%
\fi
%
\typeout{CJ: End of main LaTeX style/class file.}
%
\ifincludeeps
%
  \typeout{CJ: Loading encapsulated PostScript support.}
%
  \ifepsfound
%
    % if possible (\ifepsfound) and if not prohibited by the reader
    % (\ifincludeeps), then load \the\epssupport
    \@input{\the\epssupport}
%
  \else
%
    % if \the\epssupport is not available, give an immediate message, and
    % redefine \placeeps to produce an error message in the formatted
    % document when it is called
  \newdimen\epsfxsize \newdimen\epsfysize \renewcommand{\placeeps}[3]{
    \typeout{CJ: \the\epssupport\space not found.} \typeout{CJ
      WARNING: Encapsulated PostScript support not found on your
      system.} \epsfxsize=#1
    \epsfxsize=\epscompmagnification{#1}{#2}{#3}\epsfxsize
    \epsfysize=#2
    \epsfysize=\epscompmagnification{#1}{#2}{#3}\epsfysize
      \centerline{\framebox[\the\epsfxsize]%
                  {\rule{0pt}{\the\epsfysize}\parbox{\the\epsfxsize}%
                    {\bf\centering Missing picture: encapsulated
                      PostScript support not found.\\ PostScript file
                      {\tt #3.eps} should be displayed here.  } }}
    }
%
  \fi
%
  \typeout{CJ: End encapsulated PostScript support.}
%
\else
%
  % if the reader chooses not to include encapsulated PostScript,
  % redefine \epsfbox to produce an error message in the formatted
  % document when it is called
\newdimen\epsfxsize \newdimen\epsfysize \renewcommand{\placeeps}[3]{
  \epsfxsize=#1 \epsfxsize=\epscompmagnification{#1}{#2}{#3}\epsfxsize
  \epsfysize=#2 \epsfysize=\epscompmagnification{#1}{#2}{#3}\epsfysize
    \centerline{\framebox[\the\epsfxsize]%
                  {\rule{0pt}{\the\epsfysize}\parbox{\the\epsfxsize}%
                    {\bf\centering Picture omitted: encapsulated
                      PostScript not selected.\\ PostScript file {\tt
                        #3.eps} should be displayed here.  } }}
  }
%
\fi
%
% Input reader-defined customization definitions for the article from
% the file cjrdefs.tex, if it exists. The contents of this file may be
% used to redefine any formatting commands that you wish to change.
%
\typeout{CJ: Reader definitions.}
\@input{cjrdefs.tex}
\typeout{CJ: End of reader definitions.}
