1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189
|
%%
%% This is file `lgrind.sty' generated
%% on <1991/9/13> with the docstrip utility (v1.1l test).
%%
%% The original source file was `lgrind.doc'.
%%
%%
%% lgrind is a minor adaptation of Jerry Leichter's tgrind for LaTeX,
%% which was a notable improvement upon Van Jacobsen's tgrind for
%% plain TeX, which was adapted from vgrind, a troff prettyprinter.
%%
%% LaTeX lgrind environment
\newif\ifc@mment %True when setting a comment
\newif\ifstr@ng %True when setting a string constant
\newif\ifright@ %In comments, \" => '' (else ``)
\newif\ifLGd@fault %True after default \LGbegin
\newcount\lc@unt %Line counter
\newcount\ln@xt %Next line to get numbered
\newbox\ls@far %Stores lines so far for tabbing
\newdimen\TBw@d %Tabwidth when tabbing
\newbox\tb@x %Tab positioning
\newdimen\@ts %Width of listing space
{\catcode`\_=\active \gdef\@setunder{\let_=\sp@ce}}
\def\BGfont{\sf} %"Background" font
\def\CMfont{\rm} %Comment font
\def\KWfont{\bf} %Keyword font
\def\STfont{\tt} %String font
\def\VRfont{\it} %Variable name font
\def\LGsize{\small} %Size to use in displayed code
\def\LGfsize{\footnotesize} %Size to use in \lgrindfile
\newif\ifLGinline %True for in-line code
\newif\ifLGleftnum %Put line numbers on the left
\newcount\LGnuminterval %Line numbering interval
\LGnuminterval=10
\newskip\LGindent %Indentation for displayed lines
\LGindent=1.6667\parindent
\def\LGbegin{\ifLGinline$\hbox\else$$\vbox\fi\bgroup\LGd@faulttrue}
\def\LGend{\ifLGd@fault\egroup\ifLGinline$\else$$\fi\LGd@faultfalse\fi}
\def\lgrind{%
\def\Line##1{\L{\LB{##1}}}% %For use with %=
\let\Head=\@gobble %Header information (-h)
\def\File##1,##2,##3{}% %File specification info
\let\Proc=\@gobble %Marks procedure def beginning
\let\ProcCont=\@gobble %Marks end of nested procedure def
\def\NewPage{\filbreak\bigskip}%
\ifLGinline
\def\L##1{\setbox\ls@far\null\CF\strut##1\ignorespaces}%
\else
\let\r@ghtlno\relax\let\l@ftlno\relax
\ifnum\LGnuminterval>\z@
\ifLGleftnum
\def\l@ftlno{\ifnum\lc@unt>\ln@xt\global\advance\ln@xt by\LGnuminterval
\llap{{\scriptsize\the\lc@unt\quad}}\fi}%
\else
\def\r@ghtlno{\ifnum\lc@unt>\ln@xt\global\advance\ln@xt by\LGnuminterval
\rlap{{\scriptsize\enspace\the\lc@unt}}\fi}%
\fi
\fi
\def\L##1{\@@par\setbox\ls@far=\null\CF\strut
\global\advance\lc@unt by1%
\hbox to\hsize{\hskip\LGindent\l@ftlno ##1\hfil\r@ghtlno}\ignorespaces}%
\fi
\lc@unt=0\ln@xt=\LGnuminterval\advance\ln@xt by-1%
\def\LB{\CF\hbox\bgroup\box\ls@far\let\next=}%
\def\Tab##1{\setbox\tb@x=\lastbox\TBw@d=\wd\tb@x\advance\TBw@d by 1\@ts
\ifdim\TBw@d>##1\@ts
\setbox\ls@far=\hbox{\box\ls@far \box\tb@x \sp@ce}\else
\setbox\ls@far=\hbox to ##1\@ts{\box\ls@far \box\tb@x \hfil}\fi\LB}%
\ifLGinline\def\sp@ce{\hskip .3333em}%
\else \setbox\tb@x=\hbox{{\tt 0}}\@ts=\wd\tb@x \def\sp@ce{\hskip 1\@ts}\fi
\catcode`\_=\active \@setunder
\let\CF=\BGfont
\def\K##1{{\KWfont ##1}\global\futurelet\next\ic@r}% %Keyword
\def\V##1{{\VRfont ##1}\global\futurelet\next\ic@r}% %Variable
\def\ic@r{\let\@tempa\/\ifx.\next\let\@tempa\relax% %Optional \/
\else\ifx,\next\let\@tempa\relax\fi\fi\@tempa}%
\def\C{\CMfont \global\let\CF\CMfont \global\c@mmenttrue \global\right@false}%
\def\CE{\BGfont \global\let\CF\BGfont \global\c@mmentfalse}%
\def\S{\STfont \global\let\CF\STfont \global\str@ngtrue}%
\def\SE{\BGfont \global\let\CF\BGfont \global\str@ngfalse}%
\def\,{\relax \ifmmode\mskip\thinmuskip \else\thinspace \fi}%
\def\!{\relax \ifmmode\mskip-\thinmuskip \else\negthinspace \fi}%
\def\CH##1##2##3{\relax\ifmmode ##1\relax
\else\ifstr@ng ##2\relax\else$##3$\fi\fi }%
\def\{{\CH\lbrace {\char'173}\lbrace }%
\def\}{\CH\rbrace {\char'175}\rbrace }%
\def\1{\CH///}% %/
\def\2{\CH\backslash {\char'134}\backslash }% %\
\def\|{\CH|{\char'174}|}%
\def\<{\CH<<<}%
\def\>{\CH>>>}%
\def\*{\CH***}\relax %\relax for DOCSTY
\def\-{\CH---}%
\def\_{\ifstr@ng {\char'137}\else
\leavevmode \kern.06em \vbox{\hrule width.35em}%
\ifdim\fontdimen\@ne\font=\z@ \kern.06em \fi\fi }%
\def\&{{\sf \char'046}}%
\def\#{{\STfont \char'043}}%
\def\%{{\char'045}}%
\def\~{{\char'176}}%
\def\"{\ifc@mment\ifright@ ''\global\right@false \else``\global\right@true \fi
\else{\tt \char'042}\fi}%
\def\'{\ifc@mment'\else {\tt \char'015}\fi}%
\def\^{{\tt \char'136}}%
\def\${{\ifmmode\sl\else\ifdim\fontdimen\@ne\font>\z@\sl\fi\fi
\char'044}}% %No $ in \it, use \sl
\parindent\z@\parskip\z@ plus 1pt\hsize\linewidth%
}
\def\endlgrind{\@@par}
\def\lgrinde{\ifLGinline\else\LGsize\fi\begin{lgrind}}
\def\endlgrinde{\end{lgrind}}
\def\lagrind{\@ifstar{\@slagrind}{\@lagrind}}
\def\@lagrind{\@ifnextchar[{\@@lagrind}{\@@lagrind[t]}}
\def\@slagrind{\@ifnextchar[{\@@slagrind}{\@@slagrind[t]}}
\def\@@lagrind[#1]#2#3#4{%
\begin{figure}[#1]
\hrule
\vskip .5\baselineskip
\begin{minipage}\columnwidth\LGsize\LGindent\z@
\begin{lgrind}
\input #2\relax
\end{lgrind}
\end{minipage}
\vskip .5\baselineskip plus .5\baselineskip
\begingroup
\setbox\z@=\hbox{#4}%
\ifdim\wd\z@>\z@
\caption{#3}%
\label{#4}%
\else
\captcont{#3}%
\fi
\endgroup
\vskip 2pt
\hrule
\end{figure}
}
\def\@@slagrind[#1]#2#3#4{%
\begin{figure*}[#1]
\hrule
\vskip .5\baselineskip
\begin{minipage}\textwidth\LGsize\LGindent\z@
\begin{lgrind}
\input #2\relax
\end{lgrind}
\end{minipage}
\vskip .5\baselineskip plus .5\baselineskip
\begingroup
\setbox\z@=\hbox{#4}%
\ifdim\wd\z@>\z@
\caption{#3}%
\label{#4}%
\else
\captcont{#3}%
\fi
\endgroup
\vskip 2pt
\hrule
\end{figure*}
}
\def\lgrindfile#1{%
\par\addvspace{0.1in}
\hrule
\nopagebreak[2]
\vskip .5\baselineskip
\nopagebreak[2]
\begingroup\LGfsize\LGindent\z@
\begin{lgrind}
\input #1\relax
\end{lgrind}
\endgroup
\nopagebreak[2]
\vskip .5\baselineskip
\nopagebreak[2]
\hrule
\addvspace{0.1in}
}
\endinput
%%
%% End of file `lgrind.sty'.
|