X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fmaster-project%2Freport.git;a=blobdiff_plain;f=pret-lam.lua;h=41ffbc7f779b28f28e188a38669dd0c3ecad8c4a;hp=f8ddb676088a7870fd94a979276d3283aa7b7dd6;hb=03068992fa44475f901eb34cec49f2a2304b473f;hpb=754983b9ff12abf4fd16b7f7a2d2bf7e0b024f0c diff --git a/pret-lam.lua b/pret-lam.lua index f8ddb67..41ffbc7 100644 --- a/pret-lam.lua +++ b/pret-lam.lua @@ -175,6 +175,7 @@ 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 @@ -221,12 +222,16 @@ vis.begin_of_inline = vis.begin_of_display vis.end_of_inline = vis.end_of_display function vis.flush_line(str,nested) - buffers.flush_result(vis.do_line(str), nested) + buffers.flush_result(vis.do_line(str, false), nested) end -function vis.do_line(str) +function vis.do_line(str, no_indent) result = {} - str = do_indent(str) + if not no_indent then + -- Allow ignore of the indentation stuff when we're calling ourselves + -- for a partial line. + str = do_indent(str) + end while str ~= "" do local found = false local word, symbol @@ -234,10 +239,17 @@ function vis.do_line(str) if text then table.insert(result, '\\strikethrough{') -- Recursively call ourselves to handle spaces gracefully. - result = array_concat(result, vis.do_line(text)) + result = array_concat(result, vis.do_line(text, true)) table.insert(result, '}') -- Eat the processed characters str = rest + elseif utf.match(str, "^%-%-") then + table.insert(result, '{\\italic{--') + -- Recursively call ourselves to handle spaces gracefully. + result = array_concat(result, vis.do_line(utf.sub(str, 3), true)) + table.insert(result, '}}') + -- Done with this line + str = '' else -- See if the next token is a word word, str = take_word(str)