summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/aomart/aomart.dtx
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/aomart/aomart.dtx
Initial commit
Diffstat (limited to 'macros/latex/contrib/aomart/aomart.dtx')
-rw-r--r--macros/latex/contrib/aomart/aomart.dtx2322
1 files changed, 2322 insertions, 0 deletions
diff --git a/macros/latex/contrib/aomart/aomart.dtx b/macros/latex/contrib/aomart/aomart.dtx
new file mode 100644
index 0000000000..29d2c8e44d
--- /dev/null
+++ b/macros/latex/contrib/aomart/aomart.dtx
@@ -0,0 +1,2322 @@
+% \iffalse
+% $Id: aomart.dtx,v 1.74 2017/12/14 04:17:05 boris Exp $
+%
+% Copyright 2010-2017, Princeton University (Mathematics Department)
+% 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 aomart.dtx and the
+% derived file aomart.cls, and files aomplain.bst and aomalpha.bst
+%
+% The file fullref.pl, included with this package, is in
+% public domain.
+%
+% \fi
+% \CheckSum{1474}
+%
+%
+%% \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{aomart.dtx}
+% \newcommand{\progname}[1]{\textsf{#1}}
+% \title{\LaTeX{} Class for The \emph{Annals of
+% Mathematics}\thanks{\copyright 2010, Princeton University
+% (Mathematics Department)}}
+% \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
+% The \emph{Annals of Mathematics}
+% \end{abstract}
+% \tableofcontents
+%
+% \changes{v0.2}{2010/08/24}{First fully functional version}
+% \changes{v0.3}{2010/09/27}{Documentation update}
+% \changes{v0.4}{2010/09/29}{Documentation update}
+% \changes{v0.6}{2010/10/03}{Changes to bst files}
+% \changes{v0.6}{2010/10/03}{Fullref.pl is much less agressive now}
+% \changes{v0.7}{2010/10/09}{Bibliography styles changed}
+% \changes{v0.8}{2010/11/16}{Documentation update}
+% \changes{v0.8}{2010/11/21}{Bibliography styles update}
+% \changes{v0.9}{2010/12/04}{Bibliography styles update}
+% \changes{v0.9}{2010/12/04}{Documentation update}
+% \changes{v0.10}{2010/12/20}{Bibliography styles update}
+% \changes{v0.10}{2010/12/20}{Documentation update}
+% \changes{v1.0}{2010/12/21}{Top matter macros are now only in preamble}
+% \changes{v1.2}{2011/01/05}{Bibliography styles update}
+% \changes{v1.5}{2011/02/26}{Added noopsort to the styles, corrected
+% typo}
+% \changes{v1.5}{2011/02/26}{Added sortyear to the styles}
+% \changes{v1.6}{2011/03/06}{Bibliography change: aomalpha now
+% respects key field in the bib file}
+% \changes{v1.11}{2012/07/23}{Added new commands for copyright
+% statement}
+% \changes{v1.11}{2012/07/24}{Bibliography change: titlenote, deleted bysame}
+% \changes{v1.11}{2012/08/16}{Added \textbackslash fulladdress}
+% \changes{v1.11}{2012/08/16}{Deleted \textbackslash repeatedauthors{} from
+% the documentation}
+% \changes{v1.17}{2017/01/26}{Added new field totalpages to the
+% bibliography}
+% \changes{v1.17a}{2017/01/26}{Bug fixed in aomplain.bst}
+% \changes{v1.18}{2017/02/11}{New option \texttt{oldkeywords} and
+% printing keywords and subjects by default}
+% \changes{v1.19}{2017/04/12}{Bibliography changes}
+%
+% \clearpage
+%
+%\section{Introduction}
+%\label{sec:intro}
+%
+% The \emph{Annals of Mathematics} is published bimonthly with the
+% cooperation of Princeton University and the Institute for Advanced
+% Study. Founded in 1884 by Ormond Stone of the University of
+% Virginia, the journal was transferred in 1899 to Harvard University,
+% and in 1911 to Princeton University. Since 1933, the Annals has been
+% edited jointly by Princeton University and the Institute for
+% Advanced Study (see
+% \url{http://annals.princeton.edu/annals/about/journal/about.html}).
+%
+% This class presents a complete redesign of the journal style---with
+% new fonts and new interface.
+%
+%
+% 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 |aomart.ins|. This will produce the file
+% |aomart.cls|.
+% \item Put the file |aomart.cls| to
+% the place where \LaTeX{} 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 |aomart.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 Package \progname{hyperref}~\cite{Rahtz06:Hyperref},
+% \item \progname{ifpdf} package~\cite{Oberdiek06:Ifpdf},
+% \item \progname{fancyhdr} package~\cite{Oostrum04:Fancyhdr},
+% \item \progname{cmtiup} package~\cite{Znamenskii03:Cmtiup} for
+% ``special italics'' with uprgiht digits and punctuation. Note that
+% since many distributions do not include this package, you may need
+% to install it yourself. Just download the file
+% \url{http://mirrors.ctan.org/fonts/cm/cmtiup.zip}, unzip it in your
+% \path{TEXMF} directory and rebuild the file names database with the
+% command like |mktexlsr|,
+% \item \progname{yhmath} package~\cite{Haralambous96:Yhmath}.
+% \end{enumerate}
+%
+%
+%\subsection{Invocation}
+%\label{sec:invocation}
+%
+% To use the class, put in the preamble of your document
+% \begin{flushleft}
+% |\documentclass[|\meta{options}|]{aomart}|
+% \end{flushleft}
+% The class internally loads \progname{amsart}, so all facilities of
+% \progname{amsart}~\cite{Graetzer00:MathIntoLaTeX, amsldoc} can be used in the
+% source.
+%
+% The class should work with the
+% \progname{Babel}~\cite{Braams05:Babel} package. At present,
+% English, French and German languages are fully supported. See also
+% Section~\ref{sec:non-english}.
+%
+% \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]{aomart}
+% \usepackage[final]{graphics}
+% \end{verbatim}
+% or add in the beginning of the document
+% \begin{verbatim}
+% \overfullrule=5pt
+% \end{verbatim}
+%
+% \DescribeOption{manuscript}
+% The option |manuscript| is intended to faciliate the communications
+% between the editor and the author. It enables two things:
+% \begin{enumerate}
+% \item Numbering of lines in the manuscript is switched off in the
+% normal mode, but is on in the manuscript mode.
+% \item Command |\EditorialComment| is no-op in normal mode, but
+% produces mariginal commentaries in the manuscript
+% \item Hyperlinks are black in normal mode, but blue in manuscript
+% mode.
+% \end{enumerate}
+%
+% \DescribeOption{screen}
+% The option |screen| is intended for the onscreen version of the
+% acticle. If this option is selected, the links are blue colored,
+% and the margins are reduced.
+%
+% \DescribeOption{olddoi}%
+% Starting from version~1.9 (2011) the formatting of DOI numbers
+% changed according to the new recommendations from CrossRef. The
+% option |olddoi| switches on the ``old'' formatting. It is used for
+% compatibility reasons.
+%
+% \DescribeOption{doi2016}%
+% Starting from version~1.5 (2016) the formatting of DOI numbers
+% changed again according to Crossref recommendations. The option
+% |doi2016| switches to the version existed between 2011 and 2016.
+%
+% \DescribeOption{oldkeywords}%
+% Since June 2017 keywords and AMS Mathematical Subjects
+% classification numbers are printed on the title page. The option
+% \texttt{oldkeywords} suppresses this.
+%
+% \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 |11pt| of
+% \progname{amsart}).
+%
+%
+%
+%
+%\subsection{Top Matter}
+%\label{sec:top_matter}
+%
+%
+% 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.
+%
+% The macros descibed below must be issued in the preamble of the
+% document, i.e. before |\begin{document}|. They produce fatal error
+% otherwise. This behavior is required by the way non-\TeX{} scripts
+% process the files to produce metadata.
+%
+% The only exception is abstract, which should be placed
+% after |\begin{document}|.
+%
+%
+%\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.
+%
+% 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.
+%
+%
+% \DescribeMacro{\author}%
+% \DescribeMacro{\email}%
+% \DescribeMacro{\address} \DescribeMacro{\curraddr}%
+% \DescribeMacro{\urladdr}%
+% \DescribeMacro{\orccid}%
+% 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|, |\urladdr| and \cs{orcid}. Note that the
+% house style of the \emph{Annals of Mathematics} requires writing
+% |\address| in the form \emph{Institution, City, State} (or
+% \emph{Institution, City, Country} for non-US locations). Like the
+% newer versions of \progname{amsart}, \progname{aomart} 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.
+%
+% \DescribeMacro{\givenname} \DescribeMacro{\surname}
+% The papers published in the \emph{Annals of Mathematics} are
+% included in various databases. For the indexing purposes it is
+% important to correctly separate the authors' names into ``First
+% Name/Surname'' parts. This operation is not easy for the
+% computers. Therefore we decided that the authors should know best
+% how to deal with their names. The macros |\givenname| and
+% |\surname| are used to indicate how to split the name into the
+% parts.
+%
+% \DescribeMacro{\fulladdress}
+% Another command which does not affect the typesetting is
+% \cmd{\fulladdress}. It is used to store the full mailing address of
+% the author for the online version of the journal and various
+% databases.
+%
+% \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}
+% Like \progname{amsart} (and unlike standard \LaTeX{}),
+% \progname{aomart} allows |\thanks| only \emph{outside} of commands
+% |\title| and |\author|.
+%
+%
+% \DescribeMacro{\copyrightnote}
+% Normally each paper is copyrighted by Department of Mathematics,
+% Princeton University. This is reflected in the footnote on the
+% first page of the article. However, by arrangement with the
+% editors, certain papers may have different copyright. The command
+% \cmd{\copyrightnote}\marg{copyright statement}, if issued, changes
+% the footnote to the corresponding text, for example:
+% \begin{verbatim}
+% \copyrightnote{\textcopyright~2012 by the authors. This paper may
+% be reproduced, in its entirety, for noncommercial purposes.}
+% \end{verbatim}
+% Note that if you issue this command, you should explicitly include
+% both the copyright sign and the year unless the paper does not have
+% a copyright, for example:
+% \begin{verbatim}
+% \copyrightnote{This paper is in the public domain}
+% \end{verbatim}
+%
+%
+%
+% \DescribeEnv{abstract}
+% The abstract of the paper must be put between |\begin{abstract}| and
+% |\end{abstract}|. Unlike the situation in \progname{amsart}
+% class, abstract may be put \emph{after} |\maketitle|.
+%
+% A paper may have several abstracts in different languages. This
+% sitation is discussed in Section~\ref{sec:non-english}.
+%
+% \DescribeMacro{\maketitle}
+% The macro |\maketitle| typesets the top matter. All top matter
+% information should be specified before this command.
+%
+%
+%\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{\keyword}
+% The command |\keyword| adds a keyword to the list of keywords. This
+% command may be repeated, for example
+% \begin{verbatim}
+% \keyword{Embedding theorem}
+% \keyword{Relatively hyperbolic group}
+% \end{verbatim}
+%
+% \DescribeMacro{\subject}
+% The command |\subject| has three parameters: whether the subject is
+% primary or secondary, the classification scheme and the subject
+% itself, for example
+% \begin{verbatim}
+% \subject{primary}{msc2000}{20E45}
+% \subject{secondary}{msc2000}{20F65}
+% \end{verbatim}
+%
+%
+% \DescribeMacro{\formatdate}
+% The macro |\formatdate| is used to format the dates in the
+% commands. Its argument is the date in the format |YYYY-MM-DD|, for
+% example
+% \begin{verbatim}
+% \formatdate{2010-08-13}
+% \end{verbatim}
+%
+% \DescribeMacro{\received}
+% \DescribeMacro{\revised}
+% \DescribeMacro{\accepted}
+% \DescribeMacro{\published}
+% \DescribeMacro{\publishedonline}
+% The commands |\received|, |\revised|, |\accepted|, |\published|,
+% |\publishedonline| accept as a parameter a date in the form
+% |\formatdate|\marg{YYYY-MM-DD}, for example
+% \begin{verbatim}
+% \received{\formatdate{2004-12-24}}
+% \revised{\formatdate{2006-04-12}}
+% \accepted{\formatdate{2007-10-02}}
+% \end{verbatim}
+%
+% \DescribeMacro{\proposed}
+% \DescribeMacro{\seconded}
+% \DescribeMacro{\corresponding}
+% \DescribeMacro{\editor}
+% \DescribeMacro{\version}
+% The macros |\proposed|, |\seconded|, |\corresponding|, |\editor|,
+% |\version| are used to set the corresponding metadata for the
+% editorial process, for example
+% \begin{verbatim}
+% \proposed{E. D. Itor}
+% \seconded{A. S. Sociate}
+% \corresponding{A. U. Thor}
+% \version{2.1}
+% \end{verbatim}
+%
+%
+%
+% \DescribeMacro{\volumenumber}
+% \DescribeMacro{\issuenumber}
+% \DescribeMacro{\publicationyear}
+% \DescribeMacro{\papernumber}
+% \DescribeMacro{\startpage}
+% \DescribeMacro{\endpage}
+% The macros |\volumenumber|, |\issuenumber|, |\publicationyear|,
+% |\papernumber|, |\startpage|, |\endpage| set up the corresponding
+% data for the paper, for example:
+% \begin{verbatim}
+% \volumenumber{172}
+% \issuenumber{1}
+% \publicationyear{2010}
+% \papernumber{1}
+% \startpage{1}
+% \endpage{39}
+% \end{verbatim}
+% Note that if the argument of |\endpage| is empty, \LaTeX{} tries to
+% calculate the last page number as best as it can.
+%
+% \DescribeMacro{\copyrightyear}
+% In the standard copyright statement the copyright year is assumed to
+% be the same as the |\publicationyear|. However, for special cases
+% one can set the copyright year explicitly, for example,
+% \begin{verbatim}
+% \publicationyear{2012}
+% \copyrightyear{2011}
+% \end{verbatim}
+% Note that if you use your own copyright statement instead of the
+% canned one (with the command \cmd{\copyrightnote}), you need to put
+% there the copyright year explicitly instead of using this command.
+%
+% \DescribeMacro{\doinumber}%
+% \DescribeMacro{\mrnumber}%
+% \DescribeMacro{\zblnumber}%
+% \DescribeMacro{\arxivnumber}%
+% The macros |\doinumber|, |\mrnumber| and |\zblnumber| set the
+% information about paper in four major reference databases: DOI
+% (\url{http://www.doi.org/}), MathSciNet
+% (\url{http://www.ams.org/mathscinet/}, Zentralblatt MATH
+% (\url{http://www.zentralblatt-math.org/zmath/}) and arXiv
+% (\url{https://www.arxiv.org}). The use of these
+% macros should be obvious:
+% \begin{verbatim}
+% \doinumber{10.1215/S0012-7094-92-06520-3}
+% \mrnumber{1154181}
+% \zblnumber{0774.14039}
+% \arxivnumber{1234.567890}
+% \end{verbatim}
+% Note the difference between these commands and the bibliography
+% commands discussed in Section~\ref{sec:biblio}. Commands in this
+% Section set up the data for the \emph{current article.} Commands in
+% Section~\ref{sec:biblio} set up the data for the articles in the
+% bibliography list.
+%
+% Normally you should \emph{not} use |\doinumber| command, since the
+% class will construct the standard DOI for the paper from the volume,
+% issue and paper information. Use it \emph{only} if the result is by
+% any reason wrong.
+%
+%
+% \DescribeMacro{\oldsubsections}
+% Starting with version~1.2 we decreased the vertical spacing before
+% |\subsection|. The command |\oldsubsections| restores the ``old''
+% values.
+%
+%\subsection{Additional Macros}
+%\label{sec:add_guide}
+%
+% \DescribeEnv{eqnarray}
+% \DescribeEnv{eqnarray*}
+% Thee class \progname{aomart} loads the class \progname{amsart}.
+% Therefore all familiar \progname{amsmath} commands~\cite{amsldoc}
+% are available. In particular, there are many commands for writing
+% multiline equations (|split|, |align|, |gather|, |multline|,
+% \dots). The environments |eqnarray| and |eqnarray*|, while still
+% avilable, are \emph{not} recommended and should be avoided if
+% possible.
+%
+% \DescribeMacro{\widetilde}
+% \DescribeMacro{\widehat}
+% \DescribeMacro{\widetriangle}
+% \DescribeMacro{\wideparen}
+% \DescribeMacro{\widering}
+% \DescribeMacro{\widebar}
+% A number of ``wide'' mathematical accents is available due to the
+% (internally loaded) package
+% \progname{yhmath}~\cite{Haralambous96:Yhmath}: |\widetilde|,
+% |\widehat|, |\widetriangle|, |\wideparen|, |\widering|, |\widebar|. See
+% Table~\ref{tab:accents} for the example of the usage.
+%
+% \begin{table}
+% \centering
+% \begin{tabular}{ll}
+% \toprule
+% Code & Example \\
+% \midrule
+% |\widetilde{AB}| & $\widetilde{AB}$\\
+% |\widehat{AB}| & $\widehat{AB}$\\
+% |\widetriangle{AB}| & $\widetriangle{AB}$\\
+% |\wideparen{AB}| & $\wideparen{AB}$\\
+% |\widering{AB}| & $\widering{AB}$\\
+% |\widebar{AB}| & $\widebar{AB}$\\
+% \bottomrule
+% \end{tabular}
+% \caption{Wide Mathematical Accents}
+% \label{tab:accents}
+% \end{table}
+%
+%
+% \DescribeMacro{\EditorialComment}
+% The macro |\EditorialComment|\oarg{comments} typesets the comments
+% on the margins in the |manuscript| mode, for example,
+% \begin{verbatim}
+% Erd\"os proved the following theorem.\EditorialComment{A citation is
+% needed}
+% \end{verbatim}
+%
+%
+% \DescribeMacro{\fullref}
+% \DescribeMacro{\pfullref}
+% \DescribeMacro{\bfullref}
+% \DescribeMacro{\eqfullref}
+% A set of macros is used to make more convenient clickable references
+% in the online versions of papers. The
+% package~\progname{hyperref}~\cite{Rahtz06:Hyperref}
+% makes clickable reference numbers in the phrases like
+% \begin{verbatim}
+% ...in theorem~\ref{thm:Noeter}...
+% ...see equation~\eqref{eq:alpha}...
+% \end{verbatim}
+% However, it is more convenient for the readers if both
+% the number \emph{and} the word ``theorem'' or ``equation'' were
+% clickable. The macros |\*fullref| solve this problem. Each macro
+% has two arguments: the word and the reference, for example
+% \begin{verbatim}
+% ...in \fullref{theorem}{thm:Noeter}...
+% \end{verbatim}
+% The command |\pfullref| typesets
+% the reference in parentheses. The command |\bfullref| typesets it
+% in brackets, and the command |\eqfullref| uses the |\eqref|
+% command, for example,
+% \begin{verbatim}
+% ...see \eqfullref{equation}{eq:alpha}...
+% \end{verbatim}
+%
+% The \progname{Perl} script \path{fullref.pl} can be used to convert
+% change all references to the |\fullref| commands. It works in the
+% following way:
+% \begin{verbatim}
+% perl fullref.pl original.pl > result.pl
+% \end{verbatim}
+% The script converts all instances of combinations ``|word \ref{reference}|''
+% and ``|word~\ref{reference}|''
+% to ``|\fullref{word}{reference}|, and similarly for
+% parenthesized references or |\eqref| commands. To prevent the
+% converting, just put |\ref{reference}| or |\eqref{reference}| inside
+% braces. The ``word'' here must not start with a backslash
+% (i.e. must not be a macro itself). This prevents disastrous results
+% for phrases like ``|see~\ref{a}, \ref{b}|''.
+%
+%
+% The distribution includes two sample files, \path{aomsample.tex} and
+% \path{aomsample1.tex}, the latter being obtained from the former by
+% the script \path{fullref.pl}.
+%
+%
+% Note that |\autoref| command of \progname{hyperref} provides for
+% another mechanism that achieves the same goal. Unlike |\fullref|
+% command, the command |\autoref| tries to figure out the name of the
+% reference from the context. See the manual~\cite{Rahtz06:Hyperref}
+% for more information.
+%
+%\subsection{Theorems}
+%\label{sec:theorems}
+%
+% \DescribeMacro{\newtheorem}
+% You can use the commands of \progname{amsthm}
+% package~\cite{amsthdoc} like
+% |\newtheorem{lem}{Lemma}| for numbered theorems, or
+% |\newtheorem*{KL}{Klein's Lemma}| for unnumbered theorems, or
+% tune the numbering using the optional arguments of these commands.
+%
+% To provide backward compatibility with some other classes used
+% internally by the \emph{Annals of Mathematics,} the class provides
+% yet another optional argument for the command |\newtheorem|,
+% allowing constructions like |\newtheorem[\it]{lem}{Lemma}|. This
+% optional parameter is not used in our typesetting.
+%
+%
+% The class provides two theorem styles:
+% \begin{description}
+% \item[plain:] This is the default theorem style. It is used for
+% Theorem, Lemma, Proposition, Conjecture, Corollary and Claim.
+% \item[definition:] This style is used for Definition, Remark,
+% Notation, Condition, Example etc.
+% \end{description}
+% Note that AMS classes define the third theorem style,
+% \textbf{remark.} In our class remarks are typeset in the
+% \textbf{definition} style. To make the authors' lives easier we
+% define the theorem style \textbf{remark,} which is identical to the
+% theorem style \textbf{definition.}
+%
+%\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).
+%
+%
+%\subsection{Bibliography}
+%\label{sec:biblio}
+%
+% The authors are encouraged to use Bib\TeX{} for uniform style of
+% bibliography. The distribution includes the BST files
+% \path{aomplain.bst} and \path{aomalpha.bst}. These files have
+% several additional non-standard fields:
+% \begin{description}
+% \item[mrnumber:] MathSciNet number for the article.
+% \item[zblnumber:] Zentralblatt number for the article.
+% \item[doi:] DOI number for the article.
+% \item[jfmnumber:] JFM number for the article.
+% \item[arxiv:] ArXiv reference for the ArXiv manuscript.
+% \item[url:] If the reference is available online, the corresponding
+% url.
+% \item[venue:] (for \texttt{conference} entries) The place where the
+% conference took place.
+% \item[sortyear:] Some entries do not have a year set up (e.g. some
+% \texttt{unpublished} entries. If you have several entries from
+% the same author, some with a year, and some without, you may want
+% to put them in a certain order. The field |sortyear| overrides
+% |year| for the sorting purposes.
+% \item[titlenote:] this field is like \texttt{note}, but is typeset
+% immediately after a title. It should be used for additional
+% information, for example,
+% \begin{verbatim}
+% @Book{Knuth94:TheTeXbook,
+% author = {Knuth, Donald Ervin},
+% title = {The \TeX book},
+% publisher = {Addison-Wesley Publishing Company},
+% year = 1994,
+% series = {Computers \& Typesetting A},
+% address = {Reading, MA},
+% titlenote = {with illustrations by Duane Bibby}
+% }
+% \end{verbatim}
+% \item[totalpages:] some articles (especially published in an electronic
+% format) do not have start and end page numbers; instead you may put
+% the total number of pages. If both \texttt{pages} and
+% \texttt{totalpages} are present, \texttt{pages} take precedence.
+%
+% \end{description}
+%
+%
+% \DescribeMacro{\doi}
+% \DescribeMacro{\mr}
+% \DescribeMacro{\zbl}
+% \DescribeMacro{\jfm}
+% \DescribeMacro{\arxiv}
+% There are several databases routinely used in the science and
+% mathematics communities. Among them are DOI, MathSciNet,
+% Zentralblatt, Jahrbuch Database, ArXiv. Many bibliographies include
+% references to
+% these databases. The commands |\doi|, |\mr|, |\zbl|, |\jfm|, |\arxiv| are
+% used to typeset these references. If you use Bib\TeX{}, these
+% commands are automatically used for the corresponding fields in your
+% database entries.
+%
+%
+%\subsection{Papers in languages other than English}
+%\label{sec:non-english}
+%
+% The recommmended way to typeset papers in languages other than
+% English is \textsl{babel} package~\cite{Braams05:Babel}. For
+% example, to typeset a paper in French (with an English abstract, see
+% below), one puts in the preamble
+% \begin{verbatim}
+% \usepackage[utf8]{inputenx}
+% \usepackage[english,frenchb]{babel}
+% \end{verbatim}
+%
+% Such papers often contain several abstracts: for example, in the
+% language the paper is written \emph{and} in English. Accordingly,
+% \textsl{aomart} allows several abstracts. Each abstract must be put
+% inside a group with the corresponding language selected using
+% \cs{selectanguage} command, for example
+% \begin{verbatim}
+% {\selectlanguage{french}%
+% \begin{abstract}
+% French abstract
+% \end{abstract}}
+%
+% {\selectlanguage{english}%
+% \begin{abstract}
+% English abstract
+% \end{abstract}}
+% \end{verbatim}
+%
+%
+% \StopEventually{%
+% \clearpage
+%
+% \bibliography{aomart}
+% \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{aomart.dtx}
+%</gobble>
+%<class>\ProvidesClass{aomart}
+[2017/12/13 v1.21 Typesetting articles for the Annals of Mathematics]
+% \end{macrocode}
+%
+%
+%
+% And the driver code:
+% \begin{macrocode}
+%<*gobble>
+\documentclass{ltxdoc}
+\usepackage{array,booktabs,amsmath,graphics}
+\let\widebar\overline
+\usepackage{url}
+\usepackage{amsfonts,yhmath}
+\usepackage[breaklinks,colorlinks,linkcolor=black,citecolor=black,
+ pagecolor=black,urlcolor=black,hyperindex=false]{hyperref}
+\PageIndex
+\CodelineIndex
+\RecordChanges
+\EnableCrossrefs
+\begin{document}
+ \DocInput{aomart.dtx}
+\end{document}
+%</gobble>
+%<*class>
+% \end{macrocode}
+%
+%
+%\subsection{Options}
+%\label{sec:options}
+%
+%
+% The size-changing options produce a warning:
+% \begin{macrocode}
+\long\def\aom@size@warning#1{%
+ \ClassWarning{aomart}{Size-changing option #1 will not be
+ honored}}%
+\DeclareOption{8pt}{\aom@size@warning{\CurrentOption}}%
+\DeclareOption{9pt}{\aom@size@warning{\CurrentOption}}%
+\DeclareOption{10pt}{\aom@size@warning{\CurrentOption}}%
+\DeclareOption{11pt}{\aom@size@warning{\CurrentOption}}%
+\DeclareOption{12pt}{\aom@size@warning{\CurrentOption}}%
+% \end{macrocode}
+%
+% \begin{macro}{\if@aom@manuscript@mode}
+% \changes{v0.3}{2010/09/28}{Added manuscript mode}
+% Check whether we are in the manuscript mode
+% \begin{macrocode}
+\newif\if@aom@manuscript@mode
+\@aom@manuscript@modefalse
+\DeclareOption{manuscript}{\@aom@manuscript@modetrue}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\if@aom@screen@mode}
+% \changes{v0.10}{2010/12/20}{Added screen mode}
+% Check whether we are in the screen mode
+% \begin{macrocode}
+\newif\if@aom@screen@mode
+\@aom@screen@modefalse
+\DeclareOption{screen}{\@aom@screen@modetrue}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@aom@olddoi}
+% \changes{v1.10}{2011/06/21}{Added old DOI processing}
+% DOI processing is different in the ``old'' and new mode.
+% \begin{macrocode}
+\newif\if@aom@olddoi
+\@aom@olddoifalse
+\DeclareOption{olddoi}{\@aom@olddoitrue}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\if@aom@doiMMXVI}
+% \changes{v1.15}{2016/11/18}{Added another options}
+% DOI processing is different in the 2016 and new mode
+% \begin{macrocode}
+\newif\if@aom@doiMMXVI
+\@aom@doiMMXVIfalse
+\DeclareOption{doi2016}{\@aom@doiMMXVItrue}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\if@aom@oldkeywords}
+% \changes{v1.18}{2017/02/11}{Added keywords processing}
+% Keywords processing is different in the ``old'' and new mode.
+% \begin{macrocode}
+\newif\if@aom@oldkeywords
+\@aom@oldkeywordsfalse
+\DeclareOption{oldkeywords}{\@aom@oldkeywordstrue}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+%
+% 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{aomart.cfg}{%
+ \ClassInfo{aomart}{%
+ Loading configuration file aomart.cfg}}{%
+ \ClassInfo{aomart}{%
+ Configuration file aomart.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
+% \changes{v1.4}{2011/01/21}{Deleted noamsfonts option}
+% \begin{macrocode}
+\LoadClass[11pt]{amsart}
+% \end{macrocode}
+%
+% A bunch of packages:
+% \changes{v0.5}{2010/10/24}{Made Roman font the default URL font}
+% \changes{v0.10}{2010/12/20}{Screen mode triggers special URL
+% settings}
+% \changes{v1.1}{2010/12/31}{In manuscript mode the links are always blue}
+% \begin{macrocode}
+\RequirePackage{fancyhdr, lastpage, ifpdf}
+\RequirePackage[breaklinks,colorlinks]{hyperref}
+\if@aom@screen@mode
+\hypersetup{linkcolor=blue,citecolor=blue,
+ urlcolor=blue, pdfpagescrop={110 705 500 80}}%
+\else\if@aom@manuscript@mode
+\hypersetup{linkcolor=blue,citecolor=blue,
+ urlcolor=blue}%
+\else
+\hypersetup{linkcolor=black,citecolor=black,
+ urlcolor=black}%
+\fi\fi
+\urlstyle{rm}
+% \end{macrocode}
+%
+% \changes{v0.4}{2010/09/29}{Deleted lineno package dependence}
+% \changes{v1.16}{2016/12/03}{We require environ package}
+% Amsart has \cs{collect@body} macro. However, we want the \cs{long}
+% version, so we use \textsl{environ}
+% \begin{macrocode}
+\RequirePackage{environ}
+% \end{macrocode}
+%
+%
+%
+%
+%\subsection{Internationalization}
+%\label{sec:babel}
+%
+% There are some papers published in languages other than English.
+% The \progname{Babel} is expected to be used for them. Here we add some
+% macros extending captions for these languages.
+%
+%
+% First, let us define English defaults:
+%
+%
+% \begin{macro}{\@aom@by}
+% \changes{v1.10}{2011/06/21}{Added macro}
+% This is just ``By'' in English:
+% \begin{macrocode}
+\def\@aom@by{By}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@aom@and}
+% \changes{v1.10}{2011/06/21}{Added macro}
+% This is ``and'' in English:
+% \begin{macrocode}
+\def\@aom@and{and}
+% \end{macrocode}
+% \end{macro}
+%
+% Now we can define internationalization:
+% \begin{macrocode}
+\AtBeginDocument{\@ifpackageloaded{babel}{%
+ \addto\captionsfrench{\def\@aom@by{Par}\def\@aom@and{et}}%
+ \addto\captionsgerman{\def\@aom@by{Von}\def\@aom@and{und}}%
+ \addto\captionsenglish{\def\@aom@by{By}\def\@aom@and{and}}}{}}
+% \end{macrocode}
+%
+%
+%\subsection{Fonts}
+%\label{sec:fonts}
+%
+% \changes{v0.8}{2010/1/16}{Added yhmath}
+% We use \progname{yhmath} for wide symbols:
+% \begin{macrocode}
+\RequirePackage{yhmath}
+% \end{macrocode}
+%
+%
+% \changes{v0.3}{2010/09/26}{Added package mdputu}
+% \changes{v0.4}{2010/09/28}{Switched to upright digits in italics
+% everywhere}
+% \changes{v0.8}{2010/1/16}{Switched to cmtiup}
+% We need \progname{cmtiup} package, but we may find out it is not
+% installed.
+% \begin{macrocode}
+\IfFileExists{cmtiup.sty}{%
+ \RequirePackage{cmtiup}}{%
+ \ClassWarning{aomart}{The package mdputu is not found.\MessageBreak
+ You need this package to get italics with upright digits!}}
+% \end{macrocode}
+%
+% \begin{macro}{\specialdigits}
+% \changes{v0.8}{2010/1/16}{Redefined to noop}
+% A legacy macro. We do not need it anymore.
+% \begin{macrocode}
+\def\specialdigits{}%
+\let\sishape=\itshape
+\let\textsi=\textit
+% \end{macrocode}
+%
+% \end{macro}
+%
+% The \progname{amsart} class defines several options for different
+% font sizes (10pt, 11pt, etc). We have just one design size for the
+% articles.
+%
+% \begin{macro}{\@typesizes}
+% \changes{v0.5}{2010/10/24}{Increased LARGE from 16 pt to 17 pt}
+% \changes{v0.5}{2010/10/24}{Corrected typo in the definition of Small}
+% 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{\@vipt}{9}\or{\@viipt}{9}\or{\@viiipt}{9}\or{\@ixpt}{12}%
+ \or{\@xpt}{13}%
+ \or{\@xipt}{14}% normalsize
+ \or{\@xiipt}{15}\or{13}{17}\or{\@xviipt}{20}%
+ \or{19}{23.2}\or{22}{27.8}}%
+\normalsize \linespacing=\baselineskip
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\widebar}
+% The functionality of |\widebar| coincides with that of
+% \progname{amsmath} |\overline|:
+% \begin{macrocode}
+\let\widebar\overline
+% \end{macrocode}
+% \end{macro}
+%
+%\subsection{Page Dimensions and Paragraphing}
+%\label{sec:page}
+%
+% \begin{macro}{\textwidth}
+% \begin{macro}{\textheight}
+% These are from the old \progname{aomamlt2e}:
+% \begin{macrocode}
+\setlength{\textwidth}{31pc}
+\setlength{\textheight}{48pc}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\evensidemargin}
+% \begin{macro}{\oddsidemargin}
+% The margins:
+% \begin{macrocode}
+\oddsidemargin=.65in
+\evensidemargin=.65in
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\footins}
+% \begin{macro}{\topskip}
+% \begin{macro}{\abovedisplayskip}
+% \begin{macro}{\belowdisplayskip}
+% \changes{v0.6}{2010/10/03}{Changed belowdisplayskip}
+% Some skips from \progname{aomamlt2e}:
+% \begin{macrocode}
+\setlength{\topskip}{12pt}
+\setlength{\abovedisplayskip}{6.95pt plus3.5pt minus 3pt}
+\setlength{\belowdisplayskip}{6.95pt plus4.5pt minus 3pt}
+\setlength{\skip\footins}{20pt}
+\setlength{\dimen\footins}{3in}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\footskip}
+% Some space for footnotes:
+% \begin{macrocode}
+\setlength\footskip{30pt}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\parskip}
+% \begin{macro}{\parindent}
+% Paragraph shape:
+% \begin{macrocode}
+\setlength{\parindent}{22pt}
+\setlength{\parskip}{\z@}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\widowpenalty}
+% \begin{macro}{\clubpenalty}
+% We suppress widows and clubs:
+% \begin{macrocode}
+\widowpenalty=10000
+\clubpenalty=10000
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+%\subsection{Headers}
+%\label{sec:headers}
+%
+% \begin{macro}{\headsep}
+% Separation between the header and the body
+% \begin{macrocode}
+\setlength{\headsep}{14pt}
+% \end{macrocode}
+%
+% \end{macro}
+% \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}
+%
+%
+% \begin{macro}{\@aom@linecount}
+% \changes{v0.4}{2010/09/29}{Added macro}
+% This is the box displayed in the manuscript mode
+% \begin{macrocode}
+\if@aom@manuscript@mode
+ \newsavebox{\@aom@linecount}
+ \savebox{\@aom@linecount}[4em][t]{\parbox[t]{4em}{%
+ \@tempcnta\@ne\relax
+ \loop{\underline{\scriptsize\the\@tempcnta}}\\
+ \advance\@tempcnta by \@ne\ifnum\@tempcnta<43\repeat}}
+\fi
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \changes{v0.4}{2010/09/29}{Used line numbers for headings}
+% \changes{v0.5}{2010/10/24}{Added extra footer in manuscript mode}
+% \changes{v0.5}{2010/10/24}{Corrected the byg with math in headers}
+% \changes{v0.8}{2010/11/16}{Changed authors in header}
+% It is easy to set up headers with \progname{fancyhdr}:
+% \begin{macrocode}
+\pagestyle{fancy}
+\fancyhead{}
+\fancyfoot{}
+\fancyhead[CO]{\scriptsize\shorttitle}
+\fancyhead[RO,LE]{\footnotesize\thepage}
+\if@aom@manuscript@mode
+ \fancyhead[LE]{\footnotesize\thepage\begin{picture}(0,0)%
+ \put(-26,-25){\usebox{\@aom@linecount}}%
+ \end{picture}}
+ \fancyhead[LO]{\begin{picture}(0,0)%
+ \put(-21,-25){\usebox{\@aom@linecount}}%
+ \end{picture}}
+ \fancyfoot[C]{\scriptsize Proof: page numbers may be temporary}
+\fi
+\fancyhead[CE]{\scriptsize\MakeUppercase\shortauthors}
+% \end{macrocode}
+%
+% \changes{v0.3}{2010/09/26}{Added DOI number in headers}
+% \changes{v0.9}{2010/12/04}{Changed font for the folio on the first
+% page}
+% \changes{v1.3}{2011/01/07}{Corrected bug with doinumber}
+% 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{}%
+ \if@aom@manuscript@mode
+ \lhead{\begin{picture}(0,0)%
+ \put(-21,-25){\usebox{\@aom@linecount}}%
+ \end{picture}}
+ \fi
+ \chead{\scriptsize%
+ \href{\@annalsurl}{Annals of Mathematics} \textbf{\currentvolume}
+ (\currentyear),
+% \end{macrocode}
+% \changes{v1.7}{2011/03/08}{Suppressed page number in the header for
+% one-page articles}
+% We always print the starting page. However, we print the last page
+% only if it does not coincide with the first page. There are two
+% cases here: first, the last page may still be
+% |\pageref{LastPage}|. In this case we need to extract the numerical
+% value of the counter---note that hyperref is in action!
+% Second, we could redefine the last page, and it is no
+% longer |\pageref{LastPage}|. In this case we need to compare the
+% value with the first page.
+% \begin{macrocode}
+ \start@page%
+ \def\tempa{\pageref{LastPage}}%
+ \edef\tempb{\start@page}%
+ \ifx\tempa\end@page
+ \edef\tempa{\HyPsd@@@pageref{LastPage}}%
+ \else
+ \edef\tempa{\end@page}%
+ \fi
+ \ifx\tempa\tempb\else--\end@page\fi\\
+ \ifx\@doinumber\@empty\else
+ \edef\@doinumber{\@doinumber}%
+ \expandafter\doi\expandafter{\@doinumber}\fi}%
+ \cfoot{\footnotesize\thepage}}%
+% \end{macrocode}
+%
+% \begin{macro}{\annalsurl}
+% \changes{v1.14a}{2015/02/18}{New url}
+% The command to set up the URL of the journal
+% \begin{macrocode}
+\def\annalsurl#1{\gdef\@annalsurl{#1}}
+\annalsurl{http://annals.math.princeton.edu/about}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+%\subsection{Top Matter Macros}
+%\label{sec:top_matter_code}
+%
+% We make these macros allowed only in the preamble:
+% \begin{macrocode}
+\@onlypreamble{\title}
+\@onlypreamble{\author}
+\@onlypreamble{\email}
+\@onlypreamble{\address}
+\@onlypreamble{\curraddr}
+\@onlypreamble{\urladdr}
+\@onlypreamble{\orcid}
+\@onlypreamble{\givenname}
+\@onlypreamble{\fulladdress}
+\@onlypreamble{\surname}
+\@onlypreamble{\thanks}
+\@onlypreamble{\keyword}
+\@onlypreamble{\subject}
+\@onlypreamble{\received}
+\@onlypreamble{\revised}
+\@onlypreamble{\accepted}
+\@onlypreamble{\published}
+\@onlypreamble{\publishedonline}
+\@onlypreamble{\proposed}
+\@onlypreamble{\seconded}
+\@onlypreamble{\corresponding}
+\@onlypreamble{\editor}
+\@onlypreamble{\version}
+\@onlypreamble{\volumenumber}
+\@onlypreamble{\issuenumber}
+\@onlypreamble{\publicationyear}
+\@onlypreamble{\copyrightnote}
+\@onlypreamble{\copyrighyear}
+\@onlypreamble{\papernumber}
+\@onlypreamble{\startpage}
+\@onlypreamble{\endpage}
+\@onlypreamble{\doinumber}
+\@onlypreamble{\mrnumber}
+\@onlypreamble{\zblnumber}
+\@onlypreamble{\arxivnumber}
+% \end{macrocode}
+%
+%
+% Most top matter macros are defined in \progname{amsart}. Here we
+% just add some new macros and redefine some.
+%
+% \begin{macro}{\fulladdress}
+% \changes{v1.11}{2012/08/16}{Added macro}
+% \changes{v1.16}{2016/12/03}{Redefined}
+% \begin{macro}{\givenname}
+% \changes{v1.16}{2016/12/03}{Redefined}
+% \begin{macro}{\surname}
+% \changes{v1.16}{2016/12/03}{Redefined}
+% We store the information to output it later in the rpi file
+% \begin{macrocode}
+\def\@names{}
+\def\givenname#1{\g@addto@macro\@names{givenname=#1;}}
+\def\surname#1{\g@addto@macro\@names{surname=#1;}}
+\def\fulladdress#1{\g@addto@macro\@names{fulladdress=#1;}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\author}
+% \changes{v1.16}{2016/12/03}{Redefined amsart definition}
+% We add mangling of \cs{@names} to the amsart macro
+% \begin{macrocode}
+\renewcommand{\author}[2][]{%
+ \ifx\@empty\authors
+ \gdef\authors{#2}%
+ \g@addto@macro\@names{author=#2;}%
+ \else
+ \g@addto@macro\authors{\and#2}%
+ \g@addto@macro\@names{\and author=#2;}%
+ \g@addto@macro\addresses{\author{}}%
+ \fi
+ \@ifnotempty{#1}{%
+ \ifx\@empty\shortauthors
+ \gdef\shortauthors{#1}%
+ \else
+ \g@addto@macro\shortauthors{\and#1}%
+ \fi
+ }%
+}
+\edef\author{\@nx\@dblarg
+ \@xp\@nx\csname\string\author\endcsname}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\email}
+% \changes{v1.16}{2016/12/03}{Redefined amsart definition}
+% We change amsart macro to output metadata
+% \begin{macrocode}
+\renewcommand{\email}[2][]{%
+ \g@addto@macro\addresses{\email{#1}{#2}}%
+ \g@addto@macro\@names{email=#2;}%
+}
+% \end{macrocode}
+%
+% \end{macro}
+% \begin{macro}{\urladdr}
+% \changes{v1.16}{2016/12/03}{Redefined amsart definition}
+% We change amsart macro to output metadata
+% \begin{macrocode}
+\renewcommand{\urladdr}[2][]{%
+ \g@addto@macro\addresses{\urladdr{#1}{#2}}%
+ \g@addto@macro\@names{urladdr=#2;}%
+}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\orcid}
+% \changes{v1.18}{2017/02/15}{Added macro}
+% Orcid also outputs metadata
+% \begin{macrocode}
+\newcommand{\orcid}[2][]{%
+ \g@addto@macro\addresses{\orcid{#1}{#2}}%
+ \g@addto@macro\@names{orcid=#2;}%
+}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\keyword}
+% Actually \progname{amsart} has |\kewords| macro. It redefines
+% |\@keywords|. Our macro adds to the stack instead.
+% \begin{macrocode}
+\def\keyword#1{\ifx\@keywords\@empty\gdef\@keywords{#1}\else
+ \g@addto@macro\@keywords{, #1}\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\subject}
+% \changes{v1.18}{2017/02/15}{Drop scheme and primary/secondary}
+% \changes{v1.20}{2017/05/09}{Make primary and secondary subjects separated}
+% Subjects:
+% \begin{macrocode}
+\let\@primarysubjects\@empty
+\let\@secondarysubjects\@empty
+\def\subject#1#2#3{%
+ \expandafter\ifx\csname @#1subjects\endcsname\@empty\relax
+ \expandafter\gdef\csname @#1subjects\endcsname{#3}%
+ \else
+ \expandafter\g@addto@macro\csname @#1subjects\endcsname{, #3}%
+ \fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\formatdate}
+% This just sends the date to the special macro |\@formatdate|
+% \begin{macrocode}
+\def\formatdate#1{\@formatdate#1\@endformatdate}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@formatdate}
+% This macro takes date in the form YYYY-MM-DD and properly formats
+% it. Note how we delete the leading zero in dates like April 02.
+% \begin{macrocode}
+\def\@formatdate#1-#2-#3\@endformatdate{%
+ \@tempcnta=#3\relax
+ \ifcase#2\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
+ \space\the\@tempcnta,\space#1}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\received}
+% \begin{macro}{\revised}
+% \begin{macro}{\accepted}
+% \begin{macro}{\published}
+% \begin{macro}{\publishedonline}
+% The following macros add stuff to the footnotes material:
+% \begin{macrocode}
+\def\received#1{\def\@received{#1}}
+\let\@received\@empty
+\def\revised#1{\def\@revised{#1}}
+\let\@revised\@empty
+\def\accepted#1{\def\@accepted{#1}}
+\let\@accepted\@empty
+\def\published#1{\def\@published{#1}}
+\let\@published\@empty
+\def\publishedonline#1{\def\@publishedonline{#1}}
+\let\@publishedonline\@empty
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The next macros mimic the functionality of \progname{amsart}
+% |\issueinfo| command. Note that |\issueinfo| still works.
+% \begin{macro}{\volumenumber}
+% This sets the volume of the paper
+% \begin{macrocode}
+\def\volumenumber#1{\def\currentvolume{#1}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\issuenumber}
+% This sets the issue of the paper:
+% \begin{macrocode}
+\def\issuenumber#1{\def\currentissue{#1}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\publicationyear}
+% This sets the year of the paper
+% \begin{macrocode}
+\def\publicationyear#1{\def\currentyear{#1}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\papernumber}
+% \changes{v1.0}{2010/12/21}{Added macro}
+% This is absent from the |\issueinfo|.
+% \begin{macrocode}
+\def\papernumber#1{\def\currentpaper{#1}}
+\papernumber{0000}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\startpage}
+% This defines the starting page of the paper. We have some nice
+% features to set up roman page numbers for editorial
+% stuff---probably not needed for this journal at this time\dots
+% \begin{macrocode}
+\def\startpage#1{\pagenumbering{arabic}\setcounter{page}{#1}%
+ \def\start@page{#1}%
+ \ifnum\c@page<\z@ \pagenumbering{roman}\setcounter{page}{-#1}%
+ \def\start@page{\romannumeral#1}%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\endpage}
+% This macro again has a twist in it: if the argument is not set, it
+% calculates the last page number itself.
+% \begin{macrocode}
+\def\endpage#1{\def\@tempa{#1}%
+ \ifx\@tempa\@empty\def\end@page{\pageref{LastPage}}%
+ \else\def\end@page{#1}\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{\startpage{#1}\endpage{#2}}
+\pagespan{1}{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\g@addto@abstract}
+% \changes{v1.21}{2017/12/13}{Added macro}
+% Syntactic sugar around \cs{g@addto@macro}
+% \begin{macrocode}
+\def\g@addto@abstract#1{\g@addto@macro{\@aom@abstract}{#1}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@getabstract}
+% \changes{v1.21}{2017/12/13}{Added multilanguage abstracts}
+% Amsart typesets the abstract in a box. We preserve this
+% peculuarity, but we need to put abstract in a macro to output in
+% the rpi file.
+% \begin{macrocode}
+\long\def\@aom@abstract{}
+\long\def\@getabstract#1{%
+ \bgroup
+ \ifx\languagename\undefined
+ \def\languagename{english}%
+ \fi
+ \g@addto@abstract{<begin abstract }%
+ \expandafter\g@addto@abstract\expandafter{\languagename>}%
+ \g@addto@macro\@aom@abstract{#1}%
+ \g@addto@abstract{<end abstract }%
+ \expandafter\g@addto@abstract\expandafter{\languagename>}%
+ \egroup
+ \ifx\maketitle\relax
+ \ClassWarning{aomart}{Abstract should precede
+ \protect\maketitle\space in AMS derived classes}%
+ \fi
+ \global\setbox\abstractbox=\vtop\bgroup%
+ \box\abstractbox
+ \vglue1pc%
+ {\centering\normalfont\normalsize\bfseries\abstractname\par\vglue1pc}%
+ \list{}{\labelwidth\z@%
+ \leftmargin3pc \rightmargin\leftmargin%
+ \listparindent\normalparindent \itemindent\normalparindent%
+ \parsep\z@ \@plus\p@%
+ \let\fullwidthdisplay\relax%
+ }%
+ \item[]\normalfont\Small#1
+ \endlist\egroup}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{abstract}
+% \changes{v0.9}{2010/12/04}{Added parindent for the first par}
+% \changes{v1.16}{2016/12/03}{Redefined using environ}
+% This puts abstract in a box \emph{and} in a macro. Wasteful, but
+% backword compatible
+% \begin{macrocode}
+\renewenvironment{abstract}{\Collect@Body\@getabstract}{%
+ \ifx\@setabstract\relax\@setabstracta\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\proposed}
+% \changes{v0.3}{2010/09/26}{Added macro}
+% We do not typeset the name of the proposer
+% \begin{macrocode}
+\let\proposed\@gobble
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\seconded}
+% \changes{v0.3}{2010/09/26}{Added macro}
+% Or the seconder
+% \begin{macrocode}
+\let\seconded\@gobble
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\corresponding}
+% \changes{v0.3}{2010/09/26}{Added macro}
+% This is the corresponding author---again not typeset
+% \begin{macrocode}
+\let\corresponding\@gobble
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\version}
+% \changes{v0.3}{2010/09/26}{Added macro}
+% We do not typeset the current version of the manuscript either\dots
+% \begin{macrocode}
+\let\version\@gobble
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\doinumber}
+% \changes{v0.3}{2010/09/26}{Added macro}
+% \changes{v1.0}{2010/12/21}{Added default}
+% \begin{macro}{\mrnumber}
+% \changes{v0.3}{2010/09/26}{Added macro}
+% \begin{macro}{\zblnumber}
+% \changes{v0.3}{2010/09/26}{Added macro}
+% \begin{macro}{\arxivnumber}
+% \changes{v1.16}{2016/12/04}{Added macro}
+% Now databases' numbers of the article:
+% \begin{macrocode}
+\def\doinumber#1{\gdef\@doinumber{#1}}
+\doinumber{10.4007/annals.\currentyear.\currentvolume.\currentissue.\currentpaper}
+\def\mrnumber#1{\gdef\@mrnumber{#1}}
+\mrnumber{}
+\def\zblnumber#1{\gdef\@zblnumber{#1}}
+\zblnumber{}
+\def\arxivnumber#1{\gdef\@arxivnumber{#1}}
+\arxivnumber{}
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\copyrightyear}
+% \changes{v1.11}{2012/07/23}{Added macro}
+% This is the copyright year in case it does not coincide with the
+% publication year:
+% \begin{macrocode}
+\def\copyrightyear#1{\def\@copyrightyear{#1}}
+\copyrightyear{}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\copyrightnote}
+% \changes{v1.11}{2012/07/23}{Added macro}
+% This is the copyrightnote. The default has some trickery with the
+% year:
+% \begin{macrocode}
+\def\copyrightnote#1{\def\@copyrightnote{#1}}
+\copyrightnote{\textcopyright~%
+ \ifx\@empty\@copyrightyear\currentyear\else\@copyrightyear\fi~%
+ Department of Mathematics, Princeton University}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%\subsection{Typesetting Top Matter}
+%\label{sec:maketitle}
+%
+%
+% \begin{macro}{\@mainrpi}
+% \changes{v1.14}{2014/03/03}{Added macro}
+% We write the information about the paper into file.rpi (the
+% The stream for the rpi file:
+% \begin{macrocode}
+\newwrite\@mainrpi
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\aom@write@paper@info}
+% \changes{v1.14}{2014/03/04}{Added macro}
+% \changes{v1.16}{2016/12/03}{Added names, abstract, subjects,
+% keywords, zblnumber, arxivnumber}
+% \changes{v1.16}{2016/12/03}{Corrected the endpage bug}
+% \changes{v1.20}{2017/05/09}{Make primary and secondary subjects
+% separated}
+% \changes{v1.21}{2017/12/13}{Added main language}
+% This writes the information about the paper into the file
+% |jobname.rpi|. Note that hyperref makes our life a little bit
+% more complex
+% \begin{macrocode}
+\def\aom@write@paper@info{%
+ \bgroup
+ \if@filesw
+ \openout\@mainrpi\jobname.rpi%
+ \def\and{\string\and\space}%
+ \ifx\r@LastPage\@undefined
+ \edef\@tempa{\start@page}%
+ \else
+ \def\@tempc##1##2##3##4##5{##2}%
+ \edef\@tempa{\expandafter\@tempc\r@LastPage}%
+ \fi
+ \ifx\languagename\undefined
+ \def\languagename{english}%
+ \fi
+ \protected@write\@mainrpi{}%
+ {\@percentchar authors=\authors}%
+ \protected@write\@mainrpi{}%
+ {\@percentchar authors.information={\@names}}%
+ \protected@write\@mainrpi{}%
+ {\@percentchar title=\@title}%
+ \protected@write\@mainrpi{}%
+ {\@percentchar year=\currentyear}%
+ \protected@write\@mainrpi{}%
+ {\@percentchar volume=\currentvolume}%
+ \protected@write\@mainrpi{}%
+ {\@percentchar issue=\currentissue}%
+ \protected@write\@mainrpi{}%
+ {\@percentchar paper=\currentpaper}%
+ \protected@write\@mainrpi{}%
+ {\@percentchar startpage=\start@page}%
+ \protected@write\@mainrpi{}%
+ {\@percentchar endpage=\@tempa}%
+ \protected@write\@mainrpi{}%
+ {\@percentchar doi=\@doinumber}%
+ \ifx\@zblnumber\@empty\else
+ \protected@write\@mainrpi{}%
+ {\@percentchar zbl=\@zblnumber}%
+ \fi
+ \ifx\@mrnumber\@empty\else
+ \protected@write\@mainrpi{}%
+ {\@percentchar mr=\@mrnumber}%
+ \fi
+ \ifx\@arxivnumber\@empty\else
+ \protected@write\@mainrpi{}%
+ {\@percentchar arxiv=\@arxivnumber}%
+ \fi
+ \protected@write\@mainrpi{}%
+ {\@percentchar subjects=Primary \@primarysubjects; Secondary:
+ \@secondarysubjects}%
+ \protected@write\@mainrpi{}%
+ {\@percentchar keywords=\@keywords}%
+ \protected@write\@mainrpi{}%
+ {\@percentchar abstract=\@aom@abstract}%
+ \protected@write\@mainrpi{}%
+ {\@percentchar articlelanguage=\languagename}%
+ \closeout\@mainrpi
+ \fi
+\egroup}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@maketitle@hook}
+% \changes{v1.14}{2014/03/04}{Added macro}
+% We add writing the information to the hook:
+% \begin{macrocode}
+\def\@maketitle@hook{\aom@write@paper@info\global\let\@maketitle@hook\@empty}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@settitle}
+% We do not uppercase title. Also, we use this occasion to set PDF
+% information:
+% \begin{macrocode}
+\def\@settitle{\begin{center}%
+ \baselineskip20\p@\relax
+ \bfseries\LARGE
+ \@title
+ \ifpdf
+ \hypersetup{pdftitle=\@title}%
+ \fi
+ \end{center}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@setauthors}
+% \changes{v0.6}{2010/11/04}{'By' and 'and' are in Roman font now}
+% \changes{v1.10}{2011/06/21}{Internationalization}
+% Now we typeset authors according to our specs. Again, we use this
+% occasion to set some PDF information:
+% \begin{macrocode}
+\def\@setauthors{%
+ \ifx\authors\@empty\relax\else
+ \begingroup
+ \def\thanks{\protect\thanks@warning}%
+ \trivlist
+ \centering\footnotesize \@topsep30\p@\relax
+ \advance\@topsep by -\baselineskip
+ \item\relax
+ \def\@@and{{\upshape \@aom@and}}
+ \author@andify\authors
+ \ifpdf
+ \hypersetup{pdfauthor=\authors}%
+ \fi
+ \def\\{\protect\linebreak}%
+ \small \@aom@by{} \scshape\authors%
+ \ifx\@empty\contribs
+ \else
+ ,\penalty-3 \space \@setcontribs
+ \@closetoccontribs
+ \fi
+ \endtrivlist
+ \endgroup
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@setcontribs}
+% Contributors are set up in the same way as authors:
+% \begin{macrocode}
+\def\@setcontribs{%
+ \@xcontribs
+ {\scshape \xcontribs}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@adminfootnotes}
+% \changes{v1.11}{2012/07/23}{Added copyright statement}
+% \changes{v1.20}{2017/05/09}{Make primary and secondary subjects separated}
+% We do not typeset keywords, so we change the definition:
+% \begin{macrocode}
+\def\@adminfootnotes{%
+ \let\@makefnmark\relax \let\@thefnmark\relax
+ \ifx\@empty\@date\else \@footnotetext{\@setdate}\fi
+ \ifx\@empty\@subjclass\else \@footnotetext{\@setsubjclass}\fi
+ \ifx\@empty\@keywords\else\@setkeywords\fi
+ \ifx\@empty\@primarysubjects
+ \ifx\@empty\@secondarysubjects
+ \else\@setsubjects\fi
+ \else\@setsubjects\fi
+ \ifx\@empty\thankses\else \@footnotetext{%
+ \def\par{\let\par\@par}\@setthanks}%
+ \fi
+ \ifx\@empty\@copyrightnote\else \@footnotetext{%
+ \def\par{\let\par\@par}\@copyrightnote\@addpunct.}%
+ \fi
+}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\@setkeywords}
+% \changes{v1.18}{2017/02/11}{Now we print keywords}
+% Typesetting keywords
+% \begin{macrocode}
+\def\@setkeywords{%
+ \ifpdf
+ \hypersetup{pdfkeywords=\@keywords}%
+ \fi
+ \if@aom@oldkeywords\else
+ \@footnotetext{Keywords: \@keywords}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@setsubjects}
+% \changes{v1.18}{2017/02/11}{Now we print subjects}
+% \changes{v1.20}{2017/05/09}{Make primary and secondary subjects separated}
+% Setting subjects
+% \begin{macrocode}
+\def\@setsubjects{%
+ \let\@subjects\@empty
+ \ifx\@primarysubjects\@empty\else
+ \edef\@subjects{Primary: \@primarysubjects}%
+ \fi
+ \ifx\@secondarysubjects\@empty\else
+ \ifx\@primarysubjects\@empty
+ \edef\@subjects{Secondary: \@secondarysubjects}%
+ \else
+ \edef\@subjects{\@subjects; Secondary: \@secondarysubjects}%
+ \fi
+ \fi
+ \ifpdf
+ \hypersetup{pdfsubject=\@subjects}%
+ \fi
+ \if@aom@oldkeywords\else
+ \@footnotetext{AMS Classification: \@subjects.}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@@and}
+% \changes{v0.9}{2010/12/04}{Redefined macro}
+% \changes{v1.10}{2011/06/21}{Added internationalization}
+% We want ``and'' in the footers to be lowercase. Since there is
+% some uppercase involved, we protect it:
+% \begin{macrocode}
+\def\@@and{\MakeLowercase{\@aom@and}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%\subsection{Typesetting End Matter}
+%\label{sec:endmatter}
+%
+% End matter is typeset at the end of the paper.
+%
+% \begin{macro}{\enddoc@text}
+% \changes{v0.4}{2010/09/28}{Deleted many dates.}
+% This is the main macro for typesetting endmatter.
+% \begin{macrocode}
+\def\enddoc@text{%
+ \ifx\@empty\@translators \else\@settranslators\fi
+ \ifx\@empty\@received \else\@setreceived\fi
+ \ifx\@empty\@revised \else\@setrevised\fi
+ \ifx\@empty\addresses \else\@setaddresses\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@setreceived}
+% \begin{macro}{\@setrevised}
+% \begin{macro}{\@setaccepted}
+% \begin{macro}{\@setpublished}
+% \begin{macro}{\@setpublishedonline}
+% \changes{v0.5}{2010/10/24}{Decreased font}
+% \changes{v0.9}{2010/12/04}{Increased font}
+% A bunch of macros for setting centered dates
+% \begin{macrocode}
+\def\@setreceived{{\centering(Received: \@received)\par}}
+\def\@setrevised{{\centering(Revised: \@revised)\par}}
+\def\@setaccepted{{\centering(Accepted: \@accepted)\par}}
+\def\@setpublished{{\centering(Published: \@published)\par}}
+\def\@setpublishedonline{{\centering(Published online: \@publishedonline)\par}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\emailaddrname}
+% \changes{v0.5}{2010/10/24}{Changed macro}
+% We do not want the word ``address'' here:
+% \begin{macrocode}
+\def\emailaddrname{{\itshape E-mail}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@setaddresses}
+% \changes{v0.5}{2010/10/24}{Deleted the word URL}
+% \changes{v0.5}{2010/10/24}{E-mail is now in Roman font}
+% \changes{v0.9}{2010/12/04}{Deleted spurious space in urladdress}
+% \changes{v1.2}{2011/01/05}{Changed font for current address}
+% \changes{v1.11}{2012/07/23}{Changed email handling}
+% \changes{v1.18}{2017/02/15}{Added orcid}
+% The difference between our definition and the one in
+% \progname{amsart} is that we want the e-mail and URL to be clickable
+% \begin{macrocode}
+\def\@setaddresses{\par
+ \nobreak \begingroup
+\footnotesize
+ \def\author##1{\nobreak\addvspace\bigskipamount}%
+ \def\\{\unskip, \ignorespaces}%
+ \interlinepenalty\@M
+ \def\address##1##2{\begingroup
+ \par\addvspace\bigskipamount\indent
+ \@ifnotempty{##1}{(\ignorespaces##1\unskip) }%
+ {\scshape\ignorespaces##2}\par\endgroup}%
+ \def\curraddr##1##2{\begingroup
+ \@ifnotempty{##2}{\nobreak\indent\curraddrname
+ \@ifnotempty{##1}{, \ignorespaces\scshape##1\unskip}\hskip0.2em:\space
+ \scshape##2\par}\endgroup}%
+ \def\email##1##2{\begingroup
+ \@ifnotempty{##2}{\nobreak\indent\emailaddrname
+ \@ifnotempty{##1}{, \ignorespaces##1\unskip}\hskip0.2em:\space
+ \href{mailto:##2}{\nolinkurl{##2}}\par}\endgroup}%
+ \def\urladdr##1##2{\begingroup
+ \@ifnotempty{##2}{\nobreak\indent
+ \@ifnotempty{##1}{, \ignorespaces##1\unskip}%
+ \url{##2}\par}\endgroup}%
+ \def\orcid##1##2{\begingroup
+ \@ifnotempty{##2}{\nobreak\indent
+ \@ifnotempty{##1}{, \ignorespaces##1\unskip}%
+ ORCID: ##2\par}\endgroup}%
+ \addresses
+ \endgroup
+}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+%\subsection{Sectioning}
+%\label{sec:sectioning}
+%
+% \begin{macro}{\contentsnamefont}
+% This is the font for the word ``Contents'':
+% \begin{macrocode}
+\renewcommand\contentsnamefont{\bfseries}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\section}
+% We want our sections to be centered and bold:
+% \begin{macrocode}
+\def\section{\@startsection{section}{1}%
+ \z@{.7\linespacing\@plus\linespacing}{.5\linespacing}%
+ {\normalfont\bfseries\centering}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\subsection}
+% \changes{v0.5}{2010/10/24}{Redefined macro}
+% \changes{v1.2}{2011/01/05}{Decreased vertical spacing}
+% \changes{v1.4}{2011/01/21}{Deleted stretch in vertical spacing}
+% We want our subsections to be indented and italic:
+% \begin{macrocode}
+\def\subsection{\@startsection{subsection}{2}%
+ {\parindent}{.5\linespacing}{-.5em}%
+ {\normalfont\itshape}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\oldsubsections}
+% \changes{v1.2}{2011/01/05}{Introduced macro}
+% This macro restores the values for |\subsection| spacing prior to
+% v1.1.
+% \begin{macrocode}
+\def\oldsubsections{%
+\gdef\subsection{\@startsection{subsection}{2}%
+ {\parindent}{.5\linespacing\@plus.7\linespacing}{-.5em}%
+ {\normalfont\itshape}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\subsubsection}
+% \changes{v1.4}{2011/01/21}{Introduced the macro}
+% Subsubsections are formatted exactly like subsections:
+% \begin{macrocode}
+\def\subsubsection{\@startsection{subsubsection}{3}%
+ {\parindent}{.5\linespacing}{-.5em}%
+ {\normalfont\itshape}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\Hy@AlphNoErr}
+% \changes{v1.13}{2012/10/26}{Added macro for older installations}
+% The newer (circa 2012) hyperref defines this command. However,
+% older versions do not. Here we provide it:
+% \begin{macrocode}
+\providecommand\Hy@AlphNoErr[1]{%
+ \ifnum\value{#1}>26 %
+ Alph\number\value{#1}%
+ \else
+ \ifnum\value{#1}<1 %
+ Alph\number\value{#1}%
+ \else
+ \Alph{#1}%
+ \fi
+ \fi
+}%
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\appendix}
+% \changes{v1.6}{2011/03/06}{Redefined the macro}
+% \changes{v1.12}{2012/10/25}{Added hyperref definition}
+% We redefine appendix to ensure the letter in section number is
+% always upright:
+% \begin{macrocode}
+\def\appendix{\par\c@section\z@ \c@subsection\z@
+ \gdef\theHsection{\Hy@AlphNoErr{section}}%
+ \let\sectionname\appendixname
+ \def\thesection{{\upshape\@Alph\c@section}}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%\subsection{Figures and Tables}
+%\label{sec:figs}
+%
+% \begin{macro}{\@captionheadfont}
+% This is the font for the words ``Figure'' or ``Table'' in
+% captions. Unlike \progname{amsmath} with is small caps, we want
+% just plain Roman font:
+% \begin{macrocode}
+\def\@captionheadfont{\normalfont}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+%
+%\subsection{Theorems}
+%\label{sec:theorems}
+%
+% 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}
+%
+%
+% \changes{v0.4}{2010/09/28}{Changed plain theorem style}
+% In the |plain| style the name (``theorem'') is in small caps, the
+% number is in normal font, the optional note is also
+% in normal font, and the text is italics.
+% \begin{macrocode}
+\newtheoremstyle{plain}{0.5\linespacing}{0.5\linespacing}{\sishape}%
+ {\parindent}{\scshape}{.}{0.5em}%
+ {\thmname{#1}\thmnumber{ #2}\thmnote{\normalfont{} (#3)}}
+% \end{macrocode}
+%
+% \changes{v0.4}{2010/09/28}{Changed definition theorem style}
+% In the |definition| style the name is italics, and the body font is
+% upright:
+% \begin{macrocode}
+\newtheoremstyle{definition}{0.5\linespacing}{0.5\linespacing}%
+ {\upshape}{\parindent}%
+ {\sishape}{.}{0.5em}%
+ {\thmname{#1}\thmnumber{ #2}\thmnote{\normalfont{} (#3)}}
+% \end{macrocode}
+%
+% \changes{v0.4}{2010/09/28}{Deleted remark theorem style}
+% \changes{v0.5}{2010/10/24}{Made remark theorem style identical to
+% definition theorem style}
+% In our class there is no difference between |remark| and
+% |definition| theorem styles:
+% \begin{macrocode}
+\newtheoremstyle{remark}{0.5\linespacing}{0.5\linespacing}%
+ {\upshape}{\parindent}%
+ {\sishape}{.}{0.5em}%
+ {\thmname{#1}\thmnumber{ #2}\thmnote{\normalfont{} (#3)}}
+% \end{macrocode}
+%
+% \begin{macro}{\newtheorem}
+% \changes{v0.3}{2010/09/26}{Redefined macro}
+% For compatibility reasons we need to accept |\newtheorem| with
+% optional first argument---and silently drop it. The problem is,
+% there is |\newtheorem*|, so we need to check which one we deal
+% with\dots{} The command |\@xnthm| here is from \progname{amsthm};
+% it does the real work with the real parameters.
+% \begin{macrocode}
+\renewcommand{\newtheorem}{\@ifstar{\@aom@newthm@star}{\@aom@newthm}}
+\def\@aom@newthm@star{\@ifnextchar[{\@aom@newthm@star@}{\@aom@newthm@star@[]}}
+\def\@aom@newthm{\@ifnextchar[{\@aom@newthm@}{\@aom@newthm@[]}}
+\def\@aom@newthm@star@[#1]{\@xnthm *}
+\def\@aom@newthm@[#1]{\@xnthm \relax}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{proof}
+% \changes{v0.5}{2010/10/24}{Redefined macro}
+% We want our proofs to be indented:
+% \begin{macrocode}
+\renewenvironment{proof}[1][\proofname]{\par
+ \pushQED{\qed}%
+ \normalfont \topsep6\p@\@plus6\p@\relax
+ \trivlist
+ \item[\hskip\labelsep\hskip\parindent
+ \itshape
+ #1\@addpunct{.}]\ignorespaces
+}{%
+ \popQED\endtrivlist\@endpefalse
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%\subsection{Bibliography Macros}
+%\label{sec:bibl}
+%
+% \begin{macro}{\repeatedauthors}
+% \changes{v1.11}{2012/08/16}{Now this command is obsolete}
+% When the authors are repeated, we used change them to |\bysame|;
+% we no more do this:
+% \begin{macrocode}
+\def\repeatedauthors#1{\ClassWarning{aomart}{The command is obsolte}#1}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bysame}
+% \changes{v1.11}{2012/08/16}{Made the macro obsolete}
+% We no longer use \cmd{\bysame}
+% \begin{macrocode}
+\let\bysame@@orig=\bysame
+\def\bysame{\ClassWarning{aomart}{We no longer omit
+ repeated authors}\bysame@@orig}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\doi}
+% \changes{v1.2}{2011/01/05}{Now we properly treat numbers with underscores}
+% \changes{v1.9}{2011/06/13}{Changed doi look}
+% \changes{v1.10}{2011/06/21}{Introduced the logic for old doi
+% formatting}
+% \changes{v1.15}{2016/11/18}{Doi according to the new Crossref
+% recommendations}
+% Typesetting doi\dots
+% \begin{macrocode}
+\def\doi#1{%
+ \if@aom@doiMMXVI
+ \url{http://dx.doi.org/#1}%
+ \else
+ \if@aom@olddoi
+ \href{http://dx.doi.org/#1}{doi: \path{#1}}%
+ \else
+ \url{https://doi.org/#1}%
+ \fi
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\mr}
+% \changes{v0.3}{2010/09/27}{Added macro}
+% \changes{v1.2}{2011/01/05}{Now we properly treat numbers with underscores}
+% \begin{macro}{\zbl}
+% \changes{v0.3}{2010/09/27}{Added macro}
+% \changes{v0.6}{2010/10/03}{Changed capitalization}
+% \changes{v1.2}{2011/01/05}{Now we properly treat numbers with underscores}
+% \begin{macro}{\arxiv}
+% \changes{v0.3}{2010/09/27}{Added macro}
+% \changes{v1.2}{2011/01/05}{Now we properly treat numbers with
+% underscores}
+% \changes{v1.5}{2011/02/26}{Typo corrected}
+% \begin{macro}{\jfm}
+% \changes{v0.10}{2010/12/18}{Added macro}
+% \changes{v1.2}{2011/01/05}{Now we properly treat numbers with underscores}
+% Typesetting urls
+% \begin{macrocode}
+\def\mr#1{\href{http://www.ams.org/mathscinet-getitem?mr=#1}{MR~\path{#1}}}
+\def\zbl#1{\href{http://www.zentralblatt-math.org/zmath/en/search/?q=an:#1}{Zbl~\path{#1}}}
+\def\arxiv#1{\href{http://www.arxiv.org/abs/#1}{arXiv~\path{#1}}}
+\def\jfm#1{\href{http://www.emis.de/cgi-bin/JFM-item?#1}{JFM~\path{#1}}}
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\bibliofont}
+% \changes{v0.6}{2010/10/03}{Changed default}
+% We make this |\small| rather than |\Small| in \progname{amsart}
+% \begin{macrocode}
+\renewcommand{\bibliofont}{\small}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%\subsection{Additional Macros}
+%\label{sec:additional}
+%
+% \begin{macro}{\EditorialComment}
+% \changes{v0.3}{2010/09/28}{Added macro}
+% This macro is noop in normal mode, but is a tiny marginpar in the
+% manusript mode
+% \begin{macrocode}
+\def\EditorialComment#1{\if@aom@manuscript@mode\bgroup
+ \marginparwidth=75pt\marginpar{\scriptsize\raggedright#1}\egroup\fi}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@fullref}
+% \changes{v0.5}{2010/10/24}{Added macro}
+% This macro creates a wide link for the reference. It has four
+% parameters: the word (theorem, equation,\dots), the ``pre''
+% punctuation, the reference and the ``post'' punctuation.
+% \begin{macrocode}
+\def\@fullref#1#2#3#4{\hyperref[#3]{#1~#2\ref*{#3}#4}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\fullref}
+% \changes{v0.5}{2010/10/24}{Added macro}
+% A reference without parentheses:
+% \begin{macrocode}
+\newcommand{\fullref}[2]{\@fullref{#1}{}{#2}{}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\pfullref}
+% \changes{v0.5}{2010/10/24}{Added macro}
+% A reference with parentheses:
+% \begin{macrocode}
+\newcommand{\pfullref}[2]{\@fullref{#1}{(}{#2}{)}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\bfullref}
+% \changes{v0.5}{2010/10/24}{Added macro}
+% A reference with brackets:
+% \begin{macrocode}
+\newcommand{\bfullref}[2]{\@fullref{#1}{[}{#2}{]}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\eqfullref}
+% \changes{v0.5}{2010/10/24}{Added macro}
+% Here we do not use the standard common |\@fullref| because we want
+% |\eqref| to work\dots
+% \begin{macrocode}
+\newcommand{\eqfullref}[2]{\hyperref[#2]{#1~\textup{\tagform@{\ref*{#2}}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\eqnarray}
+% \changes{v0.9}{2010/12/04}{Redefined standard macro}
+% While we do \emph{not} recommend the use of |eqnarray|, we still
+% would like to correct the ugly spacing around it\dots
+% \begin{macrocode}
+\def\eqnarray{%
+ \stepcounter{equation}%
+ \def\@currentlabel{\p@equation\theequation}%
+ \global\@eqnswtrue
+ \m@th
+ \global\@eqcnt\z@
+ \tabskip\@centering
+ \let\\\@eqncr
+ $$\arraycolsep1\p@
+ \everycr{}\halign to\displaywidth\bgroup
+ \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel
+ &\global\@eqcnt\@ne\hskip \tw@\arraycolsep \hfil${##}$\hfil
+ &\global\@eqcnt\tw@ \hskip \tw@\arraycolsep
+ $\displaystyle{##}$\hfil\tabskip\@centering
+ &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup
+ \tabskip\z@skip
+ \cr
+}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+%\subsection{End of Class}
+%\label{end}
+%
+%
+% \begin{macrocode}
+%</class>
+% \end{macrocode}
+%
+%\Finale
+%\clearpage
+%
+%\PrintChanges
+%\clearpage
+%\PrintIndex
+%
+\endinput