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.lua37
1 files changed, 37 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua
index 2b1360c4454..7a7460aeef2 100644
--- a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua
+++ b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua
@@ -124,6 +124,12 @@ local function breakcmd(str)
body = string.sub(body, 2, -2)
return string.format("}\\aemph{\\%s{%s}}\\arb{", tag, body)
end)
+ -- Arbmark
+ str = string.gsub(str, "\\(arbmark.-)(%b{})",
+ function(tag, body)
+ body = string.sub(body, 2, -2)
+ return string.format("}\\%s{%s}\\arb{", tag, body)
+ end)
return str
end
@@ -665,6 +671,37 @@ function processtrans(str, mode, rules, scheme)
return str
end
+function newarbmark(abbr, rtlmk, ltrmk)
+ table.insert(arbmarks, {a = abbr, b = rtlmk, c = ltrmk})
+ return true
+end
+
+local function isintable(table, element)
+ for i = 1,#table do
+ if table[i].a == element then
+ return true
+ end
+ end
+ return false
+end
+
+function processarbmarks(str)
+ if not isintable(arbmarks, str) then
+ str = "\\LR{<??>}"
+ else
+ if tex.textdir == "TLT" then
+ for i = 1,#arbmarks do
+ str = string.gsub(str, arbmarks[i].a, arbmarks[i].c)
+ end
+ else
+ for i = 1,#arbmarks do
+ str = string.gsub(str, arbmarks[i].a, arbmarks[i].b)
+ end
+ end
+ end
+ return str
+end
+
function uc(str)
str = string.gsub(str, "(\\txtrans.?)(%b{})", function(tag, body)
body = string.sub(body, 2, -2)