%
%   	Macros for compatibility LaTeX -> TeX
%
%    (c) T. Lachand-Robert, 10/96 - 7/01/99. Version 1.3
%
\ifx\begin\UNDEFINED\else
\errhelp{You should not try to load LaTeX2tex with LaTeX,
only with plain-TeX.}
\errmessage{LaTeX seems to be already present !}
\endinput\fi
\def \makeatletter{\catcode`\@=11 }\makeatletter
\ifx\@@latexTtex\@undefined \let\@@latexTtex\wlog
 \else \endinput \fi
\def \@gobble#1{}    % suppress argument 
\let \wlog\@gobble   % avoid display for \newcount, etc
% 
%  En dˇfinissant la macro \smallversion, on
%  demande que seules les commandes locales de
%  LaTeX soient prises en compte.
%  (excluant \documentstyle, etc.)
%  Si \smallversion est dˇfini, il doit
%  accepter un argument qui est un message d'erreur, 
%  appelˇ quand une macro incorrecte est appelˇe. 
%  (exemple \let\smallversion\wlog)
%
\newif\if@complete
\ifx\smallversion\@undefined
          \@completetrue   
          \let\@error\@@latexTtex %(=\wlog)
    \else \@completefalse  
          \let\@error\smallversion
\fi
%  general macros
\def \@@empty{} % = \empty
\let \@@relax\relax
\let \@@global\global
\def \gr@relax{{\@@relax}}% almost= \relax
\let \@imm\immediate
\def \@@newcount{\alloc@0\count\countdef\insc@unt}% not \outer
\let \@@centering \centering
\let \@@end=\end % primitive   
\let \@@xdef=\xdef
\let \@@input=\input
\let \@@item=\item
\def \@height{height}
\def \@depth{depth}
\def \@width{width}
\def \@minus{minus}
\def \@@space{ }
\def \@plus{plus}
\let \@@wd \wd \let\@@ht \ht \let \@@dp \dp
\let \@@eqno \eqno
\def \@hstrut{\unhcopy \strutbox}
\def \@STOP{\errmessage{STOP}}
\def \@errorunknown#1{\errmessage{Inconnu \string: \noexpand#1.}}
\def \let@n@xt{\let\n@xt}
\def \g@let{\@@global\let}
%
\newif \ifresult % general purpose one
\newread \ch@file
%
\newdimen\arraycolsep \arraycolsep=5pt
\newdimen\doublerulesep \doublerulesep=2pt
%
\def \check@file#1{% test if file #1 exists
     \@imm\openin\ch@file#1\relax\relax
     \ifeof\ch@file \resultfalse % doesn't exist
     \else \resulttrue \fi
     \@imm\closein\ch@file}
\def \require@file#1#2{% file #1 is required !
     \check@file{#1}%
     \ifresult \let\n@xt\relax 
     \else \errmessage{I can't find the file "#1" #2 \string!
                 Sorry I must stop.}\let\n@xt\@@end
     \fi \n@xt}
%
%    Test on optionnal arguments, etc.
%
\newif\if@option
\def \@getoption#1{% gets the optionnal argument
     \def\@temp{#1}% the macro to be called after
     \futurelet\n@xt\@getoption@}
\def \@getoptionsp#1{% same, but ignore spaces
     \def\@temp{#1}% the macro to be called after
     \catcode`\ =9 \catcode`\^^M=9 
     \futurelet\n@xt\@getoptionsp@}
\def \@getoptionsp@{%
     \catcode`\ =10 \catcode`\^^M=5 % restore
     \@getoption@}
\def \@getoption@{%
     \ifx\n@xt[% there is an optionnal arg
         \@optiontrue \let@n@xt\@temp \let\@temp\@getoption@@
     \else \let\@option\empty \@optionfalse
     \fi \@temp}
\def \@getoption@@[#1]{%
     \def\@option{#1}\n@xt}  
\def \@getstar#1{% gets the * argument
     \def\@temp{#1}% the macro to be called after
     \futurelet\n@xt\@getstar@}
\def \@getstar@{%
     \ifx\n@xt*% there is an * arg
         \@optiontrue 
         \def\n@xt{\afterassignment\@temp \let@n@xt}%
     \else \let@n@xt\@temp\@optionfalse
     \fi \n@xt}
%
\def \@ignore#1{% ignore this command + warning
     \ifx\@STOP#1\let@n@xt\relax 
     \else \let@n@xt\@ignore 
           \gdef#1{\@ignore@macro@msg#1}%
     \fi \n@xt}
\def \@ignorei#1{% idem, command with 1 argument
     \ifx#1\@STOP \let@n@xt\relax 
     \else \let@n@xt\@ignorei
           \gdef#1{\@ignore@macro@msg#1\@getoption\@gobble}%
     \fi \n@xt}
\def \@ignore@macro@msg#1{%
     \@error{La macro \noexpand#1\@isignored}}
\def \@isignored{ n'est pas prise en compte ici.}    
\def \@ignoredim#1{% ignore this dimen + warning
     \ifx#1\@STOP \let@n@xt\relax 
     \else \let@n@xt\@ignoredim
           \gdef#1{\@ignoredim@@#1\dimen@}%
     \fi \n@xt}
\def \@ignoredim@@#1{%
     \@error{La dimension \noexpand#1\@isignored}}
\def \@ignoreposition#1{%
     \@error{Commande \noexpand#1 \string: l'option de position\@isignored}}     
\def \@replace#1#2{%  remplacement de macros
     \def#1{\@replacemssg#1#2#2}}
\def \@replacemssg#1#2{\@error{Macro \noexpand#1 
           remplacee par \noexpand #2.}}     
\def \@ignoreoption#1#2{% ignore the option
     \@getoption{\@ignoreoption@{#1}{#2}}}
\def \@ignoreoption@#1#2{%  
     \if@option \@ignoreoptionmsg{#1}{[\@option]}\fi#2}
\def \@ignoreoptionsilent{% ignore option, silent
     \@getoption\@@relax}
\def \@ignoreoptionmsg#1#2{%
     \@error{Commande \noexpand#1 \string: l'option #2\@isignored}}
\def \@testempty#1#2{\def\next{#2}%
     \ifx\next\@@space\let\next\@@empty \fi
     \ifx\next\@@empty\else
     \@ignoreoptionmsg{#1}{#2}\fi}
\def \@ignorestar#1#2{%
     \@getstar{\@ignorestar@{#1}{#2}}}     
\def \@ignorestar@#1#2{%
     \if@option  \@ignoreoptionmsg{#1}{*}\fi #2}
\def \@open#1#{% inversion avec accolade ouvrante
     \bgroup\afterassignment#1\let@n@xt}
%
\catcode`\*=11 % for \begin{...*}, etc.
%
%   general, commands
%
\def \LaTeX{{\rm L\kern-.36em\raise.3ex\hbox{\sc a}\kern-.15em%
     T\kern-.1667em\lower.7ex\hbox{E}\kern-.125em X}}
\def \LaTeXe{\mbox{\LaTeX\kern.15em 2${}_{\textstyle\varepsilon}$}}
\let \protect\noexpand
\def \renewcommand#1{\def\@temp@{\gdef#1}%
     \@getoption\renewcommand@}
\def \renewcommand@#{%
     \if@option \count@\@option \let@n@xt\renewcommand@@
     \else \let@n@xt\@temp@ \fi
     \n@xt}
\def \renewcommand@@{\def\n@xt{####1####2####3}%
     \ifcase\count@\@STOP\or  \def\n@xt{####1}\or
          \def\n@xt{####1####2}\or
          \else\errmessage{Commande \noexpand\newcommand  \string:
             Option trop grande (>3).}\fi
     \expandafter\@temp@\n@xt}     
\let \newcommand\renewcommand  % no test
\def \providecommand#1{\@@relax
     \ifx#1\@undefined 
           \def\n@xt{\newcommand{#1}}%
     \else \def\n@xt{\renewcommand\@temp}%
     \fi \n@xt}
\def \newenvironment#1{\@@relax
     \def\@temp@{#1}%
     \@getoption\newenvironment@
     }     
\def \newenvironment@#1#{%
     \if@option \count@\@option 
     \else \count@\z@ \fi
     \@testempty\newenvironment{#1}%
     \ifcase\count@ \def\n@xt{}\or  
          \def\n@xt{####1}\or
          \def\n@xt{####1####2}\or
          \def\n@xt{####1####2####3}%
          \else\errmessage{Commande \noexpand\newenvironment \string:
             Option trop grande (>3).}\fi
     \def\next{\expandafter\gdef\csname begin@\@temp@\endcsname}%
     \afterassignment\newenvironment@@
     \expandafter\next\n@xt
     }     
\def \newenvironment@@{% 
     \expandafter\gdef\csname end@\@temp@\endcsname
     }     
%
%   counters
%
\def \newcounter#1{\expandafter\@@newcount\csname c@#1\endcsname
     \setcounter{#1}\z@
     \expandafter\gdef\csname the#1\endcsname{\arabic{#1}}%
     \bgroup\def\@temp@{#1}\@getoption \newcounter@}
\def \newcounter@{\if@option
     \expandafter\@@xdef\csname cl@\@option \endcsname
            {\noexpand\setcounter{\@temp@}\noexpand\z@}%
     \fi\egroup}     
\def \value#1{\csname c@#1\endcsname}
\def \@@do@counter#1#2{% test if counter #1 exists. if ok, do #2
     \expandafter\ifx\csname c@#1\endcsname\@@relax
           \@errorunknown{#1}%
     \else #2\@@relax\fi
     \csname cl@#1\endcsname}
\def \setcounter#1#2{\@@do@counter{#1}%
     {\@@global\csname c@#1\endcsname=#2}}
\def \addtocounter#1#2{\@@do@counter{#1}%
     {\@@global\advance\csname c@#1\endcsname #2}}    
\def \stepcounter#1{\@@do@counter{#1}%
     {\@@global\advance\csname c@#1\endcsname \@ne}}    
\def\arabic#1{\expandafter\@arabic\csname c@#1\endcsname}
\def\roman#1{\expandafter\@roman\csname c@#1\endcsname}
\def\Roman#1{\expandafter\@Roman\csname c@#1\endcsname}
\def\alph#1{\expandafter\@alph\csname c@#1\endcsname}
\def\Alph#1{\expandafter\@Alph\csname c@#1\endcsname}
\def\fnsymbol#1{\expandafter\@fnsymbol\csname c@#1\endcsname}
\def\@arabic#1{\number #1}  
\def\@roman#1{\romannumeral #1}
\def\@Roman#1{\expandafter\uppercase\expandafter{\romannumeral #1}}
\def\@alph#1{%
  \ifcase#1\or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or
   k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or
    y\or z\else\@ctrerr\fi}
\def\@Alph#1{%
  \ifcase#1\or A\or B\or C\or D\or E\or F\or G\or H\or I\or J\or
   K\or L\or M\or N\or O\or P\or Q\or R\or S\or T\or U\or V\or W\or X\or
    Y\or Z\else\@ctrerr\fi}
\def\@fnsymbol#1{{\ifcase#1\or *\or \dagger\or \ddagger\or
   \mathchar "278\or \mathchar "27B\or \|\or **\or \dagger\dagger
   \or \ddagger\ddagger \else\@ctrerr\fi}}
\def \hex@number#1{\ifcase#1 0\or1\or2\or3\or4\or5\or6\or7\or8\or9\or
	    A\or B\or C\or D\or E\or F\fi }
%
\newskip \skip@page \skip@page=0pt plus 0,5\hsize
\def \@leftjustif{\rightskip\skip@page
     \hyphenpenalty\@M \exhyphenpenalty\@M 
     \parfillskip\z@ \parindent\z@}  
\def \@center{\@leftjustif \leftskip\skip@page }     
%
% \begin, \end
\def \begin{\@getoption\begin@}
\def \begin@#1{%
     \if@option \@ignoreoptionmsg{\begin{#1}}{}\fi
     \expandafter\let@n@xt\csname begin@#1\endcsname
     \ifx\n@xt\relax 
        \expandafter\let@n@xt\csname #1\endcsname
        \ifx\n@xt\relax
              \@errorunknown{\begin{#1}}\begingroup
        \else \expandafter\gdef\csname begin@#1\endcsname
                  {\csname #1\endcsname}
              \expandafter\gdef\csname end@#1\endcsname
                  {\csname end#1\endcsname}
        \fi
     \fi\n@xt}
\def \end#1{%
     \expandafter\ifx\csname end@#1\endcsname\relax
       \@errorunknown{\end{#1}}\endgroup\fi
     \csname end@#1\endcsname}  
\def \bye{\vfill\supereject\@@end}
%
%  \newtheorem 
%     
\def \newtheorem#1#2{%
     \newcounter{#1}%
     \expandafter\gdef\csname begin@#1\endcsname
          {\medskip\begingroup
           \refstepcounter{#1}\normalfont
           \noindent \textbf{#2~\csname the#1\endcsname.}\quad
           \itshape}%
     \expandafter\gdef\csname end@#1\endcsname
          {\par\medskip\endgroup}%
     }
%
%   sentences and paragraphs
%
{\catcode`\@=12 \gdef\@{\spacefactor3000\relax}}
\def \@thin{\mskip\thinmuskip}%   = \, math
\def \,{\relax\ifmmode\@thin\else$\@thin$\fi}
\let \@@footnote\footnote
\newcount\c@footnote
\def \footnote{\stepcounter{footnote}%
     \@@footnote{\number\c@footnote}}
\def \two@digits#1{\ifnum#1<10 0\fi\number#1}
{\catcode`\:=12
\count@\time
\divide\count@ 60
\count2=-\count@
\multiply\count2 60
\advance\count2 \time
\xdef \today{%
    \the\year/\two@digits{\the\month}/\two@digits{\the\day}:%
    \two@digits{\the\count@}:\two@digits{\the\count2}}
}    
%
%   type style
%
\newfam\sffam      % \sf is family 8
%\font \tensf=cmss10 \textfont\sffam=\tensf% defined later
\newfam\scfam      % \sc is family 9
%\font \tensc=cmcsc10 \textfont\scfam=\tensc
\def\rm{\fam\z@\t@xtrm}
\def\oldstyle{\fam\@ne\teni}% \t@xti not used
\def\it{\fam\itfam\t@xtit}
\def\sl{\fam\slfam\t@xtsl}
\def\bf{\fam\bffam\t@xtbf}
\def\tt{\fam\ttfam\t@xttt}
\def\sf{\fam\sffam\t@xtsf}
\def\sc{\fam\scfam\t@xtsc}
%
\def \do#1#2{\expandafter\let@n@xt\csname#1\endcsname
     \expandafter\let\csname#1#2\endcsname\n@xt}
\do{rm}{family}\do{tt}{family}\do{sf}{family}
\do{bf}{series}
\do{it}{shape}\do{sl}{shape}\do{sc}{shape}
\let \mdseries\rm
\let \normalfont\rm
\@ignore \upshape
\@STOP
%
\def \em{\@@relax \ifnum\fam=\slfam \rm \else
     \ifnum\fam=\itfam \rm \else \it \fi\fi}
\def \emph#{\@open\em}
%
\def \do#1#2{\def#1{\@open#2}}
\do\textrm\rm
\do\textmd\mdseries
\do\textnormal\normalfont
\do\textit\it
\do\textbf\bf
\do\textsl\sl
\do\texttt\tt
\do\textsf\sf
\do\textsc\sc
\do\textup\upshape
\do\mathrm\rm
\do\mathit\it
\do\mathbf\bf
\do\mathsl\sl
\do\mathtt\tt
\do\mathsf\sf
\do\mathcal\cal
%
\def \symbol#1{\char#1\@@relax}
%
%  type size
%
\def \@magscale#1{ scaled \magstep #1}
\def \@halfmag{ scaled \magstephalf}
\def \@ptscale#1{ scaled #100}
%
\ifx\fontprefix\@undefined
\def \fontprefix{cm}% Computer Modern; change to dc for dc fonts
\def \n@xt{T1}% name of T1 encoding
\ifx \encodingdefault\n@xt
\def \fontprefix{dc}% use dc fonts
\fi\fi
\def \mathfontprefix{cm}% used for math fonts only
\edef \@@@rm{\fontprefix r}
\edef \@@@i{\mathfontprefix mi}
\edef \@@@sy{\mathfontprefix sy}
\edef \@@@bf{\fontprefix bx}
\edef \@@@it{\fontprefix ti}
\edef \@@@sl{\fontprefix sl}
\edef \@@@tt{\fontprefix tt}
\edef \@@@sf{\fontprefix ss}
\edef \@@@sc{\fontprefix csc}
%     
\newtoks \change@sizes@compl % could be used for additionnal families  
%  (use commands \all@size, \text@size, \font@size as below)
\def \change@sizes#1#2#3{% example {twl}{egt}{six} for size 12 (, 8, 6)
     \def\all@size{\do@size@fam{#1}{#2}{#3}}% change sizes in a family
     \def\text@size{\do@size@fam{#1}{}{}}%    idem, \textfont only
     \def\font@size##1{\do@size@font##1{#1}}% change size for one font
     \all@size{rm}\z@  % change size text, script and scriptscript
     \font@size\t@xtrm{rm}%
     \all@size{i}\@ne
     \all@size{sy}\tw@
     \all@size{bf}\bffam
     \font@size\t@xtbf{bf}%
     \text@size{it}\itfam % change size only for text
     \font@size\t@xtit{it}%
     \text@size{sl}\slfam
     \font@size\t@xtsl{sl}%
     \text@size{tt}\ttfam
     \font@size\t@xttt{tt}%
     \text@size{sf}\sffam
     \font@size\t@xtsf{sf}%
     \text@size{sc}\scfam
     \font@size\t@xtsc{sc}%
     \the\change@sizes@compl
     \normalfont}
\def \search@font#1-#2-#3{% test if font exists; otherwise define it.
     \expandafter\let@n@xt\csname#1#2#3\endcsname
     %%\wlog{Trying \string\\#1#2#3....}% debug
     \ifx\n@xt\@@relax   % inconnu
         \expandafter\let@n@xt\csname @@@#3\endcsname
         \ifx\n@xt\@@relax % \@@@xxx unknown -> define as xxx
              \expandafter\@@xdef\csname @@@#3\endcsname{#3}%
         \fi
         %%\wlog{Not found. Load \csname @@@#3\endcsname\csname alt@@#2\endcsname}%
         \font \n@xt=\csname @@@#3\endcsname\csname alt@@#2\endcsname
               \@@relax % try to load
         \expandafter\g@let\csname#1#2#3\endcsname \n@xt
     \fi}
\def \do@size@font#1#2#3{% example: \t@xtrm, twl, rm -> \t@xtrm=\txttwlrm
     \search@font txt-#2-{#3}% txttwlrm -> \n@xt
     \let#1\n@xt
     }
\def \do@size@fam#1#2#3#4#5{% example: twl egt six rm 0
     \let\f@ntprefix\fontprefix % save
     \let\fontprefix\mathfontprefix
     \search@font-#1-{#4}% twlrm -> \n@xt
     \textfont#5\n@xt
     \def \n@xt{#2}\ifx\n@xt\@@empty\else
     \search@font-#2-{#4}% sevenrm -> \n@xt
     \scriptfont#5\n@xt
     \search@font-#3-{#4}% fiverm -> \n@xt
     \scriptscriptfont#5\n@xt
     \let\fontprefix\f@ntprefix % restore
     \fi}
%
\def \do#1#2#3{% dˇfinir une taille alternative
     \expandafter\def\csname alt@@#1\endcsname{#3}%
     }
\do{twfv}{25}{10\@magscale5}
\do{twty}{20}{10\@magscale4}
\do{svtn}{17}{10\@magscale3}
\do{frtn}{14}{10\@magscale2}
\do{twl}{12}{10\@magscale1}
\do{ten}{10}{10}
\do{nin}{9}{10\@ptscale9}
\do{egt}{8}{10\@ptscale8}
\do{seven}{7}{10\@ptscale7}
\do{six}{6}{10\@ptscale6}
\do{five}{5}{10\@ptscale5}
\def \do#1{\expandafter\gdef\csname size@#1\endcsname}     
\do{25}{\change@sizes{twfv}{twty}{svtn}}
\do{20}{\change@sizes{twty}{frtn}{twl}}
\do{17}{\change@sizes{svtn}{twl}{ten}}
\do{14}{\change@sizes{frtn}{ten}{seven}}
\do{12}{\change@sizes{twl}{egt}{six}}
\do{10}{\change@sizes{ten}{seven}{five}}
\do{9}{\change@sizes{nin}{six}{five}}
\do{8}{\change@sizes{egt}{six}{five}}
\do{7}{\change@sizes{seven}{five}{five}}
\do{6}{\change@sizes{six}{five}{five}}
\do{5}{\change@sizes{five}{five}{five}}
\def \changesize#1{\csname size@#1\endcsname}
\def \@setsize#1#2#3{%
     \baselineskip#2\let\@currsize#1%
     \setbox\strutbox\hbox{\vrule height.7\baselineskip
      depth.3\baselineskip width\z@}%
     \changesize{#3}}
\def \normalsize{\@setsize\normalsize{12\p@ }{10}%
     \abovedisplayskip 10\p@ \@plus 2\p@ \@minus5\p@ 
     \belowdisplayskip \abovedisplayskip
     \abovedisplayshortskip \z@ \@plus 3\p@ 
     \belowdisplayshortskip 6\p@ \@plus 3\p@ \@minus 3\p@ }
\def \small{\@setsize\small{11\p@ }{9}%
     \abovedisplayskip 8.5\p@ \@plus 3\p@ \@minus 4\p@ 
     \belowdisplayskip \abovedisplayskip
     \abovedisplayshortskip \z@ \@plus 2\p@ 
     \belowdisplayshortskip 4\p@ \@plus 2\p@ \@minus 2\p@ }
\def \footnotesize{\@setsize\footnotesize{9.5\p@ }{8}%
     \abovedisplayskip 6\p@ \@plus 2\p@ \@minus 4\p@ 
     \belowdisplayskip \abovedisplayskip
     \abovedisplayshortskip \z@ \@plus 1\p@ 
     \belowdisplayshortskip 3\p@ \@plus 1\p@ \@minus 2\p@ }
\def \scriptsize{\@setsize\scriptsize{8\p@ }{7}}
\def \tiny{\@setsize\tiny{6\p@ }{5}}
\def \large{\@setsize\large{14\p@ }{12}}
\def \Large{\@setsize\Large{18\p@ }{14}}
\def \LARGE{\@setsize\LARGE{22\p@ }{17}}
\def \huge{\@setsize\huge{25\p@ }{20}}
\def \Huge{\@setsize\Huge{30\p@ }{25}}
%
%    If you have some additionnal fonts, you can put them 
%    in a file named "L2Tfonts.tex".
%
\check@file{L2Tfonts}
\ifresult
\input L2Tfonts
\fi
\normalsize 
%
%  sectionning 
%
\newcounter{chapter}
\newcounter{section}[chapter]
\newcounter{subsection}[section]
\newcounter{subsubsection}[subsection]
\def \do#1#2{%
     \def#1{\count@#2\edef\@temp@{\string#1}\@sect}}
\do \section{2}
\do \subsection{3}
\do \subsubsection{4}
\do \paragraph{5}
\do \subparagraph{6}
\def \@sect{% search for *
     \@getstar\@sect@}
\def \@sect@#1#{{\def\next{#1}%
     \ifx\next\@@empty\else
     \@ignoreoptionmsg{'\@temp@'}{#1}\fi}
     \@sect@@}     
\def \@sect@@#1{\par
     \ifnum\count@>2 \medbreak \else \bigbreak \fi
     \bgroup \@leftjustif
     \ifcase\count@\relax 
     \or \LARGE\bf \@center 
         \if@option\else % non stared form
            \refstepcounter{chapter}%
            \Alph{chapter}\qquad \fi
     \or \Large\bf 
         \if@option\else % non stared form
            \refstepcounter{section}%
            \arabic{section}\qquad \fi
     \or \large\bf 
         \if@option\else % non stared form
            \refstepcounter{subsection}%
            \arabic{subsection}\qquad \fi
     \or \large\bf 
         \if@option\else % non stared form
            \refstepcounter{subsubsection}%
            \arabic{subsubsection}\quad \fi
     \or \it
     \or \it
     \or \it \fi
     #1\par\egroup\nobreak\medskip} 
%
{\catcode`\*=12 \gdef\section@star{\section*}}
\if@complete % complete version only     
\do \chapter{1}
\let \appendix=\section@star
\@ignore \part  
\@STOP
\fi
%
%  mathematical formulas
%
\def \({$}   \def \){$}
\let \begin@math\( \let\end@math\)
\def \[{$$}  \def \]{$$}
\let \begin@displaymath\[ \let\end@displaymath\]
\newcounter{equation}
\def \begin@equation{\begin@displaymath
     \refstepcounter{equation}}
\def \end@equation{\@@eqno\@nextnumber\end@displaymath}
\def \begin@eqnarray{% ~ \eqalignno
     \begin@displaymath 
     \large@halign{%
         \hfil$\@lign\displaystyle{##}$\tabskip\z@skip
         &${}##{}$&$\@lign\displaystyle{{}##}$\hfil}%
     }
\def \end@eqnarray{\\\egroup$$}
\def \nonumber{\addtocounter{equation}\m@ne
     \g@let\@number\def@number}
\def \def@number{\gdef\@number{&\@nextnumber}}
\def \@nextnumber{{\rm(\theequation)}}
\def \large@halign#1{% large alignment in math mode
     \displ@y \tabskip\@@centering
     \def@number\def\\{\@number\cr}%
     \halign to\displaywidth\bgroup
     \refstepcounter{equation}%
     #1\tabskip\@@centering
     &\llap{$\@lign##$}\tabskip\z@skip\crcr}
\def \large@halign*#1{% same, no numbers
     \displ@y \tabskip\@@centering
     \let\\=\cr 
     \halign to\displaywidth\bgroup
     \refstepcounter{equation}%
     #1\tabskip\@@centering\crcr}
\def \begin@eqnarray*{% ~ \eqalign
     $$\let\\\cr 
     \vcenter\bgroup\openup\jot\m@th
     \ialign\bgroup\strut\hfil$\displaystyle{##}$\tabskip1em
            &${}##{}$&\tabskip\z@
            $\displaystyle{{}##}$\hfil\crcr}
\def \end@eqnarray*{%
     \crcr\egroup\egroup$$}
%     
\def \frac#1#2{{#1\over #2}}
\let \@@sqrt\sqrt  % plain tex
\def \sqrt{\@getoption\sqrt@}
\def \sqrt@{\if@option \def\n@xt{\root \@option\of}%
     \else \let\n@xt\@@sqrt \fi \n@xt}
%
%  displayed paragraphs
\def \begin@center{\par\begingroup\@center}
\def \end@center{\par\endgroup}
\def \begin@quote{\par\begingroup\parindent\z@\@quote}
\def \begin@quotation{\par\begingroup\@quote}
\def \@quote{\leftskip20\p@ \rightskip\leftskip}
\let \end@quote\end@center
\let \end@quotation\end@center
\def \begin@verse{\begin@quote
     \let\\\newline}
\let \end@verse\end@center
%
%  lists
%
\newcount\@listdepth \@listdepth=0
\newcounter{enumi}
\newcounter{enumii}[enumi]
\newcounter{enumiii}[enumii]
\newcounter{enumiv}[enumiii]
\newdimen\leftmargin \leftmargin 25pt
\newdimen\rightmargin
\newdimen\labelsep \labelsep 5pt
\newskip \parsep \parsep 4pt plus 2pt minus 1pt
\def\labelenumi{\arabic{enumi}.} 
\def\theenumi{\arabic{enumi}} 
\def\labelenumii{(\alph{enumii})}
\def\theenumii{\alph{enumii}}
\def\labelenumiii{\roman{enumiii}.}
\def\theenumiii{\roman{enumiii}}
\def\labelenumiv{\Alph{enumiv}.}
\def\theenumiv{\Alph{enumiv}} 
%
\def\labelitemi{$\bullet$}
\def\labelitemii{\bf --}
\def\labelitemiii{$\ast$}
\def\labelitemiv{$\cdot$}
\newbox\box@item
\newtoks\everylist  % something to do at every list
%
\def \@beginlist{% diff. sort of lists
     \par\begingroup \advance\@listdepth\@ne
     \advance\leftskip\leftmargin \advance\rightskip\rightmargin
     \parindent\leftmargin \parskip\parsep
     \the\everylist}
\def \begin@enumerate{\@beginlist
     \edef\@enumctr{enum\romannumeral\the\@listdepth}%
     \setcounter{\@enumctr}\z@
     \def \@itemlabel{\stepcounter{\@enumctr}%
                      \csname label\@enumctr\endcsname}}
\def \end@enumerate{\par\endgroup}
\def \item{\@getoption\item@}
\def \item@{\if@option\@@xdef\@currentlabel{\@option}%
     \else \def\@option{\@itemlabel
             \@@xdef\@currentlabel{\csname the\@enumctr\endcsname}}%
     \fi \@item{\@option}}
\def \@item#1{\par
     \@@global\setbox\box@item\hbox{\box\box@item
     \hbox to\leftmargin{\hss\llap{#1}\hskip\labelsep}}%
     \everypar{\hskip-\parindent\llap{\box\box@item}\@@global\everypar{}}%
     \ignorespaces} 
\def \begin@itemize{\@beginlist
     \edef\@enumctr{\romannumeral\the\@listdepth}%
     \def \@itemlabel{\csname labelitem\@enumctr\endcsname}}
\let \end@itemize\end@enumerate
\def \begin@description{\@beginlist
     \def \@itemlabel{}}
\let \end@description\end@enumerate
%
%  document class, title, etc.
%
\if@complete
\@ignore  \maketitle
          \tableofcontents 
          \abstract
\@STOP
\@ignorei \documentclass
          \documentstyle
          \usepackage
          \pagestyle
          \pagenumbering
          \title
          \author
          \date
          \thanks
          \selectlanguage
          \color
\@STOP
\def \NeedsTeXFormat#1{% ignore
     \@ignore@macro@msg\NeedsTeXFormat \@getoption\gr@relax}
\@ignoredim \footskip
            \topmargin
            \headheight \headsep
            \oddsidemargin \evensidemargin
            \marginparwidth \marginparsep
            \pageheight \pagewidth
\@STOP
\def \begin@abstract{\abstract}
\let \end@abstract\par
\let \begin@document\gr@relax
\let \end@document\bye
\fi
\let \textwidth\hsize
\let \textheight\vsize
%
%  float, figure
%
\def \@float#1{\par
  \topinsert\bgroup
  \def \@captype {#1}% 
        \normalfont
        \normalsize
        \everypar{\everypar{}}%
}
\def \end@float{%
      \par\vskip\z@skip      
    \egroup \endinsert           %% end of vbox
}
\newcounter{figure}
\renewcommand \thefigure {\@arabic\c@figure}
\def\fnum@figure{\figurename~\thefigure}
\newenvironment{figure}
               {\@float{figure}}
               {\end@float}
\newcounter{table}
\renewcommand\thetable{\@arabic\c@table}
\def\fnum@table{\tablename~\thetable}
\newenvironment{table}
               {\@float{table}}
               {\end@float}
\def \caption{\refstepcounter\@captype \@caption}
\long\def\@caption#1{%
  \par
  \begingroup
    \normalsize\normalfont
    \@makecaption{\csname fnum@\@captype\endcsname}{\ignorespaces #1}%
  \endgroup}
\long\def\@makecaption#1#2{%
  \vskip10\p@
  \noindent #1: #2\par
  \vskip\z@}
%
%  cross references
%
\@ignorei \pageref \@STOP 
\def \label#1{%   only for ref. AFTER
     \expandafter\@@xdef\csname r@#1\endcsname{\@currentlabel}}
\let \@label\label
\def \ref#1{% only for already known ref.
     \expandafter\let@n@xt\csname r@#1\endcsname
     \ifx\n@xt\relax \@error{Reference `#1' undefined}%
     \else \n@xt \fi}
\def \refstepcounter#1{\stepcounter{#1}%
     \@@xdef\@currentlabel{\csname the#1\endcsname}}
%
%  bibliography, citation
%
\@ignorei \cite \thebibliography \bibitem
\@STOP
\if@complete % complete version only     
\def \thebibliography#1{\section@star{References}}
\newcounter{biblio}
\def \bibitem#1{%
     \medbreak \stepcounter{biblio}
     \@@item{[\arabic{biblio}]}}
\fi
%
%  splitting the input
\def \input{% syntax of plain and TeX both allowed
     \futurelet\n@xt\input@}
\def \input@{\ifx\bgroup\n@xt  % LaTeX : \input{file}
     \let\n@xt \input@@
     \else \let\n@xt\@@input 
     \fi \n@xt}
\def \input@@#1{\@@input #1 }     
\@replace \include\input
\@ignorei \includeonly
\@STOP
%
%  line breaking
%
\def \linebreak{\@getoption\linebreak@}
\def \linebreak@{\if@option 
     \count@=\@option \penalty-2500\count@
     \else \penalty-\@M \fi}
\def \nolinebreak{\@getoption\nolinebreak@}
\def \nolinebreak@{\if@option 
     \count@=\@option \penalty+2500\count@
     \else \penalty\@M \fi}
\def \newline{\leavevmode\hfill\kern\z@\break
     \@ignorestar\newline
         {\@ignoreoption{\newline ou \string\\}\gr@relax}}
\let \\=\newline 
\def \sloppy{\tolerance 9999
            \emergencystretch 3em
            \hfuzz .5\p@ \vfuzz .5\p@}
\def \fussy{\emergencystretch\z@
     \tolerance 200 \hfuzz .1\p@ \vfuzz .1\p@}
\def \begin@sloppypar{\par\bgroup\sloppy}
\def \end@sloppypar{\par\egroup}
%
%  page breaking
\if@complete
\def \pagebreak{\par\linebreak}
\def \newpage{\vfill\eject}
\def \clearpage{\vfill\supereject}
\fi
%
%  boxes
\def \mbox{\leavevmode\hbox}
\def \makebox{\leavevmode\@getoption\makebox@}
\def \makebox@{\if@option \dimen@=\@option
     \def\n@xt{\@getoption\makebox@@}\else
     \let\n@xt\mbox\fi \n@xt}
\def \makebox@@#1{\if@option \@ignoreposition\makebox \fi
     \hbox to\dimen@{\hss#1\hss}}
\newdimen\fboxsep \fboxsep=3pt
\def \framebox{\@getoption\framebox@}
\def \framebox@{\if@option \dimen@=\@option
     \def\n@xt{\@getoption\framebox@@}\else
     \let\n@xt\framebox@@@\fi \n@xt}
\long\def \framebox@@#1{%
     \if@option \@ignoreposition\framebox \fi
     \setbox\@ne\hbox to\dimen@{\hss{#1}\hss}\framebox@@@@}
\long\def \framebox@@@#1{%
     \setbox\@ne\hbox{\hss#1\hss}\framebox@@@@}
\def \framebox@@@@{{%
     \setbox\@ne\hbox{\kern\fboxsep\box\@ne\kern\fboxsep}%
     \dimen@=\@@ht\@ne  \advance\dimen@ \fboxsep
     \dimen@i=\@@dp\@ne \advance\dimen@i \fboxsep
     \setbox\@ne=\hbox{\vrule\@height\dimen@\@depth\dimen@i\box\@ne\vrule}%
     \setbox\@ne=\vbox{\hrule\box\@ne\hrule}%
     \advance\dimen@ .4\p@ \@@ht\@ne=\dimen@
     \advance\dimen@i .4\p@ \@@dp\@ne=\dimen@i
     \hbox{\box\@ne}}}
\def \fbox#1{\hbox{\framebox@@@{#1}}}
\def \parbox{\@ignoreoption\parbox\parbox@}
\def \parbox@#1{\bgroup
     \everyvbox{\aftergroup\parbox@@
                \hsize#1\@@global\everyvbox{}}%
     \setbox\z@\vbox}
\def \parbox@@{$\vcenter{\unvbox\z@}$\egroup}     
%
%  spaces
\def \hspace{\@getstar\hspace@}
\def \hspace@#1{\if@option% there was a *
     \vrule \@width\z@\nobreak \fi
     \hskip#1\if@option\hskip\z@skip\fi}
%
%     array macros
%
{\catcode`\|=13 
\gdef \@active@vrule{\catcode`\|\active \def|{\@array@vrule}}
%
\catcode`\C=13 \catcode`\L=13 \catcode`\R=13 
\lowercase{% that will define active c, l, r
\gdef C{&\@hstrut \tabskip\z@ \hskip\arraycolsep 
        \hfil \@sharp \hfil \hskip\arraycolsep }
\gdef L{&\@hstrut \tabskip\z@ \hskip\arraycolsep 
        \@sharp \hfil \hskip\arraycolsep }
\gdef R{&\@hstrut \tabskip\z@ \hskip\arraycolsep
        \hfil \@sharp \hskip\arraycolsep }
\gdef \lr@array{LR}% for split  
\gdef \ll@array{LL}% for cases  
}}
\def \begin@array{\begingroup
     \def\@sharp{$########$}%
     \@getoption\begin@array@}
\def \begin@array@{%
     \if@option
          \if t\@option \vtop
          \else \if b\@option \vbox
                \else \vcenter \fi
          \fi
     \else \vcenter
     \fi \bgroup 
     \begin@array@@}
\def \begin@array@@#{\bgroup
     \catcode`\c\active
     \catcode`\l\active
     \catcode`\r\active
     \@active@vrule
     \catcode`\ =9 % ignore spaces
     \afterassignment\begin@array@@@
     \@@global\toks@}
\def \begin@array@@@{%
     \edef\n@xt{\the\toks@}%
     \let\@sharp\@@relax \let\@array@vrule\@@relax
     \@@global\edef\n@xt{\n@xt}\egroup% expand list
     \edef\n@xt{\ialign\bgroup 
          \expandafter\@array@first\n@xt
          \@hstrut\crcr\ignorespaces}%
     \let \\\@arraycr 
     \offinterlineskip \m@th
     \n@xt}
\def \@array@first#1{% suppress & and change |
     \ifx#1&\else
     \vrule\hskip\doublerulesep 
     \expandafter\@array@first\fi}     
\def \@array@vrule{\@@relax \vrule \hskip\doublerulesep
     \tabskip-\doublerulesep}
\def \end@array{\crcr\egroup\egroup\endgroup}    
\def \begin@tabular{%
     \leavevmode \hbox \bgroup
     \def\@sharp{########}%
     $\@getoption\begin@array@}
\def \end@tabular{\crcr\egroup\egroup$\egroup}     
\def \@arraycr{\crcr\noalign{\ifnum0=`}\fi
     \@ignoreoption\\{\ifnum0=`{\fi}}}
\def \hline{\noalign{\ifnum0=`}\fi\hrule
     \futurelet\n@xt\@xhline}
\def \@xhline{\ifx\n@xt\hline\vskip\doublerulesep \fi
     \ifnum0=`{\fi}}
\def \vline{\vrule}
%
%  verbatim envir. (only in complete version)
%
\if@complete
\def \@uncatcodeall{\count@\z@
     \loop \@uncatcode\count@
     \ifnum \count@<255 
         \advance\count@\@ne \repeat}
\def \@uncatcode#1{\relax
     \ifnum\catcode#1=11 \else \catcode#1=12 \fi}         
\def \verb{\@ignorestar\verb\verb@}
\def \verb@{\bgroup\@uncatcodeall\obeyspaces\verb@@}
\def \verb@@#1{\def\@temp##1#1{\tt##1\egroup}\@temp}
\def \begin@verbatim{\par\begingroup
     \@uncatcodeall \parskip\z@ \parindent\z@
     \def\par{\relax\ifvmode\leavevmode\fi
              \endgraf}\obeylines 
     \tt\obeyspaces \@verbatim}
\let \end@verbatim\@STOP % should not occur
\bgroup
\catcode`\!=0 \catcode`\<=1 \catcode`\>=2
\catcode`\{=12 \catcode`\}=12 \catcode`\\=12
!gdef !@verbatim#1\end{verbatim}<#1!endgroup!par>
!egroup
\fi
%
%   Some compatibility with amstex
%
\ifx \Bbb\@undefined \def \Bbb#1{{\bf#1}}\fi
\ifx \mathbb\@undefined \let \mathbb\Bbb \fi
\ifx \boldsymbol\@undefined \def \boldsymbol#1{{\bf#1}}\fi
\ifx \frak\@undefined \let \frak\cal  \fi
\ifx \text\@undefined \let \text\hbox \fi
\@ignoredim \multlinegap 
\@ignore \pmb \tag \notag 
\@STOP
%
%   Alignment in amsmath
%
\def \test@math#1#2#3{\@@relax\begingroup% test if in math mode
     \ifmmode \let \endfortest@math\endgroup \def\n@xt{#1}%
     \else \def\endfortest@math{#3\endgroup}%
           \def\n@xt{#2#1}%
     \fi \n@xt}
\let \endfortest@math\@@relax     
\def \begin@gather{\@ignoreoptionsilent
     \let \uselarge@halign\large@halign
     \test@math\begin@gather@\begin@displaymath\end@displaymath
     }
\def \end@gather{\\\egroup\endfortest@math}  
\def \begin@gather*{\@ignoreoptionsilent
     \let \uselarge@halign\large@halign*
     \test@math\begin@gather@\begin@displaymath\end@displaymath
     }
\let \end@gather*\end@gather  
\def \begin@gather@{%
     \uselarge@halign{%
          \hfil$\@lign\displaystyle{##}$\hfil}%
     }
\let \begin@gathered=\begin@gather     
\let \end@gathered=\end@gather     
%
\def \begin@align{\@ignoreoptionsilent
     \let \uselarge@halign\large@halign
     \test@math\begin@align@\begin@displaymath\end@displaymath
     }
\def \end@align{\\\egroup\endfortest@math}  
\def \begin@align*{\@ignoreoptionsilent
     \let \uselarge@halign\large@halign*
     \test@math\begin@align@\begin@displaymath\end@displaymath
     }
\let \end@align*\end@align  
\def \begin@align@{%
     \uselarge@halign{%
         \hfil$\@lign\displaystyle{##}$\tabskip\z@skip
         &$\@lign\displaystyle{{}##}$\hfil}%
     }
\let \begin@aligned=\begin@align     
\let \end@aligned=\end@align     
\def \begin@split{\begin@array{\lr@array}}     
\let \end@split=\end@array
\let \@@cases\cases     
\def \begin@cases{\left\{\begin@array{\ll@array}}
\def \end@cases{\end@array\right.}
%
\let \begin@multline=\begin@gather     
\let \end@multline=\end@gather     
%
%  end of all
\def\figurename{Figure}
\def\tablename{Table}
%
\let \do\@undefined
\showboxbreadth0 \showboxdepth0
\let\wlog\@@latexTtex   % restore
\catcode`\*=12
\def \makeatother{\catcode`\@=12 }\makeatother

\endinput

% Notice that no syntax checking is done.
