% \iffalse
%<*gobble>
% $Id: resphilosophica.dtx,v 1.73 2025/06/30 00:01:45 boris Exp $
%
% Copyright 2012-2025, 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}
[2025/06/29 v1.37 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}
% \changes{v1.36}{2025/05/08}{New bib formatting}
% \changes{v1.37}{2025/06/29}{More tweaks to bib formatting}
%
%\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--2025, 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
