%
% $Header: paren.tex,v 1.2 86/09/14 00:19:23 sven Exp $
%
% $Log:	paren.tex,v $
% Revision 1.2  86/09/14  00:19:23  sven
% Initial revision, LaTeX 2.09
% 
% Revision 1.1  86/01/15  22:36:08  sven
% Initial revision, LaTeX 2.08
% 
%
% Change the optional argument delimiters, [], to (). This file assumes
% that the escape character still is '\'

\typeout{Change optional argument delimiters from '[]' to '()'.}

% from latex.tex

\def\typein{\let\@typein\relax\@ifnextchar({\@xtypein}{\@xtypein(\@typein)}}
\def\@xtypein(#1)#2{\typeout{#2}\read0 to#1\ifx #1\@defpar \def#1{}\else
   \@iden{\expandafter\@strip\expandafter
   #1#1\@gobble\@gobble} \@gobble\fi\@typein}

\def\newcommand#1{\@ifnextchar ({\@argdef#1}{\@argdef#1(0)}}

\def\renewcommand#1{\edef\@tempa{\expandafter\@cdr\string 
  #1\@nil}\@ifundefined{\@tempa}{\@latexerr{\string#1\space undefined}\@ehc
    }{}\@ifnextchar ({\@reargdef#1}{\@reargdef#1(0)}}

\def\newenvironment#1{\@ifnextchar
     ({\@newenv{#1}}{\@newenv{#1}(0)}}

\long\def\@newenv#1(#2)#3{\expandafter\newcommand 
     \csname #1\endcsname(#2){#3}\expandafter\long
     \expandafter\def\csname end#1\endcsname}

\def\renewenvironment#1{\@ifnextchar
     ({\@renewenv{#1}}{\@renewenv{#1}(0)}}

\long\def\@renewenv#1(#2)#3{\expandafter\renewcommand 
     \csname #1\endcsname(#2){#3}\expandafter\long
     \expandafter\def\csname end#1\endcsname}

\long\def\@argdef#1(#2)#3{\@ifdefinable #1{\@reargdef#1(#2){#3}}}

\long\def\@reargdef#1(#2)#3{\@tempcnta#2\relax\let#1\relax
\edef\@tempa{\long\def#1}\@tempcntb \@ne
\let\@tempb\relax\@whilenum\@tempcnta>0
\do{\edef\@tempa{\@tempa\@tempb\the\@tempcntb}\advance\@tempcntb \@ne \advance
\@tempcnta \m@ne}\let\@tempb##\@tempa{#3}}

\long\def\@dblarg#1{\@ifnextchar({#1}{\@xdblarg{#1}}}
\long\def\@xdblarg#1#2{#1({#2}){#2}}

\def\nopagebreak{\@ifnextchar({\@nopgbk}{\@nopgbk(4)}}
\def\@nopgbk(#1){\ifvmode \penalty \@getpen{#1}\else
\@bsphack\vadjust{\penalty \@getpen{#1}}\@esphack\fi} 

\def\pagebreak{\@ifnextchar({\@pgbk}{\@pgbk(4)}}
\def\@pgbk(#1){\ifvmode \penalty -\@getpen{#1}\else
\@bsphack\vadjust{\penalty -\@getpen{#1}}\@esphack\fi}

\def\nolinebreak{\@ifnextchar({\@nolnbk}{\@nolnbk(4)}}
\def\@nolnbk(#1){\ifvmode \@nolnerr\else \@tempskipa\lastskip
     \unskip \penalty \@getpen{#1}\ifdim \@tempskipa >\z@
     \hskip\@tempskipa\ignorespaces\fi\fi}

\def\linebreak{\@ifnextchar({\@lnbk}{\@lnbk(4)}}
\def\@lnbk(#1){\ifvmode \@nolnerr\else 
     \unskip\penalty -\@getpen{#1}\fi}

\def\@xnewline{\@ifnextchar({\@newline}{\newline}}

\def\@newline(#1){\ifhmode\unskip\fi\vspace{#1}\newline}

{\catcode`(=1 \catcode`)=2
\catcode`{=11 \catcode`}=11
\gdef\@charlb({)
\gdef\@charrb(})
)% }brace matching

\def\newcounter#1{\expandafter\@ifdefinable \csname c@#1\endcsname
    {\@definecounter{#1}}\@ifnextchar({\@newctr{#1}}{}}

\def\@newctr#1(#2){\@ifundefined{c@#2}{\@nocnterr}{\@addtoreset{#1}{#2}}}

%% \(, \), \[ and \] are replaced with @math, @endmath, @displaymath and
%% @enddisplaymath respectively in the following 8 definitions.

%\def\@math{\relax\ifmmode\@badmath\else$%%$BRACE MATCH HACK
%\fi}

%\def\@endmath{\relax\ifmmode\ifinner$\else\@badmath%%$ BRACE MATCH HACK
%\fi\else \@badmath\fi}

%\def\@displaymath{\relax\ifmmode\@badmath\else
%    \ifvmode \nointerlineskip \makebox(.6\linewidth)\fi$$%%$$ BRACE MATCH HACK
%\fi}

%\def\@enddisplaymath{\relax\ifmmode\ifinner\@badmath\else$$\fi%%$$ BRACE ...
%        \else \@badmath \fi\ignorespaces}

%\let\math=\@math
%\let\endmath=\@endmath
%\def\displaymath{\@displaymath}
%\def\enddisplaymath{\@enddisplaymath\global\@ignoretrue}

\def\({\relax\ifmmode\@badmath\else$%%$BRACE MATCH HACK
\fi}

\def\){\relax\ifmmode\ifinner$\else\@badmath%%$ BRACE MATCH HACK
\fi\else \@badmath\fi}

\def\[{\relax\ifmmode\@badmath\else
    \ifvmode \nointerlineskip \makebox(.6\linewidth)\fi$$%%$$ BRACE MATCH HACK
\fi}

\def\]{\relax\ifmmode\ifinner\@badmath\else$$\fi%%$$ BRACE ...
        \else \@badmath \fi\ignorespaces}

\let\math=\(
\let\endmath=\)
\def\displaymath{\[}
\def\enddisplaymath{\]\global\@ignoretrue}

\def\sqrt{\@ifnextchar({\@sqrt}{\@@sqrt}}
\def\@sqrt(#1){\root #1\of}

\def\@yeqncr{\@ifnextchar ({\@xeqncr}{\@xeqncr(\z@)}}

\def\@xeqncr(#1){\ifnum0=`{\fi}\@@eqncr
   \noalign{\penalty\@eqpen\vskip\jot\vskip #1\relax}}

\def\@xcentercr{\addvspace{-\parskip}\@ifnextchar 
    ({\@icentercr}{\ignorespaces}}

\def\@icentercr(#1){\vskip #1\ignorespaces}

\def\center{\trivlist \centering\item()}

\def\flushleft{\trivlist \raggedright\item()}

\def\flushright{\trivlist \raggedleft\item()}

\begingroup \catcode `|=0 \catcode `(= 1
\catcode`)=2 \catcode `\{=12 \catcode `\}=12
\catcode`\\=12 |gdef|@xverbatim#1\end{verbatim}(#1|end(verbatim))
|gdef|@sxverbatim#1\end{verbatim*}(#1|end(verbatim*))
|endgroup

\def\@verbatim{\trivlist \item()\if@minipage\else\vskip\parskip\fi
\leftskip\@totalleftmargin\rightskip\z@
\parindent\z@\parfillskip\@flushglue\parskip\z@
\@tempswafalse \def\par{\if@tempswa\hbox{}\fi\@tempswatrue\@@par}
\obeylines \tt \catcode``=13 \@noligs \let\do\@makeother \dospecials}

\def\item{\@ifnextchar ({\@item}{\@noitemargtrue \@item(\@itemlabel)}}

\def\@item(#1){\if@noparitem \@donoparitem
  \else \if@inlabel \indent \par \fi
         \ifhmode \unskip\unskip \par \fi 
         \if@newlist \if@nobreak \@nbitem \else
                        \addpenalty\@beginparpenalty
                        \addvspace\@topsep \addvspace{-\parskip}\fi
           \else \addpenalty\@itempenalty \addvspace\itemsep 
          \fi 
    \global\@inlabeltrue 
\fi
\everypar{\global\@minipagefalse\global\@newlistfalse 
          \if@inlabel\global\@inlabelfalse \hskip -\parindent \box\@labels
             \penalty\z@ \fi
          \everypar{}}\global\@nobreakfalse
\if@noitemarg \@noitemargfalse \if@nmbrlist \refstepcounter{\@listctr}\fi \fi
\setbox\@tempboxa\hbox{\makelabel{#1}}%
\global\setbox\@labels
 \hbox{\unhbox\@labels \hskip \itemindent
       \hskip -\labelwidth \hskip -\labelsep 
       \ifdim \wd\@tempboxa >\labelwidth 
                \box\@tempboxa
          \else \hbox to\labelwidth {\makelabel{#1}}\fi
       \hskip \labelsep}\ignorespaces}

\def\makebox{\@ifnextchar ({\@makepicbox}{\@ifnextchar
     ({\@makebox}{\mbox}}}

\def\@makebox(#1){\leavevmode\@ifnextchar ({\@imakebox(#1)}{\@imakebox(#1)(x)}}

\long\def\@imakebox(#1)(#2)#3{\hbox to#1{\let\mb@l\hss
\let\mb@r\hss \expandafter\let\csname mb@#2\endcsname\relax
\mb@l #3\mb@r}}

\def\@makepicbox(#1,#2){\leavevmode\@ifnextchar 
   ({\@imakepicbox(#1,#2)}{\@imakepicbox(#1,#2)()}}

\long\def\@imakepicbox(#1,#2)(#3)#4{\vbox to#2\unitlength
   {\let\mb@b\vss \let\mb@l\hss\let\mb@r\hss
    \let\mb@t\vss
    \@tfor\@tempa :=#3\do{\expandafter\let
        \csname mb@\@tempa\endcsname\relax}%
\mb@t\hbox to #1\unitlength{\mb@l #4\mb@r}\mb@b}}

\def\savebox#1{\@ifnextchar ({\@savepicbox#1}{\@ifnextchar
     ({\@savebox#1}{\sbox#1}}}

\def\@savebox#1(#2){\@ifnextchar ({\@isavebox#1(#2)}{\@isavebox#1(#2)(x)}}

\long\def\@isavebox#1(#2)(#3)#4{\setbox#1 \hbox{\@imakebox(#2)(#3){#4}}}

\def\@savepicbox#1(#2,#3){\@ifnextchar 
   ({\@isavepicbox#1(#2,#3)}{\@isavepicbox#1(#2,#3)()}}

\long\def\@isavepicbox#1(#2,#3)(#4)#5{\setbox#1 \hbox{\@imakepicbox
     (#2,#3)(#4){#5}}}

\def\framebox{\@ifnextchar ({\@framepicbox}{\@ifnextchar
     ({\@framebox}{\fbox}}}

\def\@framebox(#1){\@ifnextchar ({\@iframebox(#1)}{\@iframebox(#1)(x)}}

\long\def\@iframebox(#1)(#2)#3{\leavevmode
  \savebox\@tempboxa(#1)(#2){\kern\fboxsep #3\kern\fboxsep}\@tempdima\fboxrule
    \advance\@tempdima \fboxsep \advance\@tempdima \dp\@tempboxa
   \hbox{\lower \@tempdima\hbox
  {\vbox{\hrule \@height \fboxrule
          \hbox{\vrule \@width \fboxrule \hskip-\fboxrule
	    \vbox{\vskip\fboxsep \box\@tempboxa\vskip\fboxsep}\hskip 
			 -\fboxrule\vrule \@width \fboxrule}
		   \hrule \@height \fboxrule}}}}

\def\@framepicbox(#1,#2){\@ifnextchar 
   ({\@iframepicbox(#1,#2)}{\@iframepicbox(#1,#2)()}}

\long\def\@iframepicbox(#1,#2)(#3)#4{\frame{\@imakepicbox(#1,#2)(#3){#4}}}

\def\parbox{\@ifnextchar ({\@iparbox}{\@iparbox(c)}}

\long\def\@iparbox(#1)#2#3{\leavevmode \@pboxswfalse
   \if #1b\vbox 
     \else \if #1t\vtop 
              \else \ifmmode \vcenter 
                        \else \@pboxswtrue $\vcenter
                     \fi
           \fi
    \fi{\hsize #2\@parboxrestore #3}\if@pboxsw $\fi}

\def\minipage{\@ifnextchar ({\@iminipage}{\@iminipage(c)}}

\def\@iminipage(#1)#2{\leavevmode \@pboxswfalse
   \if #1b\vbox 
     \else \if #1t\vtop 
              \else \ifmmode \vcenter 
                        \else \@pboxswtrue $\vcenter
                     \fi
           \fi
    \fi\bgroup
    \hsize #2\textwidth\hsize \columnwidth\hsize
    \@parboxrestore 
    \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@
    \let\@footnotetext\@mpfootnotetext
    \let\@listdepth\@mplistdepth \@mplistdepth\z@
    \@minipagerestore\@minipagetrue 
    \everypar{\global\@minipagefalse\everypar{}}}


\def\rule{\@ifnextchar({\@rule}{\@rule(\z@)}}

\def\@rule(#1)#2#3{\@tempdima#3\advance\@tempdima #1\leavevmode\hbox{\vrule
  \@width#2 \@height\@tempdima \@depth-#1}}

\def\raisebox#1{\@ifnextchar({\@argrsbox{#1}}{\@rsbox{#1}}}

\def\@argrsbox#1(#2){%
\@ifnextchar({\@iirsbox{#1}(#2)}{\@irsbox{#1}(#2)}}

\long\def\@irsbox#1(#2)#3{\setbox\@tempboxa \hbox
   {\raise #1\hbox{#3}}\ht\@tempboxa#2\leavevmode\box\@tempboxa}

\long\def\@iirsbox#1(#2)(#3)#4{\setbox\@tempboxa \hbox
   {\raise #1\hbox{#4}}\ht\@tempboxa#2\dp\@tempboxa#3\leavevmode\box\@tempboxa}

\def\@xtabcr{\@ifnextchar({\@itabcr}{\@startline\ignorespaces}}

\def\@itabcr(#1){\vskip #1\@startline\ignorespaces}

\def\tabbing{\lineskip \z@\let\>\@rtab\let\<\@ltab\let\=\@settab
     \let\+\@tabplus\let\-\@tabminus\let\`\@tabrj\let\'\@tablab
     \let\\=\@tabcr
     \global\@hightab\@firsttab
     \global\@nxttabmar\@firsttab
     \dimen\@firsttab\@totalleftmargin
     \global\@tabpush0 \global\@rjfieldfalse
     \trivlist \item()\if@minipage\else\vskip\parskip\fi
     \setbox\@tabfbox\hbox{\rlap{\indent\hskip\@totalleftmargin
       \the\everypar}}\def\@itemfudge{\box\@tabfbox}\@startline\ignorespaces}

\def\@tabarray{\@ifnextchar({\@array}{\@array(c)}}

\def\@array(#1)#2{\setbox\@arstrutbox=\hbox{\vrule 
     height\arraystretch \ht\strutbox
     depth\arraystretch \dp\strutbox
     width\z@}\@mkpream{#2}\edef\@preamble{\halign \noexpand\@halignto
\bgroup \tabskip\z@ \@arstrut \@preamble \tabskip\z@ \cr}%
\let\@startpbox\@@startpbox \let\@endpbox\@@endpbox
  \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi
  \bgroup \let\par\relax
  \let\@sharp##\let\protect\relax \lineskip\z@\baselineskip\z@\@preamble}

\def\@xarraycr{\@ifnextchar({\@argarraycr}{\ifnum0=`{\fi}${}\cr}}

\def\@argarraycr(#1){\ifnum0=`{\fi}${}\ifdim #1>\z@ \@xargarraycr{#1}\else 
   \@yargarraycr{#1}\fi}

\def\@xtabularcr{\@ifnextchar({\@argtabularcr}{\ifnum0=`{\fi}\cr}}

\def\@argtabularcr(#1){\ifnum0=`{\fi}\ifdim #1>\z@ 
   \unskip\@xargarraycr{#1}\else \@yargarraycr{#1}\fi}

\def\cline#1{\@cline(#1)}
\def\@cline(#1-#2){\noalign{\global\@cla#1\relax
\global\advance\@cla\m@ne
\ifnum\@cla>0\global\let\@gtempa\@clinea\else
  \global\let\@gtempa\@clineb\fi
\global\@clb#2\relax
\global\advance\@clb-\@cla}\@gtempa
\noalign{\vskip-\arrayrulewidth}}

\def\shortstack{\@ifnextchar({\@shortstack}{\@shortstack(c)}}

\def\@shortstack(#1){\leavevmode
\vbox\bgroup\baselineskip-1pt\lineskip 3pt\let\mb@l\hss
\let\mb@r\hss \expandafter\let\csname mb@#1\endcsname\relax
\let\\\@stackcr\@ishortstack}

\def\@ixstackcr{\@ifnextchar({\@istackcr}{\cr\ignorespaces}}

\def\@istackcr(#1){\cr\noalign{\vskip #1}\ignorespaces}

\def\oval(#1,#2){\@ifnextchar({\@oval(#1,#2)}{\@oval(#1,#2)()}}

\def\@oval(#1,#2)(#3){\begingroup\boxmaxdepth \maxdimen
  \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue
  \@tfor\@tempa :=#3\do{\csname @ov\@tempa false\endcsname}\@ovxx
  #1\unitlength \@ovyy #2\unitlength
  \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx\else \@ovyy \fi
  \@getcirc \@tempdimb
  \@ovro \ht\@tempboxa \@ovri \dp\@tempboxa
  \@ovdx\@ovxx \advance\@ovdx -\@tempdima \divide\@ovdx \tw@
  \@ovdy\@ovyy \advance\@ovdy -\@tempdima \divide\@ovdy \tw@
  \@circlefnt \setbox\@tempboxa
  \hbox{\if@ovr \@ovvert32\kern -\@tempdima \fi
  \if@ovl \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx \fi
  \if@ovt \@ovhorz \kern -\@ovxx \fi
  \if@ovb \raise \@ovyy \@ovhorz \fi}\advance\@ovdx\@ovro
  \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@
  \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}%
  \endgroup}

\def\newtheorem#1{\@ifnextchar({\@othm{#1}}{\@nthm{#1}}}

\def\@nthm#1#2{%
\@ifnextchar({\@xnthm{#1}{#2}}{\@ynthm{#1}{#2}}}

\def\@xnthm#1#2(#3){\expandafter\@ifdefinable\csname #1\endcsname
{\@definecounter{#1}\@addtoreset{#1}{#3}%
\expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand
  \csname the#3\endcsname \@thmcountersep \@thmcounter{#1}}%
\global\@namedef{#1}{\@thm{#1}{#2}}\global\@namedef{end#1}{\@endtheorem}}}

\def\@othm#1(#2)#3{\expandafter\@ifdefinable\csname #1\endcsname
  {\global\@namedef{the#1}{\@nameuse{the#2}}%
\global\@namedef{#1}{\@thm{#2}{#3}}%
\global\@namedef{end#1}{\@endtheorem}}}

\def\@thm#1#2{\refstepcounter
    {#1}\@ifnextchar({\@ythm{#1}{#2}}{\@xthm{#1}{#2}}}

\def\@ythm#1#2(#3){\@opargbegintheorem{#2}{\csname
       the#1\endcsname}{#3}\ignorespaces}

\def\@begintheorem#1#2{\it \trivlist \item(\hskip \labelsep{\bf #1\ #2})}
\def\@opargbegintheorem#1#2#3{\it \trivlist
      \item(\hskip \labelsep{\bf #1\ #2\ (#3)})}

\def\thanks#1{\footnotemark\begingroup
\def\protect{\noexpand\protect\noexpand}\xdef\@thanks{\@thanks
  \protect\footnotetext(\the\c@footnote){#1}}\endgroup}

\def\and{%%                             % \begin{tabular} 
\end{tabular}\hskip 1em plus .17fil\begin{tabular}(t){c}%% \end{tabular}
}

% @sect is redefined in write.tex

%\def\@sect#1#2#3#4#5#6(#7)#8{\ifnum #2>\c@secnumdepth
%     \def\@svsec{}\else 
%     \refstepcounter{#1}\edef\@svsec{\csname the#1\endcsname\hskip 1em }\fi
%     \@tempskipa #5\relax
%      \ifdim \@tempskipa>\z@ 
%        \begingroup #6\relax
%          \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M #8\par}
%        \endgroup
%       \csname #1mark\endcsname{#7}\addcontentsline
%         {toc}{#1}{\ifnum #2>\c@secnumdepth \else
%                      \protect\numberline{\csname the#1\endcsname}\fi
%                    #7}\else
%        \def\@svsechd{#6\hskip #3\@svsec #8\csname #1mark\endcsname
%                      {#7}\addcontentsline
%                           {toc}{#1}{\ifnum #2>\c@secnumdepth \else
%                             \protect\numberline{\csname the#1\endcsname}\fi
%                       #7}}\fi
%     \@xsect{#5}}

\def\bibitem{\@ifnextchar({\@lbibitem}{\@bibitem}}

\def\@lbibitem(#1)#2{\item(\@biblabel{#1})\if@filesw 
      { \def\protect##1{\string ##1\space}\immediate
        \write\@auxout{\string\bibcite{#2}{#1}}\fi\ignorespaces}}

\def\cite{\@ifnextchar ({\@tempswatrue\@citex}{\@tempswafalse\@citex()}}

\def\@citex(#1)#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi
  \def\@citea{}\@cite{\@for\@citeb:=#2\do
    {\@citea\def\@citea{,}\@ifundefined
       {b@\@citeb}{{\bf ?}\@warning
       {Citation `\@citeb' on page \thepage \space undefined}}%
\hbox{\csname b@\@citeb\endcsname}}}{#1}}

\def\@cite#1#2{\lbrack{#1\if@tempswa , #2\fi}\rbrack}
\def\@biblabel#1{\lbrack#1\rbrack\hfill}

% @caption is redefined in write.tex

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

\def\@float#1{\@ifnextchar({\@xfloat{#1}}{\edef\@tempa{\noexpand\@xfloat
    {#1}(\csname fps@#1\endcsname)}\@tempa}}

\def\@xfloat#1(#2){\ifhmode \@bsphack\@floatpenalty -\@Mii\else
   \@floatpenalty-\@Miii\fi\def\@captype{#1}\ifinner
      \@parmoderr\@floatpenalty\z@
    \else\@next\@currbox\@freelist{\@tempcnta\csname ftype@#1\endcsname
       \multiply\@tempcnta\@xxxii\advance\@tempcnta\sixt@@n
       \@tfor \@tempa :=#2\do
                        {\if\@tempa h\advance\@tempcnta \@ne\fi
                         \if\@tempa t\advance\@tempcnta \tw@\fi
                         \if\@tempa b\advance\@tempcnta 4\relax\fi
                         \if\@tempa p\advance\@tempcnta 8\relax\fi
         }\global\count\@currbox\@tempcnta}\@fltovf\fi
    \global\setbox\@currbox\vbox\bgroup 
    \boxmaxdepth\z@
    \hsize\columnwidth \@parboxrestore}

\def\@dbflt#1{\@ifnextchar({\@xdblfloat{#1}}{\@xdblfloat{#1}(tp)}}

\def\@xdblfloat#1(#2){\@xfloat{#1}(#2)\hsize\textwidth\linewidth\textwidth}

\def\marginpar{\ifhmode \@bsphack\@floatpenalty -\@Mii\else
   \@floatpenalty-\@Miii\fi\ifinner
      \@parmoderr\@floatpenalty\z@
    \else\@next\@currbox\@freelist{}{}\@next\@marbox\@freelist{\global
      \count\@marbox\m@ne}{\@floatpenalty\z@ \@fltovf\def\@currbox{\@tempboxa
           }\def\@marbox{\@tempboxa}}\fi
     \@ifnextchar ({\@xmpar}{\@ympar}}

\long\def\@xmpar(#1)#2{\@savemarbox\@marbox{#1}\@savemarbox\@currbox
   {#2}\@xympar}

\def\footnote{\@ifnextchar({\@xfootnote}{\stepcounter
   {\@mpfn}\xdef\@thefnmark{\thempfn}\@footnotemark\@footnotetext}}

\def\@xfootnote(#1){\begingroup \csname c@\@mpfn\endcsname #1\relax
   \xdef\@thefnmark{\thempfn}\endgroup
   \@footnotemark\@footnotetext}

\def\footnotemark{\@ifnextchar({\@xfootnotemark
    }{\stepcounter{footnote}\xdef\@thefnmark{\thefootnote}\@footnotemark}}

\def\@xfootnotemark(#1){\begingroup \c@footnote #1\relax
   \xdef\@thefnmark{\thefootnote}\endgroup \@footnotemark}

\def\footnotetext{\@ifnextchar
    ({\@xfootnotenext}{\xdef\@thefnmark{\thempfn}\@footnotetext}}

\def\@xfootnotenext(#1){\begingroup \csname c@\@mpfn\endcsname #1\relax
   \xdef\@thefnmark{\thempfn}\endgroup \@footnotetext}

\def\documentstyle{\@ifnextchar({\@documentstyle}{\@documentstyle()}}

\def\@documentstyle(#1)#2{\makeatletter
   \def\@optionlist{#1}\gdef\@optionfiles{}\input #2.sty\relax
   \let\@elt\input \@optionfiles \let\@elt\relax \makeatother}
        
\def\twocolumn{\clearpage \global\columnwidth\textwidth
   \global\advance\columnwidth -\columnsep \global\divide\columnwidth\tw@
   \global\hsize\columnwidth \global\linewidth\columnwidth
   \global\@twocolumntrue \global\@firstcolumntrue
   \@dblfloatplacement\@ifnextchar({\@topnewpage}{}}

\long\def\@topnewpage(#1){\@next\@currbox\@freelist{}{}
    \global\setbox\@currbox\vbox{\hsize\textwidth \@parboxrestore
     #1\par\vskip -\dbltextfloatsep}\global\count\@currbox\tw@
    \global\@dbltopnum\@ne \global\@dbltoproom\maxdimen\@addtodblcol
    \global\vsize\@colht \global\@colroom\@colht}

