ctxsprint('}')
-- Eat the processed characters
str = rest
+ elseif utf.match(str, "^%-%-") then
+ ctxsprint('{\\italic{--')
+ -- Recursively call ourselves to handle spaces gracefully.
+ visualizer.flush_line(utf.sub(str, 3))
+ ctxsprint('}}')
+ -- Done with this line
+ str = ''
else
-- Write the first character
texwrite(utf.sub(str, 1, 1))
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
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
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)