X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fmaster-project%2Freport.git;a=blobdiff_plain;f=pret-lam.lua;h=86d7272c4f65615276747be84e1b0c39f6ef236f;hp=6935043297ee5077a9e77495187b4ad0623e7662;hb=db2dce12a0b9b988be956104b908e28375bbfd1c;hpb=8b0d89230c60a843886d36f392755e169b29a114 diff --git a/pret-lam.lua b/pret-lam.lua index 6935043..86d7272 100644 --- a/pret-lam.lua +++ b/pret-lam.lua @@ -25,6 +25,7 @@ local symbols = { ['*'] = {repr = '\\ast'}, ['~'] = {repr = '\\HDLine[width=.20 * \\the\\textwidth]'}, ['|'] = {repr = '\\char' .. utf.byte('|')}, + ['$'] = {repr = '\\char' .. utf.byte('$')}, } -- Keywords that should be bold @@ -35,7 +36,7 @@ local keywords = { ['letrec'] = {}, ['letnonrec'] = {}, ['in'] = {}, - ['DEFAULT'] = {}, + ['DEFAULT'] = {small = true}, } local in_block = 0 @@ -43,10 +44,6 @@ local submatches = {} local bases = {} -- Store the last line for each indent level local indentlines = {} --- The amount of indent of the first line, which we will strip of all --- subsequent lines. This allows the entire block to be indented as normal in --- the tex source code. -local first_indent -- See if str starts with a symbol, and return the remaining string and that -- symbol. If no symbol from the table is matched, just returns the first @@ -133,17 +130,6 @@ end -- line4, and line is no longer in scope since it is replaced by line4. local function do_indent(line) newind, rest = utf.match(line, '^(%s*)(.*)') - - -- Store the first line's indent - if not first_indent then - first_indent = utf.len(newind) - end - - -- Strip the indent of the first line from this line's indent. - newind = utf.sub(newind, first_indent + 1) - -- Rebuild line, so we can still use it below - line = newind .. rest - prev = -1 -- Loop all the previous lines for indent, unused in pairs(indentlines) do @@ -214,7 +200,6 @@ function vis.begin_of_display() bases = {} end indentlines = {} - first_indent = nil end @@ -237,6 +222,9 @@ function vis.flush_line(str,nested) if keywords[res] then -- Make all keywords bold word = "{\\bold " .. word .. "}" + if keywords[res].small then + word = "\\small" .. word -- Curlies were added above + end else -- Process any subscripts in the word word = do_subscripts(word)