  %% Version of July 23 1992 
  %% Version of January 21 1992 logs residual mathsurround problems
  %% Version of November 1991 for AMS Fonts 2.1
 %%%%% osudeG.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% This is the book style file for the monograph
  %% series of the Ohio State University
  %% Mathematical Research Institute,
  %% published by de Gruyter Verlag, Berlin

 %%%%% Authorship:
  %% written by L. C. Siebenmann 1990-1991
  %% using style specs and some macros from de Gruyter Vlg
  %% plus extensive testing and editing by W. D. Neumann

 %%%%% Permissions and restrictions:
  %% The authors grant the free use and circulation of the
  %% macros included herein subject to the conditions:
  %%   (a) reuse in whole or in part must be clearly acknowledged
  %%   (b) the unique graphics design features of page layout
  %%   embodied in this style should be drastically altered on reuse
  %%   (to avoid de Gruyter Verlag book "look-alikes".)
  %% In case of doubt concerning the interpretation
  %% of these conditions, please contact the series editors
  %% c/o Prof. W. D. Neumann, (address below).

 %%%%% Support:
  %% Suggestions and bug reports will be gratefully received.
  %% Contacts:  For all problems and queries, please first
  %% contact the editors of your series volume.
  %%
  %% While the series is young,
  %% there will be some texpert attention from:
  %%
  %%% W. Neumann
  %% Math Dept OSU,
  %% Rm 100, W. 17th Ave.
  %% Columbus Ohio 43201, USA
  %%
  %% Email: neumann@function.mps.ohio-state.edu
  %%
  %%% Laurent Siebenmann
  %% Mathematique, Bat. 425,
  %% Univ de Paris-Sud,
  %% 91405-Orsay, France
  %%
  %% lcs@matups.matups.fr
  %% siebenma@FRLAL51.bitnet
  %% siebenmann@LALCLS.decnet.cern.ch
  %% LS@FrMaP711.bitnet
  %%
  %% Fax number: 33-1-6941-6221

 %%%%% For Plain TeX, and (optionally) old AmSTeX
  %% (prior to version 2.0 of 1990)
  %% Mild revision is required for version 2.0 of AmSTeX
  %% (which differs in fonts for the most part).

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%% FORBID REREADING %%%%%

  \ifx\osudeGloaded\MYundefined
    \immediate\write16{Now loading osudeG.sty.}
  \else
    \immediate\write16{osudeG.sty ALREADY loaded.}
  \endinput\fi

  \def\osudeGloaded{\relax}% now loaded

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %%% Beyond this point we use some control sequences
  %%% that are 'padlocked'  with @ of category 11

  \chardef\CatAt\the\catcode`\@
  \catcode`\@=11

 %%temporarily suppress Plain's logging of allocations
 \let\wlog@ld\wlog
 \def\wlog#1{\relax}

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%% Tools
 %%
 %% ORDERED-SUBSET INCLUSION RELATION
 %% syntax \IN@0...@...@ %
 %% hopefully 0 will never change its catcode
 %% \IN@0#1@#2@ : is  #1 in #2
 %% sets \ifIN@ as result code
 %%
 %% cf. Spivak's \in@#1#2
 %% degeneracy bugs of Spivak's version (fixed??):
 %% \in@{}{1} gives false tho \in@ {}{21} gives true
 %% \in@{}{} crashes
 %%

 \newif\ifIN@
 \def\m@rker{\m@@rker}
 \def\IN@{\expandafter\INN@\expandafter}
 \long\def\INN@0#1@#2@{\long\def\NI@##1#1##2##3\ENDNI@
    {\ifx\m@rker##2\IN@false\else\IN@true\fi}%
     \expandafter\NI@#2@@#1\m@rker\ENDNI@}
     %% need @@ if both spaces or null
     %% 0 allows letter or space as #1 in syntax
     %% condensations possible \ENDNI@ and @@ to \NI@

  %%%  \SPLIT@@0#1@#2@  :  Split 1st exp of #2 at 1st exp of #1
   %% \Initialtoks@ , \Terminaltoks@ will contain pieces
  \newtoks\Initialtoks@  \newtoks\Terminaltoks@
  \def\SPLIT@{\expandafter\SPLITT@\expandafter}
  \def\SPLITT@0#1@#2@{\def\TTILPS@##1#1##2@{%
     \Initialtoks@{##1}\Terminaltoks@{##2}}\expandafter\TTILPS@#2@}

 %%%% MACROS TO TRIM  \ForeTrim@0#1@ and \Trim@0#1@
   %% result appears in \Trimtoks@
   %% LIMITATION: assume no multiple spaces to trim

  \newtoks\Trimtoks@

  %%% \ForeTrim@0#1@ trims initial space of first erpansion of #1
   %% #1 of form \the\toks0 or \mymacro
 \def\ForeTrim@{\expandafter\ForeTrim@@\expandafter}
 \def\ForePrim@0 #1@{\Trimtoks@{#1}}
 \def\ForeTrim@@0#1@{\IN@0\m@rker. @\m@rker.#1@%
     \ifIN@\ForePrim@0#1@%
     \else\Trimtoks@\expandafter{#1}\fi}
   %%\m@rker expands here to \m@@rker since spot initial,
   %% so no confusuion with \m@rker

  %%% \Trim@0#1@ trims init and terminal spaces
   %% Same syntax.
   %% Warns if internal spaces found.
   %%
  \def\Trim@0#1@{%
      \ForeTrim@0#1@%
      \IN@0 @\the\Trimtoks@ @%
        \ifIN@
             \SPLIT@0 @\the\Trimtoks@ @\Trimtoks@\Initialtoks@
             \IN@0\the\Terminaltoks@ @ @%
                 \ifIN@
                 \else \Trimtoks@ {FigNameWithSpace}%
                 \fi
        \fi
      }
 %%% End Tools

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %%%%% FONTS %%%%%
  %%  Will input fonts after

 \def\LoadTexturesPSFonts{%
  \def\Times{Times  }
  \def\TimesI{TimesI  }
  \def\TimesB{TimesB  }
  \def\TimesBI{TimesBI  }
  \def\HelveticaN{HelveticaN }
  \input osuPSfnt.sty }

 \def\LoadSunPSFonts{%
  \def\Times{times  }
  \def\TimesI{timesi  }
  \def\TimesB{timesb  }
  \def\TimesBI{timesbi  }
  \def\HelveticaN{helvc }
  \input osuPSfnt.sty }

 \def\LoadArborPSFonts{%also version PS ===> PSM
  \def\Times{PSTIMR  }
  \def\TimesI{PSTIMI  }
  \def\TimesB{PSTIMB  }
  \def\TimesBI{PSTIMBI  }
  \def\HelveticaN{PSHELN }
  \input osuPSfnt.sty }
  \let\LoaddeGPSFonts\LoadArborPSFonts

 \def\LoadOzPSFonts{%
  \def\Times{ps-times-r  }
  \def\TimesI{ps-times-i  }
  \def\TimesB{ps-times-b  }
  \def\TimesBI{ps-times-bi  }
  \def\HelveticaN{ps-helvetica-n }
 \input osuPSfnt.sty }

 \def\LoadBerryPSFonts{%  Karl Berry's naming convention, proposed
  \def\Times{ptmr  }   %  as a standard, and adopted by dvips
  \def\TimesI{ptmri  } 
  \def\TimesB{ptmb  }
  \def\TimesBI{ptmbi  }
  \def\HelveticaN{phvrrn }
  \input osuPSfnt.sty }

  \def\LoadCMFonts{\input osuCMfnt.sty }

  %%% Math Bolds
  \font\titlebold=cmbx12 scaled 1200
  \font\twelvebold=cmbx12
  \font\tenbold=cmbx10
  \font\ninebold=cmbx9
  \font\sevenbold=cmbx7
  \font\fivebold=cmbx5

  %%% AMS FONTS 2.1 %%%  common to PS and CMR;  uses padlock @
  \input amssym.def \input amssym
  %%% point sizes not loaded by amssym.def:
     \font\titlemsa=msam10 at 14.4pt
     \font\titlemsb=msbm10 at 14.4pt
     \font\titleeufm=eufm10 at 14.4pt
     \font\twelvemsa=msam10 scaled 1200
     \font\twelvemsb=msbm10 scaled 1200
     \font\twelveeufm=eufm10 scaled 1200
     \font\ninemsa=msam9
     \font\ninemsb=msbm9
     \font\nineeufm=eufm9

   %%% Cyrillic fonts (for accents and input, see ams cyr doc)
   \ifx\cyrfam\undefined
   \else
     \immediate\write16{}%
     \message{ !!! cyr fonts already defined. !!! }
     \message{ --- edit out superfluous font defs? }
   \fi
   \newfam\cyrfam
       \font\titlecyr=wncyr10 scaled 1440 %%% no caps?
       \font\twelvecyr=wncyr10 scaled 1200
       \font\tencyr=wncyr10
       \font\ninecyr=wncyr9
       \font\sevencyr=wncyr7
       \font\sixcyr=wncyr6
       \font\fivecyr=wncyr5  

   %%% Euler script fonts (replacing caligraphic):
   \ifx\eusmfam\undefined
   \else
     \immediate\write16{}%
     \message{ !!! Euler script fonts already defined. !!! }
     \message{ --- edit out superfluous font defs? }
   \fi
   \newfam\eusmfam
       \font\titleeusm=eusm10 scaled 1440
       \font\twelveeusm=eusm10 scaled 1200
       \font\teneusm=eusm10
       \font\nineeusm=eusm9
       \font\seveneusm=eusm7
       \font\sixeusm=eusm6
       \font\fiveeusm=eusm5  

    \def\cal#1{{\fam\eusmfam\relax#1}}
    \let\Cal\cal

 %%% Some fonts not loaded by plain
    \font\ninemrm=cmr9 %% new name for 9 pt math roman
    \font\ninei=cmmi9
    \font\ninesy=cmsy9 
    \skewchar\ninei='177
    \skewchar\ninesy='60

  \font\twelvemrm=cmr10 at 12pt %% new name
  \font\twelvei=cmmi10 at 12pt
  \font\twelvesy=cmsy10 at 12pt
 % \font\twelveex=cmex10 at 12pt

  \font\titlemrm=cmr10 at 14.4pt %% new name
  \font\titlei=cmmi10 at 14.4pt
  \font\titlesy=cmsy10 at 14.4pt
 % \font\titleex=cmex10 at 14.4pt

 %%%% Miscellanious font definitions

  \def\bi{\tenbi}
  \def\smc{\tensmc}

  \def\Smallfonts{\ninepoint}

  \def\Hfont{\titlepoint\bf}
  \def\Authorfont{\twelvepoint\it}
  \def\HHfont{\twelvepoint\bf}
  \def\HHHfont{\bf}
  \def\Figurefont{\bf}% automatically smaller in 9 point parts
  \def\Bibfont{\tenbf}
  \def\Coordfont{\HeaderFont}% defined in osuPSfnt.sty

  \def \thfont {\bf }
  \def \pffont {\it\itSpacing }
  \def \rkfont {\bf }
  \def \dffont {\bf }
  \def \egfont {\bf }

 %%%%% NINEPOINT %%%%%
 \def\ninepoint{%
  \def\rm{\fam0\ninerm}%
    \textfont0=\ninemrm  \scriptfont0=\sevenrm  \scriptscriptfont0=\fiverm
    \textfont1=\ninei    \scriptfont1=\seveni   \scriptscriptfont1=\fivei
  \def\mit{\fam1\ninei}%
  \def\oldstyle{\fam1\ninei}%
    \textfont2=\ninesy   \scriptfont2=\sevensy  \scriptscriptfont2=\fivesy
  %\def\cal{\fam2\ninesy}%
    \textfont3=\tenex    \scriptfont3=\tenex    \scriptscriptfont3=\tenex
  \def\it{\fam\itfam\nineit}%
    \textfont\itfam=\nineit
  \def\bf{\ifmmode\fam\bffam\else\ninebf\fi}%
    \textfont\bffam=\ninebold 
    \scriptfont\bffam=\sevenbold 
    \scriptscriptfont\bffam=\fivebold%
  \def\msa{\fam\msafam\ninemsa}%
    \textfont\msafam=\ninemsa 
    \scriptfont\msafam=\sevenmsa
    \scriptscriptfont\msafam=\fivemsa%
  \def\msb{\fam\msbfam\ninemsb}%
    \textfont\msbfam=\ninemsb%
    \scriptfont\msbfam=\sevenmsb%
    \scriptscriptfont\msbfam=\fivemsb%
  \def\eufm{\fam\eufmfam\nineeufm}%
    \textfont\eufmfam=\nineeufm
    \scriptfont\eufmfam=\seveneufm
    \scriptscriptfont\eufmfam=\fiveeufm
   \def\eusm{\fam\eusmfam\nineeusm}%
     \textfont\eusmfam=\nineeusm
     \scriptfont\eusmfam=\seveneusm
     \scriptscriptfont\eusmfam=\fiveeusm
   \def\cyr{\fam\cyrfam\ninecyr}%
     \textfont\cyrfam=\ninecyr
     \scriptfont\cyrfam=\sevencyr
     \scriptscriptfont\cyrfam=\sixcyr%%
  \setbox\strutbox=\hbox{\vrule
      height7pt depth3pt width0pt}%
   \baselineskip=10.8pt\rm}

 %%%%% FONTS AT EIGHTPOINT %%%%%
 \let\eightpoint\ninepoint % we do not use eightpoint
                           % but amstex users may have

 %%%%% FONTS AT TENPOINT %%%%%
 \def\tenpoint{%
  \def\rm{\fam0\tenrm}%
    \textfont0=\tenmrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm%
  \def\mit{\fam1\teni}%
  \def\oldstyle{\fam1\teni}%
    \textfont1=\teni   \scriptfont1=\seveni  \scriptscriptfont1=\fivei%
   %\def\cal{\fam2\tensy}%
    \textfont2=\tensy  \scriptfont2=\sevensy \scriptscriptfont2=\fivesy%
    \textfont3=\tenex  \scriptfont3=\tenex   \scriptscriptfont3=\tenex%
  \def\it{\fam\itfam\tenit}%
    \textfont\itfam=\tenit%
  \def\bf{\ifmmode\fam\bffam\else\tenbf\fi}%
    \textfont\bffam=\tenbold% was tenbold for osu
    \scriptfont\bffam=\sevenbold%
    \scriptscriptfont\bffam=\fivebold%
  \def\msa{\fam\msafam\tenmsa}%
    \textfont\msafam=\tenmsa%
    \scriptfont\msafam=\sevenmsa%
    \scriptscriptfont\msafam=\fivemsa%
  \def\msb{\fam\msbfam\tenmsb}%
    \textfont\msbfam=\tenmsb%
    \scriptfont\msbfam=\sevenmsb%
    \scriptscriptfont\msbfam=\fivemsb%
  \def\eufm{\fam\eufmfam\teneufm}%
   \textfont\eufmfam=\teneufm
   \scriptfont\eufmfam=\seveneufm
   \scriptscriptfont\eufmfam=\fiveeufm
   \def\eusm{\fam\eusmfam\teneusm}%
    \textfont\eusmfam=\teneusm
    \scriptfont\eusmfam=\seveneusm
    \scriptscriptfont\eusmfam=\fiveeusm
   \def\cyr{\fam\cyrfam\tencyr}%
    \textfont\cyrfam=\tencyr
    \scriptfont\cyrfam=\sevencyr
    \scriptscriptfont\cyrfam=\sixcyr%%
  \setbox\strutbox=\hbox{\vrule %
      height8.5pt depth3.5ptwidth0pt}%
  \baselineskip=\StdBaselineskip\rm}


 %%%%% FONTS AT TWELVEPOINT %%%%%
 \def\twelvepoint{%
  \def\rm{\fam0\twelverm}%
    \textfont0=\twelvemrm \scriptfont0=\tenmrm \scriptscriptfont0=\sevenrm
    \textfont1=\twelvei   \scriptfont1=\teni   \scriptscriptfont1=\seveni
  \def\mit{\fam1\twelvei}%
  \def\oldstyle{\fam1\twelvei}%
    \textfont2=\twelvesy  \scriptfont2=\tensy  \scriptscriptfont2=\sevensy
   %\def\cal{\fam2\twelvesy}%
    \textfont3=\tenex  \scriptfont3=\tenex  \scriptscriptfont3=\tenex
  \def\it{\fam\itfam\twelveit}%
    \textfont\itfam=\twelveit
  \def\bf{\ifmmode\fam\bffam\else\twelvebf\fi}%
    \textfont\bffam=\twelvebold
    \scriptfont\bffam=\tenbold%
    \scriptscriptfont\bffam=\sevenbold%
  \def\msa{\fam\msafam\twelvemsa}%
    \textfont\msafam=\twelvemsa%
    \scriptfont\msafam=\tenmsa%
    \scriptscriptfont\msafam=\sevenmsa%
  \def\msb{\fam\msbfam\twelvemsb}%
    \textfont\msbfam=\twelvemsb%
    \scriptfont\msbfam=\tenmsb%
    \scriptscriptfont\msbfam=\sevenmsb%
  \def\eufm{\fam\eufmfam\twelveeufm}%
   \textfont\eufmfam=\twelveeufm
   \scriptfont\eufmfam=\teneufm
   \scriptscriptfont\eufmfam=\seveneufm
   \def\eusm{\fam\eusmfam\twelveeusm}%
    \textfont\eusmfam=\twelveeusm
    \scriptfont\eusmfam=\teneusm
    \scriptscriptfont\eusmfam=\seveneusm
   \def\cyr{\fam\cyrfam\tencyr}%
    \textfont\cyrfam=\twelvecyr
    \scriptfont\cyrfam=\tencyr
    \scriptscriptfont\cyrfam=\sevencyr%%
  \setbox\strutbox=\hbox{\vrule
      height10.2pt depth4.55pt width0pt}%
  \baselineskip=14pt\rm}


 %%%%% FONTS AT TITLEPOINT %%%%%
 \def\titlepoint{%
  %\def\rm{\fam0\titlemrm}%
    \textfont0=\titlemrm \scriptfont0=\twelvemrm \scriptscriptfont0=\tenmrm
    \textfont1=\titlei   \scriptfont1=\twelvei   \scriptscriptfont1=\teni
  \def\mit{\fam1\titlei}%
  \def\oldstyle{\fam1\titlei}%
    \textfont2=\titlesy  \scriptfont2=\twelvesy  \scriptscriptfont2=\tensy
  %\def\cal{\fam2\titlesy}%
    \textfont3=\tenex% math ext not avail in varying sizes??
    \scriptfont3=\tenex
    \scriptscriptfont3=\tenex
  \def\it{\fam\itfam\titleit}%
    \textfont\itfam=\titleit
  \def\bf{\ifmmode\fam\bffam\else\titlebf\fi}%
    \textfont\bffam=\titlebold
    \scriptfont\bffam=\twelvebold%
    \scriptscriptfont\bffam=\tenbold%
  \def\msa{\fam\msafam\titlemsa}%
    \textfont\msafam=\titlemsa%
    \scriptfont\msafam=\twelvemsa%
    \scriptscriptfont\msafam=\tenmsa%
  \def\msb{\fam\msbfam\titlemsb}%
    \textfont\msbfam=\titlemsb%
    \scriptfont\msbfam=\twelvemsb%
    \scriptscriptfont\msbfam=\tenmsb%
  \def\eufm{\fam\eufmfam\titleeufm}%
    \textfont\eufmfam=\titleeufm
    \scriptfont\eufmfam=\twelveeufm
    \scriptscriptfont\eufmfam=\teneufm
   \def\eusm{\fam\eusmfam\titleeusm}%
     \textfont\eusmfam=\titleeusm
     \scriptfont\eusmfam=\twelveeusm
     \scriptscriptfont\eusmfam=\teneusm
   \def\cyr{\fam\cyrfam\tencyr}%
    \textfont\cyrfam=\titlecyr
    \scriptfont\cyrfam=\twelvecyr
    \scriptscriptfont\cyrfam=\tencyr%%
  \setbox\strutbox=\hbox{\vrule
      height12.3pt depth5.54pt width0pt}%
  \baselineskip=16pt\rm}

 %%%% RUNNING HEADINGS
 \newbox\AuthorBox\newbox\TitleBox
 \def\SetAuthorHead#1{%
     \setbox\AuthorBox=\hbox{\ninepoint \HeaderFont
           \ignorespaces\frenchspacing#1\unskip}}
 \def\SetTitleHead#1{%
     \setbox\TitleBox=\hbox{\ninepoint \HeaderFont
           \ignorespaces\frenchspacing#1\unskip}}

 %% Italic Spacing Correction (defined in osuPSfnt.sty)
  \def\itSpacing{\relax}
  \def\itSpacingOff{\relax}


 %%%%% CHAPTER AND SECTION HEADINGS %%%%%
  %%
  %% Chapter heading macro
  %% sets the automatic footnote count register to 0
  %%
 %%% Type in the chapter head like this: %
  %%
  %% \H  <The article title>
  %%
  %% M. Jones  \%  the author, initials first
  %%
  %%  <The text>
  %%
 %%% The unorthodox but agreeable syntax
  %% (with required blank lines) is a de Gruyter contribution.
  %% Likewise for \HH, \HHH.

 \def\Hrule{\hrule width0pt height0pt}

 %% skip used around proclamations, after section headings,
  % and before subsection-headings:
  \newskip\ProcSkip \ProcSkip 8pt plus2pt minus2pt

 \newskip\LastSkip
 \def\SaveLastSkip{\LastSkip\lastskip}
 \def\RestoreLastSkip{\vskip-\LastSkip\vskip\LastSkip}

 %% Do not indent next paragraph after a header:
 \def\NoindentAfter{\everypar={\setbox0=\lastbox\everypar={}}}

 \long\def\H#1\par#2\par{\notenumber=0 \titlepagetrue%
    {
    \baselineskip=20pt
    \parindent=0pt\parskip=0pt\frenchspacing
    \leftskip=0pt plus .2\hsize minus .3\hsize
    \rightskip=0pt plus .2\hsize minus .3\hsize
    \def\\{\unskip\break}%
    \pretolerance=10000 \Hfont #1\unskip\break
     \vskip7pt\Hrule \Authorfont #2\unskip\break\hrule%7+17=24pt gap
    }
    \vskip48pt plus 4pt minus 4pt% 60pt=48+12pt
    \par\NoindentAfter\rm}

 %%% SECTION HEADINGS
 %%
 %% \HH 7. Heading
 %%
 %% Following text
 %%
 %% \HHH 7.1. Subheading
 %%
 %% Following text
 %%
 %% As usual, the blank lines are required syntax.
 %%
 %% The definitions are complicated by an effort to
 %% (i) prevent pagebreak after a heading
 %% (ii) make postheading space depend on what follows

 \newdimen\PageRemainder
  \def\SetPageRemainder{%\maxdimen case at page tops 12-91 LS
     \PageRemainder=\pagegoal
     \ifdim\PageRemainder=\maxdimen\PageRemainder=\vsize
     \else\advance\PageRemainder by -1\pagetotal\fi}

  \def\Rpt@{}\def\Rpt@@{}

  \long\def\HH#1\par{\par%A
  \SaveLastSkip\removelastskip\goodbreak
  \ifdim\LastSkip<24pt
     \LastSkip 24pt plus 3pt minus 2pt\fi
  \SetPageRemainder\advance\PageRemainder-\LastSkip
  \ifdim\PageRemainder<150pt
       \edef\Rpt@{remain = \the\PageRemainder\noexpand\\
                pagetotal=\the\pagetotal\noexpand\\
                           pagegoal=\the\pagegoal}%
          \fi
   \ifdim\PageRemainder<65pt %%Head plus 4 lines (approx)
       \ifdim\PageRemainder > 0pt
          \edef\Rpt@@{\noexpand\\
                      Had HH PageRemainder$<$\relax 65pt\noexpand\\
                      Hence forced break!}%
     \vskip 0pt plus .2\PageRemainder\eject %% Pull it out a bit
    \fi\fi
    \vskip\LastSkip\Hrule %%%%%%%%\Hrule added
    \pretolerance=10000\rightskip=0pt plus 3em%B
    \hangafter1 \hangindent=2.2em%
    \noindent
    \HHfont \unskip \Ednote{\Rpt@\Rpt@@}%
            \def\Rpt@{}\def\Rpt@@{}%
            \ignorespaces
            #1\par\rightskip=0pt\pretolerance=\StdPretolerance%
      \NoindentAfter\tenpoint\rm%
      \vskip\ProcSkip}%interlineskip adds 2pt to this

  \long\def\HHH#1\par{\par%
  \SaveLastSkip\removelastskip\goodbreak
  \ifdim\LastSkip<\ProcSkip%
     \LastSkip\ProcSkip\fi
  \SetPageRemainder\advance\PageRemainder-\LastSkip
  \ifdim\PageRemainder<150pt
       \edef\Rpt@{remain = \the\PageRemainder\noexpand\\
                pagetotal=\the\pagetotal\noexpand\\
                           pagegoal=\the\pagegoal}%
       \fi
   \ifdim\PageRemainder<48pt  %% 4 lines
        \ifdim\PageRemainder > 0pt
             \edef\Rpt@@{\noexpand\\
                      Had HHH PageRemainder$<$\relax48pt\noexpand\\
                      Hence forced break!}%
       \vskip 0pt plus .2\PageRemainder\eject %% Pull it out a bit
      \fi\fi
   \vskip\LastSkip\par\noindent
   \HHHfont \unskip\Ednote{\Rpt@\Rpt@@}%
  \def\Rpt@{}\def\Rpt@@{}%
  \ignorespaces
   #1\unskip.\quad\rm\ignorespaces
   \ignorepars}

  \long\def\ignorepars#1\par{\def\Test{#1}%
     \ifx\Test\Empty\def\This{\ignorepars}%
        \else\def\This{\Test\par}\fi
           \This}
  \def\Empty{}

 %%%%% PROCLAMATIONS %%%%%
  %%
  %% \th <theorem title>(Blank Line)<theorem statement>\endth
  %% \pf <proof title>(Blank Line)<proof body>\qed
  %% \df <definition title>(Blank Line)<definition body>\enddf
  %% \rk <remark title>(Blank Line)<definition body>\endrk
  %% \eg <example title>(Blank Line)<example body>\endeg

 \def\ProcBreak{\par%
    \ifdim\lastskip<8pt%
    \removelastskip%
    \penalty-200\vskip\ProcSkip\fi}

 \def\th#1\par{\ProcBreak \noindent
   {\thfont\ignorespaces
    #1\unskip.}\it\itSpacing\kern.4em\ignorepars}%\everymath{\/}

 \def\endth{\ProcBreak\rm\itSpacingOff }%\everymath{}

  %% the theorem statement will be in italic by default

 \def\pf#1\par{\ProcBreak %
    \noindent\pffont#1\unskip.\rm\itSpacingOff{\kern .7em}\ignorepars}

 \def\endpf{\ProcBreak } %% \qed is alternative


  %% A Box for the Quod est demonstrandum:
  \def\qedbox{\hbox{\vbox{
    \hrule width0.2cm height0.2pt
    \hbox to 0.2cm{\vrule height 0.2cm width 0.2pt
             \hfil\vrule height0.2cm width 0.2pt}
    \hrule width0.2cm height 0.2pt}\kern1pt}}

  %% Typing in \qed makes the qedbox right justified:
  \def\qed{\ifmmode\qedbox
    \else\unskip\ \hglue0mm\hfill\qedbox\ProcBreak\fi}

  \def \rk #1\par{\ProcBreak
     \noindent{\rkfont\ignorespaces #1\unskip.}%
     \rm\kern.6em\ignorepars}

  \def \endrk {\ProcBreak }

  \def \df #1\par{\ProcBreak
     \noindent{\dffont\unskip\ignorespaces #1\unskip.}%
     \rm\kern.6em\ignorepars}

  \def \enddf {\ProcBreak }

  \def \eg #1\par{\ProcBreak
     \noindent\egfont\unskip\ignorespaces #1\unskip.
     \rm\kern.6em\ignorepars}

  \def \endeg {\ProcBreak }

 %%%   Traditional amsTeX syntax:
  %%    program it if desired in terms of the above macros
  %%
  %%   \Thm{<theorem title>}<theorem statement>\endThm
  %%   \Prf{<proof title>}<proof body>\qed
  %%   \Def{<definition title>}<definition body>\endDef
  %%   \Rmk{<remark title>}<definition body>\endRmk
  %%   \Ex{<example title>}<example body>\endEx
  %%
  %% for example thus
  %% \def\Thm#1{\pf#1\par} \def\endThm{\endth}

  %%%%% ITEMS
  %%%% making the hanging indents left justified:
  %%%% Use \Item and  \ItemItem in place of \item and  \itemitem 
  %%%% Collision of tags and text prevented 
  %%%% by having tags push text WN11-91
  %%%% Easy hang adjustments provided  LS11-91
  %%%% see \Max...Tag{...} below and osuparam.sty
  %%%% Five item types are all treated similarly:
  %%%% \Item, \ItemItem, \Nr, \rf, \FootItem@
  %%%% (last is used in \Footnote and \Note).
  %%%% They are very similar and could be derived
  %%%% from a single catch-all macro.
  %%%% Changes of "style" and "hang" persist;
  %%%% you can make them temporary using braces.
  %%%% To make a hang zero set tag to a large negative kern,
  %%%% eg \MaxItemItemTag{\kern-10000pt}
  %%%% (negative hangs give zero hang)

  \newdimen\Overhang

   \def\litem{\message{ !!! litem should become Item !!!}}

 %% \MaxTag@#1#2#3#4#5 %
 %% #1 tagtype; #2 tag; #3 post tag gap; #4 tagstyle #5 min hang
   \def\MaxTag@#1#2#3#4#5{\setbox0=\hbox{#4\ignorespaces#2\unskip}%
     \dimen0=\wd0\advance\dimen0 by#3
     \ifdim\dimen0<#5\relax\dimen0=#5\fi
     \expandafter\edef\csname #1Hang\endcsname{\the\dimen0}}

 \def\MaxItemTag#1{\MaxTag@{Item}{#1}{.4em}{\ItemStyle}{\parindent}}%
 \def\MaxItemItemTag#1{%
        \MaxTag@{ItemItem}{#1}{.4em}{\ItemItemStyle}{\parindent}}
 \def\MaxNrTag#1{\MaxTag@{Nr}{#1}{.5em}{\NrStyle}{\parindent}}
 \def\MaxReferenceTag#1{%
        \MaxTag@{Reference}{[#1]}{.6em}{\ninerm}{\parindent}}
 \def\MaxFootTag#1{\MaxTag@{Foot}{#1}{.4em}{\ninerm}{\z@}}

  %% \SetOverhang@ will prevent for tag-text collision
  \def\SetOverhang@{\Overhang=.8\dimen0%
     \advance\Overhang by \wd0\relax%nec!
     \ifdim\Overhang>\hangindent\relax%nec!
       \advance\Overhang by .25\dimen0%
       \Ednote{Tag is pushing text.}\osumess{Tag is pushing text.}%
     \else\Overhang=\hangindent
     \fi}

   %%% \Item
   \def\Item#1{\par\noindent
      \hangafter1\hangindent=\ItemHang
      \setbox0=\hbox{\ItemStyle\ignorespaces#1\unskip}%
      \dimen0=.4em\SetOverhang@% dimen0 is extra space
      \rlap{\box0}\kern\Overhang\ignorespaces}

 %  \def\ItemStyle{\rm}%% in param file
 %  \MaxItemHang{(iii)}%% in param file
         
   %%% \ItemItem
   \def\ItemItem#1{\par\noindent
      \hangafter1\hangindent=\ItemItemHang
      \setbox0=\hbox{\ItemItemStyle\ignorespaces#1\unskip}%
      \dimen0=.4em\SetOverhang@
      \advance\hangindent by \ItemHang
      \kern\ItemHang\rlap{\box0}%
      \kern\Overhang\ignorespaces}

 %   \def\ItemItemStyle{\rm}%% in param file
 %   \MaxItemItemTag{(iii)}%% in param file

  %%%% \Nr Items without hanging indentation
  \def\Nr#1{\par\noindent\hangindent=\NrHang %not really a hang
    \setbox0=\hbox{\NrStyle\ignorespaces#1\unskip}%
    \dimen0=.5em\SetOverhang@% dimen0 is extra space
    \rlap{\box0}\kern\Overhang
    \hangindent=\z@\ignorespaces}

 %   \def\NrStyle{\bf}%% in param file
 %   \MaxNrTag{(2)}%% in param file

  %%%% Roster (not compulsory)
  %%  endRoster has to remember \lastskip (e.g. from a \qed) through \egroup.
   \newskip\Rosterskip\Rosterskip 1pt plus1pt %% modifiable
   \def\Roster{\par\ifdim\lastskip<\Rosterskip\removelastskip\vskip\Rosterskip\fi
    \bgroup}
   \def\endRoster{\par\global\edef\LastSkip@{\the\lastskip}\removelastskip
       \egroup\penalty-50\LastSkip\LastSkip@\relax
       \ifdim\LastSkip<\Rosterskip\LastSkip\Rosterskip\fi
       \vskip\LastSkip}%%changed Feb/5/92 WN

 %%%%% EMPHASIS %%%%%
  %%
  %% \em{<emphasized text>}
  %% \Em{<strongly emphasized text>}

 \long\def \em #1{{%
   \it\itSpacing#1\unskip\/\itSpacingOff}}

 \long\def \Em #1{{%
   \bi#1\unskip\/}}

 %%%%% VERTICAL SPACING %%%%%
  %%
  %% \skipaline

  \def\skipaline{\vskip\ProcSkip}


 %%%%% REFERENCES %%%%%
  %%
  %% \cite{Thu2,Chap 7}  %% is borrowed from AmSTeX amsppt.sty
  %%

 \def\cite#1{%\relaxnext@
    \def\nextiii@##1,##2\end@{{\frenchspacing\bf
      \lBr\ignorespaces##1\unskip{\rm,~\ignorespaces##2}\rBr}}%
    \IN@0,@#1@%
    \ifIN@\def\next{\nextiii@#1\end@}\else
    \def\next{{\bf\lBr#1\rBr}}\fi\next}

 %%%%% BIBLIOGRAPHY %%%%%
  %%
  %%           \Bib    References
  %%

  %%    \rf{Th1}  W.P. Thurston, ...
  %%    \rf{Th2}
  %%
  %%    \endBib

  %%%%% An alternative to \rf{<tag>} <the reference> is
  %% \ref <tag>
  %%
  %% <author(s)>
  %%
  %% <title>
  %%
  %% <the rest>
  %%

   \def \Bib#1\par{%
       \par\removelastskip\SetPageRemainder
       \ifdim\PageRemainder < 97pt
        \ifdim\PageRemainder > 0pt
        \vfill\eject
       \fi\fi
    \ProcBreak \par\begingroup\parskip=0 pt%
    \goodbreak \vskip 15 pt plus 10 pt
    \noindent\null\hfill\Bibfont% \kern??pt%  (center over what?)
      \ignorespaces #1\unskip\hfill\null\par 
    \frenchspacing \Smallfonts\rm
    \parskip=2.5 pt plus 1 pt minus.5pt%
    \nobreak\vskip 12pt plus 2pt minus2pt\nobreak
    \leftskip=0 pt \baselineskip=10.5pt}

     %% Bugfix 12-91: \centerline{} in \Bib could
     %% anull \MaxReferenceTag effect

 \def\ReferenceTagSlide{0em}
  \def\ReferenceTagGap{.5em}

  \def \rf#1{\par\noindent
     \hangafter1\hangindent=\ReferenceHang      
     \setbox0=\hbox{\ninerm[\ignorespaces#1\unskip]}%        
     \dimen0=\ReferenceTagGap\SetOverhang@
     \rlap{\kern\ReferenceTagSlide\box0}%       
     \kern\Overhang\ignorespaces}


  \def\ref#1\par#2\par#3\par#4\par{%
     \rf{#1}#2\unskip,\ #3\unskip,\
     #4\unskip.}

  \def\endBib{\par\endgroup\vskip 12pt minus 6pt }


 %%%%% COORDINATES %%%%%
  %%
  %% \Coordinates
  %% <your institution>\\
  %% <paper mail address>\\
  %% <more of it>
  %%
  %% Email: <electronic mail address>
  %% \endCoordinates
  %% to be placed elsewhere

  \long\def\Coordinates#1\endCoordinates{%\relax}
 {\par\vskip4pt\def\\{\unskip, }\Coordfont\baselineskip10.5pt\noindent#1}}

 %%%% OUTPUT ROUTINE %%%%%%%

  %This output subroutine sets the running heads,
  %page, and footnotes automatically.

  \def\titlepagehead{\hfil}

  \newif\iftitlepage
  \def\makeheadline{%
     \iftitlepage\vbox{\line{\vbox to 8.5pt{}\titlepagehead}}%
      \else\vbox{\ifodd\pageno\rightheadline\else\leftheadline\fi}%
      \fi\vskip 12pt}%
     \def\rightheadline{\line{\vbox to 8.5pt{}%
      \ninerm\hfill\copy\TitleBox\hglue5mm\folio}}%
     \def\leftheadline{\line{\vbox to 8.5pt{}%
        \unskip\ninerm\unskip\folio\hglue5mm
        \copy\AuthorBox\hfill}}

   \footline={\iftitlepage\CopyrightNotice%}\line{\hfill%\vbox to 8.5pt{%
%            \parindent=0pt\CopyrightNotice}%\vss}}%
                          %\rm\folio\hfil
            \else\hfil\fi\global\titlepagefalse}

 \def\pagecontents{%\TRMargIns new, \Pagetot@l
  \gdef\Pagetot@l{\pagetotal}
  \ifvoid\TRMargIns\else
    \rlap{\kern\hsize\kern10pt\vbox to 0pt{%
         \box\TRMargIns\vss}}\fi
  \ifvoid\topins\else\unvbox\topins\fi
   \dimen@=\dp\@cclv \unvbox\@cclv % open up \box255
   \ifvoid\footins\else % footnote info is present
     \vskip\skip\footins
     \footnoterule
     \unvbox\footins\fi
   \ifr@ggedbottom \kern-\dimen@ \vfil \fi}


  %%%%% some MATH ACCENTS %%%%%
  %%

 \newcount\Ht %pg121; Height register, used in Linefigure & accents

 \def \Acc{\expandafter } %%% What is this for?? WN

 \def\swthat{\raise -1.1 ex\hbox{\sam$\widehat{}$}}
 \def\swttilde{\raise -1.2 ex\hbox{\sam$\widetilde{}$}}
 \def \overdot{{\raise .2 ex \hbox to 0pt {\hss\bf\smash{.}\hss}}}
 \def \overcircle{{\raise .1 ex \hbox to 0pt
    {\sam$\eightpoint\scriptstyle\hss\circ\hss$}}}


 \def \Mathaccent#1#2{{\sam % E.g. #1=\widehat
  \setbox4=\hbox{$\vphantom{#2}$}
  \Ht=\ht4 %pg120
  \setbox5=\hbox{${#1}$}
  \setbox6=\hbox{${#2}$}
  \setbox7=\hbox to .5\wd6{}
  \copy7\kern .1\Ht \raise\Ht sp\hbox{\copy5}\kern-.1\Ht
  \copy7\llap{\box6}
  }}%italic test or other needed; oops, index height slightly raised
  %%extra braces 9-90


  \def \Overdot #1{\Mathaccent {\overdot} {#1}}

  \def \Overcircle #1{\Mathaccent {\overcircle} {#1}}

  \def \SwtHat #1{\Mathaccent {\swthat} {#1}}

  \def \SwtTilde #1{\Mathaccent {\swttilde} {#1}}

  \def\SwtCheck #1{
        \ifmmode \check{#1}%
                \else \v {#1}%
                \fi}


 %%  \barpartial : bar over partial is common, tailor!
 \def\barpartial {%
   \kern .17 em
    \overline {\kern -.17 em\partial\kern-.03 em}%
    \kern .03 em}


 %%%   BETTER OVERLINE
 %% The typist is expected to use \overline,
 %% but the results are disappointing.
 %% \Overline is an improvement for upright characters
 %% \SOverline for characters that slant (most do!)
 %% Suggestion to typographer:
 %% substitute \overline ---> \SOverline
 %% as a first step, and then improve individual cases
 %% using \Overline, or by handsetting
 %%
 \def\Overline#1{\setbox1=\hbox{\sam ${#1}$}%
      \ifdim \wd1 > 6pt
    \kern .11 em
    \overline {\kern -.11 em#1\kern-.14 em}
    \kern .14 em
  \else
    \kern .03 em
    \overline {\kern -.03 em#1\kern-.04 em}
    \kern .04 em
  \fi}

 \def\SOverline#1{\setbox1=\hbox{\sam ${#1}$}%
      \ifdim \wd1 > 7pt
    \kern .22 em
    \overline {\kern -.22 em#1\kern-.09 em}%
    \kern .09 em
  \else
    \kern .10 em
    \overline {\kern -.10 em#1\kern-.04 em}%
    \kern .04 em
  \fi}

  %%% BETTER UNDERLINE
  %% similarly

 \def\Underline#1{\setbox1=\hbox{\sam ${#1}$}%
      \ifdim \wd1 > 6pt
    \kern .11 em
    \underline {\kern -.11 em#1\kern-.14 em}
    \kern .14 em
  \else
    \kern .03 em
    \underline {\kern -.03 em#1\kern-.04 em}
    \kern .04 em
  \fi}

 \def\SUnderline#1{\setbox1=\hbox{\sam ${#1}$}%
      \ifdim \wd1 > 7pt
    \kern .04 em
    \underline {\kern -.04 em#1\kern-.2 em}%
    \kern .2 em
  \else
    \kern .0 em
    \underline {\kern -.0 em#1\kern-.15 em}%
    \kern .15 em
  \fi}


  %%%%% MISCELLANEOUS %%%%%
  %%
 
 \def\bbA{{\Bbb A}}
 \def\bbC{{\Bbb C}}
 \def\bbE{{\Bbb E}}
 \def\bbH{{\Bbb H}}
 \def\bbK{{\Bbb K}}
 \def\bbN{{\Bbb N}}
 \def\bbP{{\Bbb P}}
 \def\bbQ{{\Bbb Q}}
 \def\bbR{{\Bbb R}}
 \def\bbZ{{\Bbb Z}}

 \def \Blackbox
   {\leavevmode\hskip .3pt \vbox
   {\hrule height 5pt\hbox{\hskip 4.5pt}}\hskip .5pt}

 \def \XX{\Blackbox\kern.5pt\Blackbox} %% editorial use

  \def\at{{\char64 }}

  \def\.{.\kern1pt}

  %% unbreakable hyphen (by local change of hyphenchar to -1)
    \def\Hyphen{\edef\this{\the\hyphenchar\font}%
          \hyphenchar\font=-1\char\this\hyphenchar\font=\this}

  %% Prose In Math or Display 
 \ifx\undefined\text
  \def\text#1{\hbox{\rm #1}}\fi %% AMSTeX is more sophisticated

  %% Math Object Names (multi-character math object names)
 \def\mop#1{\mathop{\rm\vphantom{x}#1}\nolimits} %%\nolimits can be cancelled
                                     % by a following \limits if wanted


 %%% MATHSURROUND EVERYMATH AND AFTERMATH
 %%
 %%  A complex of macros to tidy up spacing around
 %%  and especially after mathematics in text:
 %%  a)  provide mathsurround space typically of about 1 to 2 pt
 %%      around math in text (our param \StdMathsurround)
 %%  b) in case punctuation immediately following is from the collection
 %%      ,.;:!?
 %%      put about 80 percent of of the extra mathsurround 
 %%      space after the punctuation and 20 percent before.
 %%  c) in case immediately following character is not the above 
 %%      punctuation nor blank, retain the mathsurround space.
 %%  d) if that character is a hyphen, put in a reduced
 %%      mathsurround space and prevent a linebreak there.
 %%  e) to kill the above features and return to more reliable
 %%     troublefree behavior, type \Sam defined to be
 %%     \everymath{}. This does not change \mathsurround's value.
 %%  f) to reintroduce sophisticated mathsurround behavior use
 %%     \Mas (for MAthsurround Setup).
 %%  g) for programmers, there are more local versions \sam and \mas.
 %%     These also toggle \mathsurround between 0 and \StdMathsurround.
 %%  
 %% INCOMPLETENESS WARNING:
 %%   The special treatment provided when a closing dollar $ is followed 
 %%   by a hyphen or punctuation might have been extended to several
 %%   other cases.  Notably when the dollar is followed by one of
 %%        }  " 
 %%   Such cases are sufficiently rare and subtle that handsetting 
 %%   seems the best solution.  To facilitate this one has, in addition
 %%   to feature (e), the macro \MSC#1   (Math Surround Correction)
 %%   which delays 80% of the math surround space after 
 %%   its argument.  A log message such as
 %%       !!!At line ..., handset mathsurround??
 %%   is provided whenever a closing dollar is is followed 
 %%   by something other than \relax or a space or punctuation from 
 %%      ,.;:!? ')
 %%   Thus for example one would normally try to replace "$}," by 
 %%   "$\relax}\MSC,".
 %%   The (programmed!) purpose of \relax is to suppress 
 %%   the warning! 
 %%   
 %%  FRAGILITY WARNING :
 %%   These macros will go badly wrong if the closing
 %%   dollar is immediately followed by certain complex macros.
 %%   In such cases, use (e) within braces.
 %%   The macro \dots was a bad example of this misbehavior;
 %%   but its definition has been shored up so that $math$\dots<etc.>
 %%   is perfectly OK.  Similarly \eqno.
 %%   Others may turn up...
 %%   A known source of problems presently requiring (e) is TeX tabs.
 %%
 %% INITIAL SETTING AND SWITCHING
 %%   The default setting is off unless otherwise set in osuparam.sty
 %%   Off means: \mathsurround=\StdMathsurround \everymath{}
 %%   Use \Mas to turn sophisticated behavior on
 %%   and \Sam or \everymath{} to turn it off.
 %%   Careful choice of \StdMathsurround
 %%   is vital (before using \Mas, which sets \mathsurround).
 %%   Larger values of mathsurround
 %%   are tolerable with sophisticated behavior switched on
 %%   than off, typically 2pt versus 1pt.
 %%
 %%
   \everymath{}  %% initially, but later ...
   %%\everymath{\PassMath@} %% will be set by \Mas

  \def\PassMath@@{\aftergroup\AfterMath@} %% use \aftergroup LS 5-92
% \def\GulpMath@@#1${#1$\AfterMath@}
 \let\PassMath@\PassMath@@

 \def\AfterMath@{\futurelet\next\AfterMathMole@}

 \def\AfterMathMole@{%\show\next
      \ifcat\next\space% picks off CR and \par cases too; not \dots
          \def\this{}%{(space)}%
      \else
      \ifcat\next\egroup %
        \def\this{\osumess{Handset mathsurround?? ---(see dollar brace)}}%
      \else
      \def\this{\AAfterMath@}% this minority case slow
      \fi\fi
      \this}

 \def\hyphen@{-}
 \def\paren@{)}
 \def\apostr@{'}

 \def\MSC#1{\kern-.8\mathsurround#1\kern.8\mathsurround}

 \def\AAfterMath@#1{\def\Next{#1}%\show\Next%
    \IN@0\Next @,.;:!?\relax @%
    \ifIN@\def\this{\MSC{\Next}}%
    \else
    \ifx\Next\hyphen@\def\this{\futurelet\next\AfterHyphen@}%
    \else
    \ifx\Next\paren@\def\this{#1}%
    \else 
    \ifx\Next\apostr@\def\this{#1}%
    \else \def\this{\osumess{Handset mathsurround??}%
                 #1}\fi\fi\fi\fi
    \this}

 \def\AfterHyphen@#1{\def\Next{#1}%
   \ifx\Next\hyphen@\def\this{--}\else
   \ifcat\next\space%
   \def\this{\kern-\mathsurround\kern.05em- \Next}\else
   \def\this{\kern-\mathsurround\kern.05em\Hyphen\Next}\fi\fi\this}

  %%% SWITCHING ON AND OFF
  %% for programmers (more local)
 \def\sam{\mathsurround=\z@\let\PassMath@\relax}  %
 \def\mas{\mathsurround=\StdMathsurround\let\PassMath@\PassMath@@}
  %% for users
 \def\Sam{\everymath{}}
 \def\Mas{\mathsurround=\StdMathsurround
                \everymath{\PassMath@}\let\PassMath@\PassMath@@}


 %%% Redefinitions for compatibility with our mathsurround macros
  %% Basic cleanup of Plain
 %%%%%%%%%%%%%%%%%%%%  adjustments to Plain

  %% MILD ADJUSTMENTS TO SOME PLAIN TEX DEFINITIONS
   % NEEDED BY OSUDEG.STY 
   % TO ALLOW AUTOMATIC DETECTION OF MATHSURROUND 
   % PROBLEMS REQUIRING HAND SETTING
   % THESE ADJUSTMENTS COST TEX ALMOST ZERO OCTETS
   % AS THEY REPLACE EXISTING DEFINITIONS

 \def\m@th{\mathsurround=\z@\everymath{}}%% good general measure

 \def\m@@th{\mathsurround=\z@\everymath={}\let\m@th\relax}
    %%% ONLY new macro; overrides and in effect replaces \m@th
      % always local (temporary); 

  %%% Many \relax added to suppress mathsurround warnings

\def\underbar#1{$\setbox\z@\hbox{#1}\dp\z@\z@
      \m@th \underline{\box\z@}$\relax}

\def\mathhexbox#1#2#3{\leavevmode
  \hbox{\m@@th$\m@th \mathchar"#1#2#3$}}

\def\dots{\relax\ifmmode\ldots\else$\m@th\ldots\,$\relax\fi}
   %%% this first \relax is ONLY original

\def\dotfill{\cleaders\hbox{\m@@th$\m@th \mkern1.5mu.\mkern1.5mu$}\hfill}
\def\rightarrowfill{$\m@th\mathord-\mkern-6mu%
  \cleaders\hbox{\m@@th$\mkern-2mu\mathord-\mkern-2mu$}\hfill
  \mkern-6mu\mathord\rightarrow$\relax}
\def\leftarrowfill{$\m@th\mathord\leftarrow\mkern-6mu%
  \cleaders\hbox{\m@@th$\mkern-2mu\mathord-\mkern-2mu$}\hfill
  \mkern-6mu\mathord-$\relax}

\def\downbracefill{$\m@th\braceld\leaders\vrule\hfill\braceru
  \bracelu\leaders\vrule\hfill\bracerd$\relax}
\def\upbracefill{$\m@th\bracelu\leaders\vrule\hfill\bracerd
  \braceld\leaders\vrule\hfill\braceru$\relax}

\def\angle{{\vbox{\m@@th\ialign{$\m@th\scriptstyle##$\crcr
      \not\mathrel{\mkern14mu}\crcr
      \noalign{\nointerlineskip}
      \mkern2.5mu\leaders\hrule height.34pt\hfill\mkern2.5mu\crcr}}}}

\def\big#1{{\m@@th\hbox{$\left#1\vbox to8.5\p@{}\right.\n@space$}}}
\def\Big#1{{\m@@th\hbox{$\left#1\vbox to11.5\p@{}\right.\n@space$}}}
\def\bigg#1{{\m@@th\hbox{$\left#1\vbox to14.5\p@{}\right.\n@space$}}}
\def\Bigg#1{{\m@@th\hbox{$\left#1\vbox to17.5\p@{}\right.\n@space$}}}
\def\n@space{\nulldelimiterspace\z@ \m@th}

\def\root#1\of{\setbox\rootbox\hbox{\m@@th$\m@th\scriptscriptstyle{#1}$}
  \mathpalette\r@@t}
\def\r@@t#1#2{\setbox\z@\hbox{\m@@th$\m@th#1\sqrt{#2}$\relax}
  \dimen@\ht\z@ \advance\dimen@-\dp\z@
  \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-10mu \box\z@}

\def\mathph@nt#1#2{\setbox\z@\hbox{\m@@th$\m@th#1{#2}$}\finph@nt}

\def\mathsm@sh#1#2{\setbox\z@\hbox{\m@@th$\m@th#1{#2}$}\finsm@sh}

\def\@vereq#1#2{\lower.5\p@\vbox{\m@@th\baselineskip\z@skip\lineskip-.5\p@
    \ialign{$\m@th#1\hfil##\hfil$\crcr#2\crcr=\crcr}}}

 %%%%%%%%%%%%%%%%%%% end of basic adjustments to Plain
  %% further adjustments
  %%
 \def\mathpalette#1#2{\sam\mathchoice{#1\displaystyle{#2}}%
  {#1\textstyle{#2}}{#1\scriptstyle{#2}}{#1\scriptscriptstyle{#2}}\mas}
  %%
  %% otherwise trouble with
  %% \cong, \notin, \rightleftharpoons, \root,
  %% \(v,h)phantom, \smash
  %% which involve it in Plain
  %% Also in amstex
  %% \overleftarrow, \overleftrightarrow, \underrightarrow,
  %% \underleftarrow, \underleftrightarrow, \pmb
  %%
 %% 

  %%  ams font stuff

\def\widehat#1{\setbox\z@\hbox{\sam$#1$}%
 \ifdim\wd\z@>\tw@ em\mathaccent"0\msbfam@5B{#1}%
 \else\mathaccent"0362{#1}\fi}
\def\widetilde#1{\setbox\z@\hbox{\sam$#1$}%
 \ifdim\wd\z@>\tw@ em\mathaccent"0\msbfam@5D{#1}%
 \else\mathaccent"0365{#1}\fi}

  %% \dots
 \ifx\amstexloaded@\relax
  %% have AmSTeX
 \def\dots{\relax{}
  \ifmmode\def\thedots{\mdots@}\else\def\thedots{\tdots@}\fi %
  \thedots}
 \else
 %% have only Plain
 \def\dots{\relax{}\ifmmode\def\thedots{\ldots}
          \else\def\thedots{\sam $\ldots\,$\mas}\fi
          \thedots}
 \fi
 %% Remark: \dots is typographically far more sophisticated in AmSTeX

 %% \eqno and \leqno need protection
 \let\@ldeqno\eqno\let\@ldleqno\leqno
 \def\eqno{\everymath{}\@ldeqno} \def\leqno{\everymath{}\@ldleqno}

  %% Warning : disaster follows if this
  %% (or similar redef) is read twice!!
  %% hence barrier at opening of this package

  \let\@ldeqalignno\eqalignno
  \def\eqalignno#1{\sam\@ldeqalignno{#1}\mas}
  \let\@ldeqalign\eqalign
  \def\eqalign#1{\sam\@ldeqalign{#1}\mas}

 %% A \m@th added to each of the following Plain definitions (shouldn't
 %% Knuth have done this?)
 \def\overrightarrow#1{\vbox{\m@th\ialign{##\crcr
      \rightarrowfill\crcr\noalign{\kern-\p@\nointerlineskip}
      $\hfil\displaystyle{#1}\hfil$\crcr}}}
 \def\overleftarrow#1{\vbox{\m@th\ialign{##\crcr
      \leftarrowfill\crcr\noalign{\kern-\p@\nointerlineskip}
      $\hfil\displaystyle{#1}\hfil$\crcr}}}
 \def\overbrace#1{\mathop{\vbox{\m@th\ialign{##\crcr\noalign{\kern3\p@}
      \downbracefill\crcr\noalign{\kern3\p@\nointerlineskip}
      $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits}
 \def\underbrace#1{\mathop{\vtop{\m@th\ialign{##\crcr
      $\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern3\p@\nointerlineskip}
      \upbracefill\crcr\noalign{\kern3\p@}}}}\limits}

 \ifx\amstexloaded@\relax
  %% If AmSTeX more of similar
   %
  \let\@ldmatrix\matrix
  \let\end@ldmatrix\endmatrix
  \def\matrix{\sam\@ldmatrix}
  \def\endmatrix{\end@ldmatrix\mas}
   %
  \let\@ldgather\gather
  \let\end@ldgather\endgather
  \def\gather{\sam\@ldgather}
  \def\endgather{\end@ldgather\mas}
   %
  \let\@ldalign\align
  \let\end@ldalign\endalign
  \def\align{\sam\@ldalign}
  \def\endalign{\end@ldalign\mas}
   %
  \let\@ldaligned\aligned
  \let\end@ldaligned\endaligned
  \def\aligned{\sam\@ldaligned}
  \def\endaligned{\end@ldaligned\mas}
   %
  \let\@ldtag\tag
  \def\tag{\sam\@ldtag}
   %
  %%% Commutative diagrams : use LamsCD too?
   \def\amsCD{\sam\CD}
   \def\endamsCD{\endCD\mas}
   \let\MinCDArrowWidth\minCDaw@
   %
 \fi

 %%% Figure Insert macros  %% Moved to osuparam.sty
 % \input BoxedEPS.tex 
 % \let\epsffile\EPSFfile
 \let\HideFigureFrames\relax %% will be redefined by BoxedEPS.tex
 \let\ShowFigureFrames\relax

  %%%%% \FigureTitle %%%%%
  \def\FigureTitle#1{\insertskip%  Changed from \medskip July 1992
        \centerline{\Figurefont #1\unskip}%
        }

   \catcode`\@=11

%% Corrections to plain tex insertion routines
%% Stripped from newinsert.tex version 1.2 July 1992
% These definitions modify definitions in plain.tex
\newskip\insertskipamount\newskip\inserthardskipamount
\insertskipamount 6pt plus2pt %This is medskipamount without shrink
\inserthardskipamount 6pt
\def\insertskip{\vskip\insertskipamount}
\newcount\SplitTest%        will be set to -1 if a topinsert has split
\def\SetSplitTest{\SplitTest\insertpenalties
  \insert\topins{\floatingpenalty1}%
  \advance\SplitTest-\insertpenalties}
\def\midinsert{\par
 \SaveLastSkip\penalty-150\SetSplitTest\RestoreLastSkip
 \ifnum\SplitTest=-1
  \@midfalse\else\@midtrue\fi\@ins}
\def\@ins{\par\begingroup\setbox\z@\vbox\bgroup%
  \vglue\inserthardskipamount}
\def\endinsert{\egroup % finish the \vbox
  \if@mid \dimen@\ht\z@ \advance\dimen@\dp\z@
    \advance\dimen@\insertskipamount%            was 12pt (wn)
    \advance\dimen@\pagetotal\advance\dimen@-\pageshrink
    \ifdim\dimen@>\pagegoal\@midfalse\p@gefalse\fi\fi
  \if@mid%
    \ifdim\lastskip<\insertskipamount\removelastskip\insertskip\fi
    \nointerlineskip\box\z@\penalty-200\insertskip
  \else%
    \SaveLastSkip%                                  added (wn)
    \insert\topins{\penalty100 % floating insertion
    \splittopskip\z@skip
    \splitmaxdepth\maxdimen \floatingpenalty\z@
    \ifp@ge \dimen@\dp\z@
    \vbox to\vsize{\unvbox\z@\kern-\dimen@}% depth is zero
    \else \box\z@\nobreak\insertskip\fi}% was \bigskip\fi (wn)
    \RestoreLastSkip%                               added (wn)
   \fi\endgroup}
%% end newinsert.tex

 %%%%% FOOTNOTES %%%%%
  %%
  %% \note{<the footnote>}  %will be numbered automatically
  %% \footnote{<marker>}{<the footnote>}

  \newcount\notenumber
  \def\clearnotenumber{\notenumber=0}
  \def\note{\advance\notenumber by 1
    \footnote{\the\notenumber)}}

  \newbox\footbox
%  \setbox\footbox=\hbox{\Smallfonts 2)~}
   %%%%% just analog dimensioning, moved to font file

  \def\footnotespacing{\frenchspacing}

 %% The following modifies Plain TeX definitions, qv
  \def\footnote#1{\let\@sf\empty
    %{(the text)} is read later
    \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi
    \sam${}^{\fam0 #1}$\@sf\vfootnote{#1}}%

  \def\vfootnote#1{\insert\footins\bgroup
     \interlinepenalty100 \splittopskip=1pt
     \floatingpenalty=20000
     \leftskip=0pt\rightskip=0pt%
     \parindent=.3em%% adjust
     \Smallfonts\rm%%osudeG added \Smallfonts
     \FootItem@{#1}%\strut% not nec
     \futurelet\next\fo@t}

  \def\FootItem@#1{\par\hangafter1\hangindent=\FootHang
     \setbox0=\hbox{\ignorespaces#1\unskip}%
     \dimen0=.4em\SetOverhang@% dimen0 is extra space
     \noindent\rlap{\box0}\kern\Overhang\ignorespaces}

  %\MaxFootTag{2)}%% in param file

  \def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t
    \else\let\next\f@t\fi \next}
  \def\f@@t{\bgroup\aftergroup\@foot\let\next}
  \def\f@t#1{\baselineskip=10pt\lineskip=1pt
            \lineskiplimit=0pt #1\@foot}%
     %%osudeG added \baselineskip=? pt\lineskiplimit=0pt
  \def\@foot{%%% special strut osu for end of each note
        \hbox{\vrule height0pt depth5pt width0pt}
        \egroup}
  \skip\footins=12 pt plus 0pt minus 0pt %% was \bigskipamount
    %% space added when footnote is present
  \count\footins=1000 % footnote magnification factor (1 to 1)
  \dimen\footins=8in % maximum footnotes per page

 %%%% Altenatives
  \let\Note\note
  \let\Footnote\footnote
  \let\Ninepoint\ninepoint


 %%% EDITORIAL TOOLS FOR THE PROOF COPY
  %% Good changebars being more or less impossible(?) to produce
  %% in pure TeX (postscript postprocessing is usual)
  %% we recommend the use of
  %%%% \change that produces a big star in the proofcopy
  %% to the left of the line it is typed in.
  %%
  %% Admittedly changebars are the traditional and most effective tool
  %% to alert readers to changes.  So we provide piecemeal changebars:
  %%%% \cbar provides a bar for a single (ordinary) line, and
  %%%% \ccbar does the same for a wide line (with big math symbols)
  %% If your source file has very short lines
  %% one bar at the opening of each line will do the trick.
  %%
  %% An easy-to-use alternative
  %%%% \beginchange ... \endchange signals the beginning of the change
  %% by a heart and the end by a spade, both in the left margin.
  %%
  %%%% \ednote{...} provides for an editorial note ...
  %% in the wide right margin, in \tt font by default.
  %% There is automatic wordwrap in such notes,
  %% but no warning should two collide.
  %% No paragraphs are allowed, but explicit linebreaks
  %% can be specified using \\, and help avoid collisions.
  %% Identify your notes. For example, using your
  %% initials.
  %%
  %% To suppress this apparatus a search and delete approach may be
  %% best, especially if many successive proofcopies are used.
  %% Alternatively,
  %%%% \HideEdStuff,  \PrintEdStuff,  \KillEdStuff
  %% will respectively make it invisible and bring it back to life
  %% and kill it permanently.
  %% Hopefully, without disturbing anything else!
  %%
  %% WARNINGS
  %% 1)  Do not suppress spaces on inserting these macros
  %% 2)  Editors must remember to suppress such editorial
  %%     doodling before the volume goes to the printer!
  %% 3)  The effect of inserting an \ednote or one of its brethern
  %%     and then saying \HideEdStuff is usually nil for insertions
  %%     in the middle or at the end of a piece of text or title.
  %%     ELSEWHERE, IT MAY HAVE A NOTICEABLE EFFECT:
  %%     to a very good approximation it is the effect of adding
  %%     \strut\hbox{}.  For this reason you may want to
  %%     Get rid permanently of all this subtlety using \KillEdStuff
  %%     in your ms header, which is roughly equivalent to
  %%     erasing all the above macros and their arguments in osudeG.sty
  %%     and in your typescript.
  %% 4)  \Ednote is a safer variant of \ednote. Its disadvantage is
  %%     that its vertical location is very approximate.  It is based,
  %%     like \footnote, on \insert, while \ednote is based on \vadjust.
  %%
 \def\osumess#1{\EdSpider{\immediate\write16{Line \the\inputlineno: #1}}}%
 \def\HideEdStuff{\gdef\EdSpider##1{}}
 \def\ShowEdStuff{\gdef\EdSpider##1{##1}}
 \let\PrintEdStuff\ShowEdStuff

 \font\BigSym=cmmi10 scaled \magstep 4

 \def\change{\InLMargin{\hbox{\BigSym \char63\kern10pt}}}

 \def\beginchange{\InLMargin{\hbox{\sam\twelvepoint$\heartsuit$\kern10pt}}}

 \def\endchange{\InLMargin{\hbox{\sam\twelvepoint$\spadesuit$\kern10pt}}}

 \def\InLMargin#1{\strut\vadjust{%
     \kern-\strutdepth
     \vtop to \strutdepth{%
         \baselineskip\strutdepth
         \llap{\sam$\smash{\hbox{\EdSpider{#1}}}$}\null}}}

 \def\strutdepth{\dp\strutbox}
 \def\strutheight{\ht\strutbox}

 \def\NoteInRMargin#1{\strut\vadjust{%
     \kern-1.001\strutdepth
     \vtop to \strutdepth{%
       \baselineskip\strutdepth
       \vss\rlap{\ninepoint\unskip\hskip\hsize
         \vtop to 0pt{%
           \hsize=16em\hfuzz=\hsize
           \leftskip=10pt%
           \rightskip=0pt plus 10000pt%
           \baselineskip=9.8pt\lineskip=.2pt%
           \let\\\break
           \noindent\EdSpider{#1}\vss}%
                \kern10pt}\hbox{}}%%\hbox{}=\null crucial!!
       }}

 \def\ednote#1{\NoteInRMargin{\tentt #1}}

 \def\cbar{\InLMargin{%
      \dimen0=\strutdepth\advance\dimen0 by \lineskip
      \vrule width 3pt
      height \strutheight depth \dimen0 \kern
      3pt}}

 \def\ccbar{\InLMargin{%
      \dimen0=2\strutdepth\advance\dimen0 by 2\lineskip
      \vrule width 3pt
        height 3\strutheight depth \dimen0 \kern
      3pt}}

 \newinsert\TRMargIns
 \dimen\TRMargIns=\maxdimen
 %\count\TRMargIns=0
 %\skip\TRMargIns=0pt

  \def\Ednote#1{\insert\TRMargIns{%
       \vbox to 0pt{\hsize=140pt\hfuzz=\hsize
           \leftskip=6pt%
           \rightskip=0pt plus 10000pt%
           \baselineskip=9.8pt\lineskip=.2pt%
           \let\\\break
           %\vglue\pagetotal% misplaces notes if inserts are present
           \SetPageRemainder% This ...
           \vglue540pt\vglue-\PageRemainder%  .. is a fix (WN)
           \noindent\EdSpider{\tentt #1}\vss}%
       \smallskip}}

 \def\KillEdStuff{\def\ednote##1{}\def\Ednote##1{}%
      \let\change\relax\let\beginchange\relax\let\endchange\relax
       \let\cbar\relax\let\ccbar\relax}


 %%% COMPATIBILITY with osumrip.sty
  %%
 \let\LoadMathFontsOne\relax
 \let\LoadMathFontsTwo\relax

 %%% PARAMETERS
  %% now external
  \input osuparam.sty


 %%% AmS vs Plain differences
  \ifx\amstexloaded@\relax
     %\message{amstex is loaded}%
     %% forget the text only warnings incompatible with Plain
          \def\textonlyfont@#1#2{\def#1{#2}}
          \def\textfont@#1#2{\def#1{#2}}
  \else
     %\message{amstex is NOT loaded}
   \fi

 %%% Restoring
   \let\wlog\wlog@ld %%restore logging
   \catcode`\@=\CatAt  %%12 or 13

  \endinput

 %% end of  osudeG.sty
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



