diff options
Diffstat (limited to 'Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua')
-rw-r--r-- | Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua | 53 |
1 files changed, 47 insertions, 6 deletions
diff --git a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua index 0bb475640ca..3b0ed5e4ef3 100644 --- a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua +++ b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua @@ -123,11 +123,12 @@ local function takeoutabjad(str) return str end -local function takeoutcap(str) +local function takeoutcapetc(str) str = string.gsub(str, "(\\cap.?)(%b{})", function(tag, body) body = string.sub(body, 2, -2) return string.format("%s", body) end) + str = string.gsub(str, "\\linebreak", "") return str end @@ -311,6 +312,42 @@ local function novoc(str) return str end +local function novoceasy(str) + str = string.gsub(str, "\\arb(%b{})", function(inside) + inside = string.sub(inside, 2, -2) + for i = 1,#hamzaeasy do + inside = string.gsub(inside, hamzaeasy[i].a, hamzaeasy[i].b) + end + for i = 1,#tanwinnv do + inside = string.gsub(inside, tanwinnv[i].a, tanwinnv[i].b) + end + for i = 1,#trigraphsnv do + inside = string.gsub(inside, trigraphsnv[i].a, trigraphsnv[i].b) + end + for i = 1,#digraphs do + inside = string.gsub(inside, digraphs[i].a, digraphs[i].b) + end + for i = 1,#single do + inside = string.gsub(inside, single[i].a, single[i].b) + end + for i = 1,#longvnv do + inside = string.gsub(inside, longvnv[i].a, longvnv[i].b) + end + for i = 1,#shortvnv do + inside = string.gsub(inside, shortvnv[i].a, shortvnv[i].b) + end + for i = 1,#punctuation do + inside = string.gsub(inside, punctuation[i].a, punctuation[i].b) + end + for i = 1,#null do + inside = string.gsub(inside, null[i].a, null[i].b) + end + inside = indnum(inside) + return string.format("\\txarb{%s}", inside) + end) +return str +end + local function transdmg(str) str = string.gsub(str, "\\arb(%b{})", function(inside) inside = string.sub(inside, 2, -2) @@ -421,7 +458,7 @@ end function processvoc(str, rules) str = "\\arb{".. str.."}" - str = takeoutcap(str) + str = takeoutcapetc(str) str = protectarb(str) str = breakcmd(str) str = holdcmd(str) @@ -436,7 +473,7 @@ end function processfullvoc(str, rules) str = "\\arb{".. str.."}" - str = takeoutcap(str) + str = takeoutcapetc(str) str = protectarb(str) str = breakcmd(str) str = holdcmd(str) @@ -449,13 +486,17 @@ function processfullvoc(str, rules) return str end -function processnovoc(str) +function processnovoc(str, rules) str = "\\arb{".. str.."}" - str = takeoutcap(str) + str = takeoutcapetc(str) str = protectarb(str) str = breakcmd(str) str = holdcmd(str) - str = novoc(str) + if rules == "easy" then + str = novoceasy(str) + elseif rules == "dflt" then + str = novoc(str) + else end str = unprotectarb(str) return str end |