From 387967b0395873430fc75d26210cf625cb0b8b02 Mon Sep 17 00:00:00 2001 From: Robert Alessi Date: Thu, 16 Aug 2018 19:08:57 +0200 Subject: arabtex2utf: \prname had to go in the external Unicode file. opening and closing braces needed more work. insert cr before \item --- arabluatex.lua | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'arabluatex.lua') diff --git a/arabluatex.lua b/arabluatex.lua index b578ec5..3bb9211 100644 --- a/arabluatex.lua +++ b/arabluatex.lua @@ -675,7 +675,7 @@ local function processarbtoutf(str) str = "\\begin{arabexport}"..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) + return string.format("%s{\\arb[trans]{\\uc{%s}}}", tag, body) end) str = string.gsub(str, "(\\begin%s?{arab})(%b[])", function(tag, body) if string.find(body, "trans") then @@ -708,12 +708,14 @@ local function processarbtoutf(str) return string.format("%s\\@al@pr@ob%s\\@al@pr@cb", tag, body) end) str = string.gsub(str, "{", "\\@al@ob") + str = string.gsub(str, "} ", "\\@al@cb@sp") str = string.gsub(str, "}", "\\@al@cb") str = string.gsub(str, "\\@al@pr@ob", "{") str = string.gsub(str, "\\@al@pr@cb", "}") str = string.gsub(str, "(%b{})", function(body) body = string.sub(body, 2, -2) body = string.gsub(body, "(%s?)(\\@al@ob)", "%1{") + body = string.gsub(body, "(\\@al@cb@sp)", "} ") body = string.gsub(body, "(\\@al@cb)(%s?)", "}%2") return string.format("{%s}", body) end) @@ -759,11 +761,16 @@ function al_closestream() local t = f:read("*a") t = string.gsub(t, "\\arabicfont{}", "") t = string.gsub(t, "\\par ", "\n\n") - t = string.gsub(t, "(%s?)(\\@al@ob%s?)", "{") - t = string.gsub(t, "(\\@al@cb)(%s?)", "}%2") + t = string.gsub(t, "(\\@al@ob%s?)", "{") + t = string.gsub(t, "(\\@al@cb@sp)", "} ") + t = string.gsub(t, "(\\@al@cb)(%s?)", "}") t = gsub(t, lpeg.Cs("\\begin") * spcenc^-1 * bcbraces * cmdargs, "\n%1%2%3\n") - t = string.gsub(t, "(\\\\)", "%1\n") - t = string.gsub(t, "(\\end%s?)(%b{})", "\n%1%2") + t = string.gsub(t, "(\\\\)(%s?)", "%1\n") + t = string.gsub(t, "(\\\\)(\n)(\\end%s?)(%b{})", "%1%3%4") + t = string.gsub(t, "(\\item)", "\n%1") + t = string.gsub(t, "\n\n(\\item)", "\n%1") + t = string.gsub(t, "(\\end%s?)(%b{})", "%1%2\n") + t = string.gsub(t, "([^\n]%s-)(\\end)%s?(%b{})", "%1\n%2%3") t = string.gsub(t, "\n\n\n", "\n\n") 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}}]]) -- cgit v1.2.3