<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">%
% $Header: bang.tex,v 1.2 86/09/14 00:15:41 sven Exp $
%
% $Log:	bang.tex,v $
% Revision 1.2  86/09/14  00:15:41  sven
% Initial revision, LaTeX 2.09
% 
% Revision 1.1  86/01/15  22:35:07  sven
% Initial revision, Latex 2.08
% 
%
% Change backslashes to bangs. Note in some places square brackets
% are changed to parens. See comments below.

\typeout{Change escape character from '\protect\' to '!'.}

%from lplain.tex

\def\dospecials{\do\ \do\!\do\&lt;\do\&gt;\do\$\do\&amp;%
  \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~}

% from latex.tex

\def\@sanitize{\@makeother\ \@makeother\!\@makeother\$\@makeother\&amp;%
\@makeother\#\@makeother\^\@makeother\^^K\@makeother\_\@makeother\^^A%
\@makeother\%\@makeother\~}

\def\@badcrerr {\@latexerr{Bad use of \string\!}\@ehc}

\let\!=\@normalcr

{\catcode`\^^M=13 \gdef\obeycr{\catcode`\^^M=13 \def^^M{\!}\@gobblecr}%
\gdef\restorecr{\catcode`\^^M=5 }} %} BRACE MATCHING

\def\eqnarray{\stepcounter{equation}\let\@currentlabel=\theequation
\global\@eqnswtrue
\global\@eqcnt\z@\tabskip\@centering\let\!=\@eqncr
$$\halign to \displaywidth\bgroup\@eqnsel\hskip\@centering
  $\displaystyle\tabskip\z@{##}$&amp;\global\@eqcnt\@ne 
  \hskip 2\arraycolsep \hfil${##}$\hfil
  &amp;\global\@eqcnt\tw@ \hskip 2\arraycolsep $\displaystyle\tabskip\z@{##}$\hfil 
   \tabskip\@centering&amp;\llap{##}\tabskip\z@\cr}

\def\centering{\let\!=\@centercr\rightskip\@flushglue\leftskip\@flushglue
\parindent\z@\parfillskip\z@}

\def\raggedright{\let\!=\@centercr\@rightskip\@flushglue \rightskip\@rightskip
  \leftskip\z@
  \parindent\z@}

\def\raggedleft{\let\!=\@centercr\rightskip\z@\leftskip\@flushglue
  \parindent\z@\parfillskip\z@}

\def\@parboxrestore{\@arrayparboxrestore\let\!=\@normalcr}

% item[] changed to item() 9 lines below

\def\tabbing{\lineskip \z@\let\&gt;\@rtab\let\&lt;\@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\array{\let\@acol\@arrayacol \let\@classz\@arrayclassz
 \let\@classiv\@arrayclassiv \let\!\@arraycr\def\@halignto{}\@tabarray}

\def\@tabular{\leavevmode \hbox \bgroup $\let\@acol\@tabacol 
   \let\@classz\@tabclassz
   \let\@classiv\@tabclassiv \let\!\@tabularcr\@tabarray}

% ...shortstack[#1] changed to shortstack(#1) 2 lines below

\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}

</pre></body></html>