summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/resphilosophica/resphilosophica.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/resphilosophica/resphilosophica.dtx
Initial commit
Diffstat (limited to 'macros/latex/contrib/resphilosophica/resphilosophica.dtx')
-rw-r--r--macros/latex/contrib/resphilosophica/resphilosophica.dtx1984
1 files changed, 1984 insertions, 0 deletions
diff --git a/macros/latex/contrib/resphilosophica/resphilosophica.dtx b/macros/latex/contrib/resphilosophica/resphilosophica.dtx
new file mode 100644
index 0000000000..365371c933
--- /dev/null
+++ b/macros/latex/contrib/resphilosophica/resphilosophica.dtx
@@ -0,0 +1,1984 @@
+% \iffalse
+%<*gobble>
+% $Id: resphilosophica.dtx,v 1.69 2019/04/14 19:44:29 boris Exp $
+%
+% Copyright 2012-2019, Boris Veytsman <boris@varphi.com>
+% 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 resphilosophica.dtx and the
+% derived file resphilosophica.cls
+%
+% \fi
+% \CheckSum{1395}
+%
+%
+%% \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
+%
+%
+%\section{Identification}
+%\label{sec:ident}
+%
+% We start with the declaration who we are
+% \begin{macrocode}
+%</gobble>
+%<class>\NeedsTeXFormat{LaTeX2e}
+%<*gobble>
+\ProvidesFile{resphilosophica.dtx}
+%</gobble>
+%<class>\ProvidesClass{resphilosophica}
+[2019/04/14 v1.35 Typesetting articles for Res Philosophica]
+%<*gobble>
+% \end{macrocode}
+%
+%
+% \fi
+%
+% \changes{v1.1}{2012/09/01}{Added MT Shadow Imprint code}
+% \changes{v1.1}{2012/09/01}{Added DOI number}
+% \changes{v1.4}{2012/09/06}{Added screen option}
+% \changes{v1.5}{2012/09/07}{Color change for links}
+% \changes{v1.6}{2012/09/08}{Changed bib style}
+% \changes{v1.7}{2012/09/11}{Added new bibliography fields}
+% \changes{v1.8}{2012/09/12}{Added blank last page if the last page is
+% odd}
+% \changes{v1.10}{2012/09/19}{Bibliography changes}
+% \changes{v1.11}{2013/01/08}{Bibliography changes}
+% \changes{v1.12}{2013/07/13}{Bibliography changes}
+% \changes{v1.13}{2013/08/14}{New options: preprint and forthcoming}
+% \changes{v1.13}{2013/08/14}{New command: titlenote}
+% \changes{v1.15}{2013/09/13}{Added new bibliography command}
+% \changes{v1.16}{2013/11/26}{Deleted Imprinnt Shadow}
+% \changes{v1.16}{2013/11/26}{Added documentation about typesetter
+% changes highlighting}
+% \changes{v1.17}{2013/12/01}{Added documentation about new editorial
+% comments}
+% \changes{v1.17}{2013/12/01}{Bibliography changes:
+% `inloosecollection' entry}
+% \changes{v1.24}{2015/01/14}{New command: authornote}
+% \changes{v1.27}{2015/11/04}{New command: ensquote}
+% \changes{v1.28}{2015/11/14}{Now ensquote and enquote work correct in
+% the case of embedded quotations}
+% \changes{v1.33}{2018/12/23}{Bibliography change: avoid URLs that
+% duplicate dois}
+%
+%\iffalse
+% \begin{macrocode}
+\documentclass{ltxdoc}
+\usepackage{array}
+\usepackage{url}
+% Taken from xkeyval.dtx
+\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
+\usepackage{hypdoc}
+\hypersetup{breaklinks,colorlinks,linkcolor=black,citecolor=black,
+ pagecolor=black,urlcolor=black,hyperindex=false}
+\PageIndex
+\CodelineIndex
+\RecordChanges
+\EnableCrossrefs
+\begin{document}
+ \DocInput{resphilosophica.dtx}
+\end{document}
+% \end{macrocode}
+%</gobble>
+%<*class>
+% \fi
+% \MakeShortVerb{|}
+% \GetFileInfo{resphilosophica.dtx}
+% \newcommand{\progname}[1]{\textsf{#1}}
+% \title{Typesetting Articles for \emph{Res
+% Philosophica}\thanks{\copyright 2012, Boris Veytsman}~\thanks{This
+% work was commissioned by the Saint Lois University}}
+% \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
+% journal \emph{Res Philosophica},
+% \url{http://www.resphilosophica.org}.
+% \end{abstract}
+% \tableofcontents
+%
+% \clearpage
+%
+%\section{Introduction}
+%\label{sec:intro}
+%
+% According to the statement at \url{http://www.resphilosophica.org/},
+% \emph{Res Philosophica} is an international, quarterly journal of
+% philosophy that publishes research in all areas of philosophy,
+% historical and topical. Founded as \emph{The Modern Schoolman} by
+% Jesuit Scholastics in 1925, the journal is edited by members of the
+% Philosophy Department at Saint Louis University and supported
+% generously by the College of Arts and Sciences.
+%
+% This package is intended for the authors and editors of the journal
+% to typeset the articles in \LaTeX. Note that the journal is typeset
+% in \emph{Linotype Sabon,}.
+% The users may buy the fonts and install their free \LaTeX\
+% support~\cite{Lsabon}, or use the options
+% |bodyfont=cm| and |rpfont=cm| to typeset the articles using Computer
+% Modern. Of course, the line and page breaks in the latter case are
+% different from those in the final version typeset with commercial
+% fonts.
+%
+%\section{User Interface}
+%\label{sec:interface}
+%
+%
+%\subsection{Commercial Fonts}
+%\label{sec:prereq}
+%
+% The package can be used with free Computer Modern fonts or with
+% commercial fonts to mimick the journal typesetting. The
+% installation of additional fonts is therefore fully optional.
+%
+% \emph{Res Philosophica} uses Linotype Sabon for the body text
+% and URW Garamond for
+% mathematics. Sabon is a commercial font. URW
+% Garamond is free, but due to license restrictions it is usually not
+% included with \TeX Live, Mik\TeX\ and other major distributives. If
+% you bought Linotype Sabon, you need to install the package
+% |lsabon|~\cite{Lsabon}. To use
+% URW Garamond, you need to download the |pfb| files from a CTAN
+% mirror (\url{http://mirror.ctan.org/fonts/urw/garamond/}),
+% install them in the directory \path{fonts/type1/urw/garamond} under
+% \path{$TEXMFLOCAL} and run |texhash|.
+%
+%\subsection{Invocation and Options}
+%\label{sec:options}
+%
+% To use the class put in the preamble of your document
+% \begin{flushleft}
+% |\documentclass[|\meta{options}|]{resphilosophica}|
+% \end{flushleft}
+%
+% The class \progname{resphilosophica} internally loads \progname{amsart},
+% and therefore all
+% class options for \progname{amsart} are technically valid. However, most of
+% them are not especially meaningful for \progname{resphilosophica}.
+% There are several options specific for this class. They are
+% described below. Note that the class uses key-value interface for
+% some options, for example
+% \begin{verbatim}
+% \documentclass[bodyfont=sabon]{resphilosophica}
+% \end{verbatim}
+%
+%
+% \DescribeOption{bodyfont}
+% The option |bodyfont| can have three values: |sabon| for
+% Sabon/Garamond fonts, |cm| for Computer Modern and |auto|
+% (default). The later option switches to the use of Sabon if the
+% font metrics are present in your system, and to the use of
+% Computer Modern otherwise.
+%
+%
+% \DescribeOption{manuscript}
+% The option |manuscript| is intended to faciliate the communications
+% between the editor and the author. It enables two things:
+% \begin{enumerate}
+% \item The numbering of lines in the manuscript is switched off in the
+% normal mode, but is on in the manuscript mode.
+% \item The command |\EditorialComment| is no-op in normal mode, but
+% produces mariginal commentaries in the manuscript
+% \end{enumerate}
+%
+% \DescribeOption{preprint}
+% The option |preprint| is for the final version of the manuscript.
+% In this mode there are no editorial comments, but the numbering of
+% lines is preserved
+%
+%
+%
+% \DescribeOption{screen}
+% The option |screen| is intended for the screen reading. When this
+% option is selected, the links become highlighted.
+%
+%
+% \DescribeOption{forthcoming}
+% \DescribeMacro{\onlinedate}
+% The option |forthcoming| is like |screen|, but it is used when there
+% is no information about the volume. The macro
+% \cs{onlinedate}\marg{date} can be used to set the date of online
+% publication.
+%
+%
+%
+% \DescribeOption{natbib}
+% The preferred solution for bibliography is |natbib|
+% package~\cite{Daly07:Natbib}. The option |natbib=true| (default)
+% sets the package and the proper options, including bibliography
+% style. The option |natbib=false| switches this behavior off, and the
+% formatting of the bibliography becomes the full responsibility of
+% the author. The package includes the Bib\TeX\ bibliography style
+% |resphilosophica.bst|.
+%
+%\subsection{Topmatter}
+%\label{sec:topmatter}
+%
+% Topmatter is the part of the article with the informations about the
+% authors, their affiliations, the publication data, etc.
+%
+% There are two kinds of top matter commands: the ones used primarily
+% for authors and the ones used primarily for editors. We describe
+% them separately.
+%
+%\subsubsection{Commands for Authors}
+%\label{sec:authors_commands}
+%
+%
+% \DescribeMacro{\title}
+% The command |\title|, as in \progname{amsart} class, has two arguments: one
+% optional, and one mandatory:
+% \begin{flushleft}
+% |\title[|\meta{ShortTitle}|]{|\meta{FullTitle}|}|
+% \end{flushleft}
+% The mandatory argument is the full title of the article. The
+% optional argument, if present, defines the shorter version of the
+% title for running heads. If the optional argument is absent, the
+% full title is used instead.
+%
+% The title is typeset in small caps. The result of the command
+% \cs{emph} in title depends on whether commercial fonts and the
+% package \progname{lsabon} package is used: with a relatively recent
+% version of the package |lsabon| the emphasized text is typeset in
+% Small Caps Italics.
+%
+% \DescribeMacro{\author}
+% \DescribeMacro{\email}
+% \DescribeMacro{\address}
+% \DescribeMacro{\curraddr}
+% \DescribeMacro{\urladdr}
+% The interface for specifying the authors
+% and their affiliations is close the the one of
+% \progname{amsart}~\cite{instr-l} (and different from the standard \LaTeX).
+% For each author a separate command |\author| should be used,
+% followed by |\address| and (optionally) |\curraddr|, |\email| and
+% |\urladdr|.
+%
+% \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{resphilosophica} allows |\thanks| only \emph{outside} of
+% commands |\title| and |\author|. The text of |\thanks| is typeset
+% at the end of the paper as a footnote marked `Acknowledgments'.
+% Note that the right vertical positioning of this footnote might
+% require an additional run of \LaTeX.
+%
+% \DescribeMacro{\titlenote}%
+% The \cs{titlenote}\marg{note} command creates a special footnote for
+% the title. This command should be issued \emph{outside} the
+% \cs{title} command.
+%
+% \DescribeMacro{\authornote}%
+% The similar \cs{authornote}\marg{note} command creates a special
+% footnote for the author. This command should be issued
+% \emph{outside} the \cs{author} command.
+%
+% \DescribeMacro{\copyrightnote}
+% Normally each paper is copyrighted by the authors and by the
+% journal. 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}
+%
+% \DescribeMacro{\copyrightyear}
+% Normally the copyright statement includes the year of copyright,
+% which is assumed to be the publication year as specified by the
+% |\publicationyear| command (see below). If this assumption is
+% wrong, you may correct it, for example,
+% \begin{verbatim}
+% \copyrightyear{1998}
+% \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|.
+%
+% \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{\volumenumber}
+% \DescribeMacro{\issuenumber}
+% \DescribeMacro{\publicationyear}
+% \DescribeMacro{\publicationmonth}
+% \DescribeMacro{\papernumber}
+% \DescribeMacro{\startpage}
+% \DescribeMacro{\endpage}
+% The macros |\volumenumber|, |\issuenumber|, |\publicationyear|,
+% |\publicationmonth|, |\papernumber|, |\startpage|, |\endpage| set up the
+% corresponding
+% data for the paper, for example:
+% \begin{verbatim}
+% \volumenumber{88}
+% \issuenumber{1--2}
+% \publicationyear{2012}
+% \publicationmonth{January--February}
+% \papernumber{2}
+% \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.
+%
+% Sometimes publication month for double issues is too long to fit on
+% the back cover. For this case \cs{publicationmonth} has the
+% optional argument, abbreviated month, for example
+% \begin{verbatim}
+% \publicationmonth[Jan--Feb]{January--February}
+% \end{verbatim}
+%
+% \DescribeMacro{\manuscriptid}%
+% The comman \cs{manuscriptid}\oarg{id} sets the number of the
+% manuscript assigned at submission. If it is set, it is used to
+% calculate the doi number (see below).
+%
+% \DescribeMacro{\doinumber}%
+% Normally you do not need to set the DOI of the paper: \TeX{} will
+% construct the number using the paper data. However, you \emph{may}
+% override its decision using the command |\doinumber| which sets the
+% DOI explicitly, for example,
+% |\doinumber|\marg{10.11612/resphilosophica.2013.01.01}. You
+% probably should not use this macro.
+%
+% \DescribeMacro{\prevpaper}
+% Instead of setting |\startpage|, one can use the the command
+% |\prevpaper|\marg{previous paper}, with the argument being the
+% location and file name of the previous paper in the journal, for example:
+% \begin{verbatim}
+% \prevpaper{../infinity/concept_of_infinity}
+% \end{verbatim}
+% Note that the |.tex| suffix should \emph{not} be used. The previous
+% paper must be processed by |latex| prior to the current one. In
+% this case |latex| will read the last page of the previous paper, and
+% start the current one from the proper page number.
+%
+% \DescribeMacro{\paperUrl}
+% When a paper is submitted to the Crossref service, which keeps the
+% database of Digital Object Identifiers, its URL is calculated by
+% the script used by editors. The command \cs{paperURL}\marg{url}
+% overrides this choice.
+%
+%
+% \DescribeMacro{\EditorialComment}
+% The macro |\EditorialComment|\oarg{level}\marg{comments} typesets
+% the comments
+% on the margins in the |manuscript| mode, for example,
+% \begin{verbatim}
+% Which is a well known fact.\EditorialComment{A citation is
+% needed}\EditorialComment[1]{Please make the citation more
+% explicit}.
+% \end{verbatim}
+% Editorial comments have \emph{levels.} A level can be numeric or
+% symbolic; symbolic levels can contain letters and numbers. The
+% default level is |0|, so |\EditorialComment{text}| is equivalent to
+% |\EditorialComment[0]{text}|.
+%
+% \DescribeMacro{\ECSelect}
+% The command \cs{ECSelect}\marg{level,level,...} selects the levels
+% of editorial comments to display in the manuscript mode. Note that
+% |0| corresponds to the default level, so the command |\ECSelet{0}|
+% should be used to show these comments.
+%
+% Sometimes it is useful to tell the author about typesetter's changes
+% in the manuscript. The dialog between the author and typesetter
+% might take several iterations, so the class provides a system for
+% this dialog.
+%
+% \DescribeMacro{\TC}
+% The macro \cs{TC}\oarg{level}\marg{text} makes \marg{text}
+% highlighted in the |manuscript| mode if the level \oarg{level} is
+% chosen. For example,
+% \begin{verbatim}
+% This proposition \TC[1]{(first discussed by the author in 2010)} can
+% be stated as the following.
+% \end{verbatim}
+% The level can be numerical, or logical, e.g. |\TC[new]{text}|.
+% Actually any combination of letters and numbers that does not
+% contain commas or spaces can be used for level. By default the
+% level is |0|, so |\TC|\marg{text} is equivalent to
+% |\TC[0]|\marg{text}.
+%
+% \DescribeMacro{\TCSelect}
+% The decision to highlight certain levels is done by the command
+% \cs{TCSelect}\oarg{color}\marg{level,level,level...} The first
+% optional argument is the color used for highlighting; by default
+% |magenta|. Actually any color expression understandable by
+% \progname{xcolor} can be used. The second argument is a
+% comma-separated list of levels that will be highlighted by the
+% selected color. The command \cs{TCSelect} can be repeated, for example,
+% \begin{verbatim}
+% \TCSelect{0,1,new}
+% \TCSelect[blue]{second-level}
+% \end{verbatim}
+% If a level does \emph{not} appear in any \cs{TCSelect} command, it is
+% not highlighted---that is why we do not need a separate \cs{TCOff}
+% command.
+%
+%
+%
+%\section{Special Notes}
+%\label{sec:guide_notes}
+%
+% \DescribeEnv{notes}
+% Some authors include special notes, for example, bibliography
+% description, that precede list of references, but follow the
+% signature block. The environment |notes| is intended for this
+% purpose. It has one mandatory argument, title, for example
+% \begin{verbatim}
+% \begin{notes}{Bibliography notes}
+% The best discussion of the problem can be found in...
+% \end{notes}
+% \end{verbatim}
+%
+%
+%
+%\subsection{Bibliography}
+%\label{sec:guide_bib}
+%
+% As mentioned above, |resphilosophica| by default uses
+% |natbib|~\cite{Daly07:Natbib}. You should use |natbib| commands
+% like |\citet|, |\citep| etc.
+%
+% Note that |\bibliographystyle| command should \emph{not} be issued
+% by the author: the package takes care of this. You just need to
+% type
+% \begin{verbatim}
+% \bibliography{DATABASE, DATABASE...}
+% \end{verbatim}
+%
+% The bibliography style used for the articles is
+% |resphilosophica.bst|. Compared to standard styles it has two
+% additional fields:
+% \begin{description}
+% \item[doi:] DOI number of the publication. Write there only the
+% number: the style will automatically add |https://doi.org| and
+% make the reference clickable.
+% \item[titlenote:] the note that should be put after the title rather
+% than at the end of the entry\footnote{This field was proposed by
+% Maureen Shupsky for the \emph{Annals of Mathematics}
+% bibliography style.}, for example, the information about
+% translators, editors of critical editions, etc:
+% \begin{verbatim}
+% @book{Knuth94:TheTeXbook,
+% address = {Reading, MA},
+% author = {Knuth, Donald Ervin},
+% titlenote = {Illustrations by Duane Bibby},
+% publisher = {Addison-Wesley Publishing Company},
+% series = {Computers \& Typesetting A},
+% title = {The \TeX book},
+% year = {1994},
+% }
+%
+% \end{verbatim}
+%
+% \end{description}
+%
+% \DescribeMacro{\enquote}%
+% \DescribeMacro{\ensquote}%
+% The macros \cs{enquote} and \cs{ensquote} put their arguments in
+% double and single quotes correspondingly. They are used to suppress
+% unwanted commas and periods inside bibliography entries.
+%
+% \DescribeMacro{\suppresscomma}
+% Sometimes Bib\TeX\ inserts an unwanted comma into an entry, for
+% example, in the following one:
+% \begin{verbatim}
+% @incollection{ande97a,
+% Address = {Macon, GA},
+% Author = {Anderson, Thomas C.},
+% Booktitle = {Concluding Unscientific Postscript to
+% \enquote{Philosophical Fragments,}},
+% Date-Modified = {2013-09-04 21:27:17 +0000},
+% Editor = {Robert Perkins},
+% Owner = {Andrew},
+% Pages = {187--204},
+% Publisher = {Mercer University Press},
+% Series = {International Kierkegaard Commentary},
+% Timestamp = {2013.09.04},
+% Title = {Kierkegaard and Approximation Knowledge},
+% Volume = {12},
+% Year = {1997}}
+% \end{verbatim}
+% The command \cs{suppresscomma} suppresses the next comma:
+% \begin{verbatim}
+% Booktitle = {Concluding Unscientific Postscript to
+% \enquote{Philosophical Fragments,\suppresscomma}},
+% \end{verbatim}
+%
+%
+% The bibliography style has a special entry type,
+% |inloosecollection|. It resembles the standard |incollection|
+% entry, but it refers to a collection of papers written by separate
+% authors that are quotable separately as an independent entity. This
+% entry is typeset slightly differently than the standart
+% |incollecttion| entry.
+%
+%
+% \DescribeMacro{\AddtoEndMatter}
+% If you decide to forgo |natbib|, you can use |natbib=false| option.
+% Then you should remember to put the bibliogrtaphy \emph{after} the
+% end matter (authors' addresses etc) using the command |\AddtoEndMatter|:
+% \begin{verbatim}
+% \AddtoEndMatter{MY BIBLIOGRAPHY COMMANDS}
+% \end{verbatim}
+%
+% \subsection*{Acknowledgments}
+% This package was commissioned by the journal \emph{Res Philosophica}
+% and funded by Saint Louis University. I am grateful to Jonathan
+% Jacobs for tireless testing of the package.
+%
+% \StopEventually{%
+% \bibliography{resphilosophica}
+% \bibliographystyle{unsrt}}
+%
+% \clearpage
+%
+%
+%\section{Implementation}
+%\label{sec:impl}
+%
+%
+%\subsection{Options}
+%\label{sec:opts}
+%
+% We need |xkeyval| since some of our options may have values:
+% \begin{macrocode}
+\RequirePackage{xkeyval}
+% \end{macrocode}
+%
+% \begin{macro}{\ifRESP@fontauto}
+% First, check whether the user have the body font explicitly
+% configured:
+% \begin{macrocode}
+\newif\ifRESP@fontauto
+\RESP@fontautotrue
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\ifRESP@rpfontauto}
+% \changes{v1.1}{2012/09/01}{Added macro}
+% Same for \emph{Res Philosophica} font
+% \begin{macrocode}
+\newif\ifRESP@rpfontauto
+\RESP@rpfontautotrue
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\ifRESP@lsabon}
+% Are we using linotype sabon?
+% \begin{macrocode}
+\newif\ifRESP@lsabon
+\RESP@lsabonfalse
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\ifRESP@mtshadow}
+% \changes{v1.1}{2012/09/01}{Added macro}
+% \changes{v1.16}{2012/12/26}{Deleted macro}
+% Are we using MT Imprint Shadow?
+% \begin{macrocode}
+%\newif\ifRESP@mtshadow
+%\RESP@mtshadowfalse
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{bodyfont}
+% And the option to check the user input:
+% \begin{macrocode}
+\define@choicekey*+{resphilosophica.cls}{bodyfont}[\val\nr]{auto,
+ sabon, lsabon, cm}[auto]{%
+ \ifcase\nr\relax
+ \RESP@fontautotrue
+ \or
+ \RESP@fontautofalse
+ \RESP@lsabontrue
+ \or
+ \RESP@fontautofalse
+ \RESP@lsabontrue
+ \or
+ \RESP@fontautofalse
+ \RESP@lsabonfalse
+ \fi}{%
+ \PackageWarning{resphilosophica}{The option bodyfont must be auto,
+ sabon or cm. Using auto}\RESP@fontautotrue}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{rpfont}
+% \changes{v1.1}{2012/09/01}{Added option}
+% \changes{v1.16}{2013/11/16}{Deleted option}
+% And the option to check the user input:
+% \begin{macrocode}
+% \define@choicekey*+{resphilosophica.cls}{rpfont}[\val\nr]{auto,
+% imprint, imprintshadow, cm}[auto]{%
+% \ifcase\nr\relax
+% \RESP@rpfontautotrue
+% \or
+% \RESP@rpfontautofalse
+% \RESP@mtshadowtrue
+% \or
+% \RESP@rpfontautofalse
+% \RESP@mtshadowtrue
+% \or
+% \RESP@rpfontautofalse
+% \RESP@mtshadowfalse
+% \fi}{%
+% \PackageWarning{resphilosophica}{The option rpfont must be auto,
+% imprintshadow or cm. Using auto}\RESP@rpfontautotrue}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{natbib}
+% Checking natbib option:
+% \begin{macrocode}
+\define@boolkey+{resphilosophica.cls}[RESP@]{natbib}[true]{}{%
+ \PackageWarning{resphilosophica}{The option natbib must be
+ yes or no. Using yes}}
+\RESP@natbibtrue
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% The size-changing options produce a warning:
+% \begin{macrocode}
+\long\def\RESP@size@warning#1{%
+ \ClassWarning{RESPart}{Size-changing option #1 will not be
+ honored}}%
+\DeclareOptionX{8pt}{\RESP@size@warning{\CurrentOption}}%
+\DeclareOptionX{9pt}{\RESP@size@warning{\CurrentOption}}%
+\DeclareOptionX{10pt}{\RESP@size@warning{\CurrentOption}}%
+\DeclareOptionX{11pt}{\RESP@size@warning{\CurrentOption}}%
+\DeclareOptionX{12pt}{\RESP@size@warning{\CurrentOption}}%
+% \end{macrocode}
+%
+% \begin{macro}{\ifRESP@manuscript}
+% Manuscript mode:
+% \begin{macrocode}
+\newif\ifRESP@manuscript
+\RESP@manuscriptfalse
+\DeclareOptionX{manuscript}{\RESP@manuscripttrue}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\ifRESP@screen}
+% \changes{v1.4}{2012/09/06}{Added option}
+% Screen mode:
+% \begin{macrocode}
+\newif\ifRESP@screen
+\RESP@screenfalse
+\DeclareOptionX{screen}{\RESP@screentrue}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\ifRESP@preprint}
+% \changes{v1.13}{2013/08/14}{Added option}
+% Whether we are in the preprint mode
+% \begin{macrocode}
+\newif\ifRESP@preprint
+\RESP@preprintfalse
+\DeclareOptionX{preprint}{\RESP@preprinttrue}
+% \end{macrocode}
+%
+% \end{macro}
+% \begin{macro}{\ifRESP@forthcoming}
+% \changes{v1.13}{2013/08/14}{Added option}
+% Whether we are in the forthcoming mode
+% \begin{macrocode}
+\newif\ifRESP@forthcoming
+\RESP@forthcomingfalse
+\DeclareOptionX{forthcoming}{\RESP@forthcomingtrue}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% All other options are passed to \progname{amsart}:
+% \begin{macrocode}
+\DeclareOptionX{*}{\PassOptionsToClass{\CurrentOption}{amsart}}
+% \end{macrocode}
+%
+% And executing options:
+% \begin{macrocode}
+\ProcessOptionsX
+% \end{macrocode}
+%
+%
+%
+%\subsection{Loading Classes and Packages}
+%\label{sec:classes}
+%
+% \changes{v1.23}{2014/11/17}{Switched to twoside mode of amsart}
+% We use |amsart| since it has nice features for front matter:
+% \begin{macrocode}
+\LoadClass[noamsfonts,twoside]{amsart}
+% \end{macrocode}
+%
+% \changes{v1.3}{2012/09/05}{Ifpdf is no longer needed with modern engines}
+% \changes{v1.4}{2012/09/06}{Added footmisc package with `bottom'
+% option}
+% \changes{v1.5}{2012/09/07}{Hyperfootnotes are incompatible with
+% hyperref}
+% \changes{v1.17}{2013/12/02}{Added collect package}
+% \changes{v1.30}{2016/12/30}{Split URLs at hyphens}
+% Some packages
+% \begin{macrocode}
+\RequirePackage{microtype, fancyhdr, xcolor, lastpage, collect}
+\RequirePackage[bottom,multiple]{footmisc}
+\PassOptionsToPackage{hyphens}{url}
+\RequirePackage[hyperfootnotes=false]{hyperref}
+\urlstyle{rm}
+\ifRESP@manuscript\hypersetup{colorlinks,allcolors=blue}\else
+ \ifRESP@screen\hypersetup{colorlinks,allcolors=blue}\else
+ \ifRESP@preprint\hypersetup{colorlinks,allcolors=blue}\else
+ \ifRESP@forthcoming\hypersetup{colorlinks,allcolors=blue}\else
+ \hypersetup{hidelinks}\fi\fi\fi\fi
+% \end{macrocode}
+%
+%
+% The font to use depends on the options. Note that \LaTeX\ cannot
+% reliably determine whether a binary file like |SabonLTRom.pfb|
+% exists in the system, so we check for the |.fd| file instead (sigh):
+% \begin{macrocode}
+\ifRESP@fontauto
+ \IfFileExists{t1lsb.fd}{\RESP@lsabontrue}{\RESP@lsabonfalse}\fi
+% \end{macrocode}
+%
+% If the user wants, we load Sabon and URW Garamond. Note that
+% mathdesign defines |sc| to be |fsc|, so we need to redefine it for
+% Sabon. Also, it defines |b| to |mb|. so we redefine it again.
+%\changes{v1.16}{2013/11/26}{Added \cmd{\bfdefault}}
+% \begin{macrocode}
+\ifRESP@lsabon
+ \RequirePackage[mdugm]{mathdesign}
+ \RequirePackage[rmdefault]{lsabon}
+ \renewcommand\scdefault{sc}
+ \renewcommand{\bfdefault}{b}
+\fi
+% \end{macrocode}
+%
+% Checking the existence of |miih| font metrics:
+% \begin{macrocode}
+%\ifRESP@rpfontauto
+% \IfFileExists{t1miih.fd}{\RESP@mtshadowtrue}{\RESP@mtshadowfalse}\fi
+% \end{macrocode}
+%
+%
+% \begin{macro}{\rpdefault}
+% \changes{v1.1}{2012/09/01}{Added macro}
+% \changes{v1.16}{2013/11/26}{Deleted macro}
+% This is the font for \emph{Res Philosophica:}
+% \begin{macrocode}
+%\ifRESP@mtshadow
+% \def\rpdefault{miih}\else
+% \def\rpdefault{\rmdefault}\fi
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\AddtoEndMatter}
+% A syntax sugar to add something after signature:
+% \begin{macrocode}
+\def\AddtoEndMatter#1{\g@addto@macro\enddoc@text{#1}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% And loading natbib:
+% \changes{v1.2}{2012/09/04}{Changed font for bibliography}
+% \changes{v1.2}{2012/09/04}{Changed skip for bibliography}
+% \changes{v1.3}{2012/09/05}{Added penalties}
+% \changes{v1.4}{2012/09/06}{Changed bibsection font}
+% \begin{macrocode}
+\ifRESP@natbib
+ \RequirePackage[round]{natbib}
+ \AtEndDocument{\bibliographystyle{resphilosophica}}
+ \let\RESP@bibliography=\bibliography
+ \def\bibliography#1{\AddtoEndMatter{\RESP@bibliography{#1}}}
+ \def\bibsection{\par\addpenalty\@secpenalty\addvspace{\bigskipamount}%
+ \noindent \Small References:\par\nobreak\vskip\medskipamount\@afterheading}
+ \def\bibfont{\Small}
+\fi
+% \end{macrocode}
+%
+%
+%\subsection{Page Dimensions and Paragraphing}
+%\label{sec:page}
+%
+% \begin{macro}{\pdfpaperwidth}
+% \begin{macro}{\pdfpaperheight}
+% \changes{v1.3}{2012/09/05}{Deleted ifpdf}
+% \changes{v1.4}{2012/09/06}{Changed paper in the manuscript mode}
+% \changes{v1.23}{2014/11/17}{Added to paper width to accomodate
+% larger thumb side margins}
+% \changes{v1.25}{2015/01/25}{Returned to old page width}
+% Paper:
+% \begin{macrocode}
+\ifRESP@manuscript\else
+\AtBeginDocument{\setlength{\pdfpagewidth}{432bp}%
+ \setlength{\pdfpageheight}{648bp}}
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\textwidth}
+% \begin{macro}{\textheight}
+% The size of the type block:
+% \begin{macrocode}
+\setlength{\textwidth}{318pt}
+\setlength{\textheight}{540pt}
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\evensidemargin}
+% \begin{macro}{\oddsidemargin}
+% \changes{v1.23}{2014/11/17}{Made even- and odd- side margins
+% different, except in screen and forthcoming modes}
+% \changes{v1.25}{2015/01/25}{Changed margins}
+% \changes{v1.35}{2019/04/14}{Changed margins}
+% The margins:
+% \begin{macrocode}
+\setlength{\evensidemargin}{-0.125in}
+\setlength{\oddsidemargin}{-0.25in}
+\ifRESP@screen
+\setlength{\evensidemargin}{-0.1875in}
+\setlength{\oddsidemargin}{-0.1875in}
+\fi
+\ifRESP@forthcoming
+\setlength{\evensidemargin}{-0.1875in}
+\setlength{\oddsidemargin}{-0.1875in}
+\fi
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\topmargin}
+% Top margin
+% \begin{macrocode}
+\setlength{\topmargin}{-48pt}
+% \end{macrocode}
+%
+% \end{macro}
+% \begin{macro}{\listisep}
+% \changes{v1.2}{2012/09/04}{Redefined}
+% This is the space around lists. |amsart| defines it as
+% |\smallskipamount|. We slightly increase it:
+% \begin{macrocode}
+\listisep\medskipamount
+% \end{macrocode}
+%
+% \end{macro}
+%
+%\subsection{Headers}
+%\label{sec:headers}
+%
+% \begin{macro}{\headsep}
+% Separation between the header and the body
+% \begin{macrocode}
+\setlength{\headsep}{14pt}
+% \end{macrocode}
+%
+%
+% \begin{macro}{\headheight}
+% The height of the headers:
+% \begin{macrocode}
+\setlength{\headheight}{12pt}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \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}{\footskip}
+% \changes{v1.7}{2012/09/11}{Decreased to fit doi number}
+% Separation between the footer and the body
+% \begin{macrocode}
+\setlength{\footskip}{20pt}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\RESP@printlinecount}
+% \changes{v1.13}{2013/08/14}{Added macro}
+% Do we want to print line count?
+% \begin{macrocode}
+\newif\ifRESP@printlinecount
+\RESP@printlinecountfalse
+\ifRESP@manuscript\RESP@printlinecounttrue\fi
+\ifRESP@preprint\RESP@printlinecounttrue\fi
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\RESP@linecount}
+% \changes{v1.4}{2012/09/06}{Changed color}
+% \changes{v1.5}{2012/09/07}{Changed color}
+% \changes{v1.3}{2013/08/14}{Changed check for linecount}
+% This is the box displayed in the manuscript mode
+% \begin{macrocode}
+\ifRESP@printlinecount
+ \newsavebox{\RESP@linecount}
+ \savebox{\RESP@linecount}[4em][t]{\parbox[t]{4em}{%
+ \@tempcnta\@ne\relax
+ \loop{\color{red}\scriptsize\the\@tempcnta}\\
+ \advance\@tempcnta by \@ne\ifnum\@tempcnta<47\repeat}}
+\fi
+% \end{macrocode}
+%
+% \end{macro}
+%
+% It is easy to set up headers with \progname{fancyhdr}:
+% \changes{v1.4}{2012/09/06}{Changed color of ``Author's proof' mark}
+% \changes{v1.5}{2012/09/07}{Changed color for headers and footers}
+% \changes{v1.7}{2012/09/11}{Changed formatting of doi}
+% \changes{v1.13}{2013/08/14}{Changed check for line numbering mode}
+% \begin{macrocode}
+\pagestyle{fancy}
+\fancyhead{}
+\fancyfoot{}
+\fancyhead[LE]{\footnotesize\thepage\qquad\itshape\shortauthors}
+\fancyhead[RO]{\footnotesize\textit{\shorttitle}\qquad\thepage}
+\ifRESP@printlinecount
+ \fancyhead[LE]{\begin{picture}(0,0)%
+ \put(-26,-22){\usebox{\RESP@linecount}}%
+ \end{picture}\footnotesize\thepage\qquad\itshape\shortauthors}
+ \fancyhead[LO]{\begin{picture}(0,0)%
+ \put(-21,-22){\usebox{\RESP@linecount}}%
+ \end{picture}}
+\fi
+\ifRESP@manuscript
+ \fancyfoot[C]{\scriptsize\color{red}Author's Proof}%
+\fi
+\ifRESP@preprint
+ \fancyfoot[C]{\scriptsize\color{red}Author's Pre-Print}%
+\fi
+% \end{macrocode}
+%
+%
+% The first page has the special headers. The style |firstpage| is
+% invoked by \progname{amsart}; here we just redefine it.
+% \changes{v1.17}{2013/12/01}{Journal name on the first page footer is
+% now italic}
+% \changes{v1.17}{2013/12/01}{Online date for forthcoming option moved
+% to the left and up}
+% \changes{v1.18}{2013/12/07}{Online date for forthcoming option moved
+% down}
+% \changes{v1.18}{2013/12/07}{Journal name in Roman}
+% \begin{macrocode}
+\fancypagestyle{firstpage}{%
+ \fancyhf{}%
+ \ifRESP@printlinecount
+ \lhead{\begin{picture}(0,0)%
+ \put(-26,-20){\usebox{\RESP@linecount}}%
+ \end{picture}}
+ \fi
+ \ifRESP@preprint
+ \cfoot{\footnotesize Res Philosophica, \itshape
+ Vol.~\currentvolume, No.~\currentissue,
+ \currentmonth~\currentyear
+ \ifx\@doinumber\@empty\else\\%
+ \doi{\@doinumber}\fi
+ \\
+ \@copyrightnote}%
+ \chead{\scriptsize\color{red}Author's Pre-print. Forthcoming in
+ Res Philosophica. Pagination may change. Published version will
+ be available at \url{http://pdcnet.org/resphilosophica/}}
+ \else
+ \ifRESP@forthcoming
+ \cfoot{\footnotesize Res
+ Philosophica\itshape
+ \ifx\currentvolume\@empty\else, %
+ Vol.~\currentvolume\fi
+ \ifx\currentissue\@empty\else, No.~\currentissue\fi
+ \ifx\currentmonth\@empty
+ \ifx\currentyear\@empty\else, \currentyear\fi
+ \else,
+ \currentmonth~\currentyear
+ \fi
+ \ifx\@doinumber\@empty\else\\%
+ \doi{\@doinumber}\fi
+ \\
+ \@copyrightnote}%
+ \lhead{\raisebox{1.5\bigskipamount}[\z@][\z@]{\parbox{\textwidth}{\raggedright\footnotesize Published Online First: \@onlinedate}}}
+ \else
+ \cfoot{\footnotesize Res Philosophica, \itshape
+ \itshape Vol.~\currentvolume, No.~\currentissue,
+ \currentmonth~\currentyear, pp.~\start@page--\end@page
+ \ifx\@doinumber\@empty\else\\%
+ \doi{\@doinumber}\fi
+ \\
+ \@copyrightnote}%
+ \fi\fi}
+% \end{macrocode}
+%
+%
+%
+%\subsection{Top Matter Macros}
+%\label{sec:top_matter_code}
+%
+% Most top matter macros are defined in \progname{amsart}. Here we
+% just add some new macros and redefine some.
+%
+%
+% The next macros mimic the functionality of \progname{amsart}
+% |\issueinfo| command. Note that |\issueinfo| still works.
+% \begin{macro}{\volumenumber}
+% \changes{v1.13}{2013/08/14}{The default is now empty}
+% This sets the volume of the paper
+% \begin{macrocode}
+\def\volumenumber#1{\def\currentvolume{#1}}
+\volumenumber{}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\issuenumber}
+% \changes{v1.13}{2013/08/14}{The default is now empty}
+% This sets the issue of the paper:
+% \begin{macrocode}
+\def\issuenumber#1{\def\currentissue{#1}}
+\issuenumber{}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\publicationyear}
+% \changes{v1.13}{2013/08/14}{The default is now empty}
+% This sets the year of the paper
+% \begin{macrocode}
+\def\publicationyear#1{\def\currentyear{#1}}
+\publicationyear{}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\publicationmonth}
+% \changes{v1.13}{2013/08/14}{The default is now empty}
+% \changes{v1.16}{2013/11/26}{Added \cmd{\abbrevcurrentmonth}}
+% This sets the month of the paper
+% \begin{macrocode}
+\newcommand\publicationmonth[2][]{\gdef\currentmonth{#2}%
+ \gdef\abbrevcurrentmonth{#1}%
+ \ifx\abbrevcurrentmonth\@empty\gdef\abbrevcurrentmonth{#2}\fi}
+\publicationmonth{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\papernumber}
+% \changes{v1.11}{2012/12/24}{Added macro}
+% This is absent from the |\issueinfo|.
+% \begin{macrocode}
+\def\papernumber#1{\def\currentpaper{#1}}
+\papernumber{0000}
+%
+% \end{macro}
+%
+% \begin{macro}{\manuscriptid}
+% \changes{v1.29}{2016/08/26}{Added macro}
+% Submission id
+% \begin{macrocode}
+\def\manuscriptid#1{\gdef\@manuscriptid{#1}}
+\manuscriptid{}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\doinumber}
+% \changes{v1.11}{2012/12/25}{Added default}
+% \changes{v1.29}{2016/08/26}{Now we use \cs{manuscriptid} to make doi}
+% DOI number for the article:
+% \begin{macrocode}
+\def\doinumber#1{\gdef\@doinumber{#1}}
+\doinumber{\ifx\@manuscriptid\@empty
+ 10.11612/resphil.\currentyear.\currentvolume.\currentissue.\currentpaper
+ \else
+ 10.11612/resphil.\@manuscriptid
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\paperUrl}
+% \changes{v1.21}{2014/04/11}{Added macro}
+% The url to submit to crossref
+% \begin{macrocode}
+\def\paperUrl#1{\gdef\@paperUrl{#1}}
+\paperUrl{}
+% \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}{\articleentry}
+% This is necessary for |\prevpaper| command. We read the TOC entry
+% from the previous paper and increment it by 1. Note that we
+% always start with on an odd page, since the additional check
+% \begin{macrocode}
+\def\articleentry#1#2#3#4{\@tempcnta=#4\relax
+ \advance\@tempcnta by 1\relax
+ \ifodd\the\@tempcnta\else\advance\@tempcnta by 1\relax\fi
+ \startpage{\the\@tempcnta}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\prevpaper}
+% This sets the previous paper location and reads the information
+% from the previous paper
+% \begin{macrocode}
+\def\prevpaper#1{\IfFileExists{#1.rpi}{%
+ \ClassInfo{resphilosophica}{%
+ Reading first page number from the file #1.rpi}%
+ \input{#1.rpi}%
+ }{\ClassWarning{resphilosophica}{Cannot find the file #1.rpi.
+ Did you run latex on the previous paper?}}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{abstract}
+% We slightly redefine abstract comparing to \progname{amsart}
+% conventions:
+% \begin{macrocode}
+\renewenvironment{abstract}{%
+ \ifx\maketitle\relax
+ \ClassWarning{resphilosophica}{Abstract should precede
+ \protect\maketitle\space in AMS derived classes}%
+ \fi
+ \global\setbox\abstractbox=\vtop\bgroup%
+ \vglue1pc%
+ \list{}{\labelwidth\z@%
+ \leftmargin3pc \rightmargin\leftmargin%
+ \listparindent\normalparindent \itemindent\z@%
+ \parsep\z@ \@plus\p@%
+ \let\fullwidthdisplay\relax%
+ }%
+ \item[]\normalfont\normalsize\textbf{\abstractname:}\space
+}{%
+ \endlist\egroup%
+ \ifx\@setabstract\relax\@setabstracta\fi%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\copyrightyear}
+% \changes{v1.3}{2013/08/14}{In the forthcoming mode the copyright
+% year is the present year}
+% This is the copyright year in case it does not coincide with the
+% publication year:
+% \begin{macrocode}
+\def\copyrightyear#1{\def\@copyrightyear{#1}}
+\ifRESP@forthcoming
+ \copyrightyear{\the\year}\else
+ \copyrightyear{}\fi
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\onlinedate}
+% \changes{v1.16}{2013/11/26}{Added macro}
+% \begin{macro}{\@onlinedate}
+% \changes{v1.16}{2013/11/26}{Added macro}
+% Online date for forthcoming issues
+% \begin{macrocode}
+\def\onlinedate#1{\gdef\@onlinedate{#1}}
+\onlinedate{\hspace*{5em}}
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\RESP@bulletboxwidth}
+% \changes{v1.9}{2012/09/13}{Added macro}
+% This is the width of a box with a bullet for copyright note:
+% \begin{macrocode}
+\newlength\RESP@bulletboxwidth
+\settowidth\RESP@bulletboxwidth{\quad\textbullet\quad}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\copyrightnote}
+% \changes{v1.2}{2012/09/02}{Used \cmd{\rpdefault} for RP font}
+% \changes{v1.9}{2012/09/13}{Made bullet disappear at break}
+% \changes{v1.13}{2013/08/18}{Changed font family for forthcoming
+% mode}
+% \changes{v1.16}{2013/11/26}{Deleted rpdefault}
+% \changes{v1.18}{2013/12/07}{Made journal name Roman}
+% This is the copyrightnote. The default has some trickery with the
+% year and short authors.
+%
+% The disappearing bullet is based on the trick by Marcin
+% Wolin\'nski, who noted that \cmd{\cleaders} are discardable
+% (see~\cite{Jackowski08:TeXBeatiesOddities}).
+% \begin{macrocode}
+\def\copyrightnote#1{\def\@copyrightnote{#1}}
+\copyrightnote{\textcopyright~%
+ \ifx\@empty\@copyrightyear\currentyear\else\@copyrightyear\fi~%
+ \shortauthors\cleaders\hbox{\quad\textbullet\quad}\hskip\RESP@bulletboxwidth
+ \textcopyright~%
+ \ifx\@empty\@copyrightyear\currentyear\else\@copyrightyear\fi~%
+ {\upshape Res~Philosophica}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\author}
+% The base class puts into |\addresses| the strange line
+% |\author{}|. We correct this:
+% \begin{macrocode}
+\renewcommand{\author}[2][]{%
+ \ifx\@empty\addresses
+ \gdef\addresses{\author{#2}}%
+ \else
+ \g@addto@macro\addresses{\author{#2}}%
+ \fi
+ \ifx\@empty\authors
+ \gdef\authors{#2}%
+ \else
+ \g@addto@macro\authors{\and#2}%
+ \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}{\titlenote}
+% \changes{v1.13}{2013/08/14}{Added command}
+% This command adds an entry to the list of titlenotes
+% \begin{macrocode}
+\def\@titlenotes{}%
+\def\titlenote#1{%
+ \ifx\@empty\@titlenotes\gdef\@titlenotes{\footnote{#1}}%
+ \else\g@addto@macro\@titlenotes{\footnote{#1}}\fi}
+% \end{macrocode}
+%
+% \end{macro}
+% \begin{macro}{\authornote}
+% \changes{v1.24}{2015/01/14}{Added command}
+% This command adds an entry to the list of titlenotes
+% \begin{macrocode}
+\def\@authornotes{}%
+\def\authornote#1{%
+ \ifx\@empty\@authornotes\gdef\@authornotes{\footnote{#1}}%
+ \else\g@addto@macro\@authornotes{\footnote{#1}}\fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%\subsection{Typesetting Top Matter}
+%\label{sec:maketitle}
+%
+%
+% \begin{macro}{\@settitle}
+% \changes{v1.3}{2012/09/05}{Deleted ifpdf}
+% \changes{v1.13}{2013/08/14}{Added titlenotes}
+% \changes{v1.26}{2015/08/22}{Added itscshape}
+% We do not uppercase title. Also, we use this occasion to set PDF
+% information:
+% \begin{macrocode}
+\def\@settitle{\begin{center}%
+ \baselineskip20\p@\relax
+ \LARGE\scshape
+ \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
+ \ifx\itscshape\@undefined\else\def\em{\itscshape}\fi
+ \@title\@titlenotes
+ \hypersetup{pdftitle=\@title}%
+ \end{center}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@setauthors}
+% \changes{v1.1}{2012/09/01}{Changed font}
+% \changes{v1.2}{2012/09/04}{Changed font}
+% \changes{v1.3}{2012/09/05}{Deleted ifpdf}
+% \changes{v1.24}{2015/01/14}{Added authornotes}
+% 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{{and}}
+ \author@andify\authors
+ \hypersetup{pdfauthor=\authors}%
+ \def\\{\protect\linebreak}%
+ \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
+ \large\normalfont\authors\@authornotes
+ \endtrivlist
+ \endgroup
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\maketitle}
+% We redefine |\maketitle|---mostly to prevent uppercasing of
+% shorttitle and to write down the journal iformation:
+%\changes{v1.16}{2013/11/26}{Added suppressing first para inentation}
+% \begin{macrocode}
+\def\maketitle{\par
+ \@topnum\z@ % this prevents figures from falling at the top of page 1
+ \@setcopyright
+ \thispagestyle{firstpage}% this sets first page specifications
+ \ifx\@empty\shortauthors \let\shortauthors\shorttitle
+ \else \andify\shortauthors
+ \fi
+ \@maketitle@hook
+ \RESP@write@paper@info
+ \begingroup
+ \@maketitle
+ \toks@\@xp{\shortauthors}\@temptokena\@xp{\shorttitle}%
+ \toks4{\def\\{ \ignorespaces}}% defend against questionable usage
+ \edef\@tempa{%
+ \@nx\markboth{\the\toks4
+ \@nx\MakeUppercase{\the\toks@}}{\the\@temptokena}}%
+ \@tempa
+ \endgroup
+ \c@footnote\z@
+ \everypar{\setbox\z@\lastbox\everypar{}}%
+}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@maketitle}
+% \changes{v1.1}{2012/09/01}{Redefined macro}
+% We delete top space introduced by |amsart|:
+% \begin{macrocode}
+\def\@maketitle{%
+ \normalfont\normalsize
+ \@adminfootnotes
+ \@mkboth{\@nx\shortauthors}{\@nx\shorttitle}%
+ \@settitle
+ \ifx\@empty\authors \else \@setauthors \fi
+ \ifx\@empty\@dedicatory
+ \else
+ \baselineskip18\p@
+ \vtop{\centering{\footnotesize\itshape\@dedicatory\@@par}%
+ \global\dimen@i\prevdepth}\prevdepth\dimen@i
+ \fi
+ \@setabstract
+ \normalsize
+ \if@titlepage
+ \newpage
+ \else
+ \dimen@34\p@ \advance\dimen@-\baselineskip
+ \vskip\dimen@\relax
+ \fi
+} % end \@maketitle
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@mainrpi}
+% The stream for the rpi file:
+% \begin{macrocode}
+\newwrite\@mainrpi
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\RESP@write@paper@info}
+% \changes{v1.1}{2012/09/01}{Added protection for \cmd{\\}}
+% \changes{v1.2}{2012/09/02}{Used \cmd{\protected@write}}
+% \changes{v1.11}{2012/12/25}{Added writing info for crossref}
+% \changes{v1.21}{2014/04/11}{Added paperUrl}
+% 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\RESP@write@paper@info{%
+ \bgroup
+ \if@filesw
+ \openout\@mainrpi\jobname.rpi%
+ \write\@mainrpi{\relax}%
+ \ifx\r@LastPage\@undefined
+ \edef\@tempa{\start@page}%
+ \else
+ \def\@tempc##1##2##3##4##5{##2}%
+ \edef\@tempa{\expandafter\@tempc\r@LastPage}%
+ \fi
+ \def\and{\string\and\space}%
+ \protected@write\@mainrpi{}%
+ {\string\articleentry{\authors}{\@title}{\start@page}{\@tempa}}%
+% \end{macrocode}
+% The next lines are for crossref software
+% \begin{macrocode}
+ \protected@write\@mainrpi{}%
+ {\@percentchar authors=\authors}%
+ \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\@paperUrl\@empty\else
+ \protected@write\@mainrpi{}%
+ {\@percentchar paperUrl=\@paperUrl}%
+ \fi
+ \closeout\@mainrpi
+ \fi
+\egroup}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\@adminfootnotes}
+% \changes{v1.2}{2012/09/04}{Redefined}
+% We just define this to noop:
+% \begin{macrocode}
+\def\@adminfootnotes{}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@cleartopmattertags}
+% \changes{v1.2}{2012/09/04}{Redefined}
+% We typeset thankses at the end of the paper so we do not clear them:
+% \begin{macrocode}
+\def\@cleartopmattertags{%
+ \def\do##1{\let##1\relax}%
+ \do\maketitle \do\@maketitle \do\title \do\@xtitle \do\@title
+ \do\author \do\@xauthor \do\address \do\@xaddress
+ \do\contrib \do\contribs \do\xcontribs \do\toccontribs
+ \do\email \do\@xemail \do\curraddr \do\@xcurraddr
+ \do\commby \do\@commby
+ \do\dedicatory \do\@dedicatory \do\thanks
+ \do\keywords \do\@keywords \do\subjclass \do\@subjclass
+% \end{macrocode}
+% \begin{macro}{\sf@size}
+% \changes{v1.8}{2012/09/12}{Added definition}
+% \changes{v1.14}{2013/08/28}{Bug corrected}
+% It seems there is a bug in |mdugm| when calculating |\sf@size|.
+% Here we work around it:
+% \begin{macrocode}
+ \def\sf@size{7}%
+% \end{macrocode}
+%
+% \end{macro}
+% \begin{macrocode}
+}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+%\subsection{Notes}
+%\label{sec:notes}
+%
+%
+% \begin{macro}{\notes}
+% \changes{v1.16}{2013/11/28}{Added macro}
+% \changes{v1.17}{2013/12/02}{Redefined using collect package}
+% This is like |bibliography|:
+% \begin{macrocode}
+\definecollection{notes}
+\newenvironment{notes}[1]{%
+ \@nameuse{collect}{notes}{}{}%
+ \makeatletter
+ \par\addpenalty\@secpenalty\addvspace{\bigskipamount}%
+ \noindent \Small #1:\par\nobreak\vskip\medskipamount\@afterheading
+ \makeatother
+}{\@nameuse{endcollect}\AddtoEndMatter{\includecollection{notes}}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%\subsection{Typesetting End Matter}
+%\label{sec:endmatter}
+%
+% End matter is typeset at the end of the paper.
+%
+% \begin{macro}{\if@enddoc}
+% \changes{v1.5}{2012/09/07}{Added macro}
+% Check whether we are in the end matter
+% \begin{macrocode}
+\newif\if@enddoc
+\@enddocfalse
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\enddoc@text}
+% \changes{v1.2}{2012/09/04}{Redefined}
+% \changes{v1.5}{2012/09/07}{Added flag}
+% \changes{v1.8}{2012/09/12}{Changed bibliography}
+% \changes{v1.32}{2018/02/21}{Changed spelling of `Acknowledgments'
+% (Joe Salerno)}
+% We put thankses into end matter. Also, we redefine bibliography
+% back to the original definition in case someone writes
+% |\AddtoEndMatter{\bibliography{}}|
+% \begin{macrocode}
+\def\enddoc@text{%
+ \@enddoctrue\def\bibliography{\RESP@bibliography}%
+ \ifx\@empty\thankses\else
+ \bgroup
+ \let\@makefnmark\relax
+ \let\@thefnmark\relax
+% \end{macrocode}
+% Check, whether we are at the same page as the last footnote; if yes,
+% add medskip.
+% \begin{macrocode}
+ \ifx\lastfootnote@page\@undefined\else
+ \@tempcnta=\lastfootnote@page\relax
+ \ifnum\c@page=\@tempcnta\relax
+ \insert\footins{\medskip}%
+ \fi
+ \fi
+% \end{macrocode}
+%
+%
+% \begin{macrocode}
+ \@footnotetext{%
+ \def\par{\let\par\@par}\textbf{Acknowledgments\quad} \@setthanks}%
+ \egroup
+ \fi
+ \ifx\@empty\@translators \else\@settranslators\fi
+ \ifx\@empty\addresses \else\@setaddresses\fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\ifRESP@firstingroup}
+% A group of authors is separated by a skip from another group.
+% This macro checks whether this is the first one
+% \begin{macrocode}
+\newif\ifRESP@firstingroup
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\emailaddrname}
+% The name for e-mail address:
+% \begin{macrocode}
+\def\emailaddrname{E-mail}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\@setaddresses}
+% \changes{v1.2}{2012/09/04}{Changed font}
+% \changes{v1.3}{2012/09/05}{Added penalties}
+% \changes{v1.9}{2012/09/13}{Added penalties}
+% \changes{v1.34}{2019/03/14}{Deleted thin spaces before :}
+% Unlike |aomart|, we want to preserve author's name in the address
+% block. Also, we want to keep linebreaks and to have clickable
+% e-mail and URL.
+%
+% We want to skip between the author groups (several authors with
+% the same affiliation), so we check whether the previous line
+% contains another author:
+% \begin{macrocode}
+\def\@setaddresses{\par
+ \nobreak \begingroup\flushright\clubpenalty\@MM\interlinepenalty\@MM
+ \widowpenalty\@MM
+ \RESP@firstingrouptrue
+\Small
+ \def\author##1{\nobreak\ifRESP@firstingroup\par
+ \addvspace\bigskipamount\penalty-1000\fi
+ \RESP@firstingroupfalse##1\par\nobreak}%
+ \parindent\z@
+ \def\address##1##2{\RESP@firstingrouptrue\begingroup
+ \par\nobreak
+ \@ifnotempty{##1}{(\ignorespaces##1\unskip) }%
+ {\ignorespaces##2}\par\endgroup}%
+ \def\curraddr##1##2{\RESP@firstingrouptrue\begingroup
+ \@ifnotempty{##2}{\nobreak\indent\curraddrname
+ \@ifnotempty{##1}{, \ignorespaces##1\unskip}:\space
+ ##2\par}\endgroup}%
+ \def\email##1##2{\RESP@firstingrouptrue\begingroup
+ \@ifnotempty{##2}{\nobreak\indent\emailaddrname
+ \@ifnotempty{##1}{, \ignorespaces##1\unskip}:\space
+ \href{mailto:##2}{\nolinkurl{##2}}\par}\endgroup}%
+ \def\urladdr##1##2{\RESP@firstingrouptrue\begingroup
+ \@ifnotempty{##2}{\nobreak\indent
+ \@ifnotempty{##1}{, \ignorespaces##1\unskip}%
+ \url{##2}\par}\endgroup}%
+ \addresses
+ \endgroup
+}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \changes{v1.22}{2014/04/17}{Now we add empty even page at the end
+% for printed version only}
+% At the end we eject the last page. If the document is printed and
+% the last page is odd, we add an empty page.
+% \begin{macrocode}
+\AtEndDocument{\clearpage
+ \ifRESP@manuscript\else
+ \ifRESP@screen\else
+ \ifRESP@preprint\else
+ \ifRESP@forthcoming\else
+ \cleardoublepage
+ \fi\fi\fi\fi}
+% \end{macrocode}
+%
+%
+%\subsection{Sectioning}
+%\label{sec:sectioning}
+%
+% \begin{macro}{\@seccntformat}
+% We do not want our numbers to be upright and medium series, as
+% |amsart| wants:
+% \begin{macrocode}
+\def\@seccntformat#1{%
+ \csname the#1\endcsname\enspace
+}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\section}
+% \changes{v1.1}{2012/09/01}{Moved to LaTeX defaults}
+% \changes{v1.2}{2012/09/04}{Changed font}
+% We want our sections to be large and bold:
+% \begin{macrocode}
+\renewcommand\section{\@startsection {section}{1}{\z@}%
+ {-3.5ex \@plus -1ex \@minus -.2ex}%
+ {2.3ex \@plus.2ex}%
+ {\normalfont\large\bfseries}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\subsection}
+% \changes{v1.1}{2012/09/01}{Moved to LaTeX defaults}
+% \changes{v1.2}{2012/09/04}{Changed font}
+% Subsections are bold
+% \begin{macrocode}
+\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
+ {-3.25ex\@plus -1ex \@minus -.2ex}%
+ {1.5ex \@plus .2ex}%
+ {\normalfont\normalsize\bfseries}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\subsubsection}
+% \changes{v1.1}{2012/09/01}{Moved to LaTeX defaults}
+% \changes{v1.2}{2012/09/04}{Changed font}
+% Subsubsections are normalsize and italic
+% \begin{macrocode}
+\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
+ {-3.25ex\@plus -1ex \@minus -.2ex}%
+ {1.5ex \@plus .2ex}%
+ {\normalfont\normalsize\itshape}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\paragraph}
+% \changes{v1.4}{2012/09/06}{Moved to LaTeX default}
+% Paragraphs:
+% \begin{macrocode}
+\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
+ {3.25ex \@plus1ex \@minus.2ex}%
+ {-1em}%
+ {\normalfont\normalsize\bfseries}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\subparagraph}
+% \changes{v1.4}{2012/09/06}{Moved to LaTeX default}
+% Paragraphs:
+% \begin{macrocode}
+\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
+ {3.25ex \@plus1ex \@minus .2ex}%
+ {-1em}%
+ {\normalfont\normalsize\bfseries}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%\subsection{Additional Commands}
+%\label{sec:additional}
+%
+%
+% \begin{macro}{\@mparswitch}
+% \changes{v1.1}{2012/09/01}{Changed default}
+% We always put marginpars on the right since the line box is on the left
+% \begin{macrocode}
+\@mparswitchfalse
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\EditorialComment}
+% \changes{v1.1}{2012/09/01}{Added macro}
+% \changes{v1.4}{2012/09/06}{Changed font}
+% \changes{v1.4}{2012/09/06}{Changed color}
+% \changes{v1.5}{2012/09/07}{Changed color}
+% \changes{v1.17}{2013/12/01}{Redefined so levels are suported}
+% This macro is noop in normal mode, but is a tiny marginpar in the
+% manusript mode
+% \begin{macrocode}
+\newcommand\EditorialComment[2][0]{%
+ \expandafter\ifx\csname EditorialComment@#1\endcsname\relax
+ \else\bgroup
+ \marginparwidth=200pt\marginpar{\color{red}%
+ \raggedright#2}\egroup\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ECSelect}
+% \changes{v1.17}{2013/12/01}{Added macro}
+% This selects the given levels
+% \begin{macrocode}
+\def\ECSelect#1{\ifRESP@manuscript
+ \@for\EC@level:=#1\do{%
+ \expandafter\gdef\csname
+ EditorialComment@\EC@level\endcsname{\EditorialComment}}%
+ \fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\TC}
+% \changes{v1.16}{2013/11/27}{Added macro}
+% The command to highlight text if the corresponding level is
+% selected. The first argument is the level, the second is text.
+% \begin{macrocode}
+\newcommand\TC[2][0]{%
+ \expandafter\ifx\csname TC@highlight@#1\endcsname\relax#2\else
+ \csname TC@highlight@#1\endcsname{#2}\fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\TCSelect}
+% \changes{v1.16}{2013/11/27}{Added macro}
+% \changes{v1.19}{2013/12/23}{Switched off colored links}
+% This switches on the selected levels in the mqnuscript version
+% \begin{macrocode}
+\newcommand\TCSelect[2][magenta]{\ifRESP@manuscript
+ \@for\TC@level:=#2\do{\expandafter
+ \gdef\csname TC@highlight@\TC@level\endcsname##1{\bgroup
+ \Hy@colorlinksfalse
+ \def\Hy@colorlink####1{\begingroup}%
+ \def\Hy@endcolorlink{\endgroup}%
+ \color{#1}##1\egroup}}%
+ \fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\doi}
+% \changes{v1.1}{2012/09/01}{Added macro}
+% \changes{v1.7}{2012/09/11}{Changed formatting}
+% \changes{v1.31}{2017/03/28}{Changed formatting of doi}
+% Typesetting doi\dots
+% \begin{macrocode}
+\def\doi#1{\url{https://doi.org/#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@makefnmark}
+% \changes{v1.20}{2014/03/25}{Redefined}
+% The definition of \cs{@makefnmark} in amsart has a bug. Here we
+% return to the \LaTeX\ one:
+% \begin{macrocode}
+\def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@makefntext}
+% \changes{v1.4}{2012/09/06}{Redefined}
+% \changes{v1.5}{2012/09/06}{Added writing the current footnote page
+% to the aux file}
+% \changes{v1.16}{2013/11/26}{Added small space after footnote mark}
+% Unlike |amsart|, we do not indent footnotes:
+% \begin{macrocode}
+\def\@makefntext{\noindent\@makefnmark
+ \if@enddoc\else
+ \immediate\write\@mainaux%
+ {\string\xdef\string\lastfootnote@page{\the\c@page}}%
+ \fi}
+\long\def\@footnotetext#1{%
+ \insert\footins{%
+ \normalfont\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep \splitmaxdepth \dp\strutbox
+ \floatingpenalty\@MM \hsize\columnwidth
+ \@parboxrestore \parindent\normalparindent \sloppy
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark}%
+ \@makefntext{%
+ \,\rule\z@\footnotesep\ignorespaces#1\unskip\strut\par}}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%\subsection{The End}
+%\label{sec:end}
+%
+%
+% Philosophers love footnotes, since |\raggedbottom|
+% \begin{macrocode}
+\raggedbottom\normalsize\normalfont
+%</class>
+% \end{macrocode}
+%
+%
+%\Finale
+%\clearpage
+%
+%\PrintChanges
+%\clearpage
+%\PrintIndex
+%
+\endinput