diff options
Diffstat (limited to 'arabluatex.lua')
-rw-r--r-- | arabluatex.lua | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/arabluatex.lua b/arabluatex.lua index 3a405a2..d35114d 100644 --- a/arabluatex.lua +++ b/arabluatex.lua | |||
@@ -27,13 +27,6 @@ require("arabluatex_fullvoc") | |||
27 | require("arabluatex_novoc") | 27 | require("arabluatex_novoc") |
28 | require("arabluatex_trans") | 28 | require("arabluatex_trans") |
29 | 29 | ||
30 | function isintable(table, value) | ||
31 | for _, v in pairs(table) do | ||
32 | if v == value then return true end | ||
33 | end | ||
34 | return false | ||
35 | end | ||
36 | |||
37 | local function protectarb(str) | 30 | local function protectarb(str) |
38 | str = string.gsub(str, "(\\arb.?)(%[.-%])(%b{})", "\\@arb%2%3") | 31 | str = string.gsub(str, "(\\arb.?)(%[.-%])(%b{})", "\\@arb%2%3") |
39 | str = string.gsub(str, "(\\begin.?)(%b{})(%b[])", "\\@begin%3%2") | 32 | str = string.gsub(str, "(\\begin.?)(%b{})(%b[])", "\\@begin%3%2") |
@@ -53,9 +46,33 @@ local function unprotectarb(str) | |||
53 | return str | 46 | return str |
54 | end | 47 | end |
55 | 48 | ||
56 | breakcmds = {} | 49 | brkcmds = {} |
50 | |||
51 | function mkarbbreak(str) | ||
52 | str = str .."," | ||
53 | str = string.gsub(str, "%s+", "") | ||
54 | local fieldstart = 1 | ||
55 | repeat | ||
56 | local nexti = string.find(str, "%,", fieldstart) | ||
57 | table.insert(brkcmds, string.sub(str, fieldstart, nexti-1)) | ||
58 | fieldstart = nexti +1 | ||
59 | until fieldstart > string.len(str) | ||
60 | return brkcmds | ||
61 | end | ||
57 | 62 | ||
58 | local function breakcmd(str) | 63 | local function breakcmd(str) |
64 | -- user commands | ||
65 | if next(brkcmds) == nil then | ||
66 | -- nothing to do | ||
67 | else | ||
68 | for i = 1,#brkcmds do | ||
69 | str = string.gsub(str, "\\"..brkcmds[i]..".?(%b{})", | ||
70 | function(body) | ||
71 | body = string.sub(body, 2, -2) | ||
72 | return string.format("}\\"..brkcmds[i].."{%s}\\arb{", body) | ||
73 | end) | ||
74 | end | ||
75 | end | ||
59 | -- process \item[], then \item[] | 76 | -- process \item[], then \item[] |
60 | str = string.gsub(str, "\\(item.?)(%b[])", | 77 | str = string.gsub(str, "\\(item.?)(%b[])", |
61 | function(tag, body) | 78 | function(tag, body) |