From f4ed7e318a7402d0ac5032635678681bcb2d7b8b Mon Sep 17 00:00:00 2001 From: Robert Alessi Date: Wed, 26 Jun 2019 17:52:38 +0200 Subject: utf8 exporting improved for running Arabic paragraphs --- arabluatex.lua | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/arabluatex.lua b/arabluatex.lua index 67e4fc3..a91e211 100644 --- a/arabluatex.lua +++ b/arabluatex.lua @@ -758,15 +758,9 @@ local function processarbtoutf(str) return string.format("%s{\\arb[trans]{\\uc{%s}}}", tag, body) end end) - str = string.gsub(str, "(\\begin%s?{arab})(%b[])", function(tag, body) - if string.find(body, "trans") then - return string.format("\\par\\bgroup\\setLR\\arb%s{", body) - else - return string.format("\\par\\bgroup\\setRL\\arb%s{", body) - end - end) - str = string.gsub(str, "(\\begin%s?{arab})", "\\par\\bgroup\\arbpardir\\arb{") - str = string.gsub(str, "\\end%s?{arab}", "}\\egroup\\par") + str = string.gsub(str, "(\\begin%s?{arab})(%b[])", "\\bgroup\\arb%2{") + str = string.gsub(str, "(\\begin%s?{arab})", "\\bgroup\\arb{") + str = string.gsub(str, "\\end%s?{arab}", "}\\egroup") -- This does not work, while the following two do. Look into this later. -- str = gsub(str, lpeg.Cs("\\arb") * spcenc * bsqbrackets^-1 * bcbraces, function(tag, opt, body) -- body = string.sub(body, 2, -2) @@ -851,6 +845,14 @@ function arabluatex.closestream() t = string.gsub(t, "(\\@al@ob)", "{") t = string.gsub(t, "(\\@al@cb@sp)", "} ") t = string.gsub(t, "(\\@al@cb)(%s?)", "}") + t = string.gsub(t, "(\\bgroup%s?)(\\txarb%s?)(%b{})(\\egroup%s?)", function(tagio, tag, body, tagic) + body = string.sub(body, 2, -2) + return string.format("\\begin{txarab}%s\\end{txarab}", body) + end) + t = string.gsub(t, "(\\bgroup%s?)(\\txtrans%s?)(%b{})(\\egroup%s?)", function(tagio, tag, body, tagic) + body = string.sub(body, 2, -2) + return string.format("\\begin{txarabtr}%s\\end{txarabtr}", body) + end) t = gsub(t, lpeg.Cs("\\begin") * spcenc^-1 * bcbraces * cmdargs, "\n%1%2%3\n") t = string.gsub(t, "(\\\\)(%s?)", "%1\n") -- cgit v1.2.3