% OUCLPRGSC DOCUMENT CLASS -- version 1.0 (25-Sep-2006)
% Oxford University Department of Computer Science Student Conference
%
%%
%% \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         \~}
%%
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesClass{ouclprgsc}[2006/09/25 v1.0
^^J LaTeX document class for Oxford University Department of Computer Science Student Conference Proceedings]
% Options
\let\if@envcntreset\iffalse
\DeclareOption{envcountreset}{\let\if@envcntreset\iftrue}
\DeclareOption{citeauthoryear}{\let\citeauthoryear=Y}
\DeclareOption{oribibl}{\let\oribibl=Y}
\let\if@custvec\iftrue
\DeclareOption{orivec}{\let\if@custvec\iffalse}
\let\if@envcntsame\iffalse
\DeclareOption{envcountsame}{\let\if@envcntsame\iftrue}
\let\if@envcntsect\iffalse
\DeclareOption{envcountsect}{\let\if@envcntsect\iftrue}
\let\if@runhead\iffalse
\DeclareOption{runningheads}{\let\if@runhead\iftrue}

\let\if@openbib\iffalse
\DeclareOption{openbib}{\let\if@openbib\iftrue}

% languages
\let\switcht@@therlang\relax
\def\ds@deutsch{\def\switcht@@therlang{\switcht@deutsch}}
\def\ds@francais{\def\switcht@@therlang{\switcht@francais}}

\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}

\ProcessOptions

\LoadClass[twoside]{article}
\RequirePackage{multicol} % needed for the list of participants, index

%\setlength{\textwidth}{12.2cm}
%\setlength{\textheight}{19.3cm}

\setlength{\textwidth}{5.5in}		% 5.5in text - 1.5in rt margin
\setlength{\textheight}{8.3in}		% Body ht for 1in margins



\renewcommand\@pnumwidth{2em}
\renewcommand\@tocrmarg{3.5em}
%
\def\@dottedtocline#1#2#3#4#5{%
 \ifnum #1>\c@tocdepth \else
   \vskip \z@ \@plus.2\p@
   {\leftskip #2\relax \rightskip \@tocrmarg \advance\rightskip by 0pt plus 2cm
              \parfillskip -\rightskip \pretolerance=10000
    \parindent #2\relax\@afterindenttrue
    \interlinepenalty\@M
    \leavevmode
    \@tempdima #3\relax
    \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
    {#4}\nobreak
    \leaders\hbox{$\m@th
       \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
       mu$}\hfill
    \nobreak
    \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}%
    \par}%
 \fi}
%
\def\switcht@albion{%
\def\abstractname{Abstract.}
\def\ackname{Acknowledgement.}
\def\andname{and}
\def\lastandname{\unskip, and}
\def\appendixname{Appendix}
\def\chaptername{Chapter}
\def\claimname{Claim}
\def\conjecturename{Conjecture}
\def\contentsname{Table of Contents}
\def\corollaryname{Corollary}
\def\definitionname{Definition}
\def\examplename{Example}
\def\exercisename{Exercise}
\def\figurename{Fig.}
\def\keywordname{{\bf Key words:}}
\def\indexname{Index}
\def\lemmaname{Lemma}
\def\contriblistname{List of Contributors}
\def\listfigurename{List of Figures}
\def\listtablename{List of Tables}
\def\mailname{{\it Correspondence to\/}:}
\def\noteaddname{Note added in proof}
\def\notename{Note}
\def\partname{Part}
\def\problemname{Problem}
\def\proofname{Proof}
\def\propertyname{Property}
\def\propositionname{Proposition}
\def\questionname{Question}
\def\remarkname{Remark}
\def\seename{see}
\def\solutionname{Solution}
\def\subclassname{{\it Subject Classifications\/}:}
\def\tablename{Table}
\def\theoremname{Theorem}}
\switcht@albion
% Names of theorem like environments are already defined
% but must be translated if another language is chosen
%
% French section
\def\switcht@francais{%\typeout{On parle francais.}%
\def\abstractname{R\'esum\'e.}%
\def\ackname{Remerciements.}%
\def\andname{et}%
\def\lastandname{ et}%
\def\appendixname{Appendice}
\def\chaptername{Chapitre}%
\def\claimname{Pr\'etention}%
\def\conjecturename{Hypoth\`ese}%
\def\contentsname{Table des mati\`eres}%
\def\corollaryname{Corollaire}%
\def\definitionname{D\'efinition}%
\def\examplename{Exemple}%
\def\exercisename{Exercice}%
\def\figurename{Fig.}%
\def\keywordname{{\bf Mots-cl\'e:}}
\def\indexname{Index}
\def\lemmaname{Lemme}%
\def\contriblistname{Liste des contributeurs}
\def\listfigurename{Liste des figures}%
\def\listtablename{Liste des tables}%
\def\mailname{{\it Correspondence to\/}:}
\def\noteaddname{Note ajout\'ee \`a l'\'epreuve}%
\def\notename{Remarque}%
\def\partname{Partie}%
\def\problemname{Probl\`eme}%
\def\proofname{Preuve}%
\def\propertyname{Caract\'eristique}%
%\def\propositionname{Proposition}%
\def\questionname{Question}%
\def\remarkname{Remarque}%
\def\seename{voir}
\def\solutionname{Solution}%
\def\subclassname{{\it Subject Classifications\/}:}
\def\tablename{Tableau}%
\def\theoremname{Th\'eor\`eme}%
}
%
% German section
\def\switcht@deutsch{%\typeout{Man spricht deutsch.}%
\def\abstractname{Zusammenfassung.}%
\def\ackname{Danksagung.}%
\def\andname{und}%
\def\lastandname{ und}%
\def\appendixname{Anhang}%
\def\chaptername{Kapitel}%
\def\claimname{Behauptung}%
\def\conjecturename{Hypothese}%
\def\contentsname{Inhaltsverzeichnis}%
\def\corollaryname{Korollar}%
%\def\definitionname{Definition}%
\def\examplename{Beispiel}%
\def\exercisename{\"Ubung}%
\def\figurename{Abb.}%
\def\keywordname{{\bf Schl\"usselw\"orter:}}
\def\indexname{Index}
%\def\lemmaname{Lemma}%
\def\contriblistname{Mitarbeiter}
\def\listfigurename{Abbildungsverzeichnis}%
\def\listtablename{Tabellenverzeichnis}%
\def\mailname{{\it Correspondence to\/}:}
\def\noteaddname{Nachtrag}%
\def\notename{Anmerkung}%
\def\partname{Teil}%
%\def\problemname{Problem}%
\def\proofname{Beweis}%
\def\propertyname{Eigenschaft}%
%\def\propositionname{Proposition}%
\def\questionname{Frage}%
\def\remarkname{Anmerkung}%
\def\seename{siehe}
\def\solutionname{L\"osung}%
\def\subclassname{{\it Subject Classifications\/}:}
\def\tablename{Tabelle}%
%\def\theoremname{Theorem}%
}

% Ragged bottom for the actual page
\def\thisbottomragged{\def\@textbottom{\vskip\z@ plus.0001fil
\global\let\@textbottom\relax}}

\renewcommand\small{%
  \@setfontsize\small\@ixpt{11}%
  \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@
  \abovedisplayshortskip \z@ \@plus2\p@
  \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
  \def\@listi{\leftmargin\leftmargini
              \parsep 0\p@ \@plus1\p@ \@minus\p@
              \topsep 8\p@ \@plus2\p@ \@minus4\p@
              \itemsep0\p@}%
  \belowdisplayskip \abovedisplayskip
}

\frenchspacing
\widowpenalty=10000
\clubpenalty=10000

%\setlength\oddsidemargin   {63\p@}
%\setlength\evensidemargin  {63\p@}
%\setlength\marginparwidth  {90\p@}

\setlength{\oddsidemargin}{0.5in}	% 1.45in left margin 
\setlength{\evensidemargin}{0.5in}	% 1.45in left margin (even pages)

\setlength\headsep   {16\p@}

\setlength\footnotesep{7.7\p@}
\setlength\textfloatsep{8mm\@plus 2\p@ \@minus 4\p@}
\setlength\intextsep   {8mm\@plus 2\p@ \@minus 2\p@}

\setcounter{secnumdepth}{2}

\newcounter {chapter}
\renewcommand\thechapter      {\@arabic\c@chapter}

\newif\if@mainmatter \@mainmattertrue
\newcommand\frontmatter{\cleardoublepage
           \@mainmatterfalse\pagenumbering{Roman}}
\newcommand\mainmatter{\cleardoublepage
      \@mainmattertrue\pagenumbering{arabic}}
\newcommand\backmatter{\if@openright\cleardoublepage\else\clearpage\fi
     \@mainmatterfalse}

\renewcommand\part{\cleardoublepage
                \thispagestyle{empty}%
                \if@twocolumn
                    \onecolumn
                    \@tempswatrue
                  \else
                    \@tempswafalse
                \fi
                \null\vfil
                \secdef\@part\@spart}

\def\@part[#1]#2{%
   \ifnum \c@secnumdepth >-2\relax
     \refstepcounter{part}%
     \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
   \else
     \addcontentsline{toc}{part}{#1}%
   \fi
   \markboth{}{}%
   {\centering
    \interlinepenalty \@M
    \normalfont
    \ifnum \c@secnumdepth >-2\relax
      \huge\bfseries \partname~\thepart
      \par
      \vskip 20\p@
    \fi
    \Huge \bfseries #2\par}%
   \@endpart}
\def\@spart#1{%
   {\centering
    \interlinepenalty \@M
    \normalfont
    \Huge \bfseries #1\par}%
   \@endpart}
\def\@endpart{\vfil\newpage
             \if@twoside
               \null
               \thispagestyle{empty}%
               \newpage
             \fi
             \if@tempswa
               \twocolumn
             \fi}

\newcommand\chapter{\clearpage
                   \thispagestyle{empty}%
                   \global\@topnum\z@
                   \@afterindentfalse
                   \secdef\@chapter\@schapter}
\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
                      \if@mainmatter
                        \refstepcounter{chapter}%
                        \typeout{\@chapapp\space\thechapter.}%
                        \addcontentsline{toc}{chapter}%
                                 {\protect\numberline{\thechapter}#1}%
                      \else
                        \addcontentsline{toc}{chapter}{#1}%
                      \fi
                   \else
                     \addcontentsline{toc}{chapter}{#1}%
                   \fi
                   \chaptermark{#1}%
                   \addtocontents{lof}{\protect\addvspace{10\p@}}%
                   \addtocontents{lot}{\protect\addvspace{10\p@}}%
                   \if@twocolumn
                     \@topnewpage[\@makechapterhead{#2}]%
                   \else
                     \@makechapterhead{#2}%
                     \@afterheading
                   \fi}
\def\@makechapterhead#1{%
% \vspace*{50\p@}%
 {\centering
   \ifnum \c@secnumdepth >\m@ne
     \if@mainmatter
       \large\bfseries \@chapapp{} \thechapter
       \par\nobreak
       \vskip 20\p@
     \fi
   \fi
   \interlinepenalty\@M
   \Large \bfseries #1\par\nobreak
   \vskip 40\p@
 }}
\def\@schapter#1{\if@twocolumn
                  \@topnewpage[\@makeschapterhead{#1}]%
                \else
                  \@makeschapterhead{#1}%
                  \@afterheading
                \fi}
\def\@makeschapterhead#1{%
% \vspace*{50\p@}%
 {\centering
   \normalfont
   \interlinepenalty\@M
   \Large \bfseries  #1\par\nobreak
   \vskip 40\p@
 }}

\renewcommand\section{\@startsection{section}{1}{\z@}%
                      {-18\p@ \@plus -4\p@ \@minus -4\p@}%
                      {12\p@ \@plus 4\p@ \@minus 4\p@}%
                      {\normalfont\large\bfseries\boldmath
                       \rightskip=\z@ \@plus 8em\pretolerance=10000 }}
\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
                      {-18\p@ \@plus -4\p@ \@minus -4\p@}%
                      {8\p@ \@plus 4\p@ \@minus 4\p@}%
                      {\normalfont\normalsize\bfseries\boldmath
                       \rightskip=\z@ \@plus 8em\pretolerance=10000 }}
\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
                      {-18\p@ \@plus -4\p@ \@minus -4\p@}%
                      {-0.5em \@plus -0.22em \@minus -0.1em}%
                      {\normalfont\normalsize\bfseries\boldmath}}
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
                      {-12\p@ \@plus -4\p@ \@minus -4\p@}%
                      {-0.5em \@plus -0.22em \@minus -0.1em}%
                      {\normalfont\normalsize\itshape}}
\renewcommand\subparagraph[1]{\typeout{LLNCS warning: You should not use
                 \string\subparagraph\space with this class}\vskip0.5cm
You should not use \verb|\subparagraph| with this class.\vskip0.5cm}

\DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{"00}
\DeclareMathSymbol{\Delta}{\mathalpha}{letters}{"01}
\DeclareMathSymbol{\Theta}{\mathalpha}{letters}{"02}
\DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{"03}
\DeclareMathSymbol{\Xi}{\mathalpha}{letters}{"04}
\DeclareMathSymbol{\Pi}{\mathalpha}{letters}{"05}
\DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{"06}
\DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{"07}
\DeclareMathSymbol{\Phi}{\mathalpha}{letters}{"08}
\DeclareMathSymbol{\Psi}{\mathalpha}{letters}{"09}
\DeclareMathSymbol{\Omega}{\mathalpha}{letters}{"0A}

\let\footnotesize\small

\if@custvec
\def\vec#1{\mathchoice{\mbox{\boldmath$\displaystyle#1$}}
{\mbox{\boldmath$\textstyle#1$}}
{\mbox{\boldmath$\scriptstyle#1$}}
{\mbox{\boldmath$\scriptscriptstyle#1$}}}
\fi

\def\squareforqed{\hbox{\rlap{$\sqcap$}$\sqcup$}}
\def\qed{\ifmmode\squareforqed\else{\unskip\nobreak\hfil
\penalty50\hskip1em\null\nobreak\hfil\squareforqed
\parfillskip=0pt\finalhyphendemerits=0\endgraf}\fi}

\def\getsto{\mathrel{\mathchoice {\vcenter{\offinterlineskip
\halign{\hfil
$\displaystyle##$\hfil\cr\gets\cr\to\cr}}}
{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr\gets
\cr\to\cr}}}
{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr\gets
\cr\to\cr}}}
{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
\gets\cr\to\cr}}}}}
\def\lid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
$\displaystyle##$\hfil\cr<\cr\noalign{\vskip1.2pt}=\cr}}}
{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr<\cr
\noalign{\vskip1.2pt}=\cr}}}
{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr<\cr
\noalign{\vskip1pt}=\cr}}}
{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
<\cr
\noalign{\vskip0.9pt}=\cr}}}}}
\def\gid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
$\displaystyle##$\hfil\cr>\cr\noalign{\vskip1.2pt}=\cr}}}
{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr>\cr
\noalign{\vskip1.2pt}=\cr}}}
{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr>\cr
\noalign{\vskip1pt}=\cr}}}
{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
\cr
\noalign{\vskip0.9pt}=\cr}}}}}
\def\grole{\mathrel{\mathchoice {\vcenter{\offinterlineskip
\halign{\hfil
$\displaystyle##$\hfil\cr>\cr\noalign{\vskip-1pt}<\cr}}}
{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr
\cr\noalign{\vskip-1pt}<\cr}}}
{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr
\cr\noalign{\vskip-0.8pt}<\cr}}}
{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
\cr\noalign{\vskip-0.3pt}<\cr}}}}}
\def\bbbr{{\rm I\!R}} %reelle Zahlen
\def\bbbm{{\rm I\!M}}
\def\bbbn{{\rm I\!N}} %natuerliche Zahlen
\def\bbbf{{\rm I\!F}}
\def\bbbh{{\rm I\!H}}
\def\bbbk{{\rm I\!K}}
\def\bbbp{{\rm I\!P}}
\def\bbbone{{\mathchoice {\rm 1\mskip-4mu l} {\rm 1\mskip-4mu l}
{\rm 1\mskip-4.5mu l} {\rm 1\mskip-5mu l}}}
\def\bbbc{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm C$}\hbox{\hbox
to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
{\setbox0=\hbox{$\textstyle\rm C$}\hbox{\hbox
to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
{\setbox0=\hbox{$\scriptstyle\rm C$}\hbox{\hbox
to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
{\setbox0=\hbox{$\scriptscriptstyle\rm C$}\hbox{\hbox
to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}}}
\def\bbbq{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm
Q$}\hbox{\raise
0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}}
{\setbox0=\hbox{$\textstyle\rm Q$}\hbox{\raise
0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}}
{\setbox0=\hbox{$\scriptstyle\rm Q$}\hbox{\raise
0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}
{\setbox0=\hbox{$\scriptscriptstyle\rm Q$}\hbox{\raise
0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}}}
\def\bbbt{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm
T$}\hbox{\hbox to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
{\setbox0=\hbox{$\textstyle\rm T$}\hbox{\hbox
to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
{\setbox0=\hbox{$\scriptstyle\rm T$}\hbox{\hbox
to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
{\setbox0=\hbox{$\scriptscriptstyle\rm T$}\hbox{\hbox
to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}}}
\def\bbbs{{\mathchoice
{\setbox0=\hbox{$\displaystyle     \rm S$}\hbox{\raise0.5\ht0\hbox
to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox
to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}}
{\setbox0=\hbox{$\textstyle        \rm S$}\hbox{\raise0.5\ht0\hbox
to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox
to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}}
{\setbox0=\hbox{$\scriptstyle      \rm S$}\hbox{\raise0.5\ht0\hbox
to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox
to0pt{\kern0.5\wd0\vrule height0.45\ht0\hss}\box0}}
{\setbox0=\hbox{$\scriptscriptstyle\rm S$}\hbox{\raise0.5\ht0\hbox
to0pt{\kern0.4\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox
to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}}
\def\bbbz{{\mathchoice {\hbox{$\mathsf\textstyle Z\kern-0.4em Z$}}
{\hbox{$\mathsf\textstyle Z\kern-0.4em Z$}}
{\hbox{$\mathsf\scriptstyle Z\kern-0.3em Z$}}
{\hbox{$\mathsf\scriptscriptstyle Z\kern-0.2em Z$}}}}

\let\ts\,

\setlength\leftmargini  {17\p@}
\setlength\leftmargin    {\leftmargini}
\setlength\leftmarginii  {\leftmargini}
\setlength\leftmarginiii {\leftmargini}
\setlength\leftmarginiv  {\leftmargini}
\setlength  \labelsep  {.5em}
\setlength  \labelwidth{\leftmargini}
\addtolength\labelwidth{-\labelsep}

\def\@listI{\leftmargin\leftmargini
           \parsep 0\p@ \@plus1\p@ \@minus\p@
           \topsep 8\p@ \@plus2\p@ \@minus4\p@
           \itemsep0\p@}
\let\@listi\@listI
\@listi
\def\@listii {\leftmargin\leftmarginii
             \labelwidth\leftmarginii
             \advance\labelwidth-\labelsep
             \topsep    0\p@ \@plus2\p@ \@minus\p@}
\def\@listiii{\leftmargin\leftmarginiii
             \labelwidth\leftmarginiii
             \advance\labelwidth-\labelsep
             \topsep    0\p@ \@plus\p@\@minus\p@
             \parsep    \z@
             \partopsep \p@ \@plus\z@ \@minus\p@}

\renewcommand\labelitemi{\normalfont\bfseries --}
\renewcommand\labelitemii{$\m@th\bullet$}

\setlength\arraycolsep{1.4\p@}
\setlength\tabcolsep{1.4\p@}

\def\tableofcontents{\chapter*{\contentsname\@mkboth{{\contentsname}}%
                                                   {{\contentsname}}}
\def\authcount##1{\setcounter{auco}{##1}\setcounter{@auth}{1}}
\def\lastand{\ifnum\value{auco}=2\relax
                \unskip{} \andname\
             \else
                \unskip \lastandname\
             \fi}%
\def\and{\stepcounter{@auth}\relax
         \ifnum\value{@auth}=\value{auco}%
            \lastand
         \else
            \unskip,
         \fi}%
\@starttoc{toc}\if@restonecol\twocolumn\fi}

\def\l@part#1#2{\addpenalty{\@secpenalty}%
  \addvspace{2em plus\p@}%  % space above part line
  \begingroup
    \parindent \z@
    \rightskip \z@ plus 5em
    \hrule\vskip5pt
    \large               % same size as for a contribution heading
    \bfseries\boldmath   % set line in boldface
    \leavevmode          % TeX command to enter horizontal mode.
    #1\par
    \vskip5pt
    \hrule
    \vskip1pt
    \nobreak             % Never break after part entry
  \endgroup}

\def\@dotsep{2}

\def\hyperhrefextend{\ifx\hyper@anchor\@undefined\else
{chapter.\thechapter}\fi}

\def\addnumcontentsmark#1#2#3{%
\addtocontents{#1}{\protect\contentsline{#2}{\protect\numberline
                    {\thechapter}#3}{\thepage}\hyperhrefextend}}
\def\addcontentsmark#1#2#3{%
\addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}\hyperhrefextend}}
\def\addcontentsmarkwop#1#2#3{%
\addtocontents{#1}{\protect\contentsline{#2}{#3}{0}\hyperhrefextend}}

\def\@adcmk[#1]{\ifcase #1 \or
\def\@gtempa{\addnumcontentsmark}%
 \or    \def\@gtempa{\addcontentsmark}%
 \or    \def\@gtempa{\addcontentsmarkwop}%
 \fi\@gtempa{toc}{chapter}}
\def\addtocmark{\@ifnextchar[{\@adcmk}{\@adcmk[3]}}

\def\l@chapter#1#2{\addpenalty{-\@highpenalty}
\vskip 1.0em plus 1pt \@tempdima 1.5em \begingroup
\parindent \z@ \rightskip \@tocrmarg
\advance\rightskip by 0pt plus 2cm
\parfillskip -\rightskip \pretolerance=10000
\leavevmode \advance\leftskip\@tempdima \hskip -\leftskip
{\large\bfseries\boldmath#1}\ifx0#2\hfil\null
\else
     \nobreak
     \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern
     \@dotsep mu$}\hfill
     \nobreak\hbox to\@pnumwidth{\hss #2}%
\fi\par
\penalty\@highpenalty \endgroup}

\def\l@title#1#2{\addpenalty{-\@highpenalty}
\addvspace{8pt plus 1pt}
\@tempdima \z@
\begingroup
\parindent \z@ \rightskip \@tocrmarg
\advance\rightskip by 0pt plus 2cm
\parfillskip -\rightskip \pretolerance=10000
\leavevmode \advance\leftskip\@tempdima \hskip -\leftskip
#1\nobreak
\leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern
\@dotsep mu$}\hfill
\nobreak\hbox to\@pnumwidth{\hss #2}\par
\penalty\@highpenalty \endgroup}

\def\l@author#1#2{\addpenalty{\@highpenalty}
\@tempdima=15\p@ %\z@
\begingroup
\parindent \z@ \rightskip \@tocrmarg
\advance\rightskip by 0pt plus 2cm
\pretolerance=10000
\leavevmode \advance\leftskip\@tempdima %\hskip -\leftskip
\textit{#1}\par
\penalty\@highpenalty \endgroup}

\setcounter{tocdepth}{0}
\newdimen\tocchpnum
\newdimen\tocsecnum
\newdimen\tocsectotal
\newdimen\tocsubsecnum
\newdimen\tocsubsectotal
\newdimen\tocsubsubsecnum
\newdimen\tocsubsubsectotal
\newdimen\tocparanum
\newdimen\tocparatotal
\newdimen\tocsubparanum
\tocchpnum=\z@            % no chapter numbers
\tocsecnum=15\p@          % section 88. plus 2.222pt
\tocsubsecnum=23\p@       % subsection 88.8 plus 2.222pt
\tocsubsubsecnum=27\p@    % subsubsection 88.8.8 plus 1.444pt
\tocparanum=35\p@         % paragraph 88.8.8.8 plus 1.666pt
\tocsubparanum=43\p@      % subparagraph 88.8.8.8.8 plus 1.888pt
\def\calctocindent{%
\tocsectotal=\tocchpnum
\advance\tocsectotal by\tocsecnum
\tocsubsectotal=\tocsectotal
\advance\tocsubsectotal by\tocsubsecnum
\tocsubsubsectotal=\tocsubsectotal
\advance\tocsubsubsectotal by\tocsubsubsecnum
\tocparatotal=\tocsubsubsectotal
\advance\tocparatotal by\tocparanum}
\calctocindent

\def\l@section{\@dottedtocline{1}{\tocchpnum}{\tocsecnum}}
\def\l@subsection{\@dottedtocline{2}{\tocsectotal}{\tocsubsecnum}}
\def\l@subsubsection{\@dottedtocline{3}{\tocsubsectotal}{\tocsubsubsecnum}}
\def\l@paragraph{\@dottedtocline{4}{\tocsubsubsectotal}{\tocparanum}}
\def\l@subparagraph{\@dottedtocline{5}{\tocparatotal}{\tocsubparanum}}

\def\listoffigures{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
\fi\section*{\listfigurename\@mkboth{{\listfigurename}}{{\listfigurename}}}
\@starttoc{lof}\if@restonecol\twocolumn\fi}
\def\l@figure{\@dottedtocline{1}{0em}{1.5em}}

\def\listoftables{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
\fi\section*{\listtablename\@mkboth{{\listtablename}}{{\listtablename}}}
\@starttoc{lot}\if@restonecol\twocolumn\fi}
\let\l@table\l@figure

\renewcommand\listoffigures{%
   \section*{\listfigurename
     \@mkboth{\listfigurename}{\listfigurename}}%
   \@starttoc{lof}%
   }

\renewcommand\listoftables{%
   \section*{\listtablename
     \@mkboth{\listtablename}{\listtablename}}%
   \@starttoc{lot}%
   }

\ifx\oribibl\undefined
\ifx\citeauthoryear\undefined
\renewenvironment{thebibliography}[1]
    {\section*{\refname}
     \def\@biblabel##1{##1.}
     \small
     \list{\@biblabel{\@arabic\c@enumiv}}%
          {\settowidth\labelwidth{\@biblabel{#1}}%
           \leftmargin\labelwidth
           \advance\leftmargin\labelsep
           \if@openbib
             \advance\leftmargin\bibindent
             \itemindent -\bibindent
             \listparindent \itemindent
             \parsep \z@
           \fi
           \usecounter{enumiv}%
           \let\p@enumiv\@empty
           \renewcommand\theenumiv{\@arabic\c@enumiv}}%
     \if@openbib
       \renewcommand\newblock{\par}%
     \else
       \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}%
     \fi
     \sloppy\clubpenalty4000\widowpenalty4000%
     \sfcode`\.=\@m}
    {\def\@noitemerr
      {\@latex@warning{Empty `thebibliography' environment}}%
     \endlist}
\def\@lbibitem[#1]#2{\item[{[#1]}\hfill]\if@filesw
    {\let\protect\noexpand\immediate
    \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}
\newcount\@tempcntc
\def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi
 \@tempcnta\z@\@tempcntb\m@ne\def\@citea{}\@cite{\@for\@citeb:=#2\do
   {\@ifundefined
      {b@\@citeb}{\@citeo\@tempcntb\m@ne\@citea\def\@citea{,}{\bfseries
       ?}\@warning
      {Citation `\@citeb' on page \thepage \space undefined}}%
   {\setbox\z@\hbox{\global\@tempcntc0\csname b@\@citeb\endcsname\relax}%
    \ifnum\@tempcntc=\z@ \@citeo\@tempcntb\m@ne
      \@citea\def\@citea{,}\hbox{\csname b@\@citeb\endcsname}%
    \else
     \advance\@tempcntb\@ne
     \ifnum\@tempcntb=\@tempcntc
     \else\advance\@tempcntb\m@ne\@citeo
     \@tempcnta\@tempcntc\@tempcntb\@tempcntc\fi\fi}}\@citeo}{#1}}
\def\@citeo{\ifnum\@tempcnta>\@tempcntb\else
              \@citea\def\@citea{,\,\hskip\z@skip}%
              \ifnum\@tempcnta=\@tempcntb\the\@tempcnta\else
              {\advance\@tempcnta\@ne\ifnum\@tempcnta=\@tempcntb \else
               \def\@citea{--}\fi
     \advance\@tempcnta\m@ne\the\@tempcnta\@citea\the\@tempcntb}\fi\fi}
\else
\renewenvironment{thebibliography}[1]
    {\section*{\refname}
     \small
     \list{}%
          {\settowidth\labelwidth{}%
           \leftmargin\parindent
           \itemindent=-\parindent
           \labelsep=\z@
           \if@openbib
             \advance\leftmargin\bibindent
             \itemindent -\bibindent
             \listparindent \itemindent
             \parsep \z@
           \fi
           \usecounter{enumiv}%
           \let\p@enumiv\@empty
           \renewcommand\theenumiv{}}%
     \if@openbib
       \renewcommand\newblock{\par}%
     \else
       \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}%
     \fi
     \sloppy\clubpenalty4000\widowpenalty4000%
     \sfcode`\.=\@m}
    {\def\@noitemerr
      {\@latex@warning{Empty `thebibliography' environment}}%
     \endlist}
     \def\@cite#1{#1}%
     \def\@lbibitem[#1]#2{\item[]\if@filesw
       {\def\protect##1{\string ##1\space}\immediate
     \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}
  \fi
\else
\@cons\@openbib@code{\noexpand\small}
\fi

\def\idxquad{\hskip 10\p@}% space that divides entry from number

\def\@idxitem{\par\hangindent 10\p@}

\def\subitem{\par\setbox0=\hbox{--\enspace}% second order
               \noindent\hangindent\wd0\box0}% index entry

\def\subsubitem{\par\setbox0=\hbox{--\,--\enspace}% third
               \noindent\hangindent\wd0\box0}% order index entry

\def\indexspace{\par \vskip 10\p@ plus5\p@ minus3\p@\relax}

\renewenvironment{theindex}
              {\@mkboth{\indexname}{\indexname}%
               \thispagestyle{empty}\parindent\z@
               \parskip\z@ \@plus .3\p@\relax
               \let\item\par
               \def\,{\relax\ifmmode\mskip\thinmuskip
                            \else\hskip0.2em\ignorespaces\fi}%
               \normalfont\small
               \begin{multicols}{2}[\@makeschapterhead{\indexname}]%
               }
               {\end{multicols}}

\renewcommand\footnoterule{%
 \kern-3\p@
 \hrule\@width 2truecm
 \kern2.6\p@}
 \newdimen\fnindent
 \fnindent1em
\long\def\@makefntext#1{%
   \parindent \fnindent%
   \leftskip \fnindent%
   \noindent
   \llap{\hb@xt@1em{\hss\@makefnmark\ }}\ignorespaces#1}

\long\def\@makecaption#1#2{%
 \vskip\abovecaptionskip
 \sbox\@tempboxa{{\bfseries #1.} #2}%
 \ifdim \wd\@tempboxa >\hsize
   {\bfseries #1.} #2\par
 \else
   \global \@minipagefalse
   \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
 \fi
 \vskip\belowcaptionskip}

\def\fps@figure{htbp}
\def\fnum@figure{\figurename\thinspace\thefigure}
\def \@floatboxreset {%
       \reset@font
       \small
       \@setnobreak
       \@setminipage
}
\def\fps@table{htbp}
\def\fnum@table{\tablename~\thetable}
\renewenvironment{table}
              {\setlength\abovecaptionskip{0\p@}%
               \setlength\belowcaptionskip{10\p@}%
               \@float{table}}
              {\end@float}
\renewenvironment{table*}
              {\setlength\abovecaptionskip{0\p@}%
               \setlength\belowcaptionskip{10\p@}%
               \@dblfloat{table}}
              {\end@dblfloat}

\long\def\@caption#1[#2]#3{\par\addcontentsline{\csname
 ext@#1\endcsname}{#1}{\protect\numberline{\csname
 the#1\endcsname}{\ignorespaces #2}}\begingroup
   \@parboxrestore
   \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
 \endgroup}

% LaTeX does not provide a command to enter the authors institute
% addresses. The \institute command is defined here.

\newcounter{@inst}
\newcounter{@auth}
\newcounter{auco}
\newdimen\instindent
\newbox\authrun
\newtoks\authorrunning
\newtoks\tocauthor
\newbox\titrun
\newtoks\titlerunning
\newtoks\toctitle

\def\clearheadinfo{\gdef\@author{No Author Given}%
                  \gdef\@title{No Title Given}%
                  \gdef\@subtitle{}%
                  \gdef\@institute{No Institute Given}%
                  \gdef\@thanks{}%
                  \global\titlerunning={}\global\authorrunning={}%
                  \global\toctitle={}\global\tocauthor={}}

\def\institute#1{\gdef\@institute{#1}}

\def\institutename{\par
\begingroup
\parskip=\z@
\parindent=\z@
\setcounter{@inst}{1}%
\def\and{\par\stepcounter{@inst}%
\noindent$^{\the@inst}$\enspace\ignorespaces}%
\setbox0=\vbox{\def\thanks##1{}\@institute}%
\ifnum\c@@inst=1\relax
  \gdef\fnnstart{0}%
\else
  \xdef\fnnstart{\c@@inst}%
  \setcounter{@inst}{1}%
  \noindent$^{\the@inst}$\enspace
\fi
\ignorespaces
\@institute\par
\endgroup}

\def\@fnsymbol#1{\ensuremath{\ifcase#1\or\star\or{\star\star}\or
  {\star\star\star}\or \dagger\or \ddagger\or
  \mathchar "278\or \mathchar "27B\or \|\or **\or \dagger\dagger
  \or \ddagger\ddagger \else\@ctrerr\fi}}

\def\inst#1{\unskip$^{#1}$}
\def\fnmsep{\unskip$^,$}
\def\email#1{{\tt#1}}
\AtBeginDocument{\@ifundefined{url}{\def\url#1{#1}}{}%
\@ifpackageloaded{babel}{%
\@ifundefined{extrasenglish}{}{\addto\extrasenglish{\switcht@albion}}%
\@ifundefined{extrasfrenchb}{}{\addto\extrasfrenchb{\switcht@francais}}%
\@ifundefined{extrasgerman}{}{\addto\extrasgerman{\switcht@deutsch}}%
}{\switcht@@therlang}%
}
\def\homedir{\~{ }}

\def\subtitle#1{\gdef\@subtitle{#1}}
\clearheadinfo
%
\renewcommand\maketitle{\newpage
 \refstepcounter{chapter}%
 \stepcounter{section}%
 \setcounter{section}{0}%
 \setcounter{subsection}{0}%
 \setcounter{figure}{0}
 \setcounter{table}{0}
 \setcounter{equation}{0}
 \setcounter{footnote}{0}%
 \begingroup
   \parindent=\z@
   \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
   \if@twocolumn
     \ifnum \col@number=\@ne
       \@maketitle
     \else
       \twocolumn[\@maketitle]%
     \fi
   \else
     \newpage
     \global\@topnum\z@   % Prevents figures from going at top of page.
     \@maketitle
   \fi
   \thispagestyle{empty}\@thanks
%
   \def\\{\unskip\ \ignorespaces}\def\inst##1{\unskip{}}%
   \def\thanks##1{\unskip{}}\def\fnmsep{\unskip}%
   \instindent=\hsize
   \advance\instindent by-\headlineindent
   \if!\the\toctitle!\addcontentsline{toc}{title}{\@title}\else
      \addcontentsline{toc}{title}{\the\toctitle}\fi
   \if@runhead
      \if!\the\titlerunning!\else
        \edef\@title{\the\titlerunning}%
      \fi
      \global\setbox\titrun=\hbox{\small\rm\unboldmath\ignorespaces\@title}%
      \ifdim\wd\titrun>\instindent
         \typeout{Title too long for running head. Please supply}%
         \typeout{a shorter form with \string\titlerunning\space prior to
                  \string\maketitle}%
         \global\setbox\titrun=\hbox{\small\rm
         Title Suppressed Due to Excessive Length}%
      \fi
      \xdef\@title{\copy\titrun}%
   \fi
%
   \if!\the\tocauthor!\relax
     {\def\and{\noexpand\protect\noexpand\and}%
     \protected@xdef\toc@uthor{\@author}}%
   \else
     \def\\{\noexpand\protect\noexpand\newline}%
     \protected@xdef\scratch{\the\tocauthor}%
     \protected@xdef\toc@uthor{\scratch}%
   \fi
   \addtocontents{toc}{\noexpand\protect\noexpand\authcount{\the\c@auco}}%
   \addcontentsline{toc}{author}{\toc@uthor}%
   \if@runhead
      \if!\the\authorrunning!
        \value{@inst}=\value{@auth}%
        \setcounter{@auth}{1}%
      \else
        \edef\@author{\the\authorrunning}%
      \fi
      \global\setbox\authrun=\hbox{\small\unboldmath\@author\unskip}%
      \ifdim\wd\authrun>\instindent
         \typeout{Names of authors too long for running head. Please supply}%
         \typeout{a shorter form with \string\authorrunning\space prior to
                  \string\maketitle}%
         \global\setbox\authrun=\hbox{\small\rm
         Authors Suppressed Due to Excessive Length}%
      \fi
      \xdef\@author{\copy\authrun}%
      \markboth{\@author}{\@title}%
    \fi
 \endgroup
 \setcounter{footnote}{\fnnstart}%
 \clearheadinfo}
%
\def\@maketitle{\newpage
\markboth{}{}%
\def\lastand{\ifnum\value{@inst}=2\relax
                \unskip{} \andname\
             \else
                \unskip \lastandname\
             \fi}%
\def\and{\stepcounter{@auth}\relax
         \ifnum\value{@auth}=\value{@inst}%
            \lastand
         \else
            \unskip,
         \fi}%
\begin{center}%
\let\newline\\
{\Large \bfseries\boldmath
 \pretolerance=10000
 \@title \par}\vskip .8cm
\if!\@subtitle!\else {\large \bfseries\boldmath
 \vskip -.65cm
 \pretolerance=10000
 \@subtitle \par}\vskip .8cm\fi
\setbox0=\vbox{\setcounter{@auth}{1}\def\and{\stepcounter{@auth}}%
\def\thanks##1{}\@author}%
\global\value{@inst}=\value{@auth}%
\global\value{auco}=\value{@auth}%
\setcounter{@auth}{1}%
{\lineskip .5em
\noindent\ignorespaces
\@author\vskip.35cm}
{\small\institutename}
\end{center}%
}

% definition of the "\spnewtheorem" command.
%
% Usage:
%
%     \spnewtheorem{env_nam}{caption}[within]{cap_font}{body_font}
% or  \spnewtheorem{env_nam}[numbered_like]{caption}{cap_font}{body_font}
% or  \spnewtheorem*{env_nam}{caption}{cap_font}{body_font}
%
% New is "cap_font" and "body_font". It stands for
% fontdefinition of the caption and the text itself.
%
% "\spnewtheorem*" gives a theorem without number.
%
% A defined spnewthoerem environment is used as described
% by Lamport.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\def\@thmcountersep{}
\def\@thmcounterend{.}

\def\spnewtheorem{\@ifstar{\@sthm}{\@Sthm}}

% definition of \spnewtheorem with number

\def\@spnthm#1#2{%
 \@ifnextchar[{\@spxnthm{#1}{#2}}{\@spynthm{#1}{#2}}}
\def\@Sthm#1{\@ifnextchar[{\@spothm{#1}}{\@spnthm{#1}}}

\def\@spxnthm#1#2[#3]#4#5{\expandafter\@ifdefinable\csname #1\endcsname
  {\@definecounter{#1}\@addtoreset{#1}{#3}%
  \expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand
    \csname the#3\endcsname \noexpand\@thmcountersep \@thmcounter{#1}}%
  \expandafter\xdef\csname #1name\endcsname{#2}%
  \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#4}{#5}}%
                             \global\@namedef{end#1}{\@endtheorem}}}

\def\@spynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname
  {\@definecounter{#1}%
  \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}%
  \expandafter\xdef\csname #1name\endcsname{#2}%
  \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#3}{#4}}%
                              \global\@namedef{end#1}{\@endtheorem}}}

\def\@spothm#1[#2]#3#4#5{%
 \@ifundefined{c@#2}{\@latexerr{No theorem environment `#2' defined}\@eha}%
 {\expandafter\@ifdefinable\csname #1\endcsname
 {\global\@namedef{the#1}{\@nameuse{the#2}}%
 \expandafter\xdef\csname #1name\endcsname{#3}%
 \global\@namedef{#1}{\@spthm{#2}{\csname #1name\endcsname}{#4}{#5}}%
 \global\@namedef{end#1}{\@endtheorem}}}}

\def\@spthm#1#2#3#4{\topsep 7\p@ \@plus2\p@ \@minus4\p@
\refstepcounter{#1}%
\@ifnextchar[{\@spythm{#1}{#2}{#3}{#4}}{\@spxthm{#1}{#2}{#3}{#4}}}

\def\@spxthm#1#2#3#4{\@spbegintheorem{#2}{\csname the#1\endcsname}{#3}{#4}%
                   \ignorespaces}

\def\@spythm#1#2#3#4[#5]{\@spopargbegintheorem{#2}{\csname
      the#1\endcsname}{#5}{#3}{#4}\ignorespaces}

\def\@spbegintheorem#1#2#3#4{\trivlist
                \item[\hskip\labelsep{#3#1\ #2\@thmcounterend}]#4}

\def\@spopargbegintheorem#1#2#3#4#5{\trivlist
     \item[\hskip\labelsep{#4#1\ #2}]{#4(#3)\@thmcounterend\ }#5}

% definition of \spnewtheorem* without number

\def\@sthm#1#2{\@Ynthm{#1}{#2}}

\def\@Ynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname
  {\global\@namedef{#1}{\@Thm{\csname #1name\endcsname}{#3}{#4}}%
   \expandafter\xdef\csname #1name\endcsname{#2}%
   \global\@namedef{end#1}{\@endtheorem}}}

\def\@Thm#1#2#3{\topsep 7\p@ \@plus2\p@ \@minus4\p@
\@ifnextchar[{\@Ythm{#1}{#2}{#3}}{\@Xthm{#1}{#2}{#3}}}

\def\@Xthm#1#2#3{\@Begintheorem{#1}{#2}{#3}\ignorespaces}

\def\@Ythm#1#2#3[#4]{\@Opargbegintheorem{#1}
      {#4}{#2}{#3}\ignorespaces}

\def\@Begintheorem#1#2#3{#3\trivlist
                          \item[\hskip\labelsep{#2#1\@thmcounterend}]}

\def\@Opargbegintheorem#1#2#3#4{#4\trivlist
     \item[\hskip\labelsep{#3#1}]{#3(#2)\@thmcounterend\ }}

\if@envcntsect
  \def\@thmcountersep{.}
  \spnewtheorem{theorem}{Theorem}[section]{\bfseries}{\itshape}
\else
  \spnewtheorem{theorem}{Theorem}{\bfseries}{\itshape}
  \if@envcntreset
     \@addtoreset{theorem}{section}
  \else
     \@addtoreset{theorem}{chapter}
  \fi
\fi

%definition of divers theorem environments
\spnewtheorem*{claim}{Claim}{\itshape}{\rmfamily}
\spnewtheorem*{proof}{Proof}{\itshape}{\rmfamily}
\if@envcntsame % alle Umgebungen wie Theorem.
  \def\spn@wtheorem#1#2#3#4{\@spothm{#1}[theorem]{#2}{#3}{#4}}
\else % alle Umgebungen mit eigenem Zaehler
  \if@envcntsect % mit section numeriert
     \def\spn@wtheorem#1#2#3#4{\@spxnthm{#1}{#2}[section]{#3}{#4}}
  \else % nicht mit section numeriert
     \if@envcntreset
        \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4}
                                  \@addtoreset{#1}{section}}
     \else
        \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4}
                                  \@addtoreset{#1}{chapter}}%
     \fi
  \fi
\fi
\spn@wtheorem{case}{Case}{\itshape}{\rmfamily}
\spn@wtheorem{conjecture}{Conjecture}{\itshape}{\rmfamily}
\spn@wtheorem{corollary}{Corollary}{\bfseries}{\itshape}
\spn@wtheorem{definition}{Definition}{\bfseries}{\itshape}
\spn@wtheorem{example}{Example}{\itshape}{\rmfamily}
\spn@wtheorem{exercise}{Exercise}{\itshape}{\rmfamily}
\spn@wtheorem{lemma}{Lemma}{\bfseries}{\itshape}
\spn@wtheorem{note}{Note}{\itshape}{\rmfamily}
\spn@wtheorem{problem}{Problem}{\itshape}{\rmfamily}
\spn@wtheorem{property}{Property}{\itshape}{\rmfamily}
\spn@wtheorem{proposition}{Proposition}{\bfseries}{\itshape}
\spn@wtheorem{question}{Question}{\itshape}{\rmfamily}
\spn@wtheorem{solution}{Solution}{\itshape}{\rmfamily}
\spn@wtheorem{remark}{Remark}{\itshape}{\rmfamily}

\def\@takefromreset#1#2{%
   \def\@tempa{#1}%
   \let\@tempd\@elt
   \def\@elt##1{%
       \def\@tempb{##1}%
       \ifx\@tempa\@tempb\else
           \@addtoreset{##1}{#2}%
       \fi}%
   \expandafter\expandafter\let\expandafter\@tempc\csname cl@#2\endcsname
   \expandafter\def\csname cl@#2\endcsname{}%
   \@tempc
   \let\@elt\@tempd}

\def\theopargself{\def\@spopargbegintheorem##1##2##3##4##5{\trivlist
     \item[\hskip\labelsep{##4##1\ ##2}]{##4##3\@thmcounterend\ }##5}
                 \def\@Opargbegintheorem##1##2##3##4{##4\trivlist
     \item[\hskip\labelsep{##3##1}]{##3##2\@thmcounterend\ }}
     }

\renewenvironment{abstract}{%
     \list{}{\advance\topsep by0.35cm\relax\small
     \leftmargin=1cm
     \labelwidth=\z@
     \listparindent=\z@
     \itemindent\listparindent
     \rightmargin\leftmargin}\item[\hskip\labelsep
                                   \bfseries\abstractname]}
   {\endlist}

\newdimen\headlineindent             % dimension for space between
\headlineindent=1.166cm              % number and text of headings.

\def\ps@headings{\let\@mkboth\@gobbletwo
  \let\@oddfoot\@empty\let\@evenfoot\@empty
  \def\@evenhead{\normalfont\small\rlap{\thepage}\hspace{\headlineindent}%
                 \leftmark\hfil}
  \def\@oddhead{\normalfont\small\hfil\rightmark\hspace{\headlineindent}%
                \llap{\thepage}}
  \def\chaptermark##1{}%
  \def\sectionmark##1{}%
  \def\subsectionmark##1{}}

\def\ps@titlepage{\let\@mkboth\@gobbletwo
  \let\@oddfoot\@empty\let\@evenfoot\@empty
  \def\@evenhead{\normalfont\small\rlap{\thepage}\hspace{\headlineindent}%
                 \hfil}
  \def\@oddhead{\normalfont\small\hfil\hspace{\headlineindent}%
                \llap{\thepage}}
  \def\chaptermark##1{}%
  \def\sectionmark##1{}%
  \def\subsectionmark##1{}}

\if@runhead\ps@headings\else
\ps@empty\fi

\setlength\arraycolsep{1.4\p@}
\setlength\tabcolsep{1.4\p@}

\endinput
%end of file ouclprgsc.cls

