From: Matthijs Kooijman Date: Wed, 10 Jun 2009 11:13:17 +0000 (+0200) Subject: Add a \trans command that uses the lam pretty printing. X-Git-Tag: final-thesis~332 X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fmaster-project%2Freport.git;a=commitdiff_plain;h=51cc0f0087211d281ad8e364e299569b6d135416;ds=sidebyside Add a \trans command that uses the lam pretty printing. --- diff --git a/Core2Core.tex b/Core2Core.tex index bc385a6..1b1a782 100644 --- a/Core2Core.tex +++ b/Core2Core.tex @@ -39,6 +39,33 @@ % Install the lambda calculus pretty-printer, as defined in pret-lam.lua. \installprettytype [LAM] [LAM] +% An (invisible) frame to hold a lambda expression +\define[1]\lamframe{ + % Put a frame around lambda expressions, so they can have multiple + % lines and still appear inline. + % The align=right option really does left-alignment, but without the + % program will end up on a single line. The strut=no option prevents a + % bunch of empty space at the start of the frame. + \framed[offset=0mm,location=middle,strut=no,align=right,frame=off]{#1} +} + +\define[2]\trans{ + % Make \typebuffer uses the LAM pretty printer and a sans-serif font + % Also prevent any extra spacing above and below caused by the default + % before=\blank and after=\blank. + \setuptyping[option=LAM,style=sans,before=,after=] + % Prevent the arrow from ending up below the first frame (a \framed + % at the start of a line defaults to using vmode). + \dontleavehmode + % Put the elements in frames, so they can have multiple lines and be + % middle-aligned + \lamframe{\typebuffer[#1]} + \lamframe{\Rightarrow} + \lamframe{\typebuffer[#2]} + % Reset the typing settings to their defaults + \setuptyping[option=none,style=\tttf] +} + % A helper to print a single example in the half the page width. The example % text should be in a buffer whose name is given in an argument. %