\message{slverbatim,} % **************************************** % * slverbATIM * % **************************************** % % The slverbatim environment uses the fixed-width \sltt font, turns blanks into % spaces, starts a new line for each carrige return (or sequence of % consecutive carriage returns), and interprets EVERY character literally. % I.e., all special characters \, {, $, etc. are \catcode'd to 'other'. % % The command \slverb produces in-line slverbatim text, where the argument % is delimited by any pair of characters. E.g., \slverb #...# takes % '...' as its argument, and sets it slverbatim in \sltt font. % % The *-variants of these commands is the same, except that spaces % print as the TeXbook's space character instead of as blank spaces. {\catcode`\^^M=13 \gdef\@gobblecr{\@ifnextchar {\@gobble}{\ignorespaces}}} {\catcode`\ =\active\gdef\@vobeyspaces{\catcode`\ \active \let \@xobeysp}} % Definition of \@xobeysp chaned on 19 Nov 86 from % \def\@xobeysp{\leavevmode{} } % to prevent line breaks at spaces. Change suggested by % Nelson Beebe % \def\@xobeysp{\leavevmode\penalty10000\ } \begingroup \catcode `|=0 \catcode `[= 1 \catcode`]=2 \catcode `\{=12 \catcode `\}=12 \catcode`\\=12 |gdef|@xslverbatim#1\end{slverbatim}[#1|end[slverbatim]] |gdef|@sxslverbatim#1\end{slverbatim*}[#1|end[slverbatim*]] |endgroup \def\@sslverbatim{\obeyspaces\@slverbatim} \def\@gobble#1{} \def\@slverbatim{\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 \sltt \catcode``=13 \@noligs \let\do\@makeother \dospecials} \def\slverbatim{\@slverbatim \frenchspacing\@vobeyspaces \@xslverbatim} \let\endslverbatim=\endtrivlist \@namedef{slverbatim*}{\@slverbatim\@sxslverbatim} \expandafter\let\csname endslverbatim*\endcsname =\endtrivlist \def\@makeother#1{\catcode`#112\relax} \def\slverb{\begingroup \catcode``=13 \@noligs \sltt \let\do\@makeother \dospecials \@ifstar{\@sslverb}{\@slverb}} \def\@sslverb#1{\def\@tempa ##1#1{##1\endgroup}\@tempa} \def\@slverb{\obeyspaces \frenchspacing \@sslverb} %% \@noligs prevents ?` and !` from being treated as ligatures %% added 19 April 86 \begingroup \catcode``=13 \gdef\@noligs{\let`=\@lquote} \endgroup \def\@lquote{{\kern\z@}`}