summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/lualatex/arabluatex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-10-24 21:23:56 +0000
committerKarl Berry <karl@freefriends.org>2017-10-24 21:23:56 +0000
commit70cf953fa9bf475303862a31215cf8e33443651c (patch)
treea00425ae5eb0ae81c25df57a82352d87405f20ac /Master/texmf-dist/tex/lualatex/arabluatex
parent1f862180ea719c5907ee445c0ca500a141fdee7b (diff)
arabluatex (24oct17)
git-svn-id: svn://tug.org/texlive/trunk@45591 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/lualatex/arabluatex')
-rw-r--r--Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua9
-rw-r--r--Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.sty14
-rw-r--r--Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_fullvoc.lua94
-rw-r--r--Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_novoc.lua4
-rw-r--r--Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_trans.lua30
-rw-r--r--Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_voc.lua86
6 files changed, 153 insertions, 84 deletions
diff --git a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua
index 48e59871033..f6890edc432 100644
--- a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua
+++ b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua
@@ -719,3 +719,12 @@ function abraces(str)
end
return str
end
+
+function aemph(str)
+ if tex.textdir == "TRT" then
+ str = "$\\overline{\\text{"..str.."}}$"
+ elseif tex.textdir == "TLT" then
+ str = "$\\underline{\\text{"..str.."}}$"
+ end
+ return str
+end
diff --git a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.sty b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.sty
index fc4b56a83b2..e5a687c4f0e 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}%
-[2017/07/28 v1.9.1 An ArabTeX-like interface for LuaLaTeX]
+[2017/10/24 v1.9.2 An ArabTeX-like interface for LuaLaTeX]
\RequirePackage{ifluatex}
\ifluatex\else
\PackageError{arabluatex}{lualatex needed}{%
@@ -87,8 +87,14 @@
\DeclareDocumentCommand{\MkArbBreak}{m}{%
\luadirect{mkarbbreak(\luastringN{#1})}}
\AtBeginDocument{\ifdef{\aemph}%
- {\RenewDocumentCommand{\aemph}{m}{$\overline{\text{#1}}$}}
- {\NewDocumentCommand{\aemph}{m}{$\overline{\text{#1}}$}}}
+ {\RenewDocumentCommand{\aemph}{s m}{%
+ \IfBooleanTF{#1}{%
+ $\overline{\text{#2}}$}
+ {\luadirect{tex.sprint(aemph(\luastringN{#2}))}}}}
+ {\NewDocumentCommand{\aemph}{s m}{%
+ \IfBooleanTF{#1}{%
+ $\overline{\text{#2}}$}
+ {\luadirect{tex.sprint(aemph(\luastringN{#2}))}}}}}
\def\al@input@scheme{arabtex}
\NewDocumentCommand{\SetInputScheme}{m}{\def\al@input@scheme{#1}}
\def\al@arb@rules{dflt}
@@ -186,7 +192,7 @@
\define@boolkey[al]{verse}{delim}[true]{}
\define@choicekey[al]{verse}{mode}{fullvoc, voc, novoc,
trans}{\def\al@mode{#1}}
-\presetkeys[al]{verse}{metre=\LR{\vskip -\baselineskip}, utf=false,
+\presetkeys[al]{verse}{metre={}, utf=false,
delim=false}{}
\NewDocumentEnvironment{arabverse}{O{}}%
{\par\centering\noindent\bgroup\setkeys[al]{verse}[metre]{#1}%
diff --git a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_fullvoc.lua b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_fullvoc.lua
index b7237dbdf60..769b8416b9a 100644
--- a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_fullvoc.lua
+++ b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_fullvoc.lua
@@ -58,10 +58,15 @@ hamzafv = {
{a="%'%_I", b="إI"},
-- taḫfīfu 'l-hamza
{a="'u'([^uaiUAI])", b="أU%1"},
- {a="'i'([^uaiUAI])", b="إI%1"},
+ {a="'i'([^uaiUAI])", b="إI%1"},
+ {a="([wf]a)%-\'([^uaiUAIl][^%-])", b="%1أْ%2"},
+ {a="^u'([^uaiUAI])", b="اU%1"},
+ {a="([^uaiUAIYN][%s%(%[%<])u'([^uaiUAI])", b="%1اU%2"},
+ {a="^i'([^uaiUAI])", b="اI%1"},
+ {a="([^uaiUAIYN][%s%(%[%<])i'([^uaiUAI])", b="%1اI%2"},
-- madda (historic writing below)
{a="'a'([^uaiUAI])", b="آ%1"},
- {a="([^uiUI])\'a?A([%_%^%.]?[%`%'btjghxdrzsfqklmnywAY])", b="%1آ%2"},
+ {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"},
@@ -90,15 +95,15 @@ hamzafv = {
{a="([%s%(%[%<%-])(')([ua])", b="%1أ%3"},
{a="([%s%(%[%<%-])(')(i)", b="%1إ%3"},
-- final
- -- ^say'aN and .zim'aN are special orthographies
- {a="(%^sa%.?[yY])(\"?%|?)(%')(aN)", b="%1%2ئ%4"},
- {a="(.zi?m)(%')(aN)", b="%1ئ%3"},
- -- hamzah + pr. suffix: the carrier passes into yāʾ before ī so
- -- take out the following two lines:
- -- {a="(')(I%p?)$", b="إ%2"}, -- affix pr. 1st person sg.
- -- {a="(')(I)(%p?%s)", b="إ%2%3"}, -- affix pr. 1st person sg.
- {a="([^uai])(')([uai]N?%p?)$", b="%1ء%3"},
- {a="([^uai])(')([uai]N?)(%p?%s)", b="%1ء%3%4"},
+ -- mi'aT is special orthography (unlike ^say'aN and .zim'aN):
+ -- {a="(%^sa%.?[yY])(\"?%|?)(%')(aN)", b="%1%2ئ%4"}, --new
+ -- {a="(.zi?m)(%')(aN)", b="%1ئ%3"}, --new
+ {a="(mi)(%')(a[Tt])", b="%1ائ%3"},
+ {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"},
-- u
{a="(u)(')([uai]N?%p?)$", b="%1ؤ%3"},
{a="(u)(')([uai]N?)(%p?%s)", b="%1ؤ%3%4"},
@@ -124,8 +129,8 @@ hamzafv = {
{a="(i)(')(%p?%s)", b="%1ئْ%3"},
--
-- middle
- {a="(U)(')", b="%1ء"},
- {a="([Iy])(')", b="%1ئ"},
+ {a="([UIwy])(')", b="%1ء"}, --new
+ -- {a="([Iy])(')", b="%1ئ"}, --included in the above line
{a="([^uai])(')([uU])", b="%1ؤ%3"},
{a="([^uai])(')(%_?[aAY])", b="%1أ%3"},
{a="([^uai])(')([iI])", b="%1ئ%3"},
@@ -179,10 +184,15 @@ hamzafveasy = { -- differences marked below with 'easy'
{a="%'%_I", b="إI"},
-- taḫfīfu 'l-hamza
{a="'u'([^uaiUAI])", b="أU%1"},
- {a="'i'([^uaiUAI])", b="إI%1"},
+ {a="'i'([^uaiUAI])", b="إI%1"},
+ {a="([wf]a)%-\'([^uaiUAIl][^%-])", b="%1أْ%2"},
+ {a="^u'([^uaiUAI])", b="اU%1"},
+ {a="([^uaiUAIYN][%s%(%[%<])u'([^uaiUAI])", b="%1اU%2"},
+ {a="^i'([^uaiUAI])", b="اI%1"},
+ {a="([^uaiUAIYN][%s%(%[%<])i'([^uaiUAI])", b="%1اI%2"},
-- madda (historic writing below)
{a="'a'([^uaiUAI])", b="آ%1"},
- {a="([^uiUI])\'a?A([%_%^%.]?[%`%'btjghxdrzsfqklmnywAY])", b="%1آ%2"},
+ {a="([^uiyUI])\'a?A([%_%^%.]?[%`%'btjghxdrzsfqklmnywAY])", b="%1آ%2"},
{a="^\'a?A([%_%^%.]?[%`%'btjghxdrzsfqklmnywAY])", b="آ%1"},
{a="(%W)\'a?A([%_%^%.]?[%`%'btjghxdrzsfqklmnywAY])", b="%1آ%2"},
--easy (begin)
@@ -213,15 +223,25 @@ hamzafveasy = { -- differences marked below with 'easy'
{a="([%s%(%[%<%-])(')([ua])", b="%1أ%3"},
{a="([%s%(%[%<%-])(')(i)", b="%1إ%3"},
-- final
- -- ^say'aN and .zim'aN are special orthographies
- {a="(%^sa%.?[yY])(\"?%|?)(%')(aN)", b="%1%2ئ%4"},
- {a="(.zi?m)(%')(aN)", b="%1ئ%3"},
- -- hamzah + pr. suffix: the carrier passes into yāʾ before ī so
- -- take out the following two lines:
- -- {a="(')(I%p?)$", b="إ%2"}, -- affix pr. 1st person sg.
- -- {a="(')(I)(%p?%s)", b="إ%2%3"}, -- affix pr. 1st person sg.
- {a="([^uai])(')([uai]N?%p?)$", b="%1ء%3"},
- {a="([^uai])(')([uai]N?)(%p?%s)", b="%1ء%3%4"},
+ -- mi'aT is special orthography (unlike ^say'aN and .zim'aN)
+ -- {a="(%^sa%.?[yY])(\"?%|?)(%')(aN)", b="%1%2ئ%4"}, --new
+ -- {a="(.zi?m)(%')(aN)", b="%1ئ%3"}, --new
+ {a="(mi)(%')(a[Tt])", b="%1ائ%3"},
+ {a="(mi)(%')(aN%_?[AY])", b="%1أ%3"},
+ -- easy (begin)
+ -- The Munjid says that such words as radI'aN do not have the
+ -- 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
+ --easy (end)
-- u
{a="(u)(')([uai]N?%p?)$", b="%1ؤ%3"},
{a="(u)(')([uai]N?)(%p?%s)", b="%1ؤ%3%4"},
@@ -247,8 +267,8 @@ hamzafveasy = { -- differences marked below with 'easy'
{a="(i)(')(%p?%s)", b="%1ئْ%3"},
--
-- middle
- {a="(U)(')", b="%1ء"},
- {a="([Iy])(')", b="%1ئ"},
+ {a="([Uw])(')", b="%1ء"}, --new
+ {a="([Iy])(')", b="%1ئ"}, --easy
{a="([^uai])(')([uU])", b="%1ؤ%3"},
{a="([^uai])(')(%_?[aAY])", b="%1أ%3"},
{a="([^uai])(')([iI])", b="%1ئ%3"},
@@ -287,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ً%3%4%4"},
+ {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)
@@ -299,7 +319,7 @@ tanwinfv = { -- with assimilations (\SetArbDflt*)
{a="%-?(\"aN)(_A)", b="ى"},
{a="%-?(\"aN)(Y)", b="ى"},
{a="(T)%-?(\"aN)", b="%1"},
- {a="(ء)%-?(\"aN)", b="%1"},
+ {a="([اآ])(ء)%-?(\"aN)", b="%1%2"}, --new
{a="([^TA])%-?(\"aN)", b="%1ا"},
{a="%-?(\"iNI?)", b=""},
-- quoted tanwīn (end)
@@ -308,7 +328,7 @@ tanwinfv = { -- with assimilations (\SetArbDflt*)
{a="%-?(aN)(_A)", b="ًى"},
{a="%-?(aN)(Y)", b="ًى"},
{a="(T)%-?(aN)", b="%1ً"},
- {a="(ء)%-?(aN)", b="%1ً"},
+ {a="([اآ])(ء)%-?(aN)", b="%1%2ً"}, --new
{a="([^TA])%-?(aN)", b="%1ًا"},
{a="%-?(iNI?)", b="ٍ"}
}
@@ -334,7 +354,7 @@ tanwinfveasy = { -- no assimilations (see below)
--easy {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"},
--easy {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"},
--easy {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
---easy {a="(ء)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
+--easy {a="(ء)%-?(aN)(%s)([rlmnwy])", b="%1%2%3%4%4"}, --new
--easy {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"},
--easy {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"},
-- assimilations (end)
@@ -346,7 +366,7 @@ tanwinfveasy = { -- no assimilations (see below)
{a="%-?(\"aN)(_A)", b="ى"},
{a="%-?(\"aN)(Y)", b="ى"},
{a="(T)%-?(\"aN)", b="%1"},
- {a="(ء)%-?(\"aN)", b="%1"},
+ {a="([اآ])(ء)%-?(\"aN)", b="%1%2"}, --new
{a="([^TA])%-?(\"aN)", b="%1ا"},
{a="%-?(\"iNI?)", b=""},
-- quoted tanwīn (end)
@@ -355,7 +375,7 @@ tanwinfveasy = { -- no assimilations (see below)
{a="%-?(aN)(_A)", b="ًى"},
{a="%-?(aN)(Y)", b="ًى"},
{a="(T)%-?(aN)", b="%1ً"},
- {a="(ء)%-?(aN)", b="%1ً"},
+ {a="([اآ])(ء)%-?(aN)", b="%1%2ً"}, --new
{a="([^TA])%-?(aN)", b="%1ًا"},
{a="%-?(iNI?)", b="ٍ"}
}
@@ -520,7 +540,7 @@ trigraphsfveasy = { -- trigraphs or more (see 'easy' tag below for the diffs)
}
digraphsfvidgham = {
- -- iʿrāb: straight double quote must be discarded
+ -- ʾ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"},
@@ -544,7 +564,7 @@ digraphsfvidgham = {
{a="(ay)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1i%2%3ٱ"}, --p
-- hyphen + initial alif without hamza
-- {a="([uai]%-)(\"?[uai])", b="%1ٱ"},
- {a="([uai]%-)(\"?[uai])([%^%_%.%`]?)(%a)", b="%1ٱ%3%4"},
+ {a="([uai]%-)(\"?[uai])([%^%_%.%`]?)([%aأإؤئ])", b="%1ٱ%3%4"},
-- initial alif without hamza (next 4 lines)
{a="(o[%S]-)([uaiUAIY])(o)(\"?[uai])", b="ٱ"},
{a="([%_]?[uaiUAIY])(%s[%(%[%|%<]?)(\"?[uai])", b="%1%2ٱ"}, --p
@@ -671,7 +691,7 @@ digraphsfv = {
{a="(ay)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1i%2%3ٱ"}, --p
-- hyphen + initial alif without hamza
-- {a="([uai]%-)(\"?[uai])", b="%1ٱ"},
- {a="([uai]%-)(\"?[uai])([%^%_%.%`]?)(%a)", b="%1ٱ%3%4"},
+ {a="([uai]%-)(\"?[uai])([%^%_%.%`]?)([%aأإؤئ])", b="%1ٱ%3%4"},
-- initial alif without hamza (next 4 lines)
{a="(o[%S]-)([uaiUAIY])(o)(\"?[uai])", b="ٱ"},
{a="([%_]?[uaiUAIY])(%s[%(%[%|%<]?)(\"?[uai])", b="%1%2ٱ"}, --p
@@ -774,7 +794,7 @@ digraphsfv = {
}
digraphsfveasy = { -- see the differences under 'easy' marker below
- -- iʿrāb: straight double quote must be discarded
+ -- ʾ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"},
@@ -798,7 +818,7 @@ digraphsfveasy = { -- see the differences under 'easy' marker below
{a="(ay)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1i%2%3ٱ"}, --p
-- hyphen + initial alif without hamza
-- {a="([uai]%-)(\"?[uai])", b="%1ٱ"},
- {a="([uai]%-)(\"?[uai])([%^%_%.%`]?)(%a)", b="%1ٱ%3%4"},
+ {a="([uai]%-)(\"?[uai])([%^%_%.%`]?)([%aأإؤئ])", b="%1ٱ%3%4"},
-- initial alif without hamza (next 4 lines)
{a="(o[%S]-)([uaiUAIY])(o)(\"?[uai])", b="ٱ"},
{a="([%_]?[uaiUAIY])(%s[%(%[%|%<]?)(\"?[uai])", b="%1%2ٱ"}, --p
diff --git a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_novoc.lua b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_novoc.lua
index caf66f90dfe..77f6568fe40 100644
--- a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_novoc.lua
+++ b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_novoc.lua
@@ -47,7 +47,7 @@ tanwinnv = {
{a="%-?(\"aN)(_A)", b="ًى"},
{a="%-?(\"aN)(Y)", b="ًى"},
{a="(T)%-?(\"aN)", b="%1ً"},
- {a="(ء)%-?(\"aN)", b="%1ً"},
+ {a="([اآ])(ء)%-?(\"aN)", b="%1%2ً"}, --new
{a="([^TA])%-?(\"aN)", b="%1ًا"},
{a="%-?(\"iNI?)", b="ٍ"},
-- "quoted" tanwīn (end)
@@ -56,7 +56,7 @@ tanwinnv = {
{a="%-?(aN)(_A)", b="ى"},
{a="%-?(aN)(Y)", b="ى"},
{a="(T)%-?(aN)", b="%1"},
- {a="(ء)%-?(aN)", b="%1"},
+ {a="([اآ])(ء)%-?(aN)", b="%1%2"}, --new
{a="([^TA])%-?(aN)", b="%1ا"},
{a="%-?(iNI?)", b=""},
-- initial straight double quote gives a connective ʾalif. This has
diff --git a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_trans.lua b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_trans.lua
index 23ecf2cc7c6..0f9043efc68 100644
--- a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_trans.lua
+++ b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_trans.lua
@@ -100,6 +100,10 @@ hamzatrdmg = {
-- taḫfīfu 'l-hamza
{a="'u'([^uaiUAI])", b="ʾU%1"},
{a="'i'([^uaiUAI])", b="ʾI%1"},
+ {a="^u'([^uaiUAI])", b="U%1"},
+ {a="([^uaiUAIYN][%s%(%[%<])u'([^uaiUAI])", b="%1U%2"},
+ {a="^i'([^uaiUAI])", b="I%1"},
+ {a="([^uaiUAIYN][%s%(%[%<])i'([^uaiUAI])", b="%1I%2"},
-- madda (historic writing below)
{a="'a'([^uaiUAI])", b="ʾA%1"},
{a="'a?A", b="ʾA"},
@@ -441,6 +445,8 @@ longvtrdmg = {
}
shortvtrdmg = {
+ {a="([uai])([uai])([uai])", b="/%1,%2,%3/"},
+ {a="([uai])([uai])", b="/%1,%2/"},
{a="u", b="u"},
{a="a", b="a"},
{a="i", b="i"}
@@ -468,11 +474,13 @@ hamzatrloc = {
{a="%'%_I", b="I"},
-- taḫfīfu 'l-hamza
{a="^'u'([^uaiUAI])", b="U%1"},
- {a="(%W)'u'([^uaiUAI])", b="%1U%2"},
- {a="'u'([^uaiUAI])", b="ʾU"},
+ {a="([%s%(%[%<%-])'u'([^uaiUAI])", b="%1U%2"},
{a="^'i'([^uaiUAI])", b="I%1"},
- {a="(%W)'i'([^uaiUAI])", b="%1I%2"},
- {a="'i'([^uaiUAI])", b="ʾI"},
+ {a="([%s%(%[%<%-])'i'([^uaiUAI])", b="%1I%2"},
+ {a="^u'([^uaiUAI])", b="U%1"},
+ {a="([^uaiUAIYN][%s%(%[%<])u'([^uaiUAI])", b="%1U%2"},
+ {a="^i'([^uaiUAI])", b="I%1"},
+ {a="([^uaiUAIYN][%s%(%[%<])i'([^uaiUAI])", b="%1I%2"},
-- madda (historic writing below)
{a="^(')(A)", b="%2"},
{a="(%W)(')(A)", b="%1%3"},
@@ -621,6 +629,7 @@ digraphstrloc = {
-- {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", b="th"},
@@ -694,6 +703,8 @@ longvtrloc = {
}
shortvtrloc = {
+ {a="([uai])([uai])([uai])", b="/%1,%2,%3/"},
+ {a="([uai])([uai])", b="/%1,%2/"},
{a="u", b="u"},
{a="a", b="a"},
{a="i", b="i"}
@@ -725,11 +736,13 @@ hamzatrarabica = { -- ≠ from hamzatrloc: initial hamza has to be held
{a="%'%_I", b="I"},
-- taḫfīfu 'l-hamza
{a="^'u'([^uaiUAI])", b="U%1"},
- {a="(%W)'u'([^uaiUAI])", b="%1U%2"},
- {a="'u'([^uaiUAI])", b="ʾU"},
+ {a="([%s%(%[%<%-])'u'([^uaiUAI])", b="%1U%2"},
{a="^'i'([^uaiUAI])", b="I%1"},
- {a="(%W)'i'([^uaiUAI])", b="%1I%2"},
- {a="'i'([^uaiUAI])", b="ʾI"},
+ {a="([%s%(%[%<%-])'i'([^uaiUAI])", b="%1I%2"},
+ {a="^u'([^uaiUAI])", b="U%1"},
+ {a="([^uaiUAIYN][%s%(%[%<])u'([^uaiUAI])", b="%1U%2"},
+ {a="^i'([^uaiUAI])", b="I%1"},
+ {a="([^uaiUAIYN][%s%(%[%<])i'([^uaiUAI])", b="%1I%2"},
-- madda (historic writing below)
{a="^(')(A)", b="%2"},
{a="(%W)(')(A)", b="%1%3"},
@@ -866,6 +879,7 @@ digraphstrarabica = {
-- {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="_t", b="ṯ"},
diff --git a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_voc.lua b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_voc.lua
index 09133043bef..4d9473a4eed 100644
--- a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_voc.lua
+++ b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_voc.lua
@@ -194,10 +194,15 @@ hamza = {
{a="%'%_I", b="إI"},
-- taḫfīfu 'l-hamza
{a="'u'([^uaiUAI])", b="أU%1"},
- {a="'i'([^uaiUAI])", b="إI%1"},
+ {a="'i'([^uaiUAI])", b="إI%1"},
+ {a="([wf]a)%-\'([^uaiUAIl][^%-])", b="%1أْ%2"},
+ {a="^u'([^uaiUAI])", b="اU%1"},
+ {a="([^uaiUAIYN][%s%(%[%<])u'([^uaiUAI])", b="%1اU%2"},
+ {a="^i'([^uaiUAI])", b="اI%1"},
+ {a="([^uaiUAIYN][%s%(%[%<])i'([^uaiUAI])", b="%1اI%2"},
-- madda (historic writing below)
{a="'a'([^uaiUAI])", b="آ%1"},
- {a="([^uiUI])\'a?A([%_%^%.]?[%`%'btjghxdrzsfqklmnywAY])", b="%1آ%2"},
+ {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"},
@@ -226,15 +231,15 @@ hamza = {
{a="([%s%(%[%<%-])(')([ua])", b="%1أ%3"},
{a="([%s%(%[%<%-])(')(i)", b="%1إ%3"},
-- final
- -- ^say'aN and .zim'aN are special orthographies
- {a="(%^sa%.?[yY])(\"?%|?)(%')(aN)", b="%1%2ئ%4"},
- {a="(.zi?m)(%')(aN)", b="%1ئ%3"},
- -- hamzah + pr. suffix: the carrier passes into yāʾ before ī so
- -- take out the following two lines:
- -- {a="(')(I%p?)$", b="إ%2"}, -- affix pr. 1st person sg.
- -- {a="(')(I)(%p?%s)", b="إ%2%3"}, -- affix pr. 1st person sg.
- {a="([^uai])(')([uai]N?%p?)$", b="%1ء%3"},
- {a="([^uai])(')([uai]N?)(%p?%s)", b="%1ء%3%4"},
+ -- mi'aT is special orthography (unlike ^say'aN and .zim'aN):
+ -- {a="(%^sa%.?[yY])(\"?%|?)(%')(aN)", b="%1%2ئ%4"}, --new
+ -- {a="(.zi?m)(%')(aN)", b="%1ئ%3"}, --new
+ {a="(mi)(%')(a[Tt])", b="%1ائ%3"},
+ {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"},
-- u
{a="(u)(')([uai]N?%p?)$", b="%1ؤ%3"},
{a="(u)(')([uai]N?)(%p?%s)", b="%1ؤ%3%4"},
@@ -260,8 +265,8 @@ hamza = {
{a="(i)(')(%p?%s)", b="%1ئ%3"},
--
-- middle
- {a="(U)(')", b="%1ء"},
- {a="([Iy])(')", b="%1ئ"},
+ {a="([UIwy])(')", b="%1ء"}, --new
+ -- {a="([Iy])(')", b="%1ئ"}, -- included in the above line
{a="([^uai])(')([uU])", b="%1ؤ%3"},
{a="([^uai])(')(%_?[aAY])", b="%1أ%3"},
{a="([^uai])(')([iI])", b="%1ئ%3"},
@@ -306,10 +311,15 @@ hamzaeasy = { -- differences marked below with 'easy'
{a="%'%_I", b="إI"},
-- taḫfīfu 'l-hamza
{a="'u'([^uaiUAI])", b="أU%1"},
- {a="'i'([^uaiUAI])", b="إI%1"},
+ {a="'i'([^uaiUAI])", b="إI%1"},
+ {a="([wf]a)%-\'([^uaiUAIl][^%-])", b="%1أْ%2"},
+ {a="^u'([^uaiUAI])", b="اU%1"},
+ {a="([^uaiUAIYN][%s%(%[%<])u'([^uaiUAI])", b="%1اU%2"},
+ {a="^i'([^uaiUAI])", b="اI%1"},
+ {a="([^uaiUAIYN][%s%(%[%<])i'([^uaiUAI])", b="%1اI%2"},
-- madda (historic writing below)
{a="'a'([^uaiUAI])", b="آ%1"},
- {a="([^uiUI])\'a?A([%_%^%.]?[%`%'btjghxdrzsfqklmnywAY])", b="%1آ%2"},
+ {a="([^uiyUI])\'a?A([%_%^%.]?[%`%'btjghxdrzsfqklmnywAY])", b="%1آ%2"},
{a="^\'a?A([%_%^%.]?[%`%'btjghxdrzsfqklmnywAY])", b="آ%1"},
{a="(%W)\'a?A([%_%^%.]?[%`%'btjghxdrzsfqklmnywAY])", b="%1آ%2"},
--easy (begin)
@@ -340,15 +350,25 @@ hamzaeasy = { -- differences marked below with 'easy'
{a="([%s%(%[%<%-])(')([ua])", b="%1أ%3"},
{a="([%s%(%[%<%-])(')(i)", b="%1إ%3"},
-- final
- -- ^say'aN and .zim'aN are special orthographies
- {a="(%^sa%.?[yY])(\"?%|?)(%')(aN)", b="%1%2ئ%4"},
- {a="(.zi?m)(%')(aN)", b="%1ئ%3"},
- -- hamzah + pr. suffix: the carrier passes into yāʾ before ī so
- -- take out the following two lines:
- -- {a="(')(I%p?)$", b="إ%2"}, -- affix pr. 1st person sg.
- -- {a="(')(I)(%p?%s)", b="إ%2%3"}, -- affix pr. 1st person sg.
- {a="([^uai])(')([uai]N?%p?)$", b="%1ء%3"},
- {a="([^uai])(')([uai]N?)(%p?%s)", b="%1ء%3%4"},
+ -- mi'aT is special orthography (unlike ^say'aN and .zim'aN)
+ -- {a="(%^sa%.?[yY])(\"?%|?)(%')(aN)", b="%1%2ئ%4"}, --new
+ -- {a="(.zi?m)(%')(aN)", b="%1ئ%3"}, --new
+ {a="(mi)(%')(a[Tt])", b="%1ائ%3"},
+ {a="(mi)(%')(aN%_?[AY])", b="%1أ%3"},
+ -- easy (begin)
+ -- The Munjid says that such words as radI'aN do not have the
+ -- 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
+ --easy (end)
-- u
{a="(u)(')([uai]N?%p?)$", b="%1ؤ%3"},
{a="(u)(')([uai]N?)(%p?%s)", b="%1ؤ%3%4"},
@@ -374,8 +394,8 @@ hamzaeasy = { -- differences marked below with 'easy'
{a="(i)(')(%p?%s)", b="%1ئ%3"},
--
-- middle
- {a="(U)(')", b="%1ء"},
- {a="([Iy])(')", b="%1ئ"},
+ {a="([Uw])(')", b="%1ء"}, --new
+ {a="([Iy])(')", b="%1ئ"}, --easy
{a="([^uai])(')([uU])", b="%1ؤ%3"},
{a="([^uai])(')(%_?[aAY])", b="%1أ%3"},
{a="([^uai])(')([iI])", b="%1ئ%3"},
@@ -409,7 +429,7 @@ tanwin = {
{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ً%3%4%4"},
+ {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)
@@ -421,7 +441,7 @@ tanwin = {
{a="%-?(\"aN)(_A)", b="ى"},
{a="%-?(\"aN)(Y)", b="ى"},
{a="(T)%-?(\"aN)", b="%1"},
- {a="(ء)%-?(\"aN)", b="%1"},
+ {a="([اآ])(ء)%-?(\"aN)", b="%1%2"}, --new
{a="([^TA])%-?(\"aN)", b="%1ا"},
{a="%-?(\"iNI?)", b=""},
-- quoted tanwīn (end)
@@ -430,7 +450,7 @@ tanwin = {
{a="%-?(aN)(_A)", b="ًى"},
{a="%-?(aN)(Y)", b="ًى"},
{a="(T)%-?(aN)", b="%1ً"},
- {a="(ء)%-?(aN)", b="%1ً"},
+ {a="([اآ])(ء)%-?(aN)", b="%1%2ً"}, --new
{a="([^TA])%-?(aN)", b="%1ًا"},
{a="%-?(iNI?)", b="ٍ"}
}
@@ -451,7 +471,7 @@ tanwineasy = { -- 'easy' requires some lines to be taken out:
-- {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ً%3%4%4"},
+-- {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)
@@ -463,7 +483,7 @@ tanwineasy = { -- 'easy' requires some lines to be taken out:
{a="%-?(\"aN)(_A)", b="ى"},
{a="%-?(\"aN)(Y)", b="ى"},
{a="(T)%-?(\"aN)", b="%1"},
- {a="(ء)%-?(\"aN)", b="%1"},
+ {a="([اآ])(ء)%-?(\"aN)", b="%1%2"}, --new
{a="([^TA])%-?(\"aN)", b="%1ا"},
{a="%-?(\"iNI?)", b=""},
-- quoted tanwīn (end)
@@ -472,7 +492,7 @@ tanwineasy = { -- 'easy' requires some lines to be taken out:
{a="%-?(aN)(_A)", b="ًى"},
{a="%-?(aN)(Y)", b="ًى"},
{a="(T)%-?(aN)", b="%1ً"},
- {a="(ء)%-?(aN)", b="%1ً"},
+ {a="([اآ])(ء)%-?(aN)", b="%1%2ً"}, --new
{a="([^TA])%-?(aN)", b="%1ًا"},
{a="%-?(iNI?)", b="ٍ"}
}
@@ -674,7 +694,7 @@ digraphs = {
{a="(ay)(o)(\"?[uai])([%S]-o)", b="%1i"},
{a="(ay)(%s)([%(%[%|%<]?)(\"?[uai])", b="%1i%2%3ا"}, --p
-- hyphen + initial alif without hamza:
- {a="([uai]%-)(\"?[uai])([%^%_%.%`]?)(%a)", b="%1ا%3%4"},
+ {a="([uai]%-)(\"?[uai])([%^%_%.%`]?)([%aإأؤئ])", b="%1ا%3%4"},
-- initial alif without hamza
{a="^([%(%[%|%<]?)(\"?[uai])", b="%1ا%2"}, --p
-- initial alif without hamza