summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua')
-rw-r--r--Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua53
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