X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fmaster-project%2Freport.git;a=blobdiff_plain;f=pret-lam.lua;h=ed84d0a60eae09ecfaf10c8e4a0be6d7f541d77d;hp=41ffbc7f779b28f28e188a38669dd0c3ecad8c4a;hb=b11f541f7d0b67f2871f1c7fed731155b1808343;hpb=03068992fa44475f901eb34cec49f2a2304b473f diff --git a/pret-lam.lua b/pret-lam.lua index 41ffbc7..ed84d0a 100644 --- a/pret-lam.lua +++ b/pret-lam.lua @@ -19,17 +19,17 @@ local colors = { local symbols = { -- Note, the space we replace with is a Unicode non-breaking space -- (U+00A0). - [' '] = {repr = ' '}, - ['_'] = {repr = '\\_'}, - ['->'] = {repr = '→'}, - ['=>'] = {repr = '⇒'}, + {symbol = ' ', repr = ' '}, + {symbol = '_', repr = '\\_'}, + {symbol = '->', repr = '→'}, + {symbol = '=>', repr = '⇒'}, -- The default * sits very high above the baseline, \ast (u+2217) looks -- better. - ['*'] = {repr = '\\ast'}, - ['~'] = {repr = '\\HDLine[width=.20 * \\the\\textwidth]'}, - ['|'] = {repr = '\\char' .. utf.byte('|')}, + {symbol = '*', repr = '\\ast'}, + {symbol = '~', repr = '\\HDLine[width=.20 * \\the\\textwidth]'}, + {symbol = '|', repr = '\\char' .. utf.byte('|')}, -- Use ▶ from our roman font, since Iwona doesn't have the glyph - ['▶'] = {repr = '{\\rm{}▶}'}, + {symbol = '▶', repr = '{\\rm{}▶}'}, } -- Keywords that should be bold @@ -63,9 +63,9 @@ end -- character. We can do a lookup directly, since symbols can be different in -- length, so we just loop over all symbols, trying them in turn. local function take_symbol(str) - for symbol,props in pairs(symbols) do + for i,props in ipairs(symbols) do -- Try to remove symbol from the start of str - symbol, newstr = utf.match(str, "^(" .. symbol .. ")(.*)") + symbol, newstr = utf.match(str, "^(" .. props.symbol .. ")(.*)") if symbol then -- Return this tokens repr, or just the token if it has no -- repr. @@ -175,7 +175,6 @@ local function do_indent(line) copyind = utf.sub(indentlines[prev], 1, #newind) setwidth = "\\setwidthof{" .. copyind .. "}\\to\\pretlamalignwidth" hskip = "\\hskip\\pretlamalignwidth" - print("{" .. setwidth .. hskip .. "}" .. rest) return "{" .. setwidth .. hskip .. "}" .. rest end -- No previous line? Just return the unmodified line then @@ -226,7 +225,7 @@ function vis.flush_line(str,nested) end function vis.do_line(str, no_indent) - result = {} + local result = {} if not no_indent then -- Allow ignore of the indentation stuff when we're calling ourselves -- for a partial line.