X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fmaster-project%2Freport.git;a=blobdiff_plain;f=Utils%2FLambda.tex;h=24230d88b07733808ebef4bea85e285b49b7bfe6;hp=f2d7320e91de46fc960665cdd0e7ad78de403f99;hb=2e1c7f4982d5e485feff87b9dae7a34fb7c0e7bf;hpb=daa8bdad58317f7c61f86b4152aa81297f7ef624 diff --git a/Utils/Lambda.tex b/Utils/Lambda.tex index f2d7320..24230d8 100644 --- a/Utils/Lambda.tex +++ b/Utils/Lambda.tex @@ -3,21 +3,61 @@ % transformations. % +\startuniqueMPgraphic{HLine} +path a, b; +% Create a rectangle of the full size +a := origin -- (\MPvar{width}, 0mm); +% Randomize it a bit +%b := a randomized (\overlaywidth / 25) ; +% And draw it +drawoptions (withpen pencircle scaled .75mm withcolor black) ; +draw a; +\stopuniqueMPgraphic + +% Draw a line with the given options. Accepts only the 'width' option. Be +% careful that these are metapost options, so use \the\textwidth instead of +% textwidth, and a metapost expression for arithmethic (e.g. 0.5 * +% \the\textwidth instead of 0.5\textwidth). +\def\HLine[#1]% + {\setupMPvariables[HLine][#1]% + \uniqueMPgraphic{HLine}} + +\startuniqueMPgraphic{box} +path a, b; +% Create a rectangle of the full size +a := unitsquare xyscaled(\overlaywidth,\overlayheight); +% Randomize it a bit +b := a randomized (\overlaywidth / 25) ; +% And draw it +drawoptions (withpen pencircle scaled .75mm withcolor black) ; +draw b; +\stopuniqueMPgraphic + +\defineoverlay[box][\uniqueMPgraphic{box}] + +% Define \{start,stop}boxed with a nice metapost box around it. +\defineframedtext[boxed][background=box,frame=off] +% A boxed variant with the width forced to page width. This is used in +% \startrans, since the content somehow doesn't scale the box around it +% properly. +\defineframedtext[wideboxed][background=box,frame=off,width=\textwidth,offset=.02\textwidth] + % Install the lambda calculus pretty-printer, as defined in pret-lam.lua. \installprettytype [LAM] [LAM] % Define \startlambda \stoplambda -\definetyping[lambda][option=LAM,style=sans] +\definetyping[lambda][option=LAM,style=sans,before=\startboxed,after=\stopboxed] + % Define \lam{} (since \lambda is taken) \definetype[lam][option=LAM,style=sans] % Install the transformation pretty-printer, as defined in pret-trans.lua. \installprettytype [TRANS] [TRANS] % Define \starttrans \stoptrans -\definetyping[trans][option=TRANS,style=normal,before=,after=] +\definetyping[trans][option=TRANS,style=normal,before=\startwideboxed,after=\stopwideboxed] % Install the haskell pretty-printer, as defined in pret-haskell.lua. \installprettytype [HASKELL] [HASKELL] % Define \starthaskell \stophaskell -\definetyping[haskell][option=HASKELL,before=,after=] +\definetyping[haskell][option=HASKELL,before=\startboxed,after=\stopboxed] % Define \hs -\definetype[hs][option=HASKELL] +\definetype[hs][option=HASKELL,style=mono]