From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/aomart/aomart.dtx | 2322 ++++++++++++++++++++++++++++++++ 1 file changed, 2322 insertions(+) create mode 100644 macros/latex/contrib/aomart/aomart.dtx (limited to 'macros/latex/contrib/aomart/aomart.dtx') 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, +% +% +% 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 || for it. +% \begin{macrocode} +%\NeedsTeXFormat{LaTeX2e} +%<*gobble> +\ProvidesFile{aomart.dtx} +% +%\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} +% +%<*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{}% + \g@addto@macro\@aom@abstract{#1}% + \g@addto@abstract{}% + \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} +% +% \end{macrocode} +% +%\Finale +%\clearpage +% +%\PrintChanges +%\clearpage +%\PrintIndex +% +\endinput -- cgit v1.2.3