%% $Id: jfpppt.sty,v 2.3 1993/09/14 15:31:21 kris Exp $
%%
%% JFPPPT document style for AMS-TeX 2.1.
%% Mimics the Journal of Functional Programming (Cambridge University Press).
%%
%% by  Kristoffer H. Rose  <kris@diku.dk>
%%
%% DISCLAIMER: This file is distributed in the hope that it will be
%% useful, but WITHOUT ANY WARRANTY; without even the implied warranty
%% of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
%%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% USAGE: The file MODIFIES the standard AMS-TeX `preprint' style.
% You need to have the following files installed in your TEXINPUTS paths in
% order to use it:
%
% * The AMSPPT document style version 2.1 as "amsppt.sty".
% * My generic AMSPPT fixes (available where this file is) as "pptfixes.tex".
% * This style file as "jfpppt.sty".
%
% Then you may use the line
%
%	\documentstyle{jfpppt}
%
% at the head of your AMS-TeX documents to use JFPPPT instead of AMSPPT.
%
% NOTE: This document style is designed for use with the XPPT AMSPPT
% enhancements available from CTAN archives and ftp.diku.dk in files
% /pub/diku/users/kris/xppt*.
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% AUTHOR:
%
%	Kristoffer H{\o}gsbro ROSE
%	DIKU, University of Copenhagen
%	Universitetsparken 1
%	DK-2100 Copenhagen {\O}
%
%	E-mail: kris@diku.dk.
%
% For information on how to use AMS-TeX and the AMSPPT document style
% you should consult Michael D. Spivak: "The Joy of {\TeX}---A
% Gourmet Guide to Typesetting with the AMS-TeX Macro Package"
% (second edition), AMS, 1982.
%
% For availability of the AMS-TeX macros contact
%
%     	American Mathematical Society,
%	Technical Support Group,
%	P. O. Box 6248,
%	Providence, RI 02940,
%	USA
%
%	Internet: Tech-Support@Math.AMS.com; Phone: +1 4014554080
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% CONTENTS: Below we discuss the modifications in the same order as the
% corresponding parts of AMSPPT.STY following the structure of that file
% (actually of AMSPPT.DOC).
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%       -1- PRELIMINARY
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%	First we load AMSPPT.STY and announce that this is something else.
%	Then we drop out if JFPPPT was (pre)loaded...otherwise we go to work.
%
\input amsppt.sty
\immediate\write16{JFPPPT.STY - Version test}%
%
\expandafter\ifx\csname jfpppt.sty\endcsname\relax
\else \message{[already loaded]}\endinput \fi
%
%	This document style loads the XPPT `pptfixes' file
%
\message{Loading fixes}
\input pptfixes
\message{,}
%
\def\styname{JFPPPT} \def\styversion{test}
%
\expandafter\edef\csname jfpppt.sty\endcsname{%
   \catcode`\noexpand\@\the\catcode`\@\space
   \expandafter\let\csname jfpppt.sty\endcsname\noexpand\empty}
\catcode`\@=11
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%	FONTS
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\message{large fonts,}
%
%	The title of a JFP paper is set in quite large letters.  These are
%	the corresponding \font definitions (see also TOPMATTER below)...
%
\font@\seventeenrm=cmr17
\font@\seventeeni=cmmi12 scaled \magstep2  \skewchar\seventeeni='177
\font@\seventeensy=cmsy10 scaled \magstep3 \skewchar\seventeensy='60
\font@\seventeenex=cmex10 scaled \magstep3
\font@\seventeenbf=cmbx12 scaled \magstep2
\font@\seventeenit=cmti12 scaled \magstep2
\font@\seventeensl=cmsl12 scaled \magstep2
\font@\seventeensmc=cmcsc10 scaled \magstep3
\font@\seventeentt=cmtt12 scaled \magstep2
%
\newtoks\seventeenpoint@
%
\def\seventeenpoint{\normalbaselineskip20\p@
 \abovedisplayskip20\p@ plus3\p@ minus9\p@
 \belowdisplayskip\abovedisplayskip
 \abovedisplayshortskip\z@ plus6\p@
 \belowdisplayshortskip12\p@ plus6\p@ minus6\p@
 \textonlyfont@\rm\seventeenrm \textonlyfont@\it\seventeenit
 \textonlyfont@\bf\seventeenbf \textonlyfont@\sl\seventeensl
 \textonlyfont@\smc\seventeensmc \textonlyfont@\tt\seventeentt
 \ifsyntax@ \def\big##1{{\hbox{$\left##1\right.$}}}%
  \let\Big\big \let\bigg\big \let\Bigg\big
 \else
   \textfont\z@\seventeenrm  \scriptfont\z@\twelverm
       \scriptscriptfont\z@\eightrm
   \textfont\@ne\seventeeni  \scriptfont\@ne\twelvei
       \scriptscriptfont\@ne\eighti
   \textfont\tw@\seventeensy \scriptfont\tw@\twelvesy
       \scriptscriptfont\tw@\eightsy
   \textfont\thr@@\seventeenex \scriptfont\thr@@\twelveex
        \scriptscriptfont\thr@@\eightex
   \textfont\itfam\seventeenit \scriptfont\itfam\twelveit
        \scriptscriptfont\itfam\eightit
   \textfont\bffam\seventeenbf \scriptfont\bffam\twelvebf
        \scriptscriptfont\bffam\eightbf
   \setbox\strutbox\hbox{\vrule height14\p@ depth5\p@ width\z@}%
   \setbox\strutbox@\hbox{\lower.5\normallineskiplimit\vbox{%
        \kern-\normallineskiplimit\copy\strutbox}}%
   \setbox\z@\vbox{\hbox{$($}\kern\z@}\bigsize@1.2\ht\z@
  \fi
  \normalbaselines\rm\dotsspace@2.5mu\ex@.2326ex\jot3\ex@
  \the\seventeenpoint@}
%
\font@\seventeenrm=cmr17
\font@\seventeeni=cmmi12 scaled \magstep2  \skewchar\seventeeni='177
\font@\seventeensy=cmsy10 scaled \magstep3 \skewchar\seventeensy='60
\font@\seventeenex=cmex10 scaled \magstep3
\font@\seventeenbf=cmbx12 scaled \magstep2
\font@\seventeenit=cmti12 scaled \magstep2
\font@\seventeensl=cmsl12 scaled \magstep2
\font@\seventeensmc=cmcsc10 scaled \magstep3
\font@\seventeentt=cmtt12 scaled \magstep2
%
\font@\twelverm=cmr12
\font@\twelvei=cmmi12			\skewchar\twelvei='177
\font@\twelvesy=cmsy10 scaled \magstep1	\skewchar\twelvesy='60
\font@\twelveex=cmex10 scaled \magstep1
\font@\twelvebf=cmbx12
\font@\twelveit=cmti12
\font@\twelvesmc=cmcsc10 scaled \magstep1
\font@\twelvett=cmtt12
%
\newtoks\twelvepoint@
%
\def\twelvepoint{\normalbaselineskip14\p@
 \abovedisplayskip14\p@ plus3\p@ minus9\p@
 \belowdisplayskip\abovedisplayskip
 \abovedisplayshortskip\z@ plus4\p@
 \belowdisplayshortskip8\p@ plus4\p@ minus4\p@
 \textonlyfont@\rm\twelverm \textonlyfont@\it\twelveit
 \textonlyfont@\bf\twelvebf \textonlyfont@\sl\twelvesl
 \textonlyfont@\smc\twelvesmc \textonlyfont@\tt\twelvett
 \ifsyntax@ \def\big##1{{\hbox{$\left##1\right.$}}}%
  \let\Big\big \let\bigg\big \let\Bigg\big
 \else
   \textfont\z@\twelverm  \scriptfont\z@\eightrm
       \scriptscriptfont\z@\sevenrm
   \textfont\@ne\twelvei  \scriptfont\@ne\eighti
       \scriptscriptfont\@ne\seveni
   \textfont\tw@\twelvesy \scriptfont\tw@\eightsy
       \scriptscriptfont\tw@\sevensy
   \textfont\thr@@\twelveex \scriptfont\thr@@\eightex
        \scriptscriptfont\thr@@\sevenex
   \textfont\itfam\twelveit \scriptfont\itfam\eightit
        \scriptscriptfont\itfam\sevenit
   \textfont\bffam\twelvebf \scriptfont\bffam\eightbf
        \scriptscriptfont\bffam\sevenbf
   \setbox\strutbox\hbox{\vrule height10\p@ depth5\p@ width\z@}%
   \setbox\strutbox@\hbox{\lower.5\normallineskiplimit\vbox{%
        \kern-\normallineskiplimit\copy\strutbox}}%
   \setbox\z@\vbox{\hbox{$($}\kern\z@}\bigsize@1.2\ht\z@
  \fi
  \normalbaselines\rm\dotsspace@2mu\ex@.2326ex\jot3\ex@
  \the\twelvepoint@}
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%	-4- PAGE DIMENSIONS AND OTHER GLOBAL SETTINGS
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\message{paper format,}
%
%	Most dimensions are the same as AMSPPT.STY, except...
%
%	The print area is 30pc x 48pc.
%
\pagewidth {30pc}
\pageheight{48pc}
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%      -5- TOP MATTER DEFINITIONS
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\message{top matter,}
%
%	This is just \topmatter from AMSPPT.STY but we also load the large
%	fonts requested by the user.  Furthermore we set up the bibliography
%	format to \refstyle{B} and set the XPPT BibTeX bibliography
%	parameters...
%
\def\topmatter{%
 \ifx\undefined\msafam
 \else\font@\seventeenmsa=msam10 scaled \magstep3
   \font@\twelvemsa=msam10 scaled \magstep1
   \font@\eightmsa=msam8 \font@\sixmsa=msam6
   \ifsyntax@\else \addto\seventeenpoint{\textfont\msafam\seventeenmsa
       \scriptfont\msafam\twelvemsa \scriptscriptfont\msafam\eightmsa}%
     \addto\twelvepoint{\textfont\msafam\twelvemsa
       \scriptfont\msafam\eightmsa \scriptscriptfont\msafam\sixmsa}%
     \addto\tenpoint{\textfont\msafam\tenmsa
       \scriptfont\msafam\sevenmsa \scriptscriptfont\msafam\fivemsa}%
     \addto\eightpoint{\textfont\msafam\eightmsa
       \scriptfont\msafam\sixmsa \scriptscriptfont\msafam\fivemsa}%
   \fi
 \fi
 \ifx\undefined\msbfam
 \else\font@\seventeenmsb=msbm10 scaled \magstep3
   \font@\twelvemsb=msbm10 scaled \magstep1
   \font@\eightmsb=msbm8 \font@\sixmsb=msbm6
   \ifsyntax@\else \addto\seventeenpoint{\textfont\msbfam\seventeenmsb
       \scriptfont\msbfam\twelvemsb \scriptscriptfont\msbfam\eightmsb}%
     \addto\twelvepoint{\textfont\msbfam\twelvemsb
       \scriptfont\msbfam\eightmsb \scriptscriptfont\msbfam\sixmsb}%
     \addto\tenpoint{\textfont\msbfam\tenmsb
       \scriptfont\msbfam\sevenmsb \scriptscriptfont\msbfam\fivemsb}%
     \addto\eightpoint{\textfont\msbfam\eightmsb
       \scriptfont\msbfam\sixmsb \scriptscriptfont\msbfam\fivemsb}%
   \fi
 \fi
 \ifx\undefined\eufmfam
 \else \font@\seventeeneufm=eufm10 scaled \magstep3
   \font@\twelveeufm=eufm10 scaled \magstep1
   \font@\eighteufm=eufm8 \font@\sixeufm=eufm6
   \ifsyntax@\else \addto\seventeenpoint{\textfont\eufmfam\seventeeneufm
       \scriptfont\eufmfam\twelveeufm \scriptscriptfont\eufmfam\eighteufm}%
     \addto\twelvepoint{\textfont\eufmfam\twelveeufm
       \scriptfont\eufmfam\eighteufm \scriptscriptfont\eufmfam\sixeufm}%
     \addto\tenpoint{\textfont\eufmfam\teneufm
       \scriptfont\eufmfam\seveneufm
       \scriptscriptfont\eufmfam\fiveeufm}%
     \addto\eightpoint{\textfont\eufmfam\eighteufm
       \scriptfont\eufmfam\sixeufm
       \scriptscriptfont\eufmfam\fiveeufm}%
   \fi
 \fi
 \ifx\undefined\eufbfam
 \else \font@\seventeeneufb=eufb10 scaled \magstep3
   \font@\twelveeufb=eufb10 scaled \magstep1
   \font@\eighteufb=eufb8 \font@\sixeufb=eufb6
   \ifsyntax@\else \addto\seventeenpoint{\textfont\eufbfam\seventeeneufb
       \scriptfont\eufbfam\twelveeufb \scriptscriptfont\eufbfam\eighteufb}%
     \addto\twelvepoint{\textfont\eufbfam\twelveeufb
       \scriptfont\eufbfam\eighteufb \scriptscriptfont\eufbfam\sixeufb}%
     \addto\tenpoint{\textfont\eufbfam\teneufb
       \scriptfont\eufbfam\seveneufb
       \scriptscriptfont\eufbfam\fiveeufb}%
     \addto\eightpoint{\textfont\eufbfam\eighteufb
       \scriptfont\eufbfam\sixeufb
       \scriptscriptfont\eufbfam\fiveeufb}%
   \fi
 \fi
 \ifx\undefined\eusmfam
 \else \font@\seventeeneusm=eusm10 scaled \magstep3
   \font@\twelveeusm=eusm10 scaled \magstep1
   \font@\eighteusm=eusm8 \font@\sixeusm=eusm6
   \ifsyntax@\else \addto\seventeenpoint{\textfont\eusmfam\seventeeneusm
       \scriptfont\eusmfam\twelveeusm \scriptscriptfont\eusmfam\eighteusm}%
     \addto\twelvepoint{\textfont\eusmfam\twelveeusm
       \scriptfont\eusmfam\eighteusm \scriptscriptfont\eusmfam\sixeusm}%
     \addto\tenpoint{\textfont\eusmfam\teneusm
       \scriptfont\eusmfam\seveneusm
       \scriptscriptfont\eusmfam\fiveeusm}%
      \addto\eightpoint{\textfont\eusmfam\eighteusm
       \scriptfont\eusmfam\sixeusm
       \scriptscriptfont\eusmfam\fiveeusm}%
   \fi
 \fi
 \ifx\undefined\eusbfam
 \else \font@\seventeeneusb=eusb10 scaled \magstep3
   \font@\twelveeusb=eusb10 scaled \magstep1
   \font@\eighteusb=eusb8 \font@\sixeusb=eusb6
   \ifsyntax@\else \addto\seventeenpoint{\textfont\eusbfam\seventeeneusb
       \scriptfont\eusbfam\twelveeusb \scriptscriptfont\eusbfam\eighteusb}%
     \addto\twelvepoint{\textfont\eusbfam\twelveeusb
       \scriptfont\eusbfam\eighteusb \scriptscriptfont\eusbfam\sixeusb}%
     \addto\tenpoint{\textfont\eusbfam\teneusb
       \scriptfont\eusbfam\seveneusb
       \scriptscriptfont\eusbfam\fiveeusb}%
     \addto\eightpoint{\textfont\eusbfam\eighteusb
       \scriptfont\eusbfam\sixeusb
       \scriptscriptfont\eusbfam\fiveeusb}%
   \fi
 \fi
 \ifx\undefined\eurmfam
 \else \font@\seventeeneurm=eurm10 scaled \magstep3
   \font@\twelveeurm=eurm10 scaled \magstep1
   \font@\eighteurm=eurm8 \font@\sixeurm=eurm6
   \ifsyntax@\else \addto\seventeenpoint{\textfont\eurmfam\seventeeneurm
       \scriptfont\eurmfam\twelveeurm \scriptscriptfont\eurmfam\eighteurm}%
     \addto\twelvepoint{\textfont\eurmfam\twelveeurm
       \scriptfont\eurmfam\eighteurm \scriptscriptfont\eurmfam\sixeurm}%
     \addto\tenpoint{\textfont\eurmfam\teneurm
       \scriptfont\eurmfam\seveneurm
       \scriptscriptfont\eurmfam\fiveeurm}%
     \addto\eightpoint{\textfont\eurmfam\eighteurm
       \scriptfont\eurmfam\sixeurm
       \scriptscriptfont\eurmfam\fiveeurm}%
   \fi
 \fi
 \ifx\undefined\eurbfam
 \else \font@\seventeeneurb=eurb10 scaled \magstep3
   \font@\twelveeurb=eurb10 scaled \magstep1
   \font@\eighteurb=eurb8 \font@\sixeurb=eurb6
   \ifsyntax@\else \addto\seventeenpoint{\textfont\eurbfam\seventeeneurb
       \scriptfont\eurbfam\twelveeurb \scriptscriptfont\eurbfam\eighteurb}%
     \addto\twelvepoint{\textfont\eurbfam\twelveeurb
       \scriptfont\eurbfam\eighteurb \scriptscriptfont\eurbfam\sixeurb}%
     \addto\tenpoint{\textfont\eurbfam\teneurb
       \scriptfont\eurbfam\seveneurb
       \scriptscriptfont\eurbfam\fiveeurb}%
     \addto\eightpoint{\textfont\eurbfam\eighteurb
       \scriptfont\eurbfam\sixeurb
       \scriptscriptfont\eurbfam\fiveeurb}%
   \fi
 \fi
 \ifx\undefined\cmmibfam
 \else \font@\seventeencmmib=cmmib10 scaled \magstep3
   \font@\twelvecmmib=cmmib10 scaled \magstep1
   \font@\eightcmmib=cmmib8 \font@\sixcmmib=cmmib6
   \ifsyntax@\else \addto\seventeenpoint{\textfont\cmmibfam\seventeencmmib
       \scriptfont\cmmibfam\twelvecmmib \scriptscriptfont\cmmibfam\eightcmmib}%
     \addto\twelvepoint{\textfont\cmmibfam\twelvecmmib
       \scriptfont\cmmibfam\eightcmmib \scriptscriptfont\cmmibfam\sixcmmib}%
     \addto\tenpoint{\textfont\cmmibfam\tencmmib
       \scriptfont\cmmibfam\sevencmmib
       \scriptscriptfont\cmmibfam\fivecmmib}%
     \addto\eightpoint{\textfont\cmmibfam\eightcmmib
       \scriptfont\cmmibfam\sixcmmib
       \scriptscriptfont\cmmibfam\fivecmmib}%
   \fi
 \fi
 \ifx\undefined\cmbsyfam
 \else \font@\seventeencmbsy=cmbsy10 scaled \magstep3
   \font@\twelvecmbsy=cmbsy10 scaled \magstep1
   \font@\eightcmbsy=cmbsy8 \font@\sixcmbsy=cmbsy6
   \ifsyntax@\else \addto\seventeenpoint{\textfont\cmbsyfam\seventeencmbsy
       \scriptfont\cmbsyfam\twelvecmbsy \scriptscriptfont\cmbsyfam\eightcmbsy}%
     \addto\twelvepoint{\textfont\cmbsyfam\twelvecmbsy
       \scriptfont\cmbsyfam\eightcmbsy \scriptscriptfont\cmbsyfam\sixcmbsy}%
     \addto\tenpoint{\textfont\cmbsyfam\tencmbsy
       \scriptfont\cmbsyfam\sevencmbsy
       \scriptscriptfont\cmbsyfam\fivecmbsy}%
     \addto\eightpoint{\textfont\cmbsyfam\eightcmbsy
       \scriptfont\cmbsyfam\sixcmbsy
       \scriptscriptfont\cmbsyfam\fivecmbsy}%
   \fi
 \fi
 %
 %	Now we set the bibliography style and prevent the user from undoing
 %	our setting!
 %
 \refstyle{B}\let\refstyle=\eat@
 %
 %	Redefine the XPPT-specific.
 %
 \def\citesep@{, }%
 \let\XPPTcite@=\cite@ \let\XPPTincite@=\incite@
 \def\cite@{\def\citeyr####1{\/\penalty\exhyphenpenalty\ \rom{(####1)}}%
  \XPPTcite@}%
 \def\incite@{\def\citeyr####1{\/\penalty\exhyphenpenalty\ \rom{####1}}%
  \XPPTincite@}
%
 \let\topmatter\relax}
%
%      \chapter is from AMSPPT.STY but we use \tenpoint for CHAPTER...
%
\def\chapter{\let\savedef@\chapter
  \def\chapter##1{\let\chapter\savedef@
  \leavevmode\hskip-\leftskip
   \rlap{\vbox to\z@{\vss\centerline{\tenpoint
   \frills@{CHAPTER\space\afterassignment\chapterno@
       \global\chaptercount@=}%
   ##1\unskip}\baselineskip2pc\null}}\hskip\leftskip}%
 \nofrillscheck\chapter}
%
%	\title is from AMSPPT.STY but we skip the uppercasing and use italics
%	of the new \seventeenpoint defined above...we ignore \nofrills.
%
\def\title{\let\savedef@\title
 \def\title##1\endtitle{\let\title\savedef@
   \global\setbox\titlebox@\vtop{\seventeenpoint\it
   \raggedcenter@
   \frills@{}{##1}\endgraf}%
 \ifmonograph@ \edef\next{\the\leftheadtoks}%
    \ifx\next\empty
    \leftheadtext{##1}\fi
 \fi
 \edef\next{\the\rightheadtoks}\ifx\next\empty \rightheadtext{##1}\fi
 }%
 \nofrillscheck\title}
%
%	JFPPPT requires a separate block like the following for each
%	different affiliation and address:
%
%		\author AUTHOR1 and AUTHOR2... \endauthor	REQUIRED
%		\affil ... \endaffil				REQUIRED
%		\address ... \endaddress			REQUIRED
%		\curraddr ... \endcurraddr			OPTIONAL
%		\email ... \endemail				OPTIONAL
%
%	Authors at the same affiliation and address can be grouped as
%	indicated or specified individually (duplicating the \affil and
%	\address commands).
%
%	This works by two mechanisms: (1) \author and \affil are collected
%	in the sequence they appear as they should appear in the final
%	output and (2) \author make the actual name(s) available for use in
%	the corresponding \address if more than one address is specified.
%
%	The format of the author/affil pairs is as follows:
%
%                       1.5pc
%                    +--------+
%                    | AUTHOR |
%                    +--------+
%                       0.5pc
%                    +--------+
%                    | AFFIL  |
%                    +--------+
%
%	THIS MEANS THAT \preaffil IS NOT AVAILABLE!
%
\def\author#1\endauthor{\global\setbox\authorbox@
 \vbox{\ifvoid\authorbox@\else\unvbox\authorbox@\vskip1.5pcplus.5pc\relax\fi
  \tenpoint\smc \raggedcenter@#1\endgraf}\relaxnext@
 \def\theauthor@{#1}%
 \edef\next{\the\leftheadtoks}%
 \ifx\next\empty\leftheadtext{#1}\fi}
%
%	...\affil is 8pt italic...
%
\def\affil#1\endaffil{\global\setbox\authorbox@
 \vbox{\ifvoid\authorbox@\else\unvbox\authorbox@\vskip.5pcplus.5pc\relax\fi
  \eightpoint\it\raggedcenter@#1\endgraf}\relaxnext@}
%
%	...\address includes author if there is more than one address, and
%	uses hanging indentation and 8pt roman...
%
\def\address#1\endaddress{\global\advance\addresscount@\@ne
 \ifnum\addresscount@<\tw@ \global\let\addressauthor@=\eat@
 \else \global\let\addressauthor@=\relax \fi
 \edef\next@##1##2{%
  ##1{##2{{\noexpand\it\theauthor@\unskip\noexpand\/}: }#1\par}}%
 \next@{\expandafter\gdef\csname address\number\addresscount@\endcsname}%
  {\nobreak\vskip12\p@ minus6\p@
   \hangindent\parindent\noindent\eightpoint\addressauthor@}}
%
%	...\curraddr is similar...
%
\def\curraddr{\let\savedef@\curraddr
  \def\curraddr##1\endcurraddr{\let\curraddr\savedef@
  \toks@\expandafter\expandafter\expandafter{%
       \csname address\number\addresscount@\endcsname}%
  \toks@@{##1}%
  \expandafter\xdef\csname address\number\addresscount@\endcsname
  {\the\toks@\endgraf\noexpand\nobreak
    \hangindent\parindent\noindent{\noexpand\rm
    \frills@{{\noexpand\it Current address\noexpand\/}:\space}%
    \def\noexpand\usualspace{\space}\the\toks@@\unskip}}}%
  \nofrillscheck\curraddr}
%
%	...and \email is unindented with the address in 8pt typewriter.
%
\def\email{\let\savedef@\email
  \def\email##1\endemail{\let\email\savedef@
  \toks@{\def\usualspace{{\it\enspace}}\endgraf
   \hangindent\parindent\noindent\eightpoint}%
  \toks@@{##1\par}%
  \expandafter\xdef\csname email\number\addresscount@\endcsname
  {\the\toks@\frills@{{\noexpand\it E-mail address\noexpand\/}:%
     \noexpand\enspace\noexpand\tt}\the\toks@@}}%
  \nofrillscheck\email}
%%
%%	Put "jfpppt preprint." and DATE where JFP puts the issue.
%%
\def\jfppptidentification#1{\eightpoint{\tt jfpppt} preprint, #1.}
\def\date#1\enddate{\gdef\thedate@{#1\unskip}}
%
%	JFP has the abstract between rules with centered, bold `Abstract,'
%	but without margins.  JFP also has a `Capsule Review' in the same
%	format but this is irrelevant for preprints.
%
\let\abstract\relax
\def\abstract{\let\savedef@\abstract
 \def\abstract{\let\abstract\savedef@
  \setbox\abstractbox@\vbox\bgroup
   \eightpoint\noindent$$\vbox\bgroup
    \def\envir@end{\endabstract}\def\usualspace{}\noindent
    \frills@{{\centerline{\bf Abstract}\smallskip\noindent}}}
 \nofrillscheck\abstract}
\def\endabstract{\par\unskip\egroup$$\egroup}
%
%	Since there is no table of contents in JFP papers, we just make a
%	very compressed one in small type for preprints...that just contain
%	the \title and any \specialhead and \head commands in the space of
%	the `Capsule Review.'
%
\begingroup\let\title=\relax \let\specialhead=\relax \let\head=\relax
	\let\subhead=\relax \let \subsubhead=\relax
 \gdef\newtocdefs{%
   \def \title##1\endtitle{%
	\penaltyandskip@\z@\smallskipamount
	\hangindent\wd\tocheadbox@\noindent{\bf##1}%
	\def\specialheadintro{\par\smallskip\hang\noindent}%
	\def\headintro{\par\smallskip\noindent}}%
   \def \chapter##1{%
	Chapter \uppercase\expandafter{%
		\romannumeral##1.\unskip}\enspace}%
   \def\specialheadintro{\par\smallskip\hang\noindent}%
   \def \specialhead##1 ##2\endspecialhead{\specialheadintro
	\if\notempty{##1}{##1\unskip\enspace}\fi
        {\bf\ignorespaces##2\unskip}%
	\def\specialheadintro{\unskip;\par\smallskip\hang\noindent}%
	\if\notempty{##1##2}\def\headintro{\unskip,\hskip.5em plus.5em\relax}
	\else\def\headintro{\noindent}\fi}%
   \def\headintro{\par\smallskip\noindent}%
   \def \head##1 ##2\endhead{\headintro
	\if\notempty{##1}{##1\unskip\enspace}\fi
        {\ignorespaces##2\unskip}%
	\def\specialheadintro{\unskip;\par\smallskip\hang\noindent}%
	\def\headintro{\unskip,\hskip.5em plus.5em\relax}}%
   \def \subhead##1 ##2\endsubhead{}%
   \def \subsubhead##1 ##2\endsubsubhead{}}\endgroup
%
%	Subsequently \toc@ is much simpler...
%
\def\toc@#1{\relaxnext@
   \def\page##1{~{\rom{(##1)}}}%
 \DN@{\ifx\next\nofrills\DN@\nofrills{\nextii@}%
      \else\DN@{\nextii@{{#1}}}\fi
      \next@}%
 \DNii@##1{%
 \ifmonograph@\bgroup\else\setbox\tocbox@\vbox\bgroup
   \eightpoint\noindent$$\vbox\bgroup
   \centerline{\headfont@\ignorespaces##1\unskip}\nobreak
   \vskip\belowheadskip \fi
   \newtocdefs
 }%
 \FN@\next@}
%
\def\endtoc{\ifmonograph@\else.\par\egroup$$\fi\egroup}
%
%	\dedicatory given more space and in 8pt roman.
%
\def\dedicatory#1\enddedicatory{\def\preabstract{%
 {\vskip1.5pcplus.5pc\line{\eightpoint\raggedcenter@#1\endgraf}}}}
%
%	Finally, \endtopmatter copied from AMSPPT.STY and modified to fit
%	with the format of JFP.  Here is the generated layout:
%
%
%       ID DATE
%       | -2pc vskip
%       + + - - - - - - - - - - - - - - - - - top of type area
%         |                            	      (according to \pageheight)
%         | 4pc baselineskip
%         |   + - - - - - - - - - - - +
%       __|___|_______ TITLE _________|______
%             | WHICH MAY BE SEVERAL  |
%             |      LINES LONG       |
%             + - - - - - - - - - - - +
%			 2pc
%                    + - - - - +
%                    | AUTHORS |
%                    |    +    |
%                    | AFFILS  |
%                    + - - - - +
%                        2pc
%                  + - - - - - - +
%                  | DEDICATORY  |
%                  + - - - - - - +
%                        2pc
%       ------------------------------------- rules
%                      ABSTRACT
%       -------------------------------------
%                        TOC
%       -------------------------------------
%                        2pc
%       + - - - - - - - - - - - - - - - - - +
%       |           START OF TEXT           |
%       |                                   |
%
%	...
%
%	Footnotes for SUBJCLASS, KEYWORDS, and THANKS.
%
\outer\def\endtopmatter{\add@missing\endabstract
 \edef\next{\the\leftheadtoks}\ifx\next\empty
  \expandafter\leftheadtext\expandafter{\the\rightheadtoks}\fi
 \ifmonograph@\else
   \ifx\thesubjclass@\empty\else \makefootnote@{}{\thesubjclass@}\fi
   \ifx\thekeywords@\empty\else \makefootnote@{}{\thekeywords@}\fi
   \ifx\thethanks@\empty\else \makefootnote@{}{\thethanks@}\fi
 \fi
 \pretitle
 \begingroup
  \ifmonograph@ \topskip7pc %
  \else \topskip4pc
   \vbox to\z@{\vskip-6pc\line{\vbox to8.5\p@{}%
     \noindent\jfppptidentification\thedate@\hss}\vss}\nointerlineskip
  \fi
  \box\titlebox@
 \endgroup
 \preauthor
 \ifvoid\authorbox@\else \vskip2pcplus1pc\box\authorbox@\fi
 \preabstract
 \ifvoid\abstractbox@\ifvoid\tocbox@\else\vskip2pcplus1pc \hrule\medskip \fi
 \else\vskip2pcplus1pc \hrule\medskip
  \unvbox\abstractbox@ \medskip\hrule\medskip \fi
 \ifvoid\tocbox@\else \unvbox\tocbox@ \medskip\hrule\medskip \fi
 \prepaper
 \vskip2pcplus1pc\relax
}
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%      -6- SECTION HEADINGS
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\message{section heads,}
%
%	\specialhead outputs a centered, enlarged italic title...
%
\def\specialheadfont@{\it}
\let\specialhead\relax
\outer\def\specialhead#1\endspecialhead{%
  \add@missing\endroster \add@missing\enddefinition
  \add@missing\enddemo \add@missing\endexample
  \add@missing\endproclaim
  \penaltyandskip@{-200}\aboveheadskip
  {\twelvepoint\specialheadfont@\raggedcenter@\interlinepenalty\@M
   #1\endgraf}\nobreak\vskip\belowheadskip}
%
%	\head uses bold and \subhead uses italic...
%
\def\headfont@{\bf}
\def\subheadfont@{\it}
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%      -7- THEOREM ENVIRONMENTS AND SIMILAR STRUCTURES
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\message{theorems/proofs/definitions/remarks,}
%
%	\proclaim and \remark are just like in AMSPPT except that the
%	headings and the body of \proclaim are in italic...
%
\def\proclaimheadfont@{\it}
\let\proclaim\relax
\outer\def\proclaim{%
  \let\savedef@\proclaim \let\proclaim\relax
  \add@missing\endroster \add@missing\enddefinition
  \add@missing\endproclaim \envir@stack\endproclaim
  \def\proclaim##1{\restoredef@\proclaim
    \penaltyandskip@{-100}\medskipamount\varindent@
    {\def\usualspace{{\proclaimheadfont@\enspace}}\proclaimheadfont@
     \ignorespaces##1\unskip\frills@{.\enspace}}\it\ignorespaces}%
  \nofrillscheck\proclaim}
%
\def\remarkheadfont@{\it}
%
%	\qed should give a black square!
%
\ifx\undefined\blacksquare
  \def\blacksquare{\vrule width.6em height.5em depth.1em\relax}\fi
\def\qed{\ifhmode\unskip\nobreak\fi\quad
 \ifmmode\blacksquare\else$\m@th\blacksquare$\fi}
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%      -8- ROSTERS
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\message{rosters,}
%
%	The format of rosters is slighty changed: items are numbered by
%	parenthesised minuscules.
%
\def\therosteritem#1{\rom{(\romannumeral#1)}}
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%      -9- FOOTNOTES
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\message{footnotes,}
%
%	Footnotes are as in AMSPPT.STY but without indentation except that a
%	little space is inserted after the footnote mark...
%
\def\makefootnote@#1#2{\insert\footins
 {\interlinepenalty\interfootnotelinepenalty
  \eightpoint\splittopskip\ht\strutbox\splitmaxdepth\dp\strutbox
  \floatingpenalty\@MM\leftskip\z@\rightskip\z@
  \spaceskip\z@\xspaceskip\z@
  {\DN@{#1}\noindent\next@\ifx\next@\empty\else\,\fi}%
  \footstrut\ignorespaces#2\unskip\lower\dp\strutbox
  \vbox to\dp\strutbox{}}}
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%      -12- MISCELLANEOUS FORMATTING MACROS
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\message{miscellaneous,}
%
%	\cite should just duplicate its argument...
%
\def\cite#1{#1}
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%      -15- OUTPUT ROUTINE
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\message{output routine}
%
%	The page number should be in 10pt roman and the headline in 10pt
%	italics...
%
\def\foliofont@{\tenrm}
\def\headlinefont@{\tenpoint\it}
%
%	Modify plain TeX's \makeheadline to raise 2pc above the top...
%
\def\makeheadline{\vbox to\z@{%
 \vskip-2pc \line{\vbox to8.5\p@{}\the\headline}\vss}\nointerlineskip}
%
%	The headings are not uppercased...
%
\def\leftheadtext{\let\savedef@\leftheadtext
  \def\leftheadtext##1{\let\leftheadtext\savedef@
    \leftheadtoks\expandafter{\frills@\relax{##1}}%
    \mark{\the\leftheadtoks\noexpand\else\the\rightheadtoks}
    \ifsyntax@\setboxz@h{\def\\{\unskip\space\ignorespaces}%
        \headlinefont@##1}\fi}%
  \nofrillscheck\leftheadtext}
%
\def\rightheadtext{\let\savedef@\rightheadtext
  \def\rightheadtext##1{\let\rightheadtext\savedef@
    \rightheadtoks\expandafter{\frills@\relax{##1}}%
    \mark{\the\leftheadtoks\noexpand\else\the\rightheadtoks}%
    \ifsyntax@\setboxz@h{\def\\{\unskip\space\ignorespaces}%
        \headlinefont@##1}\fi}%
  \nofrillscheck\rightheadtext}
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%	THE END
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\csname jfpppt.sty\endcsname \endinput
%
% $Log: jfpppt.sty,v $
% Revision 2.3  1993/09/14  15:31:21  kris
% Redocumented to reflect current distribution.
%
% Revision 2.2  1992/07/29  23:47:25  kris
% Discontinued; look in ../phd for current stuff :-)
%
% Revision 2.1  1992/03/22  03:52:31  kris
% Fits gos.tex[2.1]...
%
% Revision 1.27  1992/03/12  02:23:04  kris
% day -1...
%
% Revision 1.26  1992/03/10  03:41:55  kris
% Arghg....
%
% Revision 1.25  1992/01/28  07:22:49  kris
% Intermediate; used with XPPT [1.25]...
%
% Revision 1.21  1992/01/15  03:25:01  kris
% Many bug fixes and some cleaning up...
%
% Derived from stuff in gos/common.tex.
