From: gla Date: Mon, 24 Sep 2001 22:29:02 +0000 (+0000) Subject: [project @ 2001-09-24 22:29:02 by gla] X-Git-Tag: Approximately_9120_patches~920 X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=f69121f0f12d909f817e061992ac504acf0f21ca [project @ 2001-09-24 22:29:02 by gla] --- diff --git a/ghc/docs/storage-mgt/code.sty b/ghc/docs/storage-mgt/code.sty new file mode 100644 index 0000000..f5ec2f5 --- /dev/null +++ b/ghc/docs/storage-mgt/code.sty @@ -0,0 +1,83 @@ + +% I have enclosed code.sty, which achieves 99% of what you want without +% the need for a separate preprocessor. At the start of your document +% you write "\makeatactive". From then on, inline code is written as @\x +% -> x_1 & y@. The only difference with what you are used to, is that +% instead of +% +% @ +% foo :: Int -> Int +% foo = \n -> n+1 +% @ +% +% you have to write +% +% \begin{code} +% foo :: Int -> Int +% foo = \n -> n+1 +% \end{code} +% +% and that you cannot use @ in \section{} and \caption{}. For the paper that occured twice, in which case I had to replace @...@ b y \texttt{...}. +% +% +% code.sty --- nice verbatim mode for code + +\def\icode{% + \relax\ifmmode\hbox\else\leavevmode\null\fi + \bgroup + %\begingroup + \@noligs + \verbatim@font + \verb@eol@error + \let\do\@makeother \dospecials + \@vobeyspaces + \frenchspacing + \@icode} +\def\@icode#1{% + \catcode`#1\active + \lccode`\~`#1% + \lowercase{\let~\icode@egroup}} +\def\icode@egroup{% + %\endgroup} + \egroup} + +% The \makeatactive command: +% makes @ active, in such a way that @...@ behaves as \icode@...@: +{ +\catcode`@=\active +\gdef\makeatactive{ + \catcode`@=\active \def@{\icode@} + % Since @ becomes active, it has to be taken care of in verbatim-modes: + \let\olddospecials\dospecials \def\dospecials{\do\@\olddospecials}} +} +% \gdef\makeatother{\g@remfrom@specials{\@}\@makeother\@} +\gdef\makeatother{\@makeother\@} + +\newcommand\codetabwidth{42pt} +{\catcode`\^^I=\active% +\gdef\@vobeytab{\catcode`\^^I\active\let^^I\@xobeytab}} +\def\@xobeytab{\leavevmode\penalty10000\hskip\codetabwidth} + +\begingroup \catcode `|=0 \catcode `[= 1 +\catcode`]=2 \catcode `\{=12 \catcode `\}=12 +\catcode`\\=12 |gdef|@xcode#1\end{code}[#1|end[code]] +|endgroup +\def\@code{\trivlist \item\relax + \if@minipage\else\vskip\parskip\fi + \leftskip\@totalleftmargin\rightskip\z@skip + \parindent\z@\parfillskip\@flushglue\parskip\z@skip + \@@par + \@tempswafalse + \def\par{% + \if@tempswa + \leavevmode \null \@@par\penalty\interlinepenalty + \else + \@tempswatrue + \ifhmode\@@par\penalty\interlinepenalty\fi + \fi}% + \obeylines \verbatim@font \@noligs + \let\do\@makeother \dospecials + \everypar \expandafter{\the\everypar \unpenalty}% +} +\def\code{\@code \frenchspacing\@vobeytab\@vobeyspaces \@xcode} +\def\endcode{\if@newlist \leavevmode\fi\endtrivlist}