From 136c4a8f6ce140ecf7325c0fb0a92dc4bb6464a9 Mon Sep 17 00:00:00 2001 From: Robert Alessi Date: Sun, 12 Aug 2018 12:22:51 +0200 Subject: better protection of \arb[]{} nested inside Arabic environments --- arabluatex.lua | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'arabluatex.lua') diff --git a/arabluatex.lua b/arabluatex.lua index 4128955..c0d9022 100644 --- a/arabluatex.lua +++ b/arabluatex.lua @@ -54,7 +54,8 @@ local arbargs = lpeg.Cs(spce^-1 * bsqbrackets^-1 * bcbraces) local baytargs = lpeg.Cs(spce * bcbraces * bsqbrackets^-1 * bcbraces) local function protectarb(str) - str = string.gsub(str, "(\\arb%s?)(%[.-%])(%b{})", "\\@arb%2%3") +-- str = string.gsub(str, "(\\arb%s?)(%[.-%])(%b{})", "\\@arb%2%3") + str = string.gsub(str, "(\\arb%s?)(%[.-%])(%b{})", "\\al@brk{\\arb%2%3}") str = string.gsub(str, "(\\LR%s?)(%b{})", "\\@LR%2") str = string.gsub(str, "(\\RL%s?)(%b{})", "\\@RL%2") return str @@ -670,6 +671,7 @@ function al_openstream() end local function processarbtoutf(str) + str = "\n\\begin{arbexport}\n"..str str = string.gsub(str, "(\\prname)%s?(%b{})", function(tag, body) body = string.sub(body, 2, -2) return string.format("\\arb[trans]{\\uc{%s}}", body) @@ -707,6 +709,7 @@ local function processarbtoutf(str) body = string.gsub(body, "\\@al@cb%s?", "}") return string.format("{%s}", body) end) + str = str.."\n\\end{arbexport}" return str end @@ -784,7 +787,7 @@ function al_closestream() t = string.gsub(t, "\\@al@ob%s?", "{") t = string.gsub(t, "\\@al@cb", "}") t = string.gsub(t, "\n\n\n", "\n\n") - if string.find(t, "\\begin%s?{document}.-\\arb") then + if string.find(t, "\\begin%s?{document}.-\\arb%s?[%[%{]") then tex.print([[\unexpanded{\PackageWarningNoLine{arabluatex}{There are still 'arabtex' strings to be converted. Open ]]..tex.jobname..utffilesuffix..".tex"..[[ and compile it one more time}}]]) else end t = t.."\n\\end{document}" -- cgit v1.2.3