% Program texts ----------------------------------------- \newcommand{\programenvironment}{\programmode% \def\par{\leavevmode\endgraf}\obeylines\nobreak% \programmode} \newcommand{\programinfig}{% \parindent 0em \nobreak\programenvironment} \newcommand{\programmode}{\tt% \catcode`\_=12 \catcode`\?=12 \catcode`\.=12 \catcode`\,=12 \catcode`\;=12 \catcode`\:=12 \catcode`\@=12 \catcode`\~=12 \catcode`\#=12 \catcode`\&=12 % Added by PS 1991-06-17 \catcode`\^=12 % Added by PS 1992-11-03 \obeyspaces\frenchspacing}% \newenvironment{programintext}{\programenvironment}{} \newlength{\programwidth} \newenvironment{program}{% \setlength{\programwidth}{\textwidth} \addtolength{\programwidth}{-\leftmargin} \setlength{\partopsep}{0mm}\setlength{\topsep}{0mm} \begin{trivlist}\item[] \addtolength{\programwidth}{-\mathindent} \hspace*{\mathindent}\begin{minipage}{\programwidth} \vspace{1mm} \begin{programintext} }{\end{programintext} \vspace{1mm} \end{minipage} \end{trivlist} \noindent} % The following is an environment for listing (long) programs in % appendices etc., by PS 1991-06-17 \newcommand{\separatingline}{\noindent\rule[0.5\baselineskip]{\linewidth}{0.3mm}} \newenvironment{longprogram}{% \parindent 0em \programenvironment \setlength{\baselineskip}{0.8\baselineskip} }{} % What the following code does is not clear. Maybe it makes Tex % respect spaces and tabs in the source text, which is useful for % program layout. {\catcode`\^^I=\active \obeyspaces\global\def^^I{ }} {\obeyspaces\global\let =\ } % let active space = control space {\catcode`\`=\active \gdef`{\relax\lq}}