summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/lualatex/arabluatex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-04-01 22:26:39 +0000
committerKarl Berry <karl@freefriends.org>2018-04-01 22:26:39 +0000
commit7d7e6b60a7a00f27ba7119097bc7484ef28fb826 (patch)
tree55966fc9c0731be9f801f410a655f575594fe2da /Master/texmf-dist/tex/lualatex/arabluatex
parentac8d62d1767ddaee38fb7d8d0afc5ae70233f806 (diff)
arabluatex (2apr18)
git-svn-id: svn://tug.org/texlive/trunk@47226 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/lualatex/arabluatex')
-rw-r--r--Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua37
-rw-r--r--Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.sty15
-rw-r--r--Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_fullvoc.lua238
-rw-r--r--Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_novoc.lua12
-rw-r--r--Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_trans.lua91
-rw-r--r--Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_voc.lua167
6 files changed, 306 insertions, 254 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)
diff --git a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.sty b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.sty
index db42721afa5..de0afaba955 100644
--- a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.sty
+++ b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.sty
@@ -41,7 +41,7 @@
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{arabluatex}%
-[2018/02/12 v1.10.3 An ArabTeX-like interface for LuaLaTeX]
+[2018/03/31 v1.11 An ArabTeX-like interface for LuaLaTeX]
\RequirePackage{ifluatex}
\ifluatex\else
\PackageError{arabluatex}{lualatex needed}{%
@@ -123,15 +123,15 @@
\let\Uc\uc
\NewDocumentCommand{\prname}{m}{%
\bgroup\SetTranslitStyle{\relax}\arb[trans]{\uc{#1}}\egroup}
-\DeclareDocumentCommand{\txarb}{+m}{\bgroup\textdir
+\NewDocumentCommand{\txarb}{+m}{\bgroup\textdir
TRT\arabicfont#1\egroup}
-\DeclareDocumentCommand{\txtrans}{+m}{\bgroup\textdir
+\NewDocumentCommand{\txtrans}{+m}{\bgroup\textdir
TLT\al@trans@font#1\egroup}
\NewDocumentEnvironment{txarab}{}{%
\par%
\booltrue{al@rlmode}%
\pardir TRT\textdir TRT\arabicfont}{\par}
-\DeclareDocumentCommand{\arb}{O{\al@mode} +m}%
+\NewDocumentCommand{\arb}{O{\al@mode} +m}%
{\edef\@tempa{#1}%
\ifx\@tempa\al@mode@voc%
\bgroup\textdir TRT\arabicfont%
@@ -156,6 +156,13 @@
\luastringO{\al@input@scheme}))}\egroup%
\else%
\fi\fi\fi\fi}
+\NewDocumentCommand{\arbmark}{m}{%
+ \bgroup%
+ \SetInputScheme{arabtex}%
+ \luadirect{tex.sprint(processarbmarks(\luastringN{#1}))}%
+ \egroup}
+\NewDocumentCommand{\newarbmark}{m m m}{%
+ \luadirect{newarbmark(\luastringN{#1}, \luastringN{#2}, \luastringN{#3})}}
\NewEnviron{arab}[1][\al@mode]%
{\par\edef\@tempa{#1}%
\ifx\@tempa\al@mode@voc%
diff --git a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_fullvoc.lua b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_fullvoc.lua
index 77d95e38408..fd0916950f7 100644
--- a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_fullvoc.lua
+++ b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_fullvoc.lua
@@ -39,14 +39,14 @@ hamzafv = {
{a="i\"'", b="إ"},
{a="y\"'", b="ئ"},
{a="ؤ([^uaiUAI])", b="ؤْ%1"},
- {a="ؤ(%p?)$", b="ؤْ%1"},
- {a="ؤ(%p?%s)", b="ؤْ%1"},
+ {a="ؤ(%p*)$", b="ؤْ%1"},
+ {a="ؤ(%p*%s)", b="ؤْ%1"},
{a="أ([^uaiUAI])", b="أْ%1"},
- {a="أ(%p?)$", b="أْ%1"},
- {a="أ(%p?%s)", b="أْ%1"},
+ {a="أ(%p*)$", b="أْ%1"},
+ {a="أ(%p*%s)", b="أْ%1"},
{a="ئ([^uaiUAI])", b="ئْ%1"},
- {a="ئ(%p?)$", b="ئْ%1"},
- {a="ئ(%p?%s)", b="ئْ%1"},
+ {a="ئ(%p*)$", b="ئْ%1"},
+ {a="ئ(%p*%s)", b="ئْ%1"},
-- hamza takes tašdīd too
{a="''([Uu])", b="ؤؤ%1"},
{a="''([Aa])", b="أأ%1"},
@@ -69,10 +69,10 @@ hamzafv = {
{a="([^uiyUI])\'a?A([%_%^%.]?[%`%'btjghxdrzsfqklmnywAY])", b="%1آ%2"},
{a="^\'a?A([%_%^%.]?[%`%'btjghxdrzsfqklmnywAY])", b="آ%1"},
{a="(%W)\'a?A([%_%^%.]?[%`%'btjghxdrzsfqklmnywAY])", b="%1آ%2"},
- {a="(A)(')(uN?%p?)$", b="aآء%3"},
- {a="(A)(')(uN?)(%p?%s)", b="aآء%3%4"},
- {a="(A)(')(iN?%p?)$", b="aآء%3"},
- {a="(A)(')(iN?)(%p?%s)", b="aآء%3%4"},
+ {a="(A)(')(uN?%p*)$", b="aآء%3"},
+ {a="(A)(')(uN?)(%p*%s)", b="aآء%3%4"},
+ {a="(A)(')(iN?%p*)$", b="aآء%3"},
+ {a="(A)(')(iN?)(%p*%s)", b="aآء%3%4"},
{a="(A)(')([iI])", b="aآئ%3"}, -- historic madda
{a="(A)(')(u)", b="aآؤ%3"}, -- historic madda
{a="(A)(')", b="aآء"}, -- historic madda
@@ -102,31 +102,31 @@ hamzafv = {
{a="(mi)(%')(aN%_?[AY])", b="%1أ%3"},
-- final hamzah is on the line after a letter of prolongation or a
-- consonant with sukūn
- {a="([^Auai])(')(\"?[uai]N?)(%p?)$", b="%1ء%3%4"}, --new
- {a="([^Auai])(')(\"?[uai]N?)(%p?%s)", b="%1ء%3%4"},
+ {a="([^Auai])(')(\"?[uai]N?)(%p*)$", b="%1ء%3%4"}, --new
+ {a="([^Auai])(')(\"?[uai]N?)(%p*%s)", b="%1ء%3%4"},
-- u
- {a="(u)(')([uai]N?%p?)$", b="%1ؤ%3"},
- {a="(u)(')([uai]N?)(%p?%s)", b="%1ؤ%3%4"},
- {a="(u)(')(%p?)$", b="%1ؤْ%3"},
- {a="(u)(')(%p?%s)", b="%1ؤْ%3"},
+ {a="(u)(')([uai]N?%p*)$", b="%1ؤ%3"},
+ {a="(u)(')([uai]N?)(%p*%s)", b="%1ؤ%3%4"},
+ {a="(u)(')(%p*)$", b="%1ؤْ%3"},
+ {a="(u)(')(%p*%s)", b="%1ؤْ%3"},
-- a
- {a="(a)(')(A%p?)$", b="%1آ"},
- {a="(a)(')(A)(%p?%s)", b="%1آ%4"},
- {a="(a)(')([u]N?%p?)$", b="%1أ%3"},
- {a="(a)(')([u]N?)(%p?%s)", b="%1أ%3%4"},
- {a="(a)(')(a%p?)$", b="%1أ%3"},
- {a="(a)(')(a)(%p?%s)", b="%1أ%3%4"},
- {a="(a)(')(aN%p?)$", b="%1أً"},
- {a="(a)(')(aN)(%p?%s)", b="%1أً%4"},
- {a="(a)(')([i]N?%p?)$", b="%1إ%3"},
- {a="(a)(')([i]N?)(%p?%s)", b="%1إ%3%4"},
- {a="(a)(')(%p?)$", b="%1أْ%3"},
- {a="(a)(')(%p?%s)", b="%1أْ%3"},
+ {a="(a)(')(A%p*)$", b="%1آ"},
+ {a="(a)(')(A)(%p*%s)", b="%1آ%4"},
+ {a="(a)(')([u]N?%p*)$", b="%1أ%3"},
+ {a="(a)(')([u]N?)(%p*%s)", b="%1أ%3%4"},
+ {a="(a)(')(a%p*)$", b="%1أ%3"},
+ {a="(a)(')(a)(%p*%s)", b="%1أ%3%4"},
+ {a="(a)(')(aN%p*)$", b="%1أً"},
+ {a="(a)(')(aN)(%p*%s)", b="%1أً%4"},
+ {a="(a)(')([i]N?%p*)$", b="%1إ%3"},
+ {a="(a)(')([i]N?)(%p*%s)", b="%1إ%3%4"},
+ {a="(a)(')(%p*)$", b="%1أْ%3"},
+ {a="(a)(')(%p*%s)", b="%1أْ%3"},
-- i
- {a="(i)(')([uai]N?%p?)$", b="%1ئ%3"},
- {a="(i)(')([uai]N?)(%p?%s)", b="%1ئ%3%4"},
- {a="(i)(')(%p?)$", b="%1ئْ%3"},
- {a="(i)(')(%p?%s)", b="%1ئْ%3"},
+ {a="(i)(')([uai]N?%p*)$", b="%1ئ%3"},
+ {a="(i)(')([uai]N?)(%p*%s)", b="%1ئ%3%4"},
+ {a="(i)(')(%p*)$", b="%1ئْ%3"},
+ {a="(i)(')(%p*%s)", b="%1ئْ%3"},
--
-- middle
{a="([UIwy])(')", b="%1ء"}, --new
@@ -165,14 +165,14 @@ hamzafveasy = { -- differences marked below with 'easy'
{a="i\"'", b="إ"},
{a="y\"'", b="ئ"},
{a="ؤ([^uaiUAI])", b="ؤْ%1"},
- {a="ؤ(%p?)$", b="ؤْ%1"},
- {a="ؤ(%p?%s)", b="ؤْ%1"},
+ {a="ؤ(%p*)$", b="ؤْ%1"},
+ {a="ؤ(%p*%s)", b="ؤْ%1"},
{a="أ([^uaiUAI])", b="أْ%1"},
- {a="أ(%p?)$", b="أْ%1"},
- {a="أ(%p?%s)", b="أْ%1"},
+ {a="أ(%p*)$", b="أْ%1"},
+ {a="أ(%p*%s)", b="أْ%1"},
{a="ئ([^uaiUAI])", b="ئْ%1"},
- {a="ئ(%p?)$", b="ئْ%1"},
- {a="ئ(%p?%s)", b="ئْ%1"},
+ {a="ئ(%p*)$", b="ئْ%1"},
+ {a="ئ(%p*%s)", b="ئْ%1"},
-- hamza takes tašdīd too
{a="''([Uu])", b="ؤؤ%1"},
{a="''([Aa])", b="أأ%1"},
@@ -196,10 +196,10 @@ hamzafveasy = { -- differences marked below with 'easy'
{a="^\'a?A([%_%^%.]?[%`%'btjghxdrzsfqklmnywAY])", b="آ%1"},
{a="(%W)\'a?A([%_%^%.]?[%`%'btjghxdrzsfqklmnywAY])", b="%1آ%2"},
--easy (begin)
- {a="(A)(')(uN?%p?)$", b="aاء%3"},
- {a="(A)(')(uN?)(%p?%s)", b="aاء%3%4"},
- {a="(A)(')(iN?%p?)$", b="aاء%3"},
- {a="(A)(')(iN?)(%p?%s)", b="aاء%3%4"},
+ {a="(A)(')(uN?%p*)$", b="aاء%3"},
+ {a="(A)(')(uN?)(%p*%s)", b="aاء%3%4"},
+ {a="(A)(')(iN?%p*)$", b="aاء%3"},
+ {a="(A)(')(iN?)(%p*%s)", b="aاء%3%4"},
{a="(A)(')([iI])", b="aائ%3"}, -- historic madda
{a="(A)(')(u)", b="aاؤ%3"}, -- historic madda
{a="(A)(')", b="aاء"}, -- historic madda
@@ -233,38 +233,38 @@ hamzafveasy = { -- differences marked below with 'easy'
-- hamzah alone on the line, so take out the following two lines
-- (final hamzah is on the line after a letter of prolongation or a
-- consonant with sukūn)
- -- {a="([^Auai])(')(\"?[uai]N?)(%p?)$", b="%1ء%3%4"}, --new
- -- {a="([^Auai])(')(\"?[uai]N?)(%p?%s)", b="%1ء%3%4"},
- {a="([^Auai])(')(\"?aN)(%p?)$", b="%1ئ%3%4"}, --new
- {a="([^Auai])(')(\"?aN)(%p?%s)", b="%1ئ%3%4"}, --new
- {a="([^uai])(')(\"?a)(%p?)$", b="%1ء%3%4"}, --new
- {a="([^uai])(')(\"?a)(%p?%s)", b="%1ء%3%4"}, --new
- {a="([^uai])(')(\"?[ui]N?)(%p?)$", b="%1ء%3%4"}, --new
- {a="([^uai])(')(\"?[ui]N?)(%p?%s)", b="%1ء%3%4"}, --new
+ -- {a="([^Auai])(')(\"?[uai]N?)(%p*)$", b="%1ء%3%4"}, --new
+ -- {a="([^Auai])(')(\"?[uai]N?)(%p*%s)", b="%1ء%3%4"},
+ {a="([^Auai])(')(\"?aN)(%p*)$", b="%1ئ%3%4"}, --new
+ {a="([^Auai])(')(\"?aN)(%p*%s)", b="%1ئ%3%4"}, --new
+ {a="([^uai])(')(\"?a)(%p*)$", b="%1ء%3%4"}, --new
+ {a="([^uai])(')(\"?a)(%p*%s)", b="%1ء%3%4"}, --new
+ {a="([^uai])(')(\"?[ui]N?)(%p*)$", b="%1ء%3%4"}, --new
+ {a="([^uai])(')(\"?[ui]N?)(%p*%s)", b="%1ء%3%4"}, --new
--easy (end)
-- u
- {a="(u)(')([uai]N?%p?)$", b="%1ؤ%3"},
- {a="(u)(')([uai]N?)(%p?%s)", b="%1ؤ%3%4"},
- {a="(u)(')(%p?)$", b="%1ؤْ%3"},
- {a="(u)(')(%p?%s)", b="%1ؤْ%3"},
+ {a="(u)(')([uai]N?%p*)$", b="%1ؤ%3"},
+ {a="(u)(')([uai]N?)(%p*%s)", b="%1ؤ%3%4"},
+ {a="(u)(')(%p*)$", b="%1ؤْ%3"},
+ {a="(u)(')(%p*%s)", b="%1ؤْ%3"},
-- a
- {a="(a)(')(A%p?)$", b="%1آ"},
- {a="(a)(')(A)(%p?%s)", b="%1آ%4"},
- {a="(a)(')([u]N?%p?)$", b="%1أ%3"},
- {a="(a)(')([u]N?)(%p?%s)", b="%1أ%3%4"},
- {a="(a)(')(a%p?)$", b="%1أ%3"},
- {a="(a)(')(a)(%p?%s)", b="%1أ%3%4"},
- {a="(a)(')(aN%p?)$", b="%1أً"},
- {a="(a)(')(aN)(%p?%s)", b="%1أً%4"},
- {a="(a)(')([i]N?%p?)$", b="%1إ%3"},
- {a="(a)(')([i]N?)(%p?%s)", b="%1إ%3%4"},
- {a="(a)(')(%p?)$", b="%1أْ%3"},
- {a="(a)(')(%p?%s)", b="%1أْ%3"},
+ {a="(a)(')(A%p*)$", b="%1آ"},
+ {a="(a)(')(A)(%p*%s)", b="%1آ%4"},
+ {a="(a)(')([u]N?%p*)$", b="%1أ%3"},
+ {a="(a)(')([u]N?)(%p*%s)", b="%1أ%3%4"},
+ {a="(a)(')(a%p*)$", b="%1أ%3"},
+ {a="(a)(')(a)(%p*%s)", b="%1أ%3%4"},
+ {a="(a)(')(aN%p*)$", b="%1أً"},
+ {a="(a)(')(aN)(%p*%s)", b="%1أً%4"},
+ {a="(a)(')([i]N?%p*)$", b="%1إ%3"},
+ {a="(a)(')([i]N?)(%p*%s)", b="%1إ%3%4"},
+ {a="(a)(')(%p*)$", b="%1أْ%3"},
+ {a="(a)(')(%p*%s)", b="%1أْ%3"},
-- i
- {a="(i)(')([uai]N?%p?)$", b="%1ئ%3"},
- {a="(i)(')([uai]N?)(%p?%s)", b="%1ئ%3%4"},
- {a="(i)(')(%p?)$", b="%1ئْ%3"},
- {a="(i)(')(%p?%s)", b="%1ئْ%3"},
+ {a="(i)(')([uai]N?%p*)$", b="%1ئ%3"},
+ {a="(i)(')([uai]N?)(%p*%s)", b="%1ئ%3%4"},
+ {a="(i)(')(%p*)$", b="%1ئْ%3"},
+ {a="(i)(')(%p*%s)", b="%1ئْ%3"},
--
-- middle
{a="([Uw])(')", b="%1ء"}, --new
@@ -307,7 +307,7 @@ tanwinfv = { -- with assimilations (\SetArbDflt*)
{a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"},
{a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"},
{a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
- {a="(ء)%-?(aN)(%s)([rlmnwy])", b="%1%2%3%4%4"}, --new
+-- {a="(ء)%-?(aN)(%s)([rlmnwy])", b="%1%2%3%4%4"}, --new
{a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"},
{a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"},
-- assimilations (end)
@@ -446,12 +446,12 @@ trigraphsfv = { -- trigraphs or more
-- art. with waṣla + lunar consonant (i.e. what remains)
{a="'l%-", b="ٱلْ"},
-- the silent wāw
- {a="uU(%p?)$", b="uو%1"},
- {a="uU(%p?%s)", b="uو%1"},
- {a="aU(%p?)$", b="aو%1"},
- {a="aU(%p?%s)", b="aو%1"},
- {a="iU(%p?)$", b="iو%1"},
- {a="iU(%p?%s)", b="iو%1"},
+ {a="uU(%p*)$", b="uو%1"},
+ {a="uU(%p*%s)", b="uو%1"},
+ {a="aU(%p*)$", b="aو%1"},
+ {a="aU(%p*%s)", b="aو%1"},
+ {a="iU(%p*)$", b="iو%1"},
+ {a="iU(%p*%s)", b="iو%1"},
-- words ending in -āT with silent wāw/yāʾ
{a="(_a)UA", b="%1وا"},
{a="(_a)U", b="%1و"},
@@ -527,12 +527,12 @@ trigraphsfveasy = { -- trigraphs or more (see 'easy' tag below for the diffs)
-- art. with waṣla + lunar consonant (i.e. what remains)
{a="'l%-", b="ٱلْ"},
-- the silent wāw
- {a="uU(%p?)$", b="uو%1"},
- {a="uU(%p?%s)", b="uو%1"},
- {a="aU(%p?)$", b="aو%1"},
- {a="aU(%p?%s)", b="aو%1"},
- {a="iU(%p?)$", b="iو%1"},
- {a="iU(%p?%s)", b="iو%1"},
+ {a="uU(%p*)$", b="uو%1"},
+ {a="uU(%p*%s)", b="uو%1"},
+ {a="aU(%p*)$", b="aو%1"},
+ {a="aU(%p*%s)", b="aو%1"},
+ {a="iU(%p*)$", b="iو%1"},
+ {a="iU(%p*%s)", b="iو%1"},
-- words ending in -āT with silent wāw/yāʾ
{a="(_a)UA", b="%1وا"},
{a="(_a)U", b="%1و"},
@@ -541,16 +541,16 @@ trigraphsfveasy = { -- trigraphs or more (see 'easy' tag below for the diffs)
digraphsfvidgham = {
-- ʾiʿrāb: straight double quote must be discarded
- {a="(%-)(\"?[UI]na)(%p?%s)", b="%2%3"},
- {a="(%-)(\"?[UI]na)(%p?)$", b="%2%3"},
- {a="(%-)(\"?At[ui])(%p?%s)", b="%2%3"},
- {a="(%-)(\"?At[ui])(%p?)$", b="%2%3"},
- {a="(%-)(\"?Ani)(%p?%s)", b="%2%3"},
- {a="(%-)(\"?Ani)(%p?)$", b="%2%3"},
- {a="(%-)(\"?ayni)(%p?%s)", b="%2%3"},
- {a="(%-)(\"?ayni)(%p?)$", b="%2%3"},
- {a="(%-)(\"?[uai])(%p?%s)", b="%2%3"},
- {a="(%-)(\"?[uai])(%p?)$", b="%2%3"},
+ {a="(%-)(\"?[UI]na)(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?[UI]na)(%p*)$", b="%2%3"},
+ {a="(%-)(\"?At[ui])(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?At[ui])(%p*)$", b="%2%3"},
+ {a="(%-)(\"?Ani)(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?Ani)(%p*)$", b="%2%3"},
+ {a="(%-)(\"?ayni)(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?ayni)(%p*)$", b="%2%3"},
+ {a="(%-)(\"?[uai])(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?[uai])(%p*)$", b="%2%3"},
-- ʾiʿrāb (end)
-- initial straight double quote gives a connective ʾalif
{a="^\"[uai]", b="ٱ"},
@@ -620,8 +620,8 @@ digraphsfvidgham = {
-- first, take out hyphen if any (next two lines):
{a="([ai]Y)%-([uaiUAI])", b="%1%2"},
{a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])%-([uaiUAI])", b="%1%2"},
- {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])(%p?)$", b="%1ْ%2"},
- {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])(%p?%s)", b="%1ْ%2"},
+ {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])(%p*)$", b="%1ْ%2"},
+ {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])(%p*%s)", b="%1ْ%2"},
{a="([ai]Y)([%_]?[^%_uaiUAIYًٌٍ])", b="%1ْ%2"},
{a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])([%_]?[^%_uaiUAIYًٌٍ])", b="%1ْ%2"},
-- take out sukūn in cases of assimilation
@@ -668,16 +668,16 @@ digraphsfvidgham = {
digraphsfv = {
-- iʿrāb: straight double quote must be discarded
- {a="(%-)(\"?[UI]na)(%p?%s)", b="%2%3"},
- {a="(%-)(\"?[UI]na)(%p?)$", b="%2%3"},
- {a="(%-)(\"?At[ui])(%p?%s)", b="%2%3"},
- {a="(%-)(\"?At[ui])(%p?)$", b="%2%3"},
- {a="(%-)(\"?Ani)(%p?%s)", b="%2%3"},
- {a="(%-)(\"?Ani)(%p?)$", b="%2%3"},
- {a="(%-)(\"?ayni)(%p?%s)", b="%2%3"},
- {a="(%-)(\"?ayni)(%p?)$", b="%2%3"},
- {a="(%-)(\"?[uai])(%p?%s)", b="%2%3"},
- {a="(%-)(\"?[uai])(%p?)$", b="%2%3"},
+ {a="(%-)(\"?[UI]na)(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?[UI]na)(%p*)$", b="%2%3"},
+ {a="(%-)(\"?At[ui])(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?At[ui])(%p*)$", b="%2%3"},
+ {a="(%-)(\"?Ani)(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?Ani)(%p*)$", b="%2%3"},
+ {a="(%-)(\"?ayni)(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?ayni)(%p*)$", b="%2%3"},
+ {a="(%-)(\"?[uai])(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?[uai])(%p*)$", b="%2%3"},
-- ʾiʿrāb (end)
-- initial straight double quote gives a connective ʾalif
{a="^\"[uai]", b="ٱ"},
@@ -747,8 +747,8 @@ digraphsfv = {
-- first, take out hyphen if any (next two lines):
{a="([ai]Y)%-([uaiUAI])", b="%1%2"},
{a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])%-([uaiUAI])", b="%1%2"},
- {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])(%p?)$", b="%1ْ%2"},
- {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])(%p?%s)", b="%1ْ%2"},
+ {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])(%p*)$", b="%1ْ%2"},
+ {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])(%p*%s)", b="%1ْ%2"},
{a="([ai]Y)([%_]?[^%_uaiUAIYًٌٍ])", b="%1ْ%2"},
{a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])([%_]?[^%_uaiUAIYًٌٍ])", b="%1ْ%2"},
-- take out sukūn in cases of assimilation
@@ -795,16 +795,16 @@ digraphsfv = {
digraphsfveasy = { -- see the differences under 'easy' marker below
-- ʾiʿrāb: straight double quote must be discarded
- {a="(%-)(\"?[UI]na)(%p?%s)", b="%2%3"},
- {a="(%-)(\"?[UI]na)(%p?)$", b="%2%3"},
- {a="(%-)(\"?At[ui])(%p?%s)", b="%2%3"},
- {a="(%-)(\"?At[ui])(%p?)$", b="%2%3"},
- {a="(%-)(\"?Ani)(%p?%s)", b="%2%3"},
- {a="(%-)(\"?Ani)(%p?)$", b="%2%3"},
- {a="(%-)(\"?ayni)(%p?%s)", b="%2%3"},
- {a="(%-)(\"?ayni)(%p?)$", b="%2%3"},
- {a="(%-)(\"?[uai])(%p?%s)", b="%2%3"},
- {a="(%-)(\"?[uai])(%p?)$", b="%2%3"},
+ {a="(%-)(\"?[UI]na)(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?[UI]na)(%p*)$", b="%2%3"},
+ {a="(%-)(\"?At[ui])(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?At[ui])(%p*)$", b="%2%3"},
+ {a="(%-)(\"?Ani)(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?Ani)(%p*)$", b="%2%3"},
+ {a="(%-)(\"?ayni)(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?ayni)(%p*)$", b="%2%3"},
+ {a="(%-)(\"?[uai])(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?[uai])(%p*)$", b="%2%3"},
-- ʾiʿrāb (end)
-- initial straight double quote gives a connective ʾalif
{a="^\"[uai]", b="ٱ"},
@@ -877,8 +877,8 @@ digraphsfveasy = { -- see the differences under 'easy' marker below
-- first, take out hyphen if any (next two lines):
-- {a="([ai]Y)%-([uaiUAI])", b="%1%2"},
-- {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])%-([uaiUAI])", b="%1%2"},
--- {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])(%p?)$", b="%1ْ%2"},
--- {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])(%p?%s)", b="%1ْ%2"},
+-- {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])(%p*)$", b="%1ْ%2"},
+-- {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])(%p*%s)", b="%1ْ%2"},
-- {a="([ai]Y)([%_]?[^%_uaiUAIYًٌٍ])", b="%1ْ%2"},
-- {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])([%_]?[^%_uaiUAIYًٌٍ])", b="%1ْ%2"},
-- take out sukūn in cases of assimilation
diff --git a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_novoc.lua b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_novoc.lua
index 0bbd6adb112..09f490320a7 100644
--- a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_novoc.lua
+++ b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_novoc.lua
@@ -121,12 +121,12 @@ trigraphsnv = { -- trigraphs or more
-- art. with waṣla + lunar consonant (i.e. what remains)
{a="'l%-", b="ال"},
-- the silent wāw
- {a="uU(%p?)$", b="uو%1"},
- {a="uU(%p?%s)", b="uو%1"},
- {a="aU(%p?)$", b="aو%1"},
- {a="aU(%p?%s)", b="aو%1"},
- {a="iU(%p?)$", b="iو%1"},
- {a="iU(%p?%s)", b="iو%1"},
+ {a="uU(%p*)$", b="uو%1"},
+ {a="uU(%p*%s)", b="uو%1"},
+ {a="aU(%p*)$", b="aو%1"},
+ {a="aU(%p*%s)", b="aو%1"},
+ {a="iU(%p*)$", b="iو%1"},
+ {a="iU(%p*%s)", b="iو%1"},
-- words ending in -āT with silent wāw/yāʾ
{a="(_a)UA", b="%1وا"},
{a="(_a)U", b="%1و"},
diff --git a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_trans.lua b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_trans.lua
index 86a55b0bf2f..61c989a3003 100644
--- a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_trans.lua
+++ b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_trans.lua
@@ -377,16 +377,16 @@ digraphstrdmg = {
{a="([%_]?[Uu])(%s)([%(%[%|%<]?)(\"?[uai])", b="u%2%3'"}, --p
{a="([%_]?[Ii])(%s)([%(%[%|%<]?)(\"?[uai])", b="i%2%3'"}, --p
-- ʾiʿrāb hyphen (begin)
- {a="(%-)(\"?[UI]na)(%p?%s)", b="\\arbup{%2}%3"},
- {a="(%-)(\"?[UI]na)(%p?)$", b="\\arbup{%2}%3"},
- {a="(%-)(\"?At[ui])(%p?%s)", b="\\arbup{%2}%3"},
- {a="(%-)(\"?At[ui])(%p?)$", b="\\arbup{%2}%3"},
- {a="(%-)(\"?Ani)(%p?%s)", b="\\arbup{%2}%3"},
- {a="(%-)(\"?Ani)(%p?)$", b="\\arbup{%2}%3"},
- {a="(%-)(\"?ayni)(%p?%s)", b="\\arbup{%2}%3"},
- {a="(%-)(\"?ayni)(%p?)$", b="\\arbup{%2}%3"},
- {a="(%-)(\"?[uai])(%p?%s)", b="\\arbup{%2}%3"},
- {a="(%-)(\"?[uai])(%p?)$", b="\\arbup{%2}%3"},
+ {a="(%-)(\"?[UI]na)(%p*%s)", b="\\arbup{%2}%3"},
+ {a="(%-)(\"?[UI]na)(%p*)$", b="\\arbup{%2}%3"},
+ {a="(%-)(\"?At[ui])(%p*%s)", b="\\arbup{%2}%3"},
+ {a="(%-)(\"?At[ui])(%p*)$", b="\\arbup{%2}%3"},
+ {a="(%-)(\"?Ani)(%p*%s)", b="\\arbup{%2}%3"},
+ {a="(%-)(\"?Ani)(%p*)$", b="\\arbup{%2}%3"},
+ {a="(%-)(\"?ayni)(%p*%s)", b="\\arbup{%2}%3"},
+ {a="(%-)(\"?ayni)(%p*)$", b="\\arbup{%2}%3"},
+ {a="(%-)(\"?[uai])(%p*%s)", b="\\arbup{%2}%3"},
+ {a="(%-)(\"?[uai])(%p*)$", b="\\arbup{%2}%3"},
-- ʾiʿrāb hyphen (end) shorten long vowels preceding ʾalif
-- conjunctionis—without forgetting 'lla_dI
{a="(U)(A)", b="U"},
@@ -406,18 +406,18 @@ digraphstrdmg = {
{a="([%_]?[Uu])(%s)([%(%[%|%<]?['][%_%^%.]?[l'btjghxdrzs`fqkmnwy][%-l])", b="u%2%3"},
{a="([%_]?[Ii])(%s)([%(%[%|%<]?['][%_%^%.]?[l'btjghxdrzs`fqkmnwy][%-l])", b="i%2%3"},
{a="%-%-", b=""},
- {a="iyyaT(%p?)$", b="īyaT%1"},
- {a="iyyaT(%p?%s)", b="īyaT%1"},
- {a="iyy(%p?)$", b="ī%1"},
- {a="iyy(%p?%s)", b="ī%1"},
+ {a="iyyaT(%p*)$", b="īyaT%1"},
+ {a="iyyaT(%p*%s)", b="īyaT%1"},
+ {a="iyy(%p*)$", b="ī%1"},
+ {a="iyy(%p*%s)", b="ī%1"},
-- {a="T([^uai])", b="%1"},
{a="T(\\arbup)", b="t%1"},
{a="([a%'][%_%^%.]?[tdrzsln]%-)(%S-)T([%(%[%|%<%s])(a[%_%^%.]?[tdrzsln]%-)", b="%1%2h%3%4"}, --p
{a="T([%(%[%|%<%s])(a[%_%^%.]?[tdrzsln]%-)", b="t%1%2"}, --p
{a="T([%|\"])", b="t%1"},
- {a="T(%p?%s)", b="h%1"},
- {a="T(%p?)$", b="h%1"},
- {a="T(%p?)(%W)", b="h%1%2"},
+ {a="T(%p*%s)", b="h%1"},
+ {a="T(%p*)$", b="h%1"},
+ {a="T(%p*)(%W)", b="h%1%2"},
{a="_t", b="ṯ"},
{a="%^g", b="ǧ"},
{a="%.h", b="ḥ"},
@@ -651,32 +651,32 @@ trigraphstrloc = { -- trigraphs or more
digraphstrloc = {
-- discard the ʾiʿrāb hyphen (begin)
- {a="(%-)(\"?[UI]na)(%p?%s)", b="%2%3"},
- {a="(%-)(\"?[UI]na)(%p?)$", b="%2%3"},
- {a="(%-)(\"?At[ui])(%p?%s)", b="%2%3"},
- {a="(%-)(\"?At[ui])(%p?)$", b="%2%3"},
- {a="(%-)(\"?Ani)(%p?%s)", b="%2%3"},
- {a="(%-)(\"?Ani)(%p?)$", b="%2%3"},
- {a="(%-)(\"?ayni)(%p?%s)", b="%2%3"},
- {a="(%-)(\"?ayni)(%p?)$", b="%2%3"},
- {a="(%-)([uai])(%p?%s)", b="%2%3"},
- {a="(%-)([uai])(%p?)$", b="%2%3"},
+ {a="(%-)(\"?[UI]na)(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?[UI]na)(%p*)$", b="%2%3"},
+ {a="(%-)(\"?At[ui])(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?At[ui])(%p*)$", b="%2%3"},
+ {a="(%-)(\"?Ani)(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?Ani)(%p*)$", b="%2%3"},
+ {a="(%-)(\"?ayni)(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?ayni)(%p*)$", b="%2%3"},
+ {a="(%-)([uai])(%p*%s)", b="%2%3"},
+ {a="(%-)([uai])(%p*)$", b="%2%3"},
-- discard the ʾiʿrāb hyphen (end)
{a="(%-)(\"?[uai])", b="%1%2"}, -- hyphen + initial alif without hamza
{a="^(\"?[uai])", b="%1"}, -- initial alif without hamza
{a="(%s)([uai])", b="%1%2"}, -- initial alif without hamza
{a="%-%-", b=""},
{a="uww", b="ūw"},
- {a="iyy(%p?)$", b="ī%1"},
- {a="iyy(%p?%s)", b="ī%1"},
+ {a="iyy(%p*)$", b="ī%1"},
+ {a="iyy(%p*%s)", b="ī%1"},
{a="iyy", b="īy"},
{a="([tkdsg])(h)", b="%1'%2"},
-- {a="T([^uai])", b="h%1"},
{a="([a%']l%-)(%S-)T([%(%[%|%<%s])(al%-)", b="%1%2h%3%4"}, --p
{a="T([%(%[%|%<%s])(al%-)", b="t%1%2"}, --p
{a="T([%|\"])", b="t%1"},
- {a="T(%p?)$", b="h%1"},
- {a="T(%p?%s)", b="h%1"},
+ {a="T(%p*)$", b="h%1"},
+ {a="T(%p*%s)", b="h%1"},
{a="_t", b="th"},
{a="%^g", b="j"},
{a="%.h", b="ḥ"},
@@ -902,31 +902,32 @@ trigraphstrarabica = { -- trigraphs or more
digraphstrarabica = {
{a="([uai]%-)(\"?[uai])", b="%1"}, -- hyphen + initial alif without hamza
{a="([UAIYuai])(%s)([%(%[%|%<]?)(\"?[uai])", b="%1%2%3"}, --p
+ {a="(o[%S]-)([UAIuai])(o)(\"?[uai])", b=""},
{a="@", b=""}, -- remove the tag before the former hamza
-- discard the ʾiʿrāb hyphen (begin)
- {a="(%-)(\"?[UI]na)(%p?%s)", b="%2%3"},
- {a="(%-)(\"?[UI]na)(%p?)$", b="%2%3"},
- {a="(%-)(\"?At[ui])(%p?%s)", b="%2%3"},
- {a="(%-)(\"?At[ui])(%p?)$", b="%2%3"},
- {a="(%-)(\"?Ani)(%p?%s)", b="%2%3"},
- {a="(%-)(\"?Ani)(%p?)$", b="%2%3"},
- {a="(%-)(\"?ayni)(%p?%s)", b="%2%3"},
- {a="(%-)(\"?ayni)(%p?)$", b="%2%3"},
- {a="(%-)([uai])(%p?%s)", b="%2%3"},
- {a="(%-)([uai])(%p?)$", b="%2%3"},
+ {a="(%-)(\"?[UI]na)(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?[UI]na)(%p*)$", b="%2%3"},
+ {a="(%-)(\"?At[ui])(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?At[ui])(%p*)$", b="%2%3"},
+ {a="(%-)(\"?Ani)(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?Ani)(%p*)$", b="%2%3"},
+ {a="(%-)(\"?ayni)(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?ayni)(%p*)$", b="%2%3"},
+ {a="(%-)([uai])(%p*%s)", b="%2%3"},
+ {a="(%-)([uai])(%p*)$", b="%2%3"},
-- discard the ʾiʿrāb hyphen (end)
{a="(%-)(\"?[uai])", b="%1%2"}, -- hyphen + initial alif without hamza
{a="^(\"?[uai])", b="%1"}, -- initial alif without hamza
{a="(%s)([uai])", b="%1%2"}, -- initial alif without hamza
{a="%-%-", b=""},
- {a="iyy(%p?)$", b="ī%1"},
- {a="iyy(%p?%s)", b="ī%1"},
+ {a="iyy(%p*)$", b="ī%1"},
+ {a="iyy(%p*%s)", b="ī%1"},
-- {a="T([^uai])", b="h%1"},
{a="([a%']l%-)(%S-)aT([%(%[%|%<%s])(al%-)", b="%1%2a%3%4"}, --p
{a="aT([%(%[%|%<%s])(al%-)", b="at%1%2"}, --p
{a="T([%|\"])", b="t%1"},
- {a="aT(%p?)$", b="a%1"},
- {a="aT(%p?%s)", b="a%1"},
+ {a="aT(%p*)$", b="a%1"},
+ {a="aT(%p*%s)", b="a%1"},
{a="_t", b="ṯ"},
{a="%^g", b="ǧ"},
{a="%.h", b="ḥ"},
diff --git a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_voc.lua b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_voc.lua
index a0108fec739..606a43ba85a 100644
--- a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_voc.lua
+++ b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_voc.lua
@@ -22,6 +22,13 @@ along with this program. If not, see
<http://www.gnu.org/licenses/>.
--]]
+arbmarks = {
+ {a="bismillah", b="^^^^fdfd", c="\\arb[trans]{bi-ismi \\uc{'l-l_ahi} 'l-ra.hm_ani 'l-ra.hImi}"},
+ {a="salam", b="^^^^fdf5", c="\\arb[trans]{.sall_A\\arbnull{'l-l_ahu} \\uc{'l-l_ahu} `alay-hi wa-sallama}"},
+ {a="slm", b="^^^^fdfa", c="\\arb[trans]{.sall_A\\arbnull{'l-l_ahu} \\uc{'l-l_ahu} `alay-hi wa-sallama}"},
+ {a="jalla", b="^^^^fdfb", c="\\arb[trans]{^galla ^galAla-hu}"}
+}
+
abjad = {
{"a\"'", "b", "j", "d", "h", "w", "z", ".h", ".t"},
{"y", "k", "l", "m", "n", "s", "`", "f", ".s", },
@@ -205,10 +212,10 @@ hamza = {
{a="([^uiyUI])\'a?A([%_%^%.]?[%`%'btjghxdrzsfqklmnywAY])", b="%1آ%2"},
{a="^\'a?A([%_%^%.]?[%`%'btjghxdrzsfqklmnywAY])", b="آ%1"},
{a="(%W)\'a?A([%_%^%.]?[%`%'btjghxdrzsfqklmnywAY])", b="%1آ%2"},
- {a="(A)(')(uN?%p?)$", b="aآء%3"},
- {a="(A)(')(uN?)(%p?%s)", b="aآء%3%4"},
- {a="(A)(')(iN?%p?)$", b="aآء%3"},
- {a="(A)(')(iN?)(%p?%s)", b="aآء%3%4"},
+ {a="(A)(')(uN?%p*)$", b="aآء%3"},
+ {a="(A)(')(uN?)(%p*%s)", b="aآء%3%4"},
+ {a="(A)(')(iN?%p*)$", b="aآء%3"},
+ {a="(A)(')(iN?)(%p*%s)", b="aآء%3%4"},
{a="(A)(')([iI])", b="aآئ%3"}, -- historic madda
{a="(A)(')(u)", b="aآؤ%3"}, -- historic madda
{a="(A)(')", b="aآء"}, -- historic madda
@@ -238,31 +245,31 @@ hamza = {
{a="(mi)(%')(aN%_?[AY])", b="%1أ%3"},
-- final hamzah is on the line after a letter of prolongation or a
-- consonant with sukūn
- {a="([^Auai])(')(\"?[uai]N?)(%p?)$", b="%1ء%3%4"}, --new
- {a="([^Auai])(')(\"?[uai]N?)(%p?%s)", b="%1ء%3%4"},
+ {a="([^Auai])(')(\"?[uai]N?)(%p*)$", b="%1ء%3%4"}, --new
+ {a="([^Auai])(')(\"?[uai]N?)(%p*%s)", b="%1ء%3%4"},
-- u
- {a="(u)(')([uai]N?%p?)$", b="%1ؤ%3"},
- {a="(u)(')([uai]N?)(%p?%s)", b="%1ؤ%3%4"},
- {a="(u)(')(%p?)$", b="%1ؤ%3"},
- {a="(u)(')(%p?%s)", b="%1ؤ%3"},
+ {a="(u)(')([uai]N?%p*)$", b="%1ؤ%3"},
+ {a="(u)(')([uai]N?)(%p*%s)", b="%1ؤ%3%4"},
+ {a="(u)(')(%p*)$", b="%1ؤ%3"},
+ {a="(u)(')(%p*%s)", b="%1ؤ%3"},
-- a
- {a="(a)(')(A%p?)$", b="%1آ"},
- {a="(a)(')(A)(%p?%s)", b="%1آ%4"},
- {a="(a)(')([u]N?%p?)$", b="%1أ%3"},
- {a="(a)(')([u]N?)(%p?%s)", b="%1أ%3%4"},
- {a="(a)(')(a%p?)$", b="%1أ%3"},
- {a="(a)(')(a)(%p?%s)", b="%1أ%3%4"},
- {a="(a)(')(aN%p?)$", b="%1أً"},
- {a="(a)(')(aN)(%p?%s)", b="%1أً%4"},
- {a="(a)(')([i]N?%p?)$", b="%1إ%3"},
- {a="(a)(')([i]N?)(%p?%s)", b="%1إ%3%4"},
- {a="(a)(')(%p?)$", b="%1أ%3"},
- {a="(a)(')(%p?%s)", b="%1أ%3"},
+ {a="(a)(')(A%p*)$", b="%1آ"},
+ {a="(a)(')(A)(%p*%s)", b="%1آ%4"},
+ {a="(a)(')([u]N?%p*)$", b="%1أ%3"},
+ {a="(a)(')([u]N?)(%p*%s)", b="%1أ%3%4"},
+ {a="(a)(')(a%p*)$", b="%1أ%3"},
+ {a="(a)(')(a)(%p*%s)", b="%1أ%3%4"},
+ {a="(a)(')(aN%p*)$", b="%1أً"},
+ {a="(a)(')(aN)(%p*%s)", b="%1أً%4"},
+ {a="(a)(')([i]N?%p*)$", b="%1إ%3"},
+ {a="(a)(')([i]N?)(%p*%s)", b="%1إ%3%4"},
+ {a="(a)(')(%p*)$", b="%1أ%3"},
+ {a="(a)(')(%p*%s)", b="%1أ%3"},
-- i
- {a="(i)(')([uai]N?%p?)$", b="%1ئ%3"},
- {a="(i)(')([uai]N?)(%p?%s)", b="%1ئ%3%4"},
- {a="(i)(')(%p?)$", b="%1ئ%3"},
- {a="(i)(')(%p?%s)", b="%1ئ%3"},
+ {a="(i)(')([uai]N?%p*)$", b="%1ئ%3"},
+ {a="(i)(')([uai]N?)(%p*%s)", b="%1ئ%3%4"},
+ {a="(i)(')(%p*)$", b="%1ئ%3"},
+ {a="(i)(')(%p*%s)", b="%1ئ%3"},
--
-- middle
{a="([UIwy])(')", b="%1ء"}, --new
@@ -323,10 +330,10 @@ hamzaeasy = { -- differences marked below with 'easy'
{a="^\'a?A([%_%^%.]?[%`%'btjghxdrzsfqklmnywAY])", b="آ%1"},
{a="(%W)\'a?A([%_%^%.]?[%`%'btjghxdrzsfqklmnywAY])", b="%1آ%2"},
--easy (begin)
- {a="(A)(')(uN?%p?)$", b="aاء%3"},
- {a="(A)(')(uN?)(%p?%s)", b="aاء%3%4"},
- {a="(A)(')(iN?%p?)$", b="aاء%3"},
- {a="(A)(')(iN?)(%p?%s)", b="aاء%3%4"},
+ {a="(A)(')(uN?%p*)$", b="aاء%3"},
+ {a="(A)(')(uN?)(%p*%s)", b="aاء%3%4"},
+ {a="(A)(')(iN?%p*)$", b="aاء%3"},
+ {a="(A)(')(iN?)(%p*%s)", b="aاء%3%4"},
{a="(A)(')([iI])", b="aائ%3"}, -- historic madda
{a="(A)(')(u)", b="aاؤ%3"}, -- historic madda
{a="(A)(')", b="aاء"}, -- historic madda
@@ -360,38 +367,38 @@ hamzaeasy = { -- differences marked below with 'easy'
-- hamzah alone on the line, so take out the following two lines
-- (final hamzah is on the line after a letter of prolongation or a
-- consonant with sukūn)
- -- {a="([^Auai])(')(\"?[uai]N?)(%p?)$", b="%1ء%3%4"}, --new
- -- {a="([^Auai])(')(\"?[uai]N?)(%p?%s)", b="%1ء%3%4"},
- {a="([^Auai])(')(\"?aN)(%p?)$", b="%1ئ%3%4"}, --new
- {a="([^Auai])(')(\"?aN)(%p?%s)", b="%1ئ%3%4"}, --new
- {a="([^uai])(')(\"?a)(%p?)$", b="%1ء%3%4"}, --new
- {a="([^uai])(')(\"?a)(%p?%s)", b="%1ء%3%4"}, --new
- {a="([^uai])(')(\"?[ui]N?)(%p?)$", b="%1ء%3%4"}, --new
- {a="([^uai])(')(\"?[ui]N?)(%p?%s)", b="%1ء%3%4"}, --new
+ -- {a="([^Auai])(')(\"?[uai]N?)(%p*)$", b="%1ء%3%4"}, --new
+ -- {a="([^Auai])(')(\"?[uai]N?)(%p*%s)", b="%1ء%3%4"},
+ {a="([^Auai])(')(\"?aN)(%p*)$", b="%1ئ%3%4"}, --new
+ {a="([^Auai])(')(\"?aN)(%p*%s)", b="%1ئ%3%4"}, --new
+ {a="([^uai])(')(\"?a)(%p*)$", b="%1ء%3%4"}, --new
+ {a="([^uai])(')(\"?a)(%p*%s)", b="%1ء%3%4"}, --new
+ {a="([^uai])(')(\"?[ui]N?)(%p*)$", b="%1ء%3%4"}, --new
+ {a="([^uai])(')(\"?[ui]N?)(%p*%s)", b="%1ء%3%4"}, --new
--easy (end)
-- u
- {a="(u)(')([uai]N?%p?)$", b="%1ؤ%3"},
- {a="(u)(')([uai]N?)(%p?%s)", b="%1ؤ%3%4"},
- {a="(u)(')(%p?)$", b="%1ؤ%3"},
- {a="(u)(')(%p?%s)", b="%1ؤ%3"},
+ {a="(u)(')([uai]N?%p*)$", b="%1ؤ%3"},
+ {a="(u)(')([uai]N?)(%p*%s)", b="%1ؤ%3%4"},
+ {a="(u)(')(%p*)$", b="%1ؤ%3"},
+ {a="(u)(')(%p*%s)", b="%1ؤ%3"},
-- a
- {a="(a)(')(A%p?)$", b="%1آ"},
- {a="(a)(')(A)(%p?%s)", b="%1آ%4"},
- {a="(a)(')([u]N?%p?)$", b="%1أ%3"},
- {a="(a)(')([u]N?)(%p?%s)", b="%1أ%3%4"},
- {a="(a)(')(a%p?)$", b="%1أ%3"},
- {a="(a)(')(a)(%p?%s)", b="%1أ%3%4"},
- {a="(a)(')(aN%p?)$", b="%1أً"},
- {a="(a)(')(aN)(%p?%s)", b="%1أً%4"},
- {a="(a)(')([i]N?%p?)$", b="%1إ%3"},
- {a="(a)(')([i]N?)(%p?%s)", b="%1إ%3%4"},
- {a="(a)(')(%p?)$", b="%1أ%3"},
- {a="(a)(')(%p?%s)", b="%1أ%3"},
+ {a="(a)(')(A%p*)$", b="%1آ"},
+ {a="(a)(')(A)(%p*%s)", b="%1آ%4"},
+ {a="(a)(')([u]N?%p*)$", b="%1أ%3"},
+ {a="(a)(')([u]N?)(%p*%s)", b="%1أ%3%4"},
+ {a="(a)(')(a%p*)$", b="%1أ%3"},
+ {a="(a)(')(a)(%p*%s)", b="%1أ%3%4"},
+ {a="(a)(')(aN%p*)$", b="%1أً"},
+ {a="(a)(')(aN)(%p*%s)", b="%1أً%4"},
+ {a="(a)(')([i]N?%p*)$", b="%1إ%3"},
+ {a="(a)(')([i]N?)(%p*%s)", b="%1إ%3%4"},
+ {a="(a)(')(%p*)$", b="%1أ%3"},
+ {a="(a)(')(%p*%s)", b="%1أ%3"},
-- i
- {a="(i)(')([uai]N?%p?)$", b="%1ئ%3"},
- {a="(i)(')([uai]N?)(%p?%s)", b="%1ئ%3%4"},
- {a="(i)(')(%p?)$", b="%1ئ%3"},
- {a="(i)(')(%p?%s)", b="%1ئ%3"},
+ {a="(i)(')([uai]N?%p*)$", b="%1ئ%3"},
+ {a="(i)(')([uai]N?)(%p*%s)", b="%1ئ%3%4"},
+ {a="(i)(')(%p*)$", b="%1ئ%3"},
+ {a="(i)(')(%p*%s)", b="%1ئ%3"},
--
-- middle
{a="([Uw])(')", b="%1ء"}, --new
@@ -567,12 +574,12 @@ trigraphs = { -- trigraphs or more
-- art. with waṣla + lunar consonant (i.e. what remains)
{a="'l%-", b="ال"},
-- the silent wāw
- {a="uU(%p?)$", b="uو%1"},
- {a="uU(%p?%s)", b="uو%1"},
- {a="aU(%p?)$", b="aو%1"},
- {a="aU(%p?%s)", b="aو%1"},
- {a="iU(%p?)$", b="iو%1"},
- {a="iU(%p?%s)", b="iو%1"},
+ {a="uU(%p*)$", b="uو%1"},
+ {a="uU(%p*%s)", b="uو%1"},
+ {a="aU(%p*)$", b="aو%1"},
+ {a="aU(%p*%s)", b="aو%1"},
+ {a="iU(%p*)$", b="iو%1"},
+ {a="iU(%p*%s)", b="iو%1"},
-- words ending in -āT with silent wāw/yāʾ
{a="(_a)UA", b="%1وا"},
{a="(_a)U", b="%1و"},
@@ -658,12 +665,12 @@ trigraphseasy = { -- differences marked below with 'easy'
-- art. with waṣla + lunar consonant (i.e. what remains)
{a="'l%-", b="ال"},
-- the silent wāw
- {a="uU(%p?)$", b="uو%1"},
- {a="uU(%p?%s)", b="uو%1"},
- {a="aU(%p?)$", b="aو%1"},
- {a="aU(%p?%s)", b="aو%1"},
- {a="iU(%p?)$", b="iو%1"},
- {a="iU(%p?%s)", b="iو%1"},
+ {a="uU(%p*)$", b="uو%1"},
+ {a="uU(%p*%s)", b="uو%1"},
+ {a="aU(%p*)$", b="aو%1"},
+ {a="aU(%p*%s)", b="aو%1"},
+ {a="iU(%p*)$", b="iو%1"},
+ {a="iU(%p*%s)", b="iو%1"},
-- words ending in -āT with silent wāw/yāʾ
{a="(_a)UA", b="%1وا"},
{a="(_a)U", b="%1و"},
@@ -672,16 +679,16 @@ trigraphseasy = { -- differences marked below with 'easy'
digraphs = {
-- ʾiʿrāb: straight double quote must be discarded
- {a="(%-)(\"?[UI]na)(%p?%s)", b="%2%3"},
- {a="(%-)(\"?[UI]na)(%p?)$", b="%2%3"},
- {a="(%-)(\"?At[ui])(%p?%s)", b="%2%3"},
- {a="(%-)(\"?At[ui])(%p?)$", b="%2%3"},
- {a="(%-)(\"?Ani)(%p?%s)", b="%2%3"},
- {a="(%-)(\"?Ani)(%p?)$", b="%2%3"},
- {a="(%-)(\"?ayni)(%p?%s)", b="%2%3"},
- {a="(%-)(\"?ayni)(%p?)$", b="%2%3"},
- {a="(%-)(\"?[uai])(%p?%s)", b="%2%3"},
- {a="(%-)(\"?[uai])(%p?)$", b="%2%3"},
+ {a="(%-)(\"?[UI]na)(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?[UI]na)(%p*)$", b="%2%3"},
+ {a="(%-)(\"?At[ui])(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?At[ui])(%p*)$", b="%2%3"},
+ {a="(%-)(\"?Ani)(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?Ani)(%p*)$", b="%2%3"},
+ {a="(%-)(\"?ayni)(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?ayni)(%p*)$", b="%2%3"},
+ {a="(%-)(\"?[uai])(%p*%s)", b="%2%3"},
+ {a="(%-)(\"?[uai])(%p*)$", b="%2%3"},
-- ʾiʿrāb (end)
-- initial straight double quote gives a connective ʾalif
{a="^\"[uai]", b="ٱ"},