% \iffalse %<*gobble> % $Id: resphilosophica.dtx,v 1.69 2019/04/14 19:44:29 boris Exp $ % % Copyright 2012-2019, Boris Veytsman % 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} % %\NeedsTeXFormat{LaTeX2e} %<*gobble> \ProvidesFile{resphilosophica.dtx} % %\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} % %<*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 % % \end{macrocode} % % %\Finale %\clearpage % %\PrintChanges %\clearpage %\PrintIndex % \endinput