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.lua64
1 files changed, 47 insertions, 17 deletions
diff --git a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua
index f6890edc432..2466093824c 100644
--- a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua
+++ b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua
@@ -2,7 +2,7 @@
This file is part of the `arabluatex' package
ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
-Copyright (C) 2016--2017 Robert Alessi
+Copyright (C) 2016--2018 Robert Alessi
Please send error reports and suggestions for improvements to Robert
Alessi <alessi@robertalessi.net>
@@ -192,10 +192,10 @@ end
local function takeoutcapetc(str)
str = string.gsub(str, "(\\arb.?%[trans%])(%b{})", function(tag, body)
body = string.sub(body, 2, -2)
- body = string.gsub(body, "(\\cap%s?)(%b{})", "\\Cap%2")
+ body = string.gsub(body, "(\\uc%s?)(%b{})", "\\Uc%2")
return string.format("%s{%s}", tag, body)
end)
- str = string.gsub(str, "(\\cap.?)(%b{})", function(tag, body)
+ str = string.gsub(str, "(\\uc.?)(%b{})", function(tag, body)
body = string.sub(body, 2, -2)
return string.format("%s", body)
end)
@@ -665,25 +665,55 @@ function processtrans(str, mode, rules, scheme)
return str
end
-function cap(str)
+function uc(str)
str = string.gsub(str, "(\\txtrans.?)(%b{})", function(tag, body)
body = string.sub(body, 2, -2)
return string.format("%s", body)
end)
- if string.find(str, "[^\\]%-['`ʾʿ]") then
- str = string.gsub(str, "([^\\]%-['`])", "%1\\MakeUppercase ")
- str = string.gsub(str, "([^\\]%-ʿ)", "%1\\MakeUppercase ")
- str = string.gsub(str, "([^\\]%-ʾ)", "%1\\MakeUppercase ")
- elseif string.find(str, "[^\\]%-[^'`ʾʿ]") then
- str = string.gsub(str, "([^\\]%-)", "%1\\MakeUppercase ")
- elseif string.find(str, "^['`ʾʿ]") then
- str = string.gsub(str, "^(['`])", "%1\\MakeUppercase ")
- str = string.gsub(str, "^(ʿ)", "%1\\MakeUppercase ")
- str = string.gsub(str, "^(ʾ)", "%1\\MakeUppercase ")
- else
- str = "\\MakeUppercase "..str
+ str = string.gsub(str, "(%s[%(%<%[]?)(bn)", "%1{%2}")
+ for i = 1,#lcuc do
+ str = string.gsub(str, "^([%S]-%-[`']?)"..lcuc[i].a, "{%1"..lcuc[i].b.."}")
+ end
+ for i = 1,#lcuc do
+ str = string.gsub(str, "(%s[%(%<%[]?)([%S]-%-[`']?)"..lcuc[i].a, "%1{%2"..lcuc[i].b.."}")
+ end
+ for i = 1,#lcuc do
+ str = string.gsub(str, "^([%S]-%-ʿ)"..lcuc[i].a, "{%1"..lcuc[i].b.."}")
+ end
+ for i = 1,#lcuc do
+ str = string.gsub(str, "(%s[%(%<%[]?)([%S]-%-ʿ)"..lcuc[i].a, "%1{%2"..lcuc[i].b.."}")
+ end
+ for i = 1,#lcuc do
+ str = string.gsub(str, "^([%S]-%-ʾ)"..lcuc[i].a, "{%1"..lcuc[i].b.."}")
+ end
+ for i = 1,#lcuc do
+ str = string.gsub(str, "(%s[%(%<%[]?)([%S]-%-ʾ)"..lcuc[i].a, "%1{%2"..lcuc[i].b.."}")
+ end
+ for i = 1,#lcuc do
+ str = string.gsub(str, "^([`'])"..lcuc[i].a, "{%1"..lcuc[i].b.."}")
+ end
+ for i = 1,#lcuc do
+ str = string.gsub(str, "(%s[%(%<%[]?)([`'])"..lcuc[i].a, "%1{%2"..lcuc[i].b.."}")
+ end
+ for i = 1,#lcuc do
+ str = string.gsub(str, "^(ʾ)"..lcuc[i].a, "{%1"..lcuc[i].b.."}")
+ end
+ for i = 1,#lcuc do
+ str = string.gsub(str, "(%s[%(%<%[]?)(ʾ)"..lcuc[i].a, "%1{%2"..lcuc[i].b.."}")
+ end
+ for i = 1,#lcuc do
+ str = string.gsub(str, "^(ʿ)"..lcuc[i].a, "{%1"..lcuc[i].b.."}")
+ end
+ for i = 1,#lcuc do
+ str = string.gsub(str, "(%s[%(%<%[]?)(ʿ)"..lcuc[i].a, "%1{%2"..lcuc[i].b.."}")
+ end
+ for i = 1,#lcuc do
+ str = string.gsub(str, "^"..lcuc[i].a, lcuc[i].b)
+ end
+ for i = 1,#lcuc do
+ str = string.gsub(str, "(%s[%(%<%[]?)"..lcuc[i].a, "%1"..lcuc[i].b)
end
-return "\\txtrans{"..str.."}"
+ return "\\txtrans{"..str.."}"
end
-- this function is adapted from an 'obsolete project' of Khaled