Add a Context chapter.
[matthijs/master-project/report.git] / pret-trans.lua
index ac1b525946364600d9bff3616f14ec6539921cd8..212c835ace52d0c7b026fc606dca6d336cba5ba1 100644 (file)
@@ -9,19 +9,19 @@
 
 local utf = unicode.utf8
 
-vis = buffers.newvisualizer("trans")
+local vis = buffers.newvisualizer("trans")
 
 local commands = {}
 -- A command to create a horizontal rule.
-commands.rule = "\\blackrule[height=0.5pt,depth=0pt,width=.45\\textwidth]"
+commands.rule = "\\HLine[width=.40 * \\the\\textwidth]"
 -- Pretty printer to use for the stuff before and after the line
 commands.before_pret = "lam"
 commands.after_pret = "lam"
 -- Frame commands to use for the left (before + line + after) and right
 -- (conditions) parts. Should include an opening {, which will be closed
 -- automatically.
-commands.leftframe = "\\framed[offset=0mm,location=middle,strut=no,align=right,frame=off,width=.5\\textwidth]{\\sans"
-commands.rightframe = "\\framed[offset=0mm,location=middle,strut=no,align=right,frame=off,width=.5\\textwidth]{"
+commands.leftframe = "\\framed[offset=0mm,location=middle,strut=no,align=right,frame=off,width=.48\\textwidth]{\\sans"
+commands.rightframe = "\\framed[offset=0mm,location=middle,strut=no,align=right,frame=off,width=.48\\textwidth]{"
 
 -- A table to keep the lines in this buffer, so we can process them all at
 -- once at the end.
@@ -63,6 +63,9 @@ end
 -- Capture all lines, without generating any output
 function vis.begin_of_display()
     lines = {}
+    -- Let all the lambda pretty printing in this buffer use shared subscript
+    -- detection
+    buffers.visualizers.handlers.lam.begin_of_block()
 end
 function vis.begin_of_line(n)
     -- Don't generate output here
@@ -91,7 +94,11 @@ function vis.end_of_display()
             break
         end
     end
-   
+  
+    if not len then
+        error("No horizontal separator found in:\n" .. table.concat(lines, "\n"))
+    end
+
     -- Split the input in three parts. Stuff before the line, stuff
     -- after the line, stuff to the right of the line.
     before, after, rights = {}, {}, {}
@@ -161,6 +168,7 @@ function vis.end_of_display()
     
     -- Clean up
     lines = {}
+    buffers.visualizers.handlers.lam.end_of_block()
 end
 
 -- vim: set sw=4 sts=4 expandtab ai: