From c2f93750b7bf2650d9ce8b826e601ce169838285 Mon Sep 17 00:00:00 2001 From: Robert Alessi Date: Mon, 1 Jan 2018 13:17:35 +0100 Subject: done rewriting \cap --- arabluatex.lua | 48 +++++++++++++++--------------------------------- 1 file changed, 15 insertions(+), 33 deletions(-) (limited to 'arabluatex.lua') diff --git a/arabluatex.lua b/arabluatex.lua index 2cf249a..5c167e8 100644 --- a/arabluatex.lua +++ b/arabluatex.lua @@ -670,39 +670,21 @@ function cap(str) body = string.sub(body, 2, -2) return string.format("%s", body) end) - -- protect bn[uai] (next line): - str = string.gsub(str, "(%s)(%'?bn)", "%1{%2}") - if string.find(str, "[^\\]%-['`ʾʿ]") then - str = string.gsub(str, "([^\\]%-['`])(%a)", "%1\\MakeUppercase{%2}") - str = string.gsub(str, "([^\\]%-ʿ)(%a)", "%1\\MakeUppercase{%2}") - str = string.gsub(str, "([^\\]%-ʾ)(%a)", "%1\\MakeUppercase{%2}") - end - if string.find(str, "[^\\]%-[^'`ʾʿ]") then - str = string.gsub(str, "([^\\]%-)(%a)", "%1\\MakeUppercase{%2}") - end - if string.find(str, "^['`ʾʿ]") then - str = string.gsub(str, "^(['`])(%a)$", "%1\\MakeUppercase{%2}") - str = string.gsub(str, "^(ʿ)(%a)$", "%1\\MakeUppercase{%2}") - str = string.gsub(str, "^(ʾ)(%a)$", "%1\\MakeUppercase{%2}") - str = string.gsub(str, "^(['`])(%a)([^%-])", "%1\\MakeUppercase{%2}%3") - str = string.gsub(str, "^(ʿ)(%a)([^%-])", "%1\\MakeUppercase{%2}%3") - str = string.gsub(str, "^(ʾ)(%a)([^%-])", "%1\\MakeUppercase{%2}%3") - end - if string.find(str, "%s['`ʾʿ]") then - str = string.gsub(str, "(%s['`])(%a)$", "%1\\MakeUppercase{%2}") - str = string.gsub(str, "(%sʿ)(%a)$", "%1\\MakeUppercase{%2}") - str = string.gsub(str, "(%sʾ)(%a)$", "%1\\MakeUppercase{%2}") - str = string.gsub(str, "(%s['`])(%a)([^%-])", "%1\\MakeUppercase{%2}%3") - str = string.gsub(str, "(%sʿ)(%a)([^%-])", "%1\\MakeUppercase{%2}%3") - str = string.gsub(str, "(%sʾ)(%a)([^%-])", "%1\\MakeUppercase{%2}%3") - end - if string.find(str, "%s[ibtṯjgḥḫdḏrzsšṣḍṭẓġfqklmnhwyč]") then - str = string.gsub(str, "(%s)([ibtṯjgḥḫdḏrzsšṣḍṭẓġfqklmnhwyč])", "%1\\MakeUppercase %2") - end - if string.find(str, "^[ibtṯjgḥḫdḏrzsšṣḍṭẓġfqklmnhwyč]") then - str = string.gsub(str, "^([ibtṯjgḥḫdḏrzsšṣḍṭẓġfqklmnhwyč])", "\\MakeUppercase %1") - end -return "\\txtrans{"..str.."}" + for i = 1,#lcuc do + str = string.gsub(str, "^([%S]-%-)"..lcuc[i].a, "{%1"..lcuc[i].b.."}") + str = string.gsub(str, "(%s)([%S]-%-)"..lcuc[i].a, "%1{%2"..lcuc[i].b.."}") + str = string.gsub(str, "^([%S]-%-ʿ)"..lcuc[i].a, "{%1"..lcuc[i].b.."}") + str = string.gsub(str, "(%s)([%S]-%-ʿ)"..lcuc[i].a, "%1{%2"..lcuc[i].b.."}") + str = string.gsub(str, "^([%S]-%-ʾ)"..lcuc[i].a, "{%1"..lcuc[i].b.."}") + str = string.gsub(str, "(%s)([%S]-%-ʾ)"..lcuc[i].a, "%1{%2"..lcuc[i].b.."}") + str = string.gsub(str, "^(ʾ)"..lcuc[i].a, "{%1"..lcuc[i].b.."}") + str = string.gsub(str, "(%s)(ʾ)"..lcuc[i].a, "%1{%2"..lcuc[i].b.."}") + str = string.gsub(str, "^(ʿ)"..lcuc[i].a, "{%1"..lcuc[i].b.."}") + str = string.gsub(str, "(%s)(ʿ)"..lcuc[i].a, "%1{%2"..lcuc[i].b.."}") + str = string.gsub(str, "^"..lcuc[i].a, "{%1"..lcuc[i].b.."}") + str = string.gsub(str, "(%s)"..lcuc[i].a, "%1{%2"..lcuc[i].b.."}") + end + return "\\txtrans{"..str.."}" end -- this function is adapted from an 'obsolete project' of Khaled -- cgit v1.2.3