% \iffalse %<*gobble> % $Id: philosophersimprint.dtx,v 1.45 2020/11/11 01:28:17 boris Exp $ % % Copyright 2007-2020, 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 philosophersimprint.dtx and the % derived file philosophersimprint.cls % % \fi % \CheckSum{806} % % %% \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{philosophersimprint.dtx} % %\ProvidesClass{philosophersimprint} [2020/11/10 v1.5 Typesetting articles for Philosophers' Imprint] %<*gobble> % \end{macrocode} % % % \fi % % %\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[breaklinks,colorlinks,linkcolor=black,citecolor=black, pagecolor=black,urlcolor=black,hyperindex=false]{hyperref} \PageIndex \CodelineIndex \RecordChanges \EnableCrossrefs \begin{document} \DocInput{philosophersimprint.dtx} \end{document} % \end{macrocode} % % \fi % \MakeShortVerb{|} % \GetFileInfo{philosophersimprint.dtx} % \newcommand{\progname}[1]{\textsf{#1}} % \title{Typesetting Articles For Online Journal \emph{Philosophers' % Imprint}\thanks{\copyright 2007--2020, Boris Veytsman}} % \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 % online journal \emph{Philosophers' Imprint}, % \url{http://www.philosophersimprint.org} using freely available % fonts. % \end{abstract} % \changes{v0.5}{2007/04/04}{First fully functional version} % \changes{v0.7}{2007/04/19}{Rewrote documentation} % \changes{v1.0}{2007/05/14}{Public release} % \changes{v1.0}{2007/05/16}{Renamed files. Added reference to the % package in sample.tex} % \changes{v1.1}{2011/11/25}{Added microtype} % \changes{v1.4}{2016/07/20}{Added flushend option} % \tableofcontents % % \clearpage % %\section{Introduction} %\label{sec:intro} % % As said in its mission statement at % \url{http://www.philosophersimprint.org}, ``\emph{Philosophers' % Imprint} is a refereed series of original papers in philosophy, % edited by philosophy faculty at the University of Michigan, with the % advice of an international Board of Editors, and published on the % World Wide Web by the University of Michigan Digital Library. The % mission of the Imprint is to promote a future in which funds % currently spent on journal subscriptions are redirected to the % dissemination of scholarship for free, via the Internet.'' The % journal used to accept manuscripts in Rich Text Format only. % However, for many authors, especially from the field of logic, % \TeX{} seems to be a better choice. I was commissioned to write a % \LaTeX{} class for this journal. % % The aim of the class is to help authors to typeset their own % articles in the ``Web-ready'' format. We do not assume the authors % have any commercial fonts installed on their machines. The class % uses only freely available and freely distributed fonts. This % presents some difficulties since the journal is usually typeset in % Adobe Palatino. We use the Palladio and Pazo fonts and (for the % title) Trajan font. % % %\section{User Interface} %\label{sec:interface} % % %\subsection{Invocation and Options} %\label{sec:options} % % To use the class put in the preamble of your document % \begin{flushleft} % |\documentclass[|\meta{options}|]{philosophersimprint}| % \end{flushleft} % % The class is intended to be used with \progname{pdflatex}. If you compile % DVI output instead (for example, to use with \progname{PSTricks}), the class % generates a warning. % % The class \progname{philosophersimprint} internally loads \progname{article}, % and therefore all % class options for \progname{article} are technically valid. However, most of % them are not especially meaningful for \progname{philosophersimprint}. % There are several options specific for this class. They are % described below % % \DescribeOptions{titleimage,notitleimage} % The editorial board of \emph{Philosophers' Imprint} prefers to % typeset the titlepage itself and provide it as a PDF document to the % authors. If you have such titlepage, use the |titleimage| option % (default). Otherwise use the |notitleimage| option, and the class % will make a (half-hearted) attempt to create a simulated title page % for you. If |titleimage| option is chosen, but \LaTeX{} cannot find % the titlepage image, the class generates a warning and switches to % the |notitleimage| behavior. % % Note that even if you do have a titlepage image, you still need to % invoke top matter macros |\title|, |\authors| etc. to supply % information for running heads and PDF metadata (see % Section~\ref{sec:topmatter}). % % % \DescribeOptions{trajantitle, notrajantitle} % If the option |trajantitle| is chosen (default), a beautiful Trajan % font~\cite{Wilson05:Trajan} will be used to typeset the title of % the paper. Of course, this option has an effect only if % |notitleimage| option is selected. Note that this font has no % Arabic numbers, so if your title needs numbers, use Roman numerals % instead. If you do not have |trajan.sty| on your system, the class % will revert to Palatino in the title. % % \DescribeOptions{nosc,noosf} % By default the class uses \progname{mathpazo} package with the % options |sc| and |osf|. These options provide improved fonts with % true small caps and old style figures % (see~\cite{Schmidt04:PSNFSS9.2}). If you have the recent PSNFSS % fonts that include free FPL collection~\cite{Stubner05:FPL}, you % should not change this behavior. Otherwise you probably would be % better off by upgrading. Only if you definitely cannot use these % fonts, select the |nosc| and |noosf| options. % % \DescribeOptions{slantedGreek,noBBpl} % The options |slantedGreek| and |noBBpl|, if present, are passed to % \progname{mathpazo} package. See~\cite{Schmidt04:PSNFSS9.2} for the % discussion of these options. % % \DescribeOptions{flushend,noflushend}% % The options |flushend| and |noflushend| (default) determine the look % of the last page of the article. If the option |flushend| is % chosen, the last page has balanced columns, while the opposite % option makes them unbalanced. Usually you should not balance the % columns if you have footnotes on the last page. % %\subsection{Topmatter} %\label{sec:topmatter} % % Topmatter is the part of the article with the informations about the % authors, their affiliations, the publication data, etc. % % The standard \LaTeX{} topmatter macros are insufficient for most % journals, and many journal styles like |amsart| or |elsart| use % their own more or less sophisticated conventions. Since the % editorial board of \emph{Philosophers' Imprint} prefers to provide % its own title pages, we chose to implement a rather simple set of % topmatter macros, sufficient to generate a sample title page, while % expecting the official one. % % Note that even if you do have the ``official'' title page, you still % need to use these macros because they are used for running heads and % for PDF metadata. % % \DescribeMacro{\titleimage} % The macro |\titleimage| has one argument: the name of the file with % the official title page image: % \begin{flushleft} % |\titleimage{|\meta{FileName}|}| % \end{flushleft} % for example, |\titleimage{1stpage.pdf}|. If the file is absent, the % class issues a warning and tries to typeset a simulated page. % % \DescribeMacro{\title} % The |\title| command has two arguments: one mandatory argument and % one optional: % \begin{flushleft} % |\title[|\meta{ShortTitle}|]{|\meta{FullTitle}|}| % \end{flushleft} % The mandatory argument is the full title of the article. The % optional argument, if present, sets the shorter version of the title % for running heads. If the optional argument is absent, the full % title is used instead. % % \DescribeMacro{\author} % The |\author| command also has two arguments with the similar % meaning: % \begin{flushleft} % |\author[|\meta{ShortListOfAuthors}|]{|\meta{FullListOfAuthors}|}| % \end{flushleft} % The optional argument is used for the running heads. If it is % absent, the full list of authors is used there. % % Separate multiple authors with commas. Do \emph{not} use \LaTeX{} % command |\and|. % % \DescribeMacro{\affiliation} % The |\affiliation| command sets the affiliation of the authors: % \begin{flushleft} % |\affiliation{|\meta{Affiliation}|}| % \end{flushleft} % Use |\\| to separate different affiliations. % % \DescribeMacro{\date} % The command |\date| is similar to the standard \LaTeX{} command. % However, remember that the date format is different: ``Month, % year'', e.g. % \begin{flushleft} % |\date{April, 2007}| % \end{flushleft} % It should be also noted that the date here is the date of % publication. % % \DescribeMacro{\journalvolume}\DescribeMacro{\journalnumber} % The macros |\journalvolume| and |\journalnumber| set the volume and % number of the journal where the article is published: % \begin{flushleft} % |\journalvolume{7}|\\ % |\journalnumber{4}| % \end{flushleft} % You will receive these data from the editorial office once your % article is accepted. % % \DescribeMacro{\copyrightinfo} The macro |\copyrightinfo| is % used to store the copyright date and copyright holder of the % article, like % \begin{flushleft} % |\copyrightinfo{1724, Immanuel Kant}| % \end{flushleft} % Note that the package does \emph{not} try to deduce the copyright % information from the date and author list. You need to set it % explicitly. % % \DescribeMacro{\copyrightlicense} % By default all papers in the journal are licensed under % under a Creative Commons % Attribution-NonCommercial-NoDerivatives 3.0 License. You can % override this setting by using \cmd{\copyrightlicense}\marg{Other % license}. % % % \DescribeMacro{\subject} % This macro, if present, sets the ``Subject'' field in the PDF % metadata. For example: % \begin{flushleft} % |\subject{Ethics}| % \end{flushleft} % % \DescribeMacro{\keywords} % The macro |\keywords| is similar to |\subject|, but accepts a comma % separated list of keywords. If present, they will be used in the % ``Keywords'' field of the PDF document. % % %\subsection{Required and Recommended Software} %\label{sec:packages} % % To typeset articles for \emph{Philosophers' Imprint,} you need the % proper fonts. PSNFSS version~9.2 or % later~\cite{Schmidt04:PSNFSS9.2} with URW and FPL fonts are % recommended. It is easy to check whether you have these fonts: if % you do not, then besides warnings in the log file, you will see % headers and footers in lower case instead of correct small caps. % Also, the numbers will be typeset with lining figures instead of old % style numbers. % % The class also uses packages \progname{color} and % \progname{graphicx} from the graphics % bundle~\cite{Carlisle05:Graphics} to typeset the title page. % % Package \progname{ifpdf}~\cite{Oberdiek06:Ifpdf} is used to check % whether PDF output is selected. % % Package \progname{fancyhdr}~\cite{Oostrum04:Fancyhdr} is used to set % up running headers and footers. % % You need the packages above for the document written in % \progname{philosophersimprint} class to compile. The packages below are not % strictly necessary, but highly recommended. % % Package \progname{hyperref}~\cite{Rahtz06:Hyperref} is used to set % up PDF metadata and make the links ``clickable''. We did not % include it in the list of required packages, because it prefers to % be loaded last, and we wanted to give the user a chance to load her % own packages. We recommend the following options: % \begin{verbatim} % \usepackage[breaklinks,colorlinks,linkcolor=black,citecolor=black, % pagecolor=black,urlcolor=black]{hyperref} % \end{verbatim} % See |sample.tex| for the example of the usage of this % package. % % % The authors of \emph{Philosophers' Imprint} use both bibliography at % the end of the article and bibliographic references in footnotes. % The packages \progname{natbib}~\cite{Daly07:Natbib} and % \progname{opcit}~\cite{Garcia06:Opcit} are recommended for % formatting the bibliography with \BibTeX. However, these packages % are \emph{not} loaded by the class; it is the responsibility of the % author to load and use them. % % %\subsection{Configuration File} %\label{sec:conffile} % % If the file \path{philosophersimprint.cfg} exists, it will be read by the % class. It is a good place to put, for example, the default % options. % % %\subsection{Some Fine Points} %\label{sec:fine_points} % % The journal prefers the baselines of both columns to be aligned. % This is a famous problem of ``typesetting to a grid''. Generally % speaking, this is not trivial in a \TeX{} world (see a discussion % of this problem in~\cite{Bazargan07:VertStretch}). Normally, \TeX{} % stretches distances between the baselines to achieve homogeneous % grayness of the page. It takes some effort to switch this behavior % off. % % This class deletes most of \TeX{} vertical stretchability. If there % is much mathematics in the copy it might lead to some really ugly % results. However, when the texts are not too heavy on math, the % class can do a decent job. Below we list some cases where it % cannot, and some manual intervention is warranted % (see~\cite{Bazargan07:VertStretch} for a description of an automatic % solution. Unfortunately, at the moment of writing this version, % this solution was not available as a free software). % \begin{enumerate} % \item We add 3/4 baseline leading before section title and 1/4 % baseline leading after. This means that if a section starts a % column, the baselines will be different by 1/4. An insertion of % |\vspace*{-0.25\baselineskip}| sometimes leads to acceptable % results. % \item We add 1/2 baseline leading before and after structures like % quotations, theorems, corollaries etc. If such structure is % split between columns, this breaks alignment. Again, a manual % intervention might help. % \item We do not try to control the vertical space of structures, % added, for example, by |\includegraphics| commands. % \item Sometimes a displayed equation can lead to breaking % alignment. % \end{enumerate} % % In most cases the amount of manual intervention necessary to % achieve alignment is fairly small. % % In some cases one can achieve better results by tweaking \TeX\ % parameters. For example, the settings % \begin{verbatim} % \clubpenalty=1000\widowpenalty=1000\displaywidowpenalty=1000 % \interfootnotelinepenalty=-1000 % \interlinepenalty=-100 % \end{verbatim} % may lead to fuller pages, but may produce some unwaned orphans and % clubs. Setting them to % \begin{verbatim} % \clubpenalty=10000\widowpenalty=10000\displaywidowpenalty=10000 % \interfootnotelinepenalty=0 % \interlinepenalty=0 % \end{verbatim} % will decrease the number of orphans and clubs, but may lead to % unwanted white spaces on the pages. Sometimes judicious changes of % the parameters in strategic places may help. % % % \subsection{Acknowledgements} % % The author is grateful to John Horty, David Velleman and Victor % Caston for their patience in describing the journal style. % % % \StopEventually{% % \clearpage % \bibliography{philosophersimprint} % \bibliographystyle{unsrt}} % % \clearpage % % %\section{Implementation} %\label{sec:impl} % % \begin{macrocode} %<*class> % \end{macrocode} % % %\subsection{Options} %\label{sec:opts} % % \begin{macro}{\ifPHIM@titleimage} % Check whether we need the title image % \begin{macrocode} \newif\ifPHIM@titleimage\PHIM@titleimagetrue \DeclareOption{titleimage}{\PHIM@titleimagetrue} \DeclareOption{notitleimage}{\PHIM@titleimagefalse} % \end{macrocode} % \end{macro} % % \begin{macro}{\ifPHIM@trajantitle} % \changes{v.08}{2007/04/25}{Added Trajan font for title} % Check whether we need Trajan font for title % \begin{macrocode} \newif\ifPHIM@trajantitle\PHIM@trajantitletrue \DeclareOption{trajantitle}{\PHIM@trajantitletrue} \DeclareOption{notrajantitle}{\PHIM@trajantitlefalse} % \end{macrocode} % % \end{macro} % % \begin{macro}{\ifPHIM@sc} % Do we need |sc| option for \progname{mathpazo}? % \begin{macrocode} \newif\ifPHIM@sc\PHIM@sctrue \DeclareOption{nosc}{\PHIM@scfalse} % \end{macrocode} % \end{macro} % \begin{macro}{\ifPHIM@osf} % Same with |osf| option: % \begin{macrocode} \newif\ifPHIM@osf\PHIM@osftrue \DeclareOption{noosf}{\PHIM@osffalse} % \end{macrocode} % \end{macro} % % Options specific for \progname{mathpazo}: % \begin{macrocode} \DeclareOption{slantedGreek}{% \PassOptionsToPackage{\CurrentOption}{mathpazo}} \DeclareOption{noBBpl}{% \PassOptionsToPackage{\CurrentOption}{mathpazo}} % \end{macrocode} % % \begin{macro}{\ifPHIM@flushend} % \changes{v1.4}{2016/07/20}{Added macro} % Whether to flush the last column % \begin{macrocode} \newif\ifPHIM@flushend\PHIM@flushendfalse \DeclareOption{flushend}{\PHIM@flushendtrue} \DeclareOption{noflushend}{\PHIM@flushendfalse} % \end{macrocode} % % \end{macro} % % Everything else is probably an option for \progname{article} % \begin{macrocode} \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} % \end{macrocode} % % Reading configuration file: % \begin{macrocode} \InputIfFileExists{philosophersimprint.cfg}{% \ClassInfo{philosophersimprint}{% Loading configuration file philosophersimprint.cfg}}{% \ClassInfo{philosophersimprint}{% Configuration file philosophersimprint.cfg is not found}} % \end{macrocode} % % Processing options % \begin{macrocode} \ProcessOptions\relax % \end{macrocode} % % % %\subsection{Loading Classes and Packages} %\label{sec:loading} % % We are based on \progname{article}: % \begin{macrocode} \LoadClass[landscape,letterpaper,twocolumn]{article} % \end{macrocode} % % A bunch of packages: % \begin{macrocode} \RequirePackage{ifpdf, color, graphicx, fancyhdr} % \end{macrocode} % % Font related packages. % \begin{macrocode} \ifPHIM@sc\PassOptionsToPackage{sc}{mathpazo}\fi \ifPHIM@osf\PassOptionsToPackage{osf}{mathpazo}\fi \RequirePackage{mathpazo} % \end{macrocode} % % Palatino fonts do not have typewriter and sans serif fonts. % Computer Modern seems to clash with Palatino, so we use Courier and % Helvetica when necessary: % \begin{macrocode} \RequirePackage{courier} \RequirePackage[scaled]{helvet} % \end{macrocode} % % It is recommended in \cite{Schmidt04:PSNFSS9.2} to use these % packages with PSNFSS: % \begin{macrocode} \RequirePackage[T1]{fontenc} \RequirePackage{textcomp} % \end{macrocode} % % Loading |microtype|: % \begin{macrocode} \IfFileExists{microtype.sty}{\RequirePackage{microtype}}{% \ClassWarningNoLine{philosopherimprint}{% *********************************\MessageBreak * Microtype package not found. * \MessageBreak * This package improves the *\MessageBreak * typesetting quality. You may *\MessageBreak * wish to upgrade your system. *\MessageBreak ********************************}} % \end{macrocode} % % % Loading |trajan| % \begin{macrocode} \ifPHIM@trajantitle \IfFileExists{trajan.sty}{\RequirePackage{trajan}}{% \ClassWarningNoLine{philosophersimprint}{% ********************************\MessageBreak * Trajan Fonts not found. Will \MessageBreak * revert to Palatino in title.\MessageBreak ********************************}% \PHIM@trajantitlefalse} \fi % \end{macrocode} % % Loading |flushend| % \begin{macrocode} \ifPHIM@flushend \IfFileExists{flushend.sty}{\RequirePackage{flushend}}{% \ClassWarningNoLine{philosophersimprint}{% ********************************\MessageBreak * Flushend package not found. \MessageBreak * Please install sttools bundle.\MessageBreak ********************************}% \PHIM@flushendfalse} \fi % \end{macrocode} % % \begin{macro}{\ifPHIM@hyperref} % We check whether the user loaded \progname{hyperref}. This is % delayed until all packages are loaded. % \begin{macrocode} \newif\ifPHIM@hyperref \AtBeginDocument{% \@ifpackageloaded{hyperref}{% \PHIM@hyperreftrue}{% \ClassWarningNoLine{philosophersimprint}{% ****************************\MessageBreak * You did not load hyperref.\MessageBreak * PDF-specific features will\MessageBreak * not work.\MessageBreak *****************************}% \PHIM@hyperreffalse}} % \end{macrocode} % % % \end{macro} % % %\subsection{Setting Up Dimensions} %\label{sec:dims} % % %\subsubsection{Basic Length} %\label{sec:basic} % % % \begin{macro}{\PHIM@baselength} % \changes{v0.7}{2007/04/17}{Introduced the macro} % The design of \emph{Philosopher's Imprint} is based on a uniform % length scale % \begin{macrocode} \newlength{\PHIM@baselength} \setlength{\PHIM@baselength}{13.5pt} % \end{macrocode} % \end{macro} % % % %\subsubsection{Fonts} %\label{sec:fonts} % % \changes{v0.7}{2007/04/18}{Introduced fonts dimensions} % % \begin{macro}{\normalsize} % \changes{v0.8}{2007/04/27}{Changed dimensions} % \begin{macro}{\small} % \changes{v0.8}{2007/04/27}{Changed dimensions} % \begin{macro}{\footnotesize} % \changes{v0.8}{2007/04/27}{Changed dimensions} % \begin{macro}{\scriptsize} % \changes{v0.8}{2007/04/27}{Changed dimensions} % \begin{macro}{\tiny} % \changes{v0.8}{2007/04/27}{Changed dimensions} % \begin{macro}{\large} % \changes{v0.8}{2007/04/27}{Changed dimensions} % \begin{macro}{\Large} % \changes{v0.8}{2007/04/27}{Changed dimensions} % \begin{macro}{\LARGE} % \changes{v0.8}{2007/04/27}{Changed dimensions} % \begin{macro}{\huge} % \changes{v0.8}{2007/04/27}{Changed dimensions} % \begin{macro}{\Huge} % \changes{v0.8}{2007/04/27}{Changed dimensions} % \begin{macro}{\HUGE} % \changes{v0.8}{2007/04/27}{Changed dimensions} % This is basically from~\cite{classes}, but based on the journal % requirements. % \begin{macrocode} \renewcommand\normalsize{\@setfontsize\normalsize{9.5pt}\PHIM@baselength} \renewcommand\small{\@setfontsize\small{9pt}{13.5pt}} \renewcommand\footnotesize{% \@setfontsize\footnotesize{8.5pt}{9.5pt}} \renewcommand\scriptsize{\@setfontsize\scriptsize{8pt}{9pt}} \renewcommand\tiny{\@setfontsize\tiny{7.5pt}{8.5pt}} \renewcommand\large{\@setfontsize\large{11pt}{16pt}} \renewcommand\Large{\@setfontsize\Large{13pt}{19pt}} \renewcommand\LARGE{\@setfontsize\LARGE{16pt}{23pt}} \renewcommand\huge{\@setfontsize\huge{19pt}{28pt}} \renewcommand\Huge{\@setfontsize\Huge{23pt}{33pt}} \newcommand\HUGE{\@setfontsize\Huge{30pt}{45pt}} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % %\subsubsection{Paragraphing} %\label{sec:paragraph} % % \begin{macro}{\baselinestretch} % \begin{macro}{\parindent} % \changes{v0.7}{2007/04/18}{Defined to the journal requirements} % \begin{macro}{\parskip} % Again we use~\cite{classes} a lot. % \begin{macrocode} \renewcommand\baselinestretch{} \setlength\parindent{\PHIM@baselength} \setlength\parskip{0pt} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\smallskipamount} % \begin{macro}{\medskipamount} % \begin{macro}{\bigskipamount} % \changes{v0.8}{2007/04/24}{Defined the lengths} % These are for additional leading. We define them to be multiples of % the baseline % \begin{macrocode} \setlength\smallskipamount{0.25\PHIM@baselength} \setlength\medskipamount{0.5\PHIM@baselength} \setlength\bigskipamount{\PHIM@baselength} % \end{macrocode} % % \end{macro} % \end{macro} % \end{macro} % %\subsubsection{Page Dimensions and Type Area} %\label{sec:page} % % % This was inspired by \progname{memoir}~\cite{Wilson04:Memoir}. % \begin{macrocode} \ifpdf\relax \pdfpageheight=\paperheight \pdfpagewidth=\paperwidth \ifdim\pdfvorigin=0pt\pdfvorigin=0pt\fi \ifdim\pdfhorigin=0pt\pdfhorigin=0pt\fi \else \ClassWarningNoLine{philosophersimprint}{% ****************************\MessageBreak * The class is intended for \MessageBreak * pdflatex. You seem to use\MessageBreak * it with latex instead.\MessageBreak ****************************} \fi % \end{macrocode} % % This code is from~\cite{classes}, with the removing of vertical % stretch based on~\cite{Bazargan07:VertStretch} % \changes{v0.7}{2007/04/19}{Changed vertical stretching} % \begin{macrocode} \lineskiplimit = -3pt\relax \lineskip = \PHIM@baselength\relax \setlength\headsep {\PHIM@baselength} \setlength\footskip {3\PHIM@baselength} \setlength\topskip\PHIM@baselength \setlength\textheight{459pt} \setlength\topmargin{61pt} \addtolength\topmargin{-1in} \addtolength\topmargin{-\topskip} \addtolength\topmargin{-\headsep} \@settopoint\topmargin \abovedisplayskip \PHIM@baselength\relax \abovedisplayshortskip \PHIM@baselength\relax \belowdisplayshortskip \PHIM@baselength\relax \belowdisplayskip \abovedisplayskip\relax % \end{macrocode} % % % \begin{macro}{\PHIM@colwidth} % We need to calculate the column width to center the headers: % \begin{macrocode} \newlength{\PHIM@colwidth} \setlength{\PHIM@colwidth}{297pt} \setlength\columnsep{54pt} \setlength\textwidth{\PHIM@colwidth} \multiply\textwidth by 2\relax \addtolength{\textwidth}{\columnsep} % \end{macrocode} % \changes{v0.6}{2007/04/11}{Introduced the macro} % \changes{v0.7}{2007/04/17}{Made the base of calculations} % \end{macro} % % %\subsubsection{Margins} %\label{sec:margins} % % \begin{macro}{\marginparwidth} % \changes{v0.8}{2007/04/25}{Added definition} % \begin{macro}{\marginparsep} % \changes{v0.8}{2007/04/25}{Added definition} % \begin{macro}{\marginparpush} % \changes{v0.8}{2007/04/25}{Added macro} % The vertical and horizontal distances for margin paragraphs: % \begin{macrocode} \setlength{\marginparwidth}{3\PHIM@baselength} \setlength{\marginparsep}{0.5\PHIM@baselength} \setlength{\marginparpush}{0.5\PHIM@baselength} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\evensidemargin} % \changes{v0.8}{2007/04/25}{Added definition} % \begin{macro}{\oddsidemargin} % \changes{v0.8}{2007/04/25}{Added definition} % The side margins are 6~pica each. % \begin{macrocode} \setlength{\evensidemargin}{6pc} \addtolength{\evensidemargin}{-1in} \setlength{\oddsidemargin}{\evensidemargin} % \end{macrocode} % \end{macro} % \end{macro} % % % %\subsubsection{Floats} %\label{sec:floats} % % \changes{v0.7}{2007/04/19}{Changed values for float parameters} % \begin{macro}{\floatsep} % \begin{macro}{\textfloatsep} % \begin{macro}{\intextsep} % \begin{macro}{\textfloatsep} % \begin{macro}{\dblfloatsep} % \begin{macro}{\dbltextfloatsep} % \begin{macro}{\abovecaptionskip} % \begin{macro}{\belowcaptionskip} % Some parameters for floats\dots % \begin{macrocode} \setlength\floatsep\PHIM@baselength \setlength\textfloatsep\PHIM@baselength \setlength\intextsep\PHIM@baselength \setlength\dblfloatsep\PHIM@baselength \setlength\dbltextfloatsep\PHIM@baselength \setlength\abovecaptionskip\PHIM@baselength \setlength\belowcaptionskip{\z@}\relax % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % % % % \subsubsection{Lists} %\label{sec:lists} % % \changes{v0.7}{2007/04/19}{Changed values for lists} % \begin{macro}{\leftmargin} % \begin{macro}{\leftmargini} % \begin{macro}{\leftmarginii} % \begin{macro}{\leftmarginiii} % \begin{macro}{\leftmarginiv} % \begin{macro}{\leftmarginv} % \begin{macro}{\leftmarginvi} % \begin{macro}{\listparindent} % \begin{macro}{\itemindent} % These lengths are for all lists. % \begin{macrocode} \setlength\leftmargini\PHIM@baselength \leftmargin\leftmargini \setlength\leftmarginii\PHIM@baselength \setlength\leftmarginiii\PHIM@baselength \setlength\leftmarginiv\PHIM@baselength \setlength\leftmarginv\PHIM@baselength \setlength\leftmarginvi\PHIM@baselength \setlength\listparindent\PHIM@baselength \setlength\itemindent\PHIM@baselength % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\labelsep} % \begin{macro}{\labelwidth} % Labels for all lists % \begin{macrocode} \setlength\labelsep{0.5em} \setlength\labelwidth{\leftmargini} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\topsep} % \begin{macro}{\partopsep} % \begin{macro}{\itemsep} % \begin{macro}{\parsep} % These are for vertical spacing for lists % \begin{macrocode} \setlength\topsep{0.5\PHIM@baselength} \setlength\partopsep\z@ \setlength\parsep\parskip \setlength\itemsep\z@ % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % % \begin{macro}{\@listi} % \begin{macro}{\@listI} % \begin{macro}{\@listii} % \begin{macro}{\@listiii} % \begin{macro}{\@listiv} % \begin{macro}{\@listv} % \begin{macro}{\@listvi} % These are for compatibility with |article.cls| % \begin{macrocode} \def\@listi{}% \def\@listI{}% \def\@listii{}% \def\@listiii{}% \def\@listiv{}% \def\@listv{}% \def\@listvi{}% % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{quote} % \begin{macro}{quotation} % \begin{macro}{verse} % Does anybody use verses for philosophy papers? % \begin{macrocode} \renewenvironment{verse}{\let\\\@centercr \list{}{\rightmargin\leftmargin}\item\relax}{\endlist} \renewenvironment{quote}{% \list{}{\rightmargin\leftmargin}\item\relax}{\endlist} \renewenvironment{quotation}{% \list{}{\rightmargin\leftmargin \itemindent\parindent}\item\relax}{\endlist} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % % % %\subsubsection{Odds and Ends} %\label{sec:odds} % % Some other lengths % \begin{macro}{\bibndent} % \changes{v0.7}{2007/04/19}{Changed value} % Bibliography indentation % \begin{macrocode} \setlength\bibindent\PHIM@baselength % \end{macrocode} % \end{macro} % % \begin{macro}{\jot} % \changes{v0.7}{2007/04/19}{Changed value} % This length is added between lines of |eqnarray|. People should % not use this environment. Still, let us define it. % \begin{macrocode} \setlength\jot\z@ % \end{macrocode} % \end{macro} % % % \begin{macro}{\arraycolsep} % \begin{macro}{\tabcolsep} % \begin{macro}{\fboxsep} % These lengths should be based on the base length: % \begin{macrocode} \setlength{\arraycolsep}{0.5\PHIM@baselength} \setlength{\tabcolsep}{0.5\PHIM@baselength} \setlength{\fboxsep}{0.25\PHIM@baselength} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % % % % \subsection{Top Matter Markup} %\label{sec:topmatter-markup} % % We do not need |\thanks| and |\and| % \begin{macrocode} \def\and{\unskip, % \ClassError{philosophersimprint}{% Command \string\and\space is not defined for this class}{% The authors for Philosophers' Imprint should be separated by commas.\MessageBreak I will convert your \string\and\space to comma and continue}} \def\thanks#1{% \ClassError{philosophersimprint}{% Command \string\thanks\space is not defined for this class}{% Use \string\affiliation\space instead of \string\thanks.\MessageBreak I will delete this command and its argument}} % \end{macrocode} % % \begin{macro}{\title} % Unlike standard \LaTeX{} macro |\title|, ours has two arguments: % \begin{macrocode} \def\title{\@ifnextchar[{\title@i}{\title@ii}} \def\title@i[#1]#2{\gdef\@shorttitle{#1}\gdef\@title{#2}} \def\title@ii#1{\title@i[#1]{#1}} \title{} % \end{macrocode} % \end{macro} % \begin{macro}{\author} % Same with |\author|: % \begin{macrocode} \def\author{\@ifnextchar[{\author@i}{\author@ii}} \def\author@i[#1]#2{\gdef\@shortauthor{#1}\gdef\@author{#2}} \def\author@ii#1{\author@i[#1]{#1}} \author{} % \end{macrocode} % \end{macro} % % \begin{macro}{\@date} % We have slightly different default date format than the standard % class: % \begin{macrocode} \def\today{\ifcase\month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi\space \number\year} % \end{macrocode} % \end{macro} % % \begin{macro}{\titleimage} % \changes{v1.5}{2020/11/10}{Default title image is now a string} % \begin{macro}{\affiliation} % \begin{macro}{\copyrightinfo} % \begin{macro}{\subject} % \begin{macro}{\keywords} % A bunch of one parameter macros % \begin{macrocode} \newcommand*{\titleimage}[1]{\gdef\@titleimage{#1}} \titleimage{NoSuchImageDotUse.pdf} \newcommand*{\affiliation}[1]{\gdef\@affiliation{#1}} \affiliation{} \newcommand*{\copyrightinfo}[1]{\gdef\@copyrightinfo{#1}} \copyrightinfo{} \newcommand*{\subject}[1]{\gdef\@subject{#1}} \subject{} \newcommand*{\keywords}[1]{\gdef\@keywords{#1}} \keywords{} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\copyrightlicense} % \changes{v1.13}{2013/01/13}{Added macro} % This adds license information: % \begin{macrocode} \newcommand*{\copyrightlicense}[1]{\gdef\@copyrightlicense{#1}} \copyrightlicense{This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 3.0 License} % \end{macrocode} % \end{macro} % % Some games with the numbers % \begin{macro}{\PHIM@addzeros} % \changes{v0.5}{2007/04/04}{Corrected documentation} % The macro |\PHIM@addzeros| takes the argument and adds leading % zeros to make exactly 3 digits, and puts it into the second % argument. % \begin{macrocode} \def\PHIM@addzeros#1#2{\@tempcnta=#1\relax \edef#2{% \ifnum\@tempcnta>99 \the\@tempcnta \else \ifnum\@tempcnta>9 0\the\@tempcnta \else 00\the\@tempcnta \fi \fi}} % \end{macrocode} % \end{macro} % % \begin{macro}{\journalnumber} % We keep two copies of the journal number: one with zeros, one % without % \begin{macrocode} \newcommand*{\journalnumber}[1]{% \gdef\@journalnumber{#1}% \PHIM@addzeros{\@journalnumber}{\@@journalnumber}} \journalnumber{999} % \end{macrocode} % \end{macro} % \begin{macro}{\journalvolume} % We keep two copies of the journal volume: one with zeros, one % without % \begin{macrocode} \newcommand*{\journalvolume}[1]{% \gdef\@journalvolume{#1}% \PHIM@addzeros{\@journalvolume}{\@@journalvolume}} \journalvolume{999} % \end{macrocode} % \end{macro} % % %\subsection{Headers \& Footers} %\label{sec:headers} % \begin{macrocode} \pagestyle{fancy} \lhead{\makebox[\PHIM@colwidth]{\centering\scshape\large \MakeLowercase{\@shortauthor}}} \chead{} \rhead{\makebox[\PHIM@colwidth]{\centering\itshape\large\@shorttitle}} \lfoot{\scshape\large philosophers' imprint} \cfoot{-\space\large\thepage\space-} \rfoot{\scshape\large vol.~\@journalvolume, no.~\@journalnumber\quad% (\MakeLowercase{\@date})} \renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{0pt} % \end{macrocode} % \changes{v0.6}{2007/04/11}{Headers are now centered} % % %\subsection{Making Title Page} %\label{sec:maketitle} % % % \begin{macro}{\maketitle} % Our |\maketitle| is completely different from the standard one. % First, we set up the PDF information, and then check which of the % variants of title page to use. % \begin{macrocode} \def\maketitle{% \thispagestyle{empty} \ifPHIM@hyperref\relax \hypersetup{pdfauthor=\@author, pdftitle=\@title, % pdfsubject=\@subject, pdfkeywords=\@keywords} \fi \ifPHIM@titleimage\relax \maketitle@image \else \maketitle@simulated \fi \newpage} % \end{macrocode} % \end{macro} % % \begin{macro}{\maketitle@image} % \changes{v0.9}{2007/05/20}{Changed formatting} % Here we add the image if it exists. % \begin{macrocode} \def\maketitle@image{% \IfFileExists{\@titleimage}{% \begin{picture}(0,0)% \setlength{\unitlength}{1pt}% \put(-6,6){\makebox(0,0)[lt]{\includegraphics{\@titleimage}}}% \end{picture}}{% \ClassWarningNoLine{philosophersimprint}{% ********************************\MessageBreak * Cannot find title image \MessageBreak * \@titleimage.\MessageBreak * Switching to simulated title.\MessageBreak ********************************} \maketitle@simulated}} % \end{macrocode} % \end{macro} % % \begin{macro}{\maketitle@simulated} % \changes{v0.5}{2007/04/05}{Moved URL def outside hyperref check} % \changes{v0.7}{2007/04/18}{Changed lengths and fonts} % \changes{v1.2}{2012/06/01}{Added trailing slash to the title page url} % \changes{v1.3}{2013/01/13}{Added copyright license} % Simulated page should look more or less like the real one. % \begin{macrocode} \def\maketitle@simulated{% {\centering \parbox{2in}{\textcolor{PHIM@blue}{% \hspace{1.4em}\fontsize{10pt}{11}\selectfont Philosophers'}\\[-1.4ex]% \textcolor{PHIM@gray}{\fontsize{34pt}{25}\selectfont Imprint}} \hfill \parbox{2in}{ \begin{flushright} \scshape\large volume \@journalvolume, no.~\@journalnumber\\[0.2ex] \MakeLowercase{\@date} \end{flushright}}% \par \vskip 0pt plus 0.3fill\relax {\ifPHIM@trajantitle\trjnfamily\fi \HUGE\selectfont\MakeUppercase{\@title}\par}% \vskip 0pt plus 0.4fill\relax {\huge\itshape\@author\par}% \vskip 0pt plus 0.15fill\relax {\large\itshape\@affiliation\par}% \vskip 0pt plus 0.2fill\relax {\ifx\@copyrightinfo\@empty~\else% \copyright\space\@copyrightinfo\fi\\ \itshape \ifx\@copyrightlicense\@empty~\else% \@copyrightlicense\fi\\[0.3ex] \edef\PHIM@url{% www.philosophersimprint.org/\@@journalvolume\@@journalnumber/} \ifPHIM@hyperref\relax \href{http://\PHIM@url}{\textcolor{black}{ \textless \PHIM@url\textgreater}}% \else \textless \PHIM@url\textgreater \fi \vskip 0pt plus 0.2fill\relax \par}% }}% % \end{macrocode} % \end{macro} % % Some colors for the title page: % \begin{macrocode} \definecolor{PHIM@blue}{rgb}{0.184, 0.431, 0.7749}% \definecolor{PHIM@gray}{gray}{0.549}% % \end{macrocode} % % %\subsection{Sectioning} %\label{sec:sections} % % We redefine the sectioning commands from the standard % \progname{article} to make this according to the journal % requirements. % % \begin{macro}{\ifPHIM@appendix} % \changes{v0.8}{2007/04/24}{Introduced macro} % The journal wants to format appendix as ``Appendix A. Name''. % Therefore we need to know whether we are in appendix mode. % \begin{macrocode} \newif\ifPHIM@appendix\PHIM@appendixfalse % \end{macrocode} % % \end{macro} % % \begin{macro}{\section} % \changes{v0.7}{2007/04/18}{Changed formatting for section} % The journal wants the dot after section number. Besides, to % synchronize lines, we want to skip 3/4 line before the section head % even if we start a new column. % \begin{macrocode} \renewcommand\section{\par \addpenalty\@secpenalty\nobreak \addvspace{0.75\PHIM@baselength} \@afterindentfalse \secdef\@section\@ssection}% % \end{macrocode} % \end{macro} % % \begin{macro}{\@section} % \changes{v0.8}{2007/04/24}{Added par} % \changes{v0.8}{2007/04/24}{Added appendix name} % This is the actual formatting when we have an unstarred form. % \begin{macrocode} \def\@section[#1]#2{% \ifnum\c@secnumdepth>0\relax \refstepcounter{section}% \addcontentsline{toc}{section}{\ifPHIM@appendix\appendixname\space\fi \thesection.\quad#1}% \else \addcontentsline{toc}{section}{#1}% \fi {\noindent\raggedright\interlinepenalty\@M \normalsize\bfseries \ifnum\c@secnumdepth>0\relax \ifPHIM@appendix\appendixname\space\fi\thesection.\quad #2 \else #2 \fi}% \vspace*{0.25\PHIM@baselength}% \@afterheading \nobreak\par} % \end{macrocode} % % \end{macro} % % % \begin{macro}{\@ssection} % \changes{v0.8}{2007/04/24}{Added par} % This is the actual formatting for the starred section % \begin{macrocode} \def\@ssection#1{% {\noindent\raggedright\interlinepenalty\@M \normalsize\bfseries #1}% \vspace*{0.25\PHIM@baselength}% \@afterheading \nobreak\par} % \end{macrocode} % \end{macro} % % \begin{macro}{\subsection} % \changes{v0.7}{2007/04/18}{Changed formatting} % \begin{macro}{\subsubsection} % \changes{v0.7}{2007/04/18}{Changed formatting} % \begin{macro}{\paragraph} % \changes{v0.7}{2007/04/18}{Changed formatting} % \begin{macro}{\subparagraph} % \changes{v0.7}{2007/04/18}{Changed formatting} % All other command can use standard technique. Since the lengths in % |@startsection| double as switches, we use $\pm$1sp as effective % zero. % \begin{macrocode} \renewcommand\subsection{\@startsection{subsection}{2}{\z@}% {-\PHIM@baselength}% {1sp}% {\normalfont\normalsize\itshape}} \renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% {-1sp}% {1sp}% {\normalfont\normalsize\itshape}} \renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% {1sp}% {-1sp}% {\normalfont\normalsize}} \renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}% {1sp}% {-1sp}% {\normalfont\normalsize}} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\appendix} % \changes{v0.8}{2007/04/24}{Redefined the macro} % The only difference from the command |\appendix| in~\cite{classes} % is that here we switch on the flag: % \begin{macrocode} \renewcommand\appendix{\par \PHIM@appendixtrue \setcounter{section}{0}% \setcounter{subsection}{0}% \gdef\thesection{\@Alph\c@section}} % \end{macrocode} % % \end{macro} % %\subsection{Footnotes} %\label{sec:footnotes} % % \begin{macro}{\@makfntext} % \changes{v0.7}{2007/04/19}{Introduced new footnote formatting} % \changes{v1.1}{2011/11/25}{Changed indentation} % \changes{v1.5}{2020/11/10}{Changed indentation again} % The journal prefers footnotes with text footnote marks and hanging % indentation % \begin{macrocode} \renewcommand\@makefntext[1]{% \@tempdima=\hsize \advance\@tempdima by -\PHIM@baselength\relax \makebox[\PHIM@baselength][l]{\@thefnmark.}\parbox[t]{\@tempdima}{#1}} % \end{macrocode} % \end{macro} % % \begin{macro}{\footnotesep} % \changes{v0.7}{2007/04/19}{Changed value} % We set it just to strut % \begin{macrocode} \settoheight{\footnotesep}{\footnotesize\strut} % \end{macrocode} % \end{macro} % % \begin{macro}{\footins} % \changes{v0.7}{2007/04/19}{Changed value} % \changes{v0.9}{2007/05/04}{It is now stretchable} % \changes{v1.4}{2016/07/20}{Made finite to avoid white spots} % This the space between the last line of the text and top of % footnotes % \begin{macrocode} \setlength{\skip\footins}{\the\PHIM@baselength plus \the\PHIM@baselength} % \end{macrocode} % % \end{macro} % % \begin{macro}{\interfootnotepenalty} % \changes{v1.1}{2011/11/25}{Changed value} % We allow footnotes to be split between pages: % \begin{macrocode} \interfootnotelinepenalty=0 % \end{macrocode} % % \end{macro} % %\subsection{The Last Words} %\label{sec:end} % % The editors want French spacing % \changes{v0.9}{2007/05/01}{Added French Spacing} % \begin{macrocode} \normalsize \frenchspacing % % \end{macrocode} % % %\Finale %\clearpage % %\PrintChanges %\clearpage %\PrintIndex % \endinput