% \iffalse
% $Id: ijmart.dtx,v 1.52 2013-06-25 03:33:52 boris Exp $
%
% Copyright 2007-2010, The Hebrew University Magnes Press
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
% version 1.3 of this license or (at your option) any 
% later version.
% The latest version of the license is in
%    http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of
% LaTeX version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
%
% The Current Maintainer of this work is Boris Veytsman,
% <borisv@lk.net> 
%
% This work consists of the file ijmart.dtx and the
% derived file ijmart.cls
%
% \fi 
% \CheckSum{861}
%
%
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~} 
%
%\iffalse
% Taken from xkeyval.dtx
%\fi
%\makeatletter
%\def\DescribeOption#1{\leavevmode\@bsphack
%              \marginpar{\raggedleft\PrintDescribeOption{#1}}%
%              \SpecialOptionIndex{#1}\@esphack\ignorespaces}
%\def\PrintDescribeOption#1{\strut\emph{option}\\\MacroFont #1\ }
%\def\SpecialOptionIndex#1{\@bsphack
%    \index{#1\actualchar{\protect\ttfamily#1}
%           (option)\encapchar usage}%
%    \index{options:\levelchar#1\actualchar{\protect\ttfamily#1}\encapchar
%           usage}\@esphack}
%\def\DescribeOptions#1{\leavevmode\@bsphack
%  \marginpar{\raggedleft\strut\emph{options}%
%  \@for\@tempa:=#1\do{%
%    \\\strut\MacroFont\@tempa\SpecialOptionIndex\@tempa
%  }}\@esphack\ignorespaces}
%\makeatother
%
% \MakeShortVerb{|}
% \GetFileInfo{ijmart.dtx}
% \newcommand{\progname}[1]{\textsf{#1}}
% \title{\LaTeX{} Class for \emph{The Israel Journal of Mathematics}\thanks{\copyright 2007, The Hebrew University Magnes Press}}
% \author{Boris Veytsman\thanks{%
% \href{mailto:borisv@lk.net}{\texttt{borisv@lk.net}},
% \href{mailto:boris@varphi.com}{\texttt{boris@varphi.com}}}} 
% \date{\filedate, \fileversion}
% \maketitle
% \begin{abstract}
%   This package provides a class for typesetting articles for
%   \emph{The Israel Journal of Mathematics}
% \end{abstract}
% \tableofcontents
%
% \clearpage
%
% \changes{v0.2}{2007/08/20}{First fully functional version} 
% \changes{v0.3}{2007/08/23}{Documentation update} 
% \changes{v1.0}{2007/09/03}{Documentation update} 
% \changes{v1.1a}{2007/10/14}{Documentation update} 
% \changes{v1.3}{2008/01/27}{Documented the use of qedhere and mqedhere} 
% \changes{v1.6}{2010/10/28}{Documentation updates: illustrations and
% bibliography} 
% \changes{v1.7}{2013/06/23}{Change in a sample file}
%
%\section{Introduction}
%\label{sec:intro}
%
% \emph{The Israel Journal of Mathematics} is published by \emph{The
%   Hebrew University Magnes Press}.  This class provides \LaTeX{}
% support for its authors and editors.  It strives to achieve the
% distinct ``look and feel'' of the journal, while having the
% interface similar to the one of the \progname{amsart} document
% class~\cite{Downes04:amsart}.  This will help the authors already
% familiar with \progname{amsart} to easily submit manuscripts for \emph{The
%   Israel Journal of Mathematics} or to put the preprints in 
% \url{http://www.arxiv.org} with minimal changes in the \LaTeX{}
% source.
% 
% This goal determined the implementation approach.  We load the
% \progname{amsart} class and redefine some of its internals on the fly.  There
% are some additional commands added to support the features specific
% to the journal, but we aimed to keep their number minimal.
%
% An author well acquainted with AMS\LaTeX{} should find this package
% easy to use and configurable.  The User Manual below illustrates the
% basic use of the class and discusses the differences with \progname{amsart}.
% For an in-depth tutorial of AMS\LaTeX{} I could recommend the
% excellent book~\cite{Graetzer00:MathIntoLaTeX}.
%
%
%\section{User's Guide}
%\label{sec:manual}
%
%
%\subsection{Installation}
%\label{sec:installation}
%
% The installation of the class follows the usual
% practice~\cite{TeXFAQ} for \LaTeX{} packages:
% \begin{enumerate}
% \item Run \progname{latex} on |ijmart.ins|.  This will produce the file
% |ijmart.cls|.
% \item Put the files |ijmart.cls| and |ijmart.bst| to
% the places where \LaTeX{} and Bib\TeX{} can find them (see
% \cite{TeXFAQ} or the documentation for your \TeX{}
% system).\label{item:install} 
% \item Update the database of file names.  Again, see \cite{TeXFAQ}
% or the documentation for your \TeX{} system for the system-specific
% details.\label{item:update}
% \item The file |ijmart.pdf| provides the documentation for the
% package (this is the file you are probably reading now).
% \end{enumerate}
% As an alternative to items~\ref{item:install} and~\ref{item:update}
% you can just put the files in the working directory where your
% |.tex| file is.
% 
%
% The class uses some other \LaTeX{} classes or packages.  Most
% probably, they are already installed on your system.  If not (or if
% their versions are very old), you need to download and
% install them.  Here is the list:
% \begin{enumerate}
% \item \progname{amsart} class and related packages~\cite{Downes04:amsart},
% \item \progname{ifpdf} package~\cite{Oberdiek06:Ifpdf},
% \item \progname{fancyhdr} package~\cite{Oostrum04:Fancyhdr},
% \item \progname{lastpage} package~\cite{Goldberg94:Lastpage}.
% \end{enumerate}
% 
%
%\subsection{Invocation}
%\label{sec:invocation}
%
% To use the class, put in the preamble of your document
% \begin{flushleft}
% |\documentclass[|\meta{options}|]{ijmart}|
% \end{flushleft}
% The class internally loads \progname{amsart}, so all facilities of
% \progname{amsart}~\cite{Graetzer00:MathIntoLaTeX, amsldoc} can be used in the
% source.
%
% 
% \DescribeOption{french} 
% Most of the options are just passed to
% \progname{amsart} (see~\cite{Graetzer00:MathIntoLaTeX, amsldoc} for their
% description).  The class \progname{ijmart} adds one new option |french|.  If
% it is chosen, some words in the top matter will be typeset in
% French.  Note that this option does \emph{not} change the names of
% the table of contents and references.  An author should also include
% a call, for example, to the Babel package~\cite{Braams05:Babel},
% which takes care of these and other details of international
% typesetting.
%
% If the author indeed chooses \progname{babel}, then the option
% |french| is passed to the package.  Therefore the following works:
% \begin{verbatim}
% \documentclass[french]{ijmart}
% \usepackage{babel}  % the french option is passed to the package
% \end{verbatim}
% Please note that \progname{babel} scans the global options first,
% but the main language of the document must be the last one.
% Therefore if the paper is written in French, but uses English
% quotations, the proper way to call \progname{babel} is the following:
% \begin{verbatim}
% \documentclass[french]{ijmart}
% \usepackage[english,french]{babel}  
% \end{verbatim}
% 
%
%
% By default \progname{babel} redefines French captions for figures
% and tables to use \textsc{Fig.} and \textsc{Tab.} correspondingly.
% If this is not 
% acceptable, the authors should add to the preamble \emph{after} the
% call to \progname{babel} the following:
% \begin{verbatim}
% \addto\captionsfrench{%
%    \renewcommand{\figurename}{Figure}%
%    \renewcommand{\tablename}{Table}}%
% \end{verbatim}
% 
% \DescribeOptions{draft,final}
% The options |draft| and |final| work in the same way as for
% \progname{amsart} and standard \LaTeX.  If the option |draft| is
% chosen, the overfull lines are marked by black boxes on the margins
% \emph{and} the |\includegraphics| prints blank placeholders for the
% images.  The option |final| (default) switches off the marking of
% overfull lines and restores the behavior of |\includegraphics|.  To
% switch on just the overfull marks, without changing the behavior of
% |\includegraphics|, one can either explicitly pass the option final
% to \progname{graphics} package:
% \begin{verbatim}
% \documentclass[draft]{ijmart}
% \usepackage[final]{graphics}
% \end{verbatim}
% or add in the beginning of the document
% \begin{verbatim}
% \overfullrule=5pt
% \end{verbatim}
% 
%
% 
% \DescribeOptions{8pt,9pt,10pt,11pt,12pt}
% The size-changing options of \progname{amsart} class (|8pt|, |9pt|,
% \dots, |12pt|) have no effect other than producing a warning in the
% log since the journal is designed for 
% only one type size (roughly corresponding to |10pt| of
% \progname{amsart}).
%
%
%
% The journal uses a special paper size.  If you process the
% manuscript with \progname{pdflatex} to produce PDF output, the paper
% dimensions will be automatically set up by the class.  However, if
% you use \progname{latex} and \progname{dvips}, you need to tell
% \progname{dvips} what paper size to choose.  One way to do this is
% to add to the \progname{dvips} options the following:
% \begin{verbatim}
%   -T 5.964in,8.844in -O -0in,0.1in
% \end{verbatim}
% 
%
%\subsection{Top Matter}
%\label{sec:top_matter}
%
% Top matter contains the information about the paper: authors, title,
% affiliations, etc.  The interface for \progname{ijmart} top matter is very
% close to the one used by \progname{amsart}.  We added a couple of commands to
% deal with the information specific to the \emph{The Israel Journal of
%   Mathematics} and changed the behavior of several other commands to
% suit the style of the journal.  These changes are documented below.
%
% There are two kinds of top matter commands:  the ones used primarily
% for authors and the ones used primarily for editors.  We describe
% them separately.
%
%
%\subsubsection{Commands for Authors}
%\label{sec:authors_commands}
%
% \DescribeMacro{\title}
% The command |\title|, as in \progname{amsart} class, has two arguments:  one
% optional, and one mandatory:
% \begin{flushleft}
%   |\title[|\meta{ShortTitle}|]{|\meta{FullTitle}|}|
% \end{flushleft}
% The mandatory argument is the full title of the article.  The
% optional argument, if present, defines the shorter version of the
% title for running heads.  If the optional argument is absent, the
% full title is used instead.  Note that the titles are typeset in
% upper case, but you do not need to input them in capital letters:
% the class does the conversion automatically.
%
% The optional argument should be used in two cases: when the full
% title is too long to fit in the running head, \emph{and} when the
% author wants to add a footnote or linebreaks to the title.  Unlike
% \progname{amsart}, \progname{ijmart} allows the command |\thanks|
% inside |\title| and |\author| commands. However, the footnote
% belongs to the title typeset in the top matter, not to the running
% head version.  The optional argument in this case helps, as in the
% following example:
% \begin{verbatim}
% \title[Some properties of $\sigma$-algebras]{%
%    Some properties of $\sigma$-algebras\thanks{%
%      The work was supported by grant from NSF No.~123456789-MMMM}} 
% \end{verbatim}
% The line breaks in the title, if neccessary, are introduced by the
% command |\linebreak| in the second (mandatory) argument of |\title|:
% \begin{verbatim}
% \title[Title with line breaks]{Title \linebreak with line breaks}
% \end{verbatim}
% 
%
%
%
% \DescribeMacro{\author} \DescribeMacro{\address}
% \DescribeMacro{\curraddr} \DescribeMacro{\email}
% \DescribeMacro{\urladdr} The interface for specifying the authors
% and their affiliations is close the the one of
% \progname{amsart}~\cite{instr-l} (and different from the standard \LaTeX).
% For each author a separate command |\author| should be used,
% followed by |\address| and (optionally) |\curraddr|, |\email| and
% |\urladdr|.  The lines in the address should be divided by |\\|.
% Like the newer versions of \progname{amsart}, \progname{ijmart} does
% \emph{not} 
% require the doubling of the |@| symbols in the e-mail addresses.
% The macro |\author| has two arguments, similarly to |\title|:
% \begin{flushleft}
%   |\author[|\meta{AbbrevName}|]{|\meta{FullName}|}|
% \end{flushleft}
% The optional argument defines the shorter form of the author's name
% to be included in the running head.  Similarly to |\title|, the
% command |\author| allows the use of |\thanks|.  Again, to show that
% the footnote does not belong to the running head, the optional
% argument is used.
%
% \DescribeMacro{\shortauthors}
% In some cases the authors list may be too long for the running head,
% even if the abbreviated forms are used for each author.  In this
% case it is possible to change the running head by a
% \emph{redefinition} of the command |\shortauthors|.  This
% redefinition must be done after all |\author| commands, but before
% |\maketitle|:
% \begin{verbatim}
% \renewcommand{\shortauthors}{A.~Smith et al}
% \end{verbatim}
% 
%
% \DescribeMacro{\thanks}
% As discussed above, the behavior of the |\thanks| command in
% \progname{ijmart} is different from the one in \progname{amsart}.
% This command is 
% allowed within the scope of the top matter commands.  If it is used
% in the  scope of the main argument of the commands |\author| and
% |\title|, the optional argument should be used to correctly typeset
% the running heads.
%
% Sometimes it is necessary to have a |\thanks| footnote referring to
% more than one author.  In this case the usual \LaTeX{} command
% |\footnotemark|\oarg{number} can help:
% \begin{verbatim}
% \author{A.~Uthor\thanks{The first and the third author were
%     supported by NSA grant~123456789}
% \author{W.~Riter\thanks{The second author was supported by NSF
%     grant~987654321} 
% \author{C.~Orrespondent\footnotemark[1]}
% \address{Noname University\\ Nowhere, RI\\ USA}
% \email{author@nowhere.edu, writer@nowhere.edu and
%     correspondent@nowhere.edu} 
% \end{verbatim}
%
% The command |\title| might have no more than one |\thanks| command
% in its scope. 
%
% \DescribeEnv{abstract}
% The abstract of the paper must be put between |\begin{abstract}| and
% |\end{abstract}|.  Note that to change the abstract name to
% R\'esum\'e, the authors should use Babel.  Similarly to \progname{amsart}
% class, abstract must precede |\maketitle|.  
%
% \DescribeMacro{\maketitle}
% The macro |\maketitle| typesets the top matter.  All top matter
% information should be specified before this command.
%
% \DescribeMacro{\tableofcontents}
% \changes{v1.2}{2007/11/14}{Added documentation for table of contents
% formatting}
% The authors are encouraged to include |\tableofcontents| for long
% papers.  By default only the sections are included in the table.  If
% the authors wish to have a more detailed table of contents, they
% could change the counter |tocdepth|, for example:
% \begin{verbatim}
% \setcounter{tocdepth}{1}  % The default:  only sections are included
% \setcounter{tocdepth}{2}  % Sections and subsections
% \setcounter{tocdepth}{3}  % Sections, subsections and subsubsections
% ...
% \end{verbatim}
% If |tocdepth| is greater than the default value of 1, the formatting
% of the table of contents changes: the section entries then are
% typeset bold.
%
%
%\subsubsection{Commands for Editors}
%\label{sec:editors_commands}
%
% The commands described in this section should be used by the editors
% to insert the information about the published paper.  They must be
% put before the |\maketitle| command.
%
% \DescribeMacro{\issueinfo}
% The command |\issueinfo| has the same format as in the \progname{amsart}
% document class:
% \begin{flushleft}
% |\issueinfo{|\meta{volume}|}{|\meta{number}|}{|\meta{month}|}{|\meta{year}|}|
% \end{flushleft}
% Note that at present the class uses only the first and the last
% arguments of this command (volume and year) for the actual typesetting.
% However, we keep the original format of this command, first, for
% compatibility reasons, and second, to facilitate a possible automatic
% processing of journal issues in the future.
%
% Example of this command:
% \begin{verbatim}
% \issueinfo{159}{1}{January}{2007}
% \end{verbatim}
%
%
% \DescribeMacro{\pagespan}
% The command |\pagespan| has two arguments, setting the first and the
% last page numbers of the article.  If the last argument is empty, the last
% page number is calculated automatically.  If the first argument is
% negative, the page numbering is done in Roman numerals, for example,
% for editorial materials.  Here are examples of this command:
% \begin{verbatim}
% \pagespan{5}{15}    % Explicit page span
% \pagespan{5}{}      % The last page is calculated automatically
% \pagespan{-5}{}     % Page numbers are Roman numerals v, vi, ...
% \pagespan{-5}{xx}   % Page numbers are Roman numerals v, vi, ..., xx
% \end{verbatim}
%
% \DescribeMacro{\date}
% The command |\date| is used to put the editorial information
% about the manuscript, usually the date when the manuscript was
% received.  For example:
% \begin{verbatim}
% \date{Received March 12, 2006 and in revised form December 6, 2006.} 
% \end{verbatim}
% 
% \DescribeMacro{\doiinfo}
% The command |\doiinfo| is used to specify the DOI number of the
% article, for example
% \begin{verbatim}
% \doiinfo{10.1007/s11856-007-0037-3}
% \end{verbatim}
% 
%
%
%\subsection{Theorems, Lemmas, etc.}
% \label{sec:ijmthm_descr}
% 
% \changes{v1.1}{2007/09/30}{Updated documentation for theorems}
%
% The class \progname{amsart} defines three theorem styles: |plain|,
% |remark| and |definition|.  They are redefined by \progname{ijmart}
% to conform to the style of \emph{The Israel Jorunal of Mathematics.}
% Otherwise the usage of the theorem-like environments is the same as
% for \progname{amsart}.  Note that \emph{The Israel Journal of
% Mathematics} usually recommends |definition| style for remarks,
% while |remark| style is used for steps, facts, cases, etc.
%
% \DescribeMacro{\qedhere} 
% The environment |proof| has the same syntax and meaning as for
% \progname{amsart} package.  According to the journal style, the QED
% symbol in proofs is not flushed left, like in \progname{amsart}, but
% is typeset at the last line of the proof at some distance from the
% text.  If a proof ends by a nested environment, this might lead to
% an ugly position of the QED symbol.  The command |\qedhere| inside a 
% proof can be used to improve the situaiton\footnote{It is actually
%   defined in \progname{amsart} too, but is not documented in the
%   user's documentation there.}.  It causes the immediate typesetting
% of the QED symbol and deletes the QED symbol at the end of the
% current proof.  For example
% \begin{verbatim}
% \begin{proof}
%   This proof ends by an enumerated list:
%   \begin{enumerate}
%   \item Item
%   \item Item \qedhere
%   \end{enumerate}
% \end{proof}
% \end{verbatim}
% Compare this to the similar code without |\qedhere|.  
%
% The command |\qedhere| should be used if a proof ends by a math
% display:
% \begin{verbatim}
% \begin{proof}
%   This proof ends by a displayed math:
%   \begin{gather}
%     a = b\\
%     c = d\qedhere
%   \end{gather}
% \end{proof}
% \end{verbatim}
% \DescribeMacro{\mqedhere}
% The exception is the |multline| environment, where the special
% version |\mqedhere| should be used:
% \begin{verbatim}
% \begin{proof}
%   This proof ends with a multline:
%   \begin{multline}
%     a = b + c + d + e + f + g + h + i +\\
%         j + k + l + m + n + o + p + q +\\
%         r + s + t + u + v + w + x + y + z\mqedhere 
%   \end{multline}
% \end{proof}
% \end{verbatim}
%
%
% \DescribeEnv{namedprop}
% \DescribeEnv{namedprop*}
% Sometimes authors use non-standard names for their theorem-like
% propositions.  The documentation~\cite{amsthdoc} recommends the use
% of |\newtheorem*|:
% \begin{verbatim}
% \newtheorem*{KL}{Klein's Lemma}
% \end{verbatim}
% However, if the number of such special environments is large enough,
% this might be too cumbersome.  The package progname{ijmart} provides
% two environments, |namedprop| and |namedprop*| to define such
% these propositions on the fly.
%
% The environment |namedprop| is used for numbered named propositions
% (admittedly such propositions are less frequent than unnumbered
% ones).  It has the following syntax:
% \begin{quote}
%   |\begin{namedprop}|\marg{style}\marg{numbered-as}\marg{name}\oarg{note}\\
%   \dots\\
%   |\end{namedprop}|
% \end{quote}
% where |style| is the style of the proposition (|plain|, |remark|,
% etc.), |nmubered-as| is the name of (already defined) theorem-like
% environment, that shares the numbering with this proposition, |name|
% is the name to use instead of ``Theorem'', ``Lemma'', and |note| is
% the note after the heading.  For example,
% \begin{verbatim}
% \begin{namedprop}{plain}{thm}{Klein's Lemma}[as restated in~\cite{a-l}]
%   ...
% \end{namedprop}
% \end{verbatim}
%
% The nevironment |\namedprop*| is used for \emph{unnumbered} named
% propositions: 
% \begin{quote}
%   |\begin{namedprop*}|\marg{style}\marg{name}\oarg{note}\\
%   \dots\\
%   |\end{namedprop*}|
% \end{quote}
% For example,
% \begin{verbatim}
% \begin{namedprop*}{plain}{Klein's Lemma}[as restated in~\cite{a-l}]
%   ...
% \end{namedprop*}
% \end{verbatim}
%
%
%\subsection{Bibliography}
%\label{sec:bilbio}
%
% The sample paper in the distribution shows the journal style for the
% list of references.  For those authors who wish to use Bib\TeX, the
% style |ijmart.bst| is included in the distribution.  It should be
% noted that the journal style requires full journal titles in
% references.  Following MathSciNet
% (\url{http://www.ams.org/mathscinet/} conventions, the style
% correctly processes article entries with both |journal| and
% |fjournal| fields, for example
% \begin{verbatim}
% @article {MR2663320,
%      AUTHOR = {Farkas, J. Z. and Green, D. M. and Hinow, P.},
%       TITLE = {Semigroup analysis of structured parasite populations},
%     JOURNAL = {Math. Model. Nat. Phenom.},
%    FJOURNAL = {Mathematical Modelling of Natural Phenomena},
%      VOLUME = {5},
%        YEAR = {2010},
%      NUMBER = {3},
%       PAGES = {94--114},
%        ISSN = {0973-5348},
%     MRCLASS = {92D25 (35B35 35Q92 47D06 47N60)},
%    MRNUMBER = {2663320},
%         DOI = {10.1051/mmnp/20105307},
%         URL = {http://dx.doi.org/10.1051/mmnp/20105307},
% }
% \end{verbatim}
% If an entry has only the |journal| field, it is used for the journal
% title.  However, if the entry has also the |fjournal| field, the
% style assumes that this field contains the full (unabbreviated)
% title, and uses it for formatting bibliography.
%
%\subsection{Illustrations}
%\label{sec:illustrations}
%
% The authors can use the \progname{graphics}, \progname{graphicx},
% \progname{PSTricks}, \progname{pgf/tikz}, \progname{Metapost} or
% other tools to include illustrations
% (see~\cite{Goossens97:LateXGraphicsCompanion} for a comprehensive
% discussion of \LaTeX{} graphics possibilities).
%
% Note that the journal uses \progname{dvips} for internal processing.
% If the authors submit their illustrations in the PNG, JPEG of PDF
% formats, they are converted to the EPS format by the technical
% editors.  Sometimes this conversion may lead to the loss of quality
% and resolution.  Therefore the authors are advised to submit the
% illustrations in the EPS format.
%
%
% \StopEventually{%
% \clearpage
% \section{Acknowledgements}
% \label{sec:acks}
%
% I am grateful to the editorial staff of \emph{the Israel Journal of
%   Mathematics} for the very careful copy editing of this manuscript
% and their patient explanations of the requirements of the journal.
%
%   The Editors of the Journal and our Magnes colleagues wish to thank  
% Professors Moshe Jarden and Gregory Cherlin for writing the original  
% Journal package when the Journal came into the ownership of Magnes  
% Press (in 1991). We would also like to thank Guy Jarden for his  
% meticulous work, and for keeping the IJM package updated throughout  
% the last 15 years.
%
%   As a result of their efforts, the Journal was not only saved from  
% extinction, but it has expanded and is considered a leader in its  
% field.  With the recent change in the production procedure to a more  
% global format, we have moved to another program, building on the  
% sturdy basis which they created.
%
% \bibliography{ijmart}
% \bibliographystyle{unsrt}}
% 
% \clearpage
%
%
%\section{Implementation}
%\label{sec:impl}
%
%\subsection{Identification}
%\label{sec:ident}
%
% We start with the declaration who we are.  Most |.dtx| files put
% driver code in a separate driver file |.drv|.  We roll this code into the
% main file, and use the pseudo-guard |<gobble>| for it.
%    \begin{macrocode}
%<class>\NeedsTeXFormat{LaTeX2e}
%<*gobble>
\ProvidesFile{ijmart.dtx}
%</gobble>
%<class>\ProvidesClass{ijmart}
[2013/06/23 v1.7 Typesetting articles for The Israel Journal of Mathematics]
%    \end{macrocode}
%
% \begin{macro}{\@classname}
%   \changes{v0.3}{2007/08/24}{Introduced macro}
% We also store the current class name in |\@classname|:
%    \begin{macrocode}
%<class>\def\@classname{ijmart}%
%    \end{macrocode}
% 
% \end{macro}
%
%
% And the driver code:
%    \begin{macrocode}
%<*gobble>
\documentclass{ltxdoc}
\usepackage{array}
\usepackage{url,amsfonts}
\usepackage[breaklinks,colorlinks,linkcolor=black,citecolor=black,
            pagecolor=black,urlcolor=black,hyperindex=false]{hyperref}
\PageIndex
\CodelineIndex
\RecordChanges
\EnableCrossrefs
\begin{document}
  \DocInput{ijmart.dtx}
\end{document}
%</gobble> 
%<*class>
%    \end{macrocode}
%
%
%\subsection{Options}
%\label{sec:options}
%
% \begin{macro}{\ifijm@french}
% First, the language option.  We do not know whether the author
% chooses to use \progname{babel}, so we define it in the way, which
% is compatible with \progname{babel}, but works without it too.
%    \begin{macrocode}
\newif\ifijm@french
\ijm@frenchfalse
\DeclareOption{french}{\ijm@frenchtrue}
%    \end{macrocode}
% \end{macro}
%
% The size-changing options produce a warning:
%    \begin{macrocode}
\long\def\ijm@size@warning#1{%
  \ClassWarning{\@classname}{Size-changing option #1 will not be
    honored}}%
\DeclareOption{8pt}{\ijm@size@warning{\CurrentOption}}%
\DeclareOption{9pt}{\ijm@size@warning{\CurrentOption}}%
\DeclareOption{10pt}{\ijm@size@warning{\CurrentOption}}%
\DeclareOption{11pt}{\ijm@size@warning{\CurrentOption}}%
\DeclareOption{12pt}{\ijm@size@warning{\CurrentOption}}%
%    \end{macrocode}
% 
%
%
% All other options are passed to \progname{amsart}:
%    \begin{macrocode}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{amsart}}
%    \end{macrocode}
% 
% Now we read the configuration file
%    \begin{macrocode}
\InputIfFileExists{ijmart.cfg}{%
  \ClassInfo{ijmart}{%
    Loading configuration file ijmart.cfg}}{%
  \ClassInfo{ijmart}{%
    Configuration file ijmart.cfg is not found}}
%    \end{macrocode}
% And process the options:
%    \begin{macrocode}
\ProcessOptions\relax
%    \end{macrocode}
%
%
%\subsection{Loading Class and Packages}
%\label{sec:loading}
%
% We start with the base class
%    \begin{macrocode}
\PassOptionsToClass{10pt}{amsart}
\LoadClass{amsart}
%    \end{macrocode}
%
% A bunch of packages:
%    \begin{macrocode}
\RequirePackage{ifpdf, fancyhdr, lastpage}
%    \end{macrocode}
%
%\subsection{Fonts}
%\label{sec:fonts}
% 
% The \progname{amsart} class defines several options for different
% font sizes (10pt, 11pt, etc).  We have just one design size for the
% articles corresponding to the 10pt option of \progname{amsart}, but
% with larger |\baselineskip|.
%
% \begin{macro}{\@typesizes}
%   \changes{v0.3}{2007/08/23}{Redefined \progname{amsart} defaults} 
%   The font information in \progname{amsart} is stored in
%   |\@typesizes| macro.  It has 11 typesizes:  5 below and 5 above
%   |\normalsize| .
%    \begin{macrocode}
\def\@typesizes{%
  \or{5}{7}\or{6}{8}\or{7}{9}\or{8}{11.2}\or{9}{12.6}%
  \or{10}{14}% normalsize
  \or{\@xipt}{15}\or{\@xiipt}{16.8}\or{\@xivpt}{19.8}%
  \or{\@xviipt}{23.3}\or{\@xxpt}{28}}%
\normalsize \linespacing=\baselineskip
%    \end{macrocode}
% \end{macro}
% 
%
%
%\subsection{Page Dimensions and Paragraphing}
%\label{sec:page}
%
% \begin{macro}{\paperheight}
% \begin{macro}{\paperwidth}
% The journal has rather narrow pages:
%    \begin{macrocode}
\setlength{\paperheight}{636.77bp}
\setlength{\paperwidth}{429.41bp}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \begin{macro}{\pdfpaperheight}
% \begin{macro}{\pdfpaperwidth}
% \begin{macro}{\pdfvorigin}
% \begin{macro}{\pdfhorigin}
%   \changes{v0.3}{2007/08/23}{Changed offsets} 
%   \changes{v0.4}{2007/09/02}{Changed offsets} 
% If we deal with \progname{pdftex}, we can use this information more
% creatively.  This was inspired by
% \progname{memoir}~\cite{Wilson04:Memoir}.
%    \begin{macrocode}
\ifpdf\relax
  \pdfpageheight=\paperheight
  \pdfpagewidth=\paperwidth
  \pdfvorigin=0.9in
  \pdfhorigin=1in
\fi
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\headheight}
%   We leave generous header space:
%    \begin{macrocode}
\setlength{\headheight}{32pt}
%    \end{macrocode}
%   
% \end{macro}
%
% \begin{macro}{\footskip}
%   \changes{v0.3}{2007/08/23}{Redefined} 
%   \changes{v0.4}{2007/09/02}{Changed} 
% The footer is slightly larger than in \progname{amsart}
%    \begin{macrocode}
\setlength{\footskip}{42pt}%
%    \end{macrocode}
% \end{macro}
%
%
%
% \begin{macro}{\topmargin}
%   The top margin is 50 bp:
%   \changes{v0.4}{2007/09/02}{Changed offsets} 
%    \begin{macrocode}
\setlength\topmargin{50bp}
\addtolength\topmargin{-0.9in}
\addtolength\topmargin{-\topskip}
\addtolength\topmargin{-\headsep}
\@settopoint\topmargin
%    \end{macrocode}  
% \end{macro}
% \begin{macro}{\textheight}
%   \changes{v0.4}{2007/09/02}{Changed} 
%   This code is similar to the one in~\cite{classes}.  |\textheight|
%   is the height of the text including footnotes, but excluding
%   running head and foot.  We start with |\paperheight| and subtract
%   margins, running heads and foots:
%    \begin{macrocode}
\setlength\@tempdima{\paperheight}
\addtolength\@tempdima{-\topmargin}
\addtolength\@tempdima{-26bp} % Bottom margin
\addtolength\@tempdima{-\headheight}
\addtolength\@tempdima{-\headsep}
\addtolength\@tempdima{-\footskip}
\addtolength\@tempdima{-1in}
%    \end{macrocode}
%   We want this length to contain an integer number of lines:
%    \begin{macrocode}
\divide\@tempdima\baselineskip
\@tempcnta=\@tempdima
\setlength\textheight{\@tempcnta\baselineskip}
%    \end{macrocode}
% Now we take care of the first line height:
%    \begin{macrocode}
\addtolength\textheight{\topskip}
%    \end{macrocode}   
% \end{macro}
%
% \begin{macro}{\evensidemargin}
% \begin{macro}{\oddsidemargin}
%   The margins on even and odd pages are 43 bp:
%    \begin{macrocode}
\setlength\evensidemargin{43bp}
\addtolength{\evensidemargin}{-1in}
\setlength\oddsidemargin{43bp}
\addtolength{\oddsidemargin}{-1in}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \begin{macro}{\textwidth}
%   The way to set up the right margin is slightly different:
%    \begin{macrocode}
\setlength\textwidth{\paperwidth}
\addtolength{\textwidth}{-1in}
\addtolength\textwidth{-\evensidemargin}
\addtolength\textwidth{-43bp} % right margin
\@settopoint\textwidth
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\parindent}
%   The paragraph indentation is 1em:
%    \begin{macrocode}
\setlength\parindent{1em}
%    \end{macrocode}
% \end{macro}
%
%
% 
%
%\subsection{Headers}
%\label{sec:headers}
%
%
% \begin{macro}{\headrulewidth}
% \begin{macro}{\footrulewidth}
%   We do not want decorative rules in the journal:
%    \begin{macrocode}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% 
% It is easy to set up headers with \progname{fancyhdr}:
%    \begin{macrocode}
\pagestyle{fancy}
\fancyhead[LO]{\footnotesize Vol.~\currentvolume, \currentyear}
\fancyhead[CO]{\footnotesize\shorttitle}
\fancyhead[RO]{\footnotesize\thepage}
\fancyhead[LE]{\footnotesize\thepage}
\fancyhead[CE]{\footnotesize\shortauthors}
\fancyhead[RE]{\footnotesize Isr. J. Math.}
\fancyfoot{}
%    \end{macrocode}
% 
% The first page has the special headers.  The style |firstpage| is
% invoked by \progname{amsart}; here we just redefine it.
%    \begin{macrocode}
\fancypagestyle{firstpage}{%
  \fancyhf{}%
  \chead{\tiny%
    ISRAEL JOURNAL OF MATHEMATICS \textbf{\currentvolume}
    (\currentyear), 
    \start@page--\end@page\\[0.5ex] 
  DOI: \@doiinfo}%
   \cfoot{\thepage}}%
%    \end{macrocode}
%
%\subsection{Top Matter Macros}
%\label{sec:top_matter_code}
% 
% Most top matter macros are defined in \progname{amsart}.  Here we
% just add some new macros and redefine some.
%
% \begin{macro}{\author}
%   The macro |\author| provided by \progname{amsart} is almost what
%   we need.  ``Almost'' because we want to add author's name(s) to
%   the address list to typeset them together.
%
%   Another note:  \progname{amsart} stores the list of all authors in
%   the macro |\authors|. We need it now only to check whether the
%   list is empty
%    \begin{macrocode}
\renewcommand{\author}[2][]{%
  \ifx\@empty\authors
    \gdef\authors{#2}%
    \gdef\addresses{\author{#2}}%
  \else
    \g@addto@macro\authors{\and#2}%
    \g@addto@macro\addresses{\and\author{#2}}%
  \fi
  \def\@tempa{#1}%
  \ifx\@tempa\@empty\relax 
   \ifx\@empty\shortauthors
     \gdef\shortauthors{#2}%
   \else
     \g@addto@macro\shortauthors{\and#2}%
   \fi
  \else
  \ifx\@empty\shortauthors
     \gdef\shortauthors{#1}%
   \else
     \g@addto@macro\shortauthors{\and#1}%
   \fi
 \fi
}%
%    \end{macrocode}
%   
%
% \end{macro}
%
%
% \begin{macro}{abstract}
%   \changes{v0.3}{2007/08/23}{Changed spacing} 
%   The following code is mostly from~\cite{Downes04:amsart} with the
%   changes due to our style.  The comments are mostly from the same
%   source.
%
%   {\itshape In AMS-derived document classes, the abstract should be placed
%   before |\maketitle| (otherwise the desired ordering of frontmatter
%   elements cannot be ensured in all cases).}
%    \begin{macrocode}
\newbox\abstractbox
%    \end{macrocode}
%    {\itshape We start by checking whether |\maketitle| has already been used
%    (in which case it was reset to \cs{relax}); if so, we give a
%    warning that the abstract should be placed before |\maketitle|.}
%    \begin{macrocode}
\renewenvironment{abstract}{%
  \ifx\maketitle\relax
    \ClassWarning{\@classname}{Abstract should precede
      \protect\maketitle\space in AMS-derived document classes; reported}%
  \fi
  \global\setbox\abstractbox=\vtop \bgroup
  \vglue 10pt plus 6pt minus 6pt%
    \normalfont\tiny
    \centering\MakeUppercase{\abstractname}\par%
    \Small
    \list{}{\labelwidth\z@
      \leftmargin3pc \rightmargin\leftmargin
      \listparindent\normalparindent \itemindent\z@
      \parsep\z@ \@plus\p@
%    \end{macrocode}
%    {\itshape In order to get equation numbers indented with the rest of the
%    abstract, we have to do this:}
%    \begin{macrocode}
      \let\fullwidthdisplay\relax
    }%
  \item[]%
}{%
    \vspace*{-10pt}
  \endlist\egroup
%    \end{macrocode}
%    {\itshape If the abstract was supposed to be typeset earlier, then
%    \cs{@setabstract} is now equal to \cs{relax}, and we had better
%    drop the contents of the abstract box onto the page immediately, to
%    salvage the situation as best we can.}
%    \begin{macrocode}
  \ifx\@setabstract\relax \@setabstracta \fi
}%
%    \end{macrocode}
%
% \end{macro}
% 
%
% \begin{macro}{\pagespan}
%   This macro is different from the one provided by \progname{amsart}
%   because we want to have the option of automatic calculation of the
%   last page number.
%    \begin{macrocode}
\def\pagespan#1#2{\pagenumbering{arabic}\setcounter{page}{#1}%
  \def\start@page{#1}%
  \ifnum\c@page<\z@ \pagenumbering{roman}\setcounter{page}{-#1}%
    \def\start@page{\romannumeral#1}%
  \fi%
  \def\@tempa{#2}%
  \ifx\@tempa\@empty\def\end@page{\pageref{LastPage}}%
  \else\def\end@page{#2}\fi}
\pagespan{1}{}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\doiinfo}
%   This is the doi number of the article:
%    \begin{macrocode}
\def\doiinfo#1{\gdef\@doiinfo{#1}}
\doiinfo{10.1007/s000000000000000000000000}
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{\thanks}
%   \changes{v0.3}{2007/08/23}{Changed size} 
%   The macro |\thanks| is redefined in \progname{amsart}.  Here is
%   the adapted original definition from the \LaTeX{} kernel.  Note
%   that the footnotes on the title page are typeset in |\small| size,
%   rather than in |\footnotesize|.
%    \begin{macrocode}
\def\thanks#1{\footnotemark
    \protected@xdef\thankses{\thankses
        \protect\footnotetext[\the\c@footnote]{\small#1}}%
}
\let\@thanks\@empty
%    \end{macrocode}
%   
% \end{macro}
%
%\subsection{Typesetting Top Matter}
%\label{sec:maketitle}
%
%
% \begin{macro}{\@maketitle@hook}
%   \changes{v0.3}{2007/08/23}{Changed footnotes formatting} 
%   \changes{v1.0}{2007/09/03}{Deleted rlap from footnotemark} 
%   The |\@maketitle@hook| is called by |\maketitle| in
%   \progname{amsart}.  We use it to a number of redefinitions.
%    \begin{macrocode}
\def\@maketitle@hook{%
%    \end{macrocode}
%  At this point we collected all authors in |\shortauthors|, so we
%  can uppercase it:
%    \begin{macrocode}
  \uppercasenonmath\shortauthors
%    \end{macrocode}
% 
%  The footnote numbering on the title page is rather interesting.  It
%  is $\ast$, then $\ast\ast$, then $\dagger$, then $\dagger\dagger$,
%  etc. 
%    \begin{macrocode}
  \renewcommand\thefootnote{\ifcase\c@footnote\relax 
    \or\@fnsymbol{1}%
    \or\@fnsymbol{1}\@fnsymbol{1}%
    \or\@fnsymbol{2}%
    \or\@fnsymbol{2}\@fnsymbol{2}%
    \or\@fnsymbol{3}%
    \or\@fnsymbol{3}\@fnsymbol{3}%
    \or\@fnsymbol{4}%
    \or\@fnsymbol{4}\@fnsymbol{4}%
    \or\@fnsymbol{5}%
    \or\@fnsymbol{5}\@fnsymbol{5}%
    \or\@fnsymbol{6}%
    \or\@fnsymbol{6}\@fnsymbol{6}%
  \fi}%
  \def\@makefnmark{\@textsuperscript{\normalfont\@thefnmark}}%
  \long\def\@makefntext##1{\noindent\hangindent=2em\hangafter=1
    \hb@xt@2em{%
      \hss\@textsuperscript{\normalfont\footnotesize\@thefnmark\space}}##1}%
  \def\footnoterule{\kern-3pt\hrule width 2in\kern 2.6pt}
  \setcounter{footnote}{0}%
}%
%    \end{macrocode}   
% \end{macro}
%
%
% \begin{macro}{\@adminfootnotes}
%   \progname{amsart} typesets the footnotes \emph{before} typesetting
%   the authors and title.  Since we form the footnotes later, we must
%   delay this till the end of the top matter:
%    \begin{macrocode}
\def\@adminfootnotes{}%
%    \end{macrocode}
%   
% \end{macro}
%
% \begin{macro}{\andify}
%   In the US the common style for lists is ``Tom, Dick, and Harry''.
%   It is hard-coded into \progname{amsart}.  However, our journal
%   style is ``Tom, Dick and Harry'' (is it the British usage?).
%   Therefore we need to redefine the function |\andify|:
%    \begin{macrocode}
\renewcommand{\andify}{%
  \nxandlist{\unskip, }{\unskip{} \@@and~}{\unskip{} \@@and~}}
%    \end{macrocode}
%   
% \end{macro}
%
% \begin{macro}{\@@and}
%   Normally the macro |\@@and| is expanded just to 'and'.  However,
%   if |french| option is selected, we want the french version:
%    \begin{macrocode}
\def\@@and{AND}
\ifijm@french\def\@@and{ET}\fi
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\@@by}
%   Same with |\@@by|:
%    \begin{macrocode}
\def\@@by{BY}
\ifijm@french\def\@@by{PAR}\fi
%    \end{macrocode} 
% \end{macro}
%
% \begin{macro}{\curraddrname}
% \begin{macro}{\emailaddrname}
% \begin{macro}{\urladdrname}
%   The keywords for the specific parts of the address (e-mail,
%   current address, etc.) depend on the language chosen.
%    \begin{macrocode}
\def\curraddrname{Current address:}%
\def\emailaddrname{e-mail:}%
\def\urladdrname{URL:}%
\ifijm@french
  \def\curraddrname{Adresse actuelle:}%
  \def\emailaddrname{courriel:}%
\fi
%    \end{macrocode}
%   
% \end{macro}
% \end{macro}
% \end{macro}
%
%
% \begin{macro}{\@settitle}
%   The title is set in large font uppercase.  There is a problem,
%   however:  uppercasing title means uppercasing \emph{everything},
%   including thanks!  We solve this problem in the following way:  we
%   typeset the title twice, once invisibly in the lowercase, and
%   again in uppercase, but without typesetting the footnote text.  
%    \begin{macrocode}
\def\@settitle{%
    \begin{center}%
    \makebox[0pt]{\hphantom{\@title}}%
    \def\thanks##1{\addtocounter{footnote}{-1}\footnotemark}%
    \uppercasenonmath\@title
      \Large\baselineskip=14pt\lineskiplimit=2pt\lineskip=2pt\@title%
    \end{center}}%
%    \end{macrocode}
% \end{macro}
%   
%
% \begin{macro}{\@setauthors}
%   While we call this macro |\@setauthors|, in fact it is setting the
%   names \emph{and} addresses of the authors.
%
%  The authors' block is centered:
%    \begin{macrocode}
\def\@setauthors{\vglue 21pt plus 6pt minus 3pt%
   \begin{center}%
%    \end{macrocode}
%  
% We need to properly treat the current address, e-mail and URL of the
% authors.  Note that \progname{amsart} uses an optional first
% argument to these macros;  we silently drop it.  
%    \begin{macrocode}
  \def\curraddr##1##2{\begingroup
    \@ifnotempty{##2}{\par\curraddrname{}\par
      ##2\par}\endgroup}%
  \def\email##1##2{\begingroup
    \@ifnotempty{##2}{\par\emailaddrname{}~%
      ##2\par}\endgroup}%
  \def\urladdr##1##2{\begingroup
    \@ifnotempty{##2}{\par\urladdrname{}~%
      ##2\par}\endgroup}%
%    \end{macrocode}
%
% We print the word ``by'' only if there is at least one author.
% I am not sure how it can be that a manuscript has no authors, but
% has addresses defined.  Maybe official editorial?
%    \begin{macrocode}
      \if\authors\@empty\relax\else{\normalfont\tiny\@@by}\par\medskip
%    \end{macrocode}
% The authors are typeset in small caps:
%    \begin{macrocode}
      \def\author##1{{\normalsize\scshape##1}\par\medskip}
%    \end{macrocode}
% The keyword ``and'' is typeset like ``by'' with large skip:
%    \begin{macrocode}
      \def\and{\par\bigskip{\normalfont\tiny\@@and}\par\medskip}
%    \end{macrocode}
%  And everything else is typeset in italics:
%    \begin{macrocode}
     \small\itshape\addresses
%    \end{macrocode}
%    \begin{macrocode}
   \end{center}}%
%    \end{macrocode}
% \end{macro}
% 
%
% \begin{macro}{\@maketitle}
%   \changes{v0.3}{2007/08/23}{Changed size for date} 
%   We typeset footnotes at the end of the top matter typesetting.
%   Note the larger type size for the |\@date| footnote.
%    \begin{macrocode}
\let\@origmaketitle=\@maketitle
\def\@maketitle{\@origmaketitle
  \thankses
  \ifx\@date\@empty\else
    \def\thefootnote{}%
    \footnotetext{\small\@date}\fi%
  \gdef\thefootnote{\@arabic\c@footnote}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\enddoc@text}
%   In \progname{amsart}  the macro |\enddoc@text| typesets addresses
%   at the end of the document.  We do not need it:
%    \begin{macrocode}
\def\enddoc@text{}
%    \end{macrocode}
% \end{macro}
%
%
%
%\subsection{Table of Contents}
%\label{sec:toc}
% By default we include in the table of contents only sections:
%    \begin{macrocode}
\setcounter{tocdepth}{1}
%    \end{macrocode}
% \begin{macro}{\contentsnamefont}
%   The table of contents is typeset smaller than in
%   \progname{amsart}:
%    \begin{macrocode}
\renewcommand\contentsnamefont{\scshape\footnotesize}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@starttoc}
% \changes{v1.2}{2007/11/15}{Redefined}
% \changes{v1.5}{2010/03/02}{Added |\makeatletter| to make compatible
% with |babel|}
%   We also rewrite |\@starttoc| to make the type smaller.  The
%   comments are again from \progname{amsart}:
%    \begin{macrocode}
\def\@starttoc#1#2{\begingroup
  \setTrue{#1}%
%    \end{macrocode}
%    {\itshape Remove the skip after the abstract so that we can
%    substitute another.} 
%    \begin{macrocode}
  \par\removelastskip\vskip\z@skip
%    \end{macrocode}
%    {\itshape The first two arguments of \cs{@startsection} here are
%    special values 
%    that cause different internal branches to be taken.}
%\begin{verbatim}
%    Arguments: {} = name = empty
%    \@M = no number should be used and no table of contents entry
%    \z@ = indent amount
%    12pt + 12pt = vskip before
%    6pt = vskip after
%    \centering\contentsnamefont = format
%\end{verbatim}
%    \begin{macrocode}
  \@startsection{}\@M\z@{\linespacing\@plus\linespacing}%
    {.5\linespacing}{\centering\contentsnamefont}{#2}%
%    \end{macrocode}
%    {\itshape If we have a list of figures or list of tables we want to put
%    them in the main table of contents, but we don't want to put an
%    entry there for the main table of contents itself. So we check
%    to see if argument 2 is |\contentsname| and if it is then
%    we refrain from doing |\addcontentsline|.} 
%    \begin{macrocode}
  \ifx\contentsname#2%
  \else \addcontentsline{toc}{section}{#2}\fi
%    \end{macrocode}
% We want the table of contents to have the same width as the abstract
%   \begin{macrocode}
  \list{}{\labelwidth\z@
    \leftmargin2.4pc \rightmargin\leftmargin
    \listparindent\z@ \itemindent\z@
    \parsep\z@ \@plus\p@}%
  \item[]\makeatletter%
    \small\@input{\jobname.#1}\endlist%
  \if@filesw
    \@xp\newwrite\csname tf@#1\endcsname
    \immediate\@xp\openout\csname tf@#1\endcsname \jobname.#1\relax
  \fi
  \global\@nobreakfalse \endgroup
  \addvspace{32\p@\@plus14\p@}%
  \let\tableofcontents\relax
}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@dotsep}
%   Separation between the dots for table of contents:
%    \begin{macrocode}
\newcommand\@dotsep{4.5}
%    \end{macrocode}
%   
% \end{macro}
%
% \begin{macro}{\@tocline}
%   We want dots in the table of contents\dots
%    \begin{macrocode}
\def\@tocline#1#2#3#4#5#6#7{\relax
  \ifnum #1>\c@tocdepth % then omit
  \else
    \par \addpenalty\@secpenalty\addvspace{#2}%
    \begingroup \hyphenpenalty\@M
    \@ifempty{#4}{%
      \@tempdima\csname r@tocindent\number#1\endcsname\relax
    }{%
      \@tempdima#4\relax
    }%
    \parindent\z@ \leftskip#3\relax \advance\leftskip\@tempdima\relax
    \rightskip\@pnumwidth plus4em \parfillskip-\@pnumwidth
    #5\leavevmode\hskip-\@tempdima #6\nobreak\relax
    \leaders\hbox{$\m@th
        \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
        mu$}\hfill
    \hbox to\@pnumwidth{\@tocpagenum{#7}}\par
    \nobreak
    \endgroup
  \fi}%
%    \end{macrocode}   
% \end{macro}
%
%
% \begin{macro}{\l@section}
% \changes{v1.2}{2007/11/15}{Redefined to check whether subsections
% are present}
%   The actual formatting of section entries depend whether
%   subsections are included in toc.  If yes, the sections are bold.
%    \begin{macrocode}
\def\l@section{%
  \@tocline{1}{0pt}{1pc}{}{%
    \ifnum\c@tocdepth>1\bfseries\fi}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\l@subsection}
% \begin{macro}{\l@subsubsection}
% \changes{v1.2}{2007/11/14}{Added indentation}
% \changes{v1.3}{2008/02/12}{Changed indentation}
% These entries are indented.
%    \begin{macrocode}
\def\l@subsection{\@tocline{2}{0pt}{2.8pc}{}{}}
\def\l@subsubsection{\@tocline{3}{0pt}{4.6pc}{}{}}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
%
%
%\subsection{Captions}
%\label{sec:captions}
%
% \begin{macro}{\@captionheadfont}
%   \changes{v0.3}{2007/08/23}{Redefined}
% The captions in \progname{amsart} are in small caps.  In this
% journal they are not:
%    \begin{macrocode}
\def\@captionheadfont{\normalfont}
%    \end{macrocode}
% 
% \end{macro}
%
%\subsection{Sectioning}
%\label{sec:sections}
%
% \begin{macro}{\@secnumfont}
%   It is possible in \progname{amsart} to have section numbers in the
%   font different from the title font.  We do not want this:
%    \begin{macrocode}
\let\@secnumfont\@empty
%    \end{macrocode}
%   
% \end{macro}
%
% Now we redefine sections.  The arguments of the |\@startsection|
% commands are
%\begin{verbatim}
%  #1    #2     #3      #4          #5         #6
% {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}
%\end{verbatim}
%
% \begin{macro}{\section}
%   Most sections are not centered, unlike \progname{amsart} ones:
%    \begin{macrocode}
\def\section{\@startsection{section}{1}%
  \z@{20pt plus 4pt minus 4pt}{0.5\linespacing}%
 {\normalfont\bfseries}}%
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{\centeredsection}
% \changes{v0.3}{2007/08/23}{Added macro} 
%   However, there are special centered sections, for example,
%   ``References'': 
%    \begin{macrocode}
\def\centeredsection{\@startsection{section}{1}%
  \z@{20pt plus 4pt minus 4pt}{0.5\linespacing}%
 {\normalfont\bfseries\centering}}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\subsection}
%   Subsections are in small caps on the line with text.
%   \begin{macrocode}
\def\subsection{\@startsection{subsection}{2}%
  \z@{.5\linespacing\@plus.7\linespacing}{-0.5em}%
 {\normalfont\scshape}}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\subsubsection}
%   Subsubsection heads are in italics
%   \begin{macrocode}
\def\subsubsection{\@startsection{subsubsection}{3}%
  \z@{.5\linespacing\@plus.7\linespacing}{-0.5em}%
 {\normalfont\itshape}}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\paragraph}
% \begin{macro}{\subparagraph}
%   Paragraphs and subparagraphs are in normal font:
%   \begin{macrocode}
\def\paragraph{\@startsection{paragraph}{4}%
  \z@\z@{-0.5em}%
 {\normalfont}}%
\def\subparagraph{\@startsection{subparagraph}{5}%
  \z@\z@{-0.5em}%
 {\normalfont}}%
%    \end{macrocode}
% \end{macro}
% \end{macro}
% 
%\begin{macro}{\if@afterindent}
% \changes{v0.3}{2007/08/23}{Deleted first indent after the section head} 
% The first paragraph after section head is \emph{not} indented,
% like in standard \LaTeX---but \emph{unlike} \progname{amsart}. 
% The code below is inspired by David Carlisle's package
% \progname{indentfirst}~\cite{Carlisle95:indentfirst} (of course
% David wanted to \emph{have} the first indent, and we want
% the opposite):
%    \begin{macrocode}
\let\@afterindenttrue\@afterindentfalse
\@afterindentfalse
%    \end{macrocode}
% \end{macro}
% 
% \begin{macro}{\appendix}
% \changes{v1.4}{2009/11/10}{Redefined the macro to delete ugly indent
% in TOC}
%   The standard \progname{amsart} macro |\@tochangmeasure| measures
%   the width of the TOC label for the hanging indentation of TOC
%   entries.  However, for appendices this label includes the word
%   ``Appendix'', which leads to an ugly indent of TOC entries.
%   Therefore we stop measuring in appendices:
%    \begin{macrocode}
\def\appendix{\par\c@section\z@ \c@subsection\z@
   \let\sectionname\appendixname
   \def\thesection{\@Alph\c@section}%
   \def\@tochangmeasure##1{}}
%    \end{macrocode}
%   
% \end{macro}
%
%
%
%\subsection{Theorem Styles}
%\label{sec:theorem_code}
%
% Here we redefine three main style of \progname{amsart}.  Here are
% the arguments of |\newtheoremstyle| from~\cite{Downes04:amsart}:
%\begin{verbatim}
%                   #1
% \newtheoremstyle{NAME}%
%     #2          #3          #4
%   {ABOVESPACE}{BELOWSPACE}{BODYFONT}%
%     #5      #6        #7         #8
%   {INDENT}{HEADFONT}{HEADPUNCT}{HEADSPACE}%
%     #9
%   {CUSTOM-HEAD-SPEC}
%\end{verbatim}
%
%
%
% In the |plain| style the name (``theorem'') and number are
% printed in small caps, the optional note   is in
% upright, and the text is slanted.
%    \begin{macrocode}
\newtheoremstyle{plain}{0.5\linespacing}{0.5\linespacing}{\slshape}{0pt}%
   {\scshape}{:}{0.5em}{\thmname{#1}\thmnumber{ #2}\thmnote{\upshape{} (#3)}}
%    \end{macrocode}
%
%
% In the |definition| style the name, the number is  slanted, and the
% text and the note are upright.
%    \begin{macrocode}
\newtheoremstyle{definition}{0.5\linespacing}{0.5\linespacing}%
   {\upshape}{0pt}%
   {\slshape}{:}{0.5em}{\thmname{#1}\thmnumber{ #2}\thmnote{\upshape{} (#3)}}
%    \end{macrocode}
%
%
% In the |remark| style the name and the number are in small caps,
% the note  and the text text is upright.
% \changes{v0.4}{2007/09/03}{Redefined remark and definition styles:
% the note is now upright.}
%    \begin{macrocode}
\newtheoremstyle{remark}{0.5\linespacing}{0.5\linespacing}%
   {\upshape}{0pt}%
   {\scshape}{:}{0.5em}{\thmname{#1}\thmnumber{ #2}\thmnote{\upshape{} (#3)}}
%    \end{macrocode}
%
%
%
% \begin{macro}{proof}
% \changes{v0.3}{2007/08/23}{Redefined \progname{amsart} defaults}
% We want to have the word ``proof'' slanted rather than italicized:
%    \begin{macrocode}
\renewenvironment{proof}[1][\proofname]{\par
  \pushQED{\qed}%
  \normalfont \topsep6\p@\@plus6\p@\relax
  \trivlist
  \item[\hskip\labelsep
    \slshape
    #1\@addpunct{.}]\ignorespaces
}{%
  \popQED\endtrivlist\@endpefalse
}
%    \end{macrocode} 
% \end{macro}
%
%
% \begin{macro}{\qed}
%   \changes{v0.3}{2007/08/24}{Redefined \progname{amsart} default} 
%   \changes{v1.3}{2008/01/27}{Changed math mode branch} 
%   Unlike \progname{amsart}, we do not want the QED symbol to be
%   flushed right:
%    \begin{macrocode}
\DeclareRobustCommand{\qed}{%
  \leavevmode\unskip\penalty9999 \hbox{}\nobreak
  \ifmmode
     \makebox[0pt][l]{\qquad\hbox{\qedsymbol}}%
  \else
     \qquad\hbox{\qedsymbol}\fi}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\mqedhere}
%   \changes{v1.3}{2008/01/27}{Introduced the command} 
% Normally |\qedhere| is typeset  with zero effective width in math
% mode to present centering alignment in equations. This presents
% problems in |multline| environment, where the last line is flushed
% right, so |\qedhere| would be typeset on the margin.  The following
% command switches to text mode:
%    \begin{macrocode}
\def\mqedhere{\ensuremath{\text{\qedhere}}}%
%    \end{macrocode}
% 
% \end{macro}
%
%
% \begin{macro}{\qedsymbol}
%   \changes{v0.3}{2007/08/24}{Redefined \progname{amsart} default} 
% The QED symbol itself is a small closed box:
%    \begin{macrocode}
\def\qedsymbol{\rule[0.47pt]{4pt}{6pt}}%
%    \end{macrocode}
% 
% \end{macro}
%
% \begin{macro}{\namedprop}
% \changes{v1.1}{2007/09/30}{Introduced macro}
% This is the unstarred version of the macro.  It calls the command
% and then closes the group opened by |\namedprop@|
%    \begin{macrocode}
\newenvironment{namedprop}{%
  \namedprop@}{%
  \end{namedprop@thm}%
  \egroup}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\namedprop*}
% \changes{v1.1}{2007/09/30}{Introduced macro}
%   The starred version is similar:
%    \begin{macrocode}
\newenvironment{namedprop*}{%
  \namedprop@star@}{%
  \end{namedprop@thm}%
  \egroup}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\namedprop@star@}
% \changes{v1.1}{2007/09/30}{Introduced macro}
%   The starred version has two mandatory arguments: style and and
%   name, and one optional argument: note.
%    \begin{macrocode}
\def\namedprop@star@#1#2{%
  \@ifnextchar[{\namedprop@star@@{#1}{#2}}{\namedprop@star@@{#1}{#2}[]}}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\namedprop@star@@}
% \changes{v1.1}{2007/09/30}{Introduced macro}
%   This is the command that does the real work:
%    \begin{macrocode}
\def\namedprop@star@@#1#2[#3]{%
  \bgroup
  \let\namedprop@thm\relax
  \theoremstyle{#1}
  \newtheorem*{namedprop@thm}{#2}
  \begin{namedprop@thm}[#3]}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\namedprop@}
% \changes{v1.1}{2007/09/30}{Introduced macro}
%   This is the unstarred version of the macro.  It has three
%   mandatory arguments:  style, counter and the name, and one
%   optional argument: the note.
%    \begin{macrocode}
\def\namedprop@#1#2#3{%
  \@ifnextchar[{\namedprop@@{#1}{#2}{#3}}{\namedprop@@{#1}{#2}{#3}[]}}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\namedprop@@}
% \changes{v1.1}{2007/09/30}{Introduced macro}
%   And the real macro:
%    \begin{macrocode}
\def\namedprop@@#1#2#3[#4]{%
  \bgroup
  \let\namedprop@thm\relax
  \theoremstyle{#1}
  \newtheorem{namedprop@thm}[#2]{#3}
  \begin{namedprop@thm}[#4]}
%    \end{macrocode}
% \end{macro}
%
%\subsection{Bibliography}
%\label{sec:biblio_code}
%
% \begin{macro}{\@bibtitlestyle}
%   \changes{v0.3}{2007/08/23}{Redefined to have centered heading} 
% Unlike other section heads, the word ``References'' in the journal
% is centered:
%    \begin{macrocode}
\renewcommand{\@bibtitlestyle}{%
  \@xp\centeredsection\@xp*\@xp{\refname}%
}%
%    \end{macrocode}
% \end{macro}
%
%\subsection{End of Class}
%\label{end}
%
%
%    \begin{macrocode}
%</class>
%    \end{macrocode}
%
%\Finale
%\clearpage
%
%\PrintChanges
%\clearpage
%\PrintIndex
%
\endinput
