X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fmaster-project%2Freport.git;a=blobdiff_plain;f=pret-lam.lua;h=feaa5e43934cbb157757b9152c38a6ea8f624c72;hp=ed84d0a60eae09ecfaf10c8e4a0be6d7f541d77d;hb=0dfecb0be783911fd804436c22bbbf8c79711cc3;hpb=b11f541f7d0b67f2871f1c7fed731155b1808343 diff --git a/pret-lam.lua b/pret-lam.lua index ed84d0a..feaa5e4 100644 --- a/pret-lam.lua +++ b/pret-lam.lua @@ -21,6 +21,7 @@ local symbols = { -- (U+00A0). {symbol = ' ', repr = ' '}, {symbol = '_', repr = '\\_'}, + {symbol = '->>', repr = '\\twoheadrightarrow'}, {symbol = '->', repr = '→'}, {symbol = '=>', repr = '⇒'}, -- The default * sits very high above the baseline, \ast (u+2217) looks @@ -28,8 +29,10 @@ local symbols = { {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 + -- Use ▶ and ∧ from our roman font, since Iwona doesn't have the glyph {symbol = '▶', repr = '{\\rm{}▶}'}, + --{symbol = '∧', repr = '{$∧$}'}, + {symbol = '∧', repr = '{\\rm{}∧}'}, } -- Keywords that should be bold @@ -85,8 +88,12 @@ end -- the word taken. local function take_word(str) -- A word must always start with a-z (in particular, λ is not a valid - -- start of a word). - res, newstr = utf.match(str, "^([a-zA-Z][%a%d%+%-%,_]+)(.*)") + -- start of a word). A word must always end with a letter or a digit + res, newstr = utf.match(str, "^([a-zA-Z][%a%d%+%-%,_]*[%a%d]+)(.*)") + if not res then + -- The above does not catch single letter words + res, newstr = utf.match(str, "^([a-zA-Z])(.*)") + end return res, newstr or str end @@ -206,7 +213,7 @@ function vis.begin_of_display() if in_block == 0 then -- Initially allow subscripts using _ or just appending a number (later, -- we will add extra patterns here. - submatches = {"^(%a*)_([%a%d,]+)$", "^(%a+)(%d[%d,]+)$"} + submatches = {"^(%a*)_([%a%d,]+)$", "^(%a+)(%d[%d,]*)$"} -- This stores all the bases we've encountered so far (to prevent -- duplicates). For each of them there will be a pattern in submatches -- above.