aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arabluatex.dtx113
-rw-r--r--arabluatex_fullvoc.lua129
-rw-r--r--arabluatex_novoc.lua52
-rw-r--r--arabluatex_trans.lua23
-rw-r--r--arabluatex_voc.lua116
5 files changed, 254 insertions, 179 deletions
diff --git a/arabluatex.dtx b/arabluatex.dtx
index 613257b..52dc19f 100644
--- a/arabluatex.dtx
+++ b/arabluatex.dtx
@@ -448,9 +448,10 @@
448% corresponding \arb[trans]{tanwIn} (\arb{BuN}, \arb{B|aN}\,, 448% corresponding \arb[trans]{tanwIn} (\arb{BuN}, \arb{B|aN}\,,
449% \arb{TaN}, \arb{BaN_A} or \arb{BiN}) is generated. Finally, \meta{u, 449% \arb{TaN}, \arb{BaN_A} or \arb{BiN}) is generated. Finally, \meta{u,
450% a, i} at the commencement of a word indicate a \enquote{connective 450% a, i} at the commencement of a word indicate a \enquote{connective
451% \arb[trans]{'alif}\,} (\arb[trans]{'alifu 'l-wa.sli}), but |voc| mode 451% \arb[trans]{'alif}\,} (\arb[trans]{'alifu 'l-wa.sli}), but |voc|
452% does not show the \arb[trans]{wa.slaT} above the \arb[trans]{'alif}; 452% mode does not show the \arb[trans]{wa.slaT} above the
453% instead, the accompanying vowel is expressed (\arb{u a i}). 453% \arb[trans]{'alif}; instead, the accompanying vowel may be expressed
454% at the beginning of a sentence (\arb{u} \arb{a} \arb{i}).
454% 455%
455% \DescribeOption{fullvoc}\\ \label{fullvoc-mode}In addition to what 456% \DescribeOption{fullvoc}\\ \label{fullvoc-mode}In addition to what
456% the |voc| mode does, |fullvoc| expresses the \arb[trans]{sukUn} and 457% the |voc| mode does, |fullvoc| expresses the \arb[trans]{sukUn} and
@@ -863,7 +864,7 @@ vowels (see §~3).
863% 864%
864% \paragraph{\arb[trans]{\cap{`amruNU}}, and the silent 865% \paragraph{\arb[trans]{\cap{`amruNU}}, and the silent
865% \arb[novoc]{U}} To that name a silent \arb[novoc]{U} is added to 866% \arb[novoc]{U}} To that name a silent \arb[novoc]{U} is added to
866% distinguish it from \arb[trans]{\cap{`umaruN}}: see \textcite[i. 12 867% distinguish it from \arb[trans]{\cap{`umar-u}}: see \textcite[i. 12
867% C]{Wright}. In no way this affects the sound of the 868% C]{Wright}. In no way this affects the sound of the
868% \arb[trans]{tanwIn}, so it has to be discarded in |trans| mode: 869% \arb[trans]{tanwIn}, so it has to be discarded in |trans| mode:
869% \begin{quote} 870% \begin{quote}
@@ -996,7 +997,7 @@ vowels (see §~3).
996% \arb[voc]{'a^syA'-a} \arb[trans]{'a^syA'-a}, |.zim'aN| 997% \arb[voc]{'a^syA'-a} \arb[trans]{'a^syA'-a}, |.zim'aN|
997% \arb[voc]{.zim'aN} \arb[trans]{.zim'aN}. 998% \arb[voc]{.zim'aN} \arb[trans]{.zim'aN}.
998% 999%
999% \textbf{\arb[trans]{ta_hfIfu 'l-hamzaTi}}: if the 1000% \textbf{\arb[trans]{ta_hfIf-u 'l-hamzaT-i}}: if the
1000% \arb[trans]{hamzaT} has \arb[trans]{jazmaT} and is preceded by 1001% \arb[trans]{hamzaT} has \arb[trans]{jazmaT} and is preceded by
1001% \emph{\arb[trans]{'alif} hamzatum}, it must be changed into the 1002% \emph{\arb[trans]{'alif} hamzatum}, it must be changed into the
1002% letter of prolongation that is homogeneous with the preceding 1003% letter of prolongation that is homogeneous with the preceding
@@ -1029,8 +1030,8 @@ vowels (see §~3).
1029%</example> 1030%</example>
1030% \fi 1031% \fi
1031% 1032%
1032% \package{arabluatex} otherwise determines \arb[trans]{al-'alifu 1033% \package{arabluatex} otherwise determines \arb[trans]{al-'alif-u
1033% 'l-mamdUdaTu} by context analysis. 1034% 'l-mamdUdaT-u} by context analysis.
1034% 1035%
1035% \begin{quote} 1036% \begin{quote}
1036% |'is'AduN| \arb[voc]{'is'AduN} \arb[trans]{'is'AduN}, |'AkilUna| 1037% |'is'AduN| \arb[voc]{'is'AduN} \arb[trans]{'is'AduN}, |'AkilUna|
@@ -1158,7 +1159,6 @@ vowels (see §~3).
1158% |fa-lammA| |ra'aW| |'l-najm-a| \arb[fullvoc]{fa-lammA ra'aW 1159% |fa-lammA| |ra'aW| |'l-najm-a| \arb[fullvoc]{fa-lammA ra'aW
1159% 'l-najm-a} \arb[trans]{fa-lammA ra'aW 'l-najm-a}. 1160% 'l-najm-a} \arb[trans]{fa-lammA ra'aW 'l-najm-a}.
1160% 1161%
1161% \newpage
1162% \textbf{Particles}:--- 1162% \textbf{Particles}:---
1163% \begin{compactenum}[(a)] 1163% \begin{compactenum}[(a)]
1164% \item \arb[trans]{li-}: \arb[trans]{'alif-u 'l-wa.sl-i} is omitted 1164% \item \arb[trans]{li-}: \arb[trans]{'alif-u 'l-wa.sl-i} is omitted
@@ -1198,11 +1198,17 @@ vowels (see §~3).
1198% \arb[trans]{'awi ismu-hu}, |zayduN| |ibn-u| |`amriNU| 1198% \arb[trans]{'awi ismu-hu}, |zayduN| |ibn-u| |`amriNU|
1199% \arb[fullvoc]{\cap{z}ayduN ibn-u \cap{`amriNU}} 1199% \arb[fullvoc]{\cap{z}ayduN ibn-u \cap{`amriNU}}
1200% \arb[trans]{\cap{z}ayduN ibn-u 1200% \arb[trans]{\cap{z}ayduN ibn-u
1201% \cap{`amriNU}},\footnote{\enquote{\arb[trans]{\cap{z}ayd} is the 1201% \cap{`amriNU}},\footnote{\label{fn:zayd-is-son}%
1202% son of \arb[trans]{\cap{`a}mr}}: the second noun is not in 1202% \enquote{\arb[trans]{\cap{z}ayd} is the son of
1203% apposition to the first, but forms part of the predicate. Hence 1203% \arb[trans]{\cap{`a}mr}}: the second noun is not in apposition to
1204% \arb[voc]{zayduN ibn-u `amriNU} and not \arb[voc]{zayd-u bn-u 1204% the first, but forms part of the predicate. Hence \arb[voc]{zayduN
1205% `amriNU}, \enquote{Zayd, son of ʿAmr}.} |imru'-u| |'l-qays-i| 1205% ibn-u `amriNU} and not \arb[voc]{zayd-u bn-u `amriNU},
1206% \enquote{Zayd, son of ʿAmr}.} |`umar-u| |ibn-u| |'l-_ha.t.tAb-i|
1207% \arb[fullvoc]{\cap{`umar}-u ibn-u \cap{'l-_ha.t.tAb-i}}
1208% \arb[trans]{\cap{`umar}-u ibn-u
1209% \cap{'l-_ha.t.tAb-i}},\footnote{\enquote{\arb[trans]{\cap{`umar}}
1210% is the son of \arb[trans]{\cap{al-_ha.t.tAb}}} (see
1211% \vref{fn:zayd-is-son}).} |imru'-u| |'l-qays-i|
1206% \arb[fullvoc]{imru'-u 'l-qays-i} \arb[trans]{\cap{i}mru'-u 1212% \arb[fullvoc]{imru'-u 'l-qays-i} \arb[trans]{\cap{i}mru'-u
1207% \cap{'l-qays-i}}, |la-aymun-u| |'l-l_ah-i| 1213% \cap{'l-qays-i}}, |la-aymun-u| |'l-l_ah-i|
1208% \arb[fullvoc]{la-aymun-u 'l-l_ah-i} \arb[trans]{la-aymun-u 1214% \arb[fullvoc]{la-aymun-u 'l-l_ah-i} \arb[trans]{la-aymun-u
@@ -1219,7 +1225,9 @@ vowels (see §~3).
1219% 'l-nAs-i}, |'abU| |'l-wazIr-i| \arb[fullvoc]{'abU 'l-wazIr-i} 1225% 'l-nAs-i}, |'abU| |'l-wazIr-i| \arb[fullvoc]{'abU 'l-wazIr-i}
1220% \arb[trans]{'abU 'l-wazIr-i}, |fI| |'l-ibtidA'-i| \arb[fullvoc]{fI 1226% \arb[trans]{'abU 'l-wazIr-i}, |fI| |'l-ibtidA'-i| \arb[fullvoc]{fI
1221% 'l-ibtidA'-i} \arb[trans]{fI 'l-ibtidA'-i}, |_dU 'l-i`lAl-i| 1227% 'l-ibtidA'-i} \arb[trans]{fI 'l-ibtidA'-i}, |_dU 'l-i`lAl-i|
1222% \arb[fullvoc]{_dU 'l-i`lAl-i} \arb[trans]{_dU 'l-i`lAl-i}. 1228% \arb[fullvoc]{_dU 'l-i`lAl-i} \arb[trans]{_dU 'l-i`lAl-i},
1229% |maqh_A| |'l-'amIr-i| \arb[voc]{maqh_A 'l-'amIr-i}
1230% \arb[trans]{maqh_A 'l-'amIr-i}.
1223% \end{quote} 1231% \end{quote}
1224% 1232%
1225% \subparagraph{\arb[trans]{'alif-u 'l-wa.sl-i} preceded by a diphthong} 1233% \subparagraph{\arb[trans]{'alif-u 'l-wa.sl-i} preceded by a diphthong}
@@ -1247,8 +1255,8 @@ vowels (see §~3).
1247% cases \parencite[i. 22 A--C]{Wright}, it is encoded explicitly, like 1255% cases \parencite[i. 22 A--C]{Wright}, it is encoded explicitly, like
1248% so:--- 1256% so:---
1249% \begin{quote} 1257% \begin{quote}
1250% |'antumu| |'l-kA_dibUna| \arb[fullvoc]{'antumu 'l-kA_dibUna} 1258% |'antumu| |'l-kA_dib-Una| \arb[fullvoc]{'antumu 'l-kA_dib-Una}
1251% \arb[trans]{'antumu 'l-kA_dibUna}, |ra'aytumu| |'l-rajul-a| 1259% \arb[trans]{'antumu 'l-kA_dib-Una}, |ra'aytumu| |'l-rajul-a|
1252% \arb[fullvoc]{ra'aytumu 'l-rajul-a} \arb[trans]{ra'aytumu 1260% \arb[fullvoc]{ra'aytumu 'l-rajul-a} \arb[trans]{ra'aytumu
1253% 'l-rajul-a}, |mani| |'l-ka_d_dAb-u| \arb[fullvoc]{mani 1261% 'l-rajul-a}, |mani| |'l-ka_d_dAb-u| \arb[fullvoc]{mani
1254% 'l-ka_d_dAb-u} \arb[trans]{mani 'l-ka_d_dAb-u}, |qatalati| 1262% 'l-ka_d_dAb-u} \arb[trans]{mani 'l-ka_d_dAb-u}, |qatalati|
@@ -1315,9 +1323,9 @@ vowels (see §~3).
1315% |'a_hAfu| |mina| |'l-malik-i| |'lla_dI| |ya.zlimu| |'l-nAs-a| 1323% |'a_hAfu| |mina| |'l-malik-i| |'lla_dI| |ya.zlimu| |'l-nAs-a|
1316% \arb[fullvoc]{'a_hAfu mina 'l-malik-i 'lla_dI ya.zlimu 'l-nAs-a} 1324% \arb[fullvoc]{'a_hAfu mina 'l-malik-i 'lla_dI ya.zlimu 'l-nAs-a}
1317% \arb[trans]{'a_hAfu mina 'l-malik-i 'lla_dI ya.zlimu 'l-nAs-a}, 1325% \arb[trans]{'a_hAfu mina 'l-malik-i 'lla_dI ya.zlimu 'l-nAs-a},
1318% |`udtu| |'l-^say_h-a| |'lladI| |huwa| |marI.duN| 1326% |`udtu| |'l-^say_h-a| |'lla_dI| |huwa| |marI.duN|
1319% \arb[fullvoc]{`udtu 'l-^say_h-a 'lladI huwa marI.duN} 1327% \arb[fullvoc]{`udtu 'l-^say_h-a 'lla_dI huwa marI.duN}
1320% \arb[trans]{`udtu 'l-^say_h-a 'lladI huwa marI.duN}, |mA| |'anA| 1328% \arb[trans]{`udtu 'l-^say_h-a 'lla_dI huwa marI.duN}, |mA| |'anA|
1321% |bi-'lla_dI| |qA'iluN| |la-ka| |^say'aN| \arb[fullvoc]{mA 'anA 1329% |bi-'lla_dI| |qA'iluN| |la-ka| |^say'aN| \arb[fullvoc]{mA 'anA
1322% bi-'lla_dI qA'iluN la-ka ^say'aN} \arb[trans]{mA 'anA bi-'lla_dI 1330% bi-'lla_dI qA'iluN la-ka ^say'aN} \arb[trans]{mA 'anA bi-'lla_dI
1323% qA'iluN la-ka ^say'aN}. 1331% qA'iluN la-ka ^say'aN}.
@@ -1329,11 +1337,11 @@ vowels (see §~3).
1329% \end{quote} 1337% \end{quote}
1330% The other forms are encoded regularly as |al-l| or |'l-l|:--- 1338% The other forms are encoded regularly as |al-l| or |'l-l|:---
1331% \begin{quote} 1339% \begin{quote}
1332% |fa-'innA| |na_dkuru| |'l-.sawtayni| |'l-la_dayni| |rawaynA-humA| 1340% |fa-'innA| |na_dkuru| |'l-.sawt-ayni| |'l-la_dayni| |rawaynA-humA|
1333% |`an| |ja.h.zaT-a| \arb[fullvoc]{fa-'innA na_dkuru 'l-.sawtayni 1341% |`an| |ja.h.zaT-a| \arb[fullvoc]{fa-'innA na_dkuru 'l-.sawt-ayni
1334% 'l-la_dayni rawaynA-humA `an \cap{ja.h.zaT-a}} \arb[trans]{fa-'innA 1342% 'l-la_dayni rawaynA-humA `an \cap{ja.h.zaT-a}}
1335% na_dkuru 'l-.sawtayni 'l-la_dayni rawaynA-humA `an 1343% \arb[trans]{fa-'innA na_dkuru 'l-.sawt-ayni 'l-la_dayni
1336% \cap{ja.h.zaT-a}}. 1344% rawaynA-humA `an \cap{ja.h.zaT-a}}.
1337% 1345%
1338% And also: |al-la_dAni| \arb[fullvoc]{al-la_dAni} 1346% And also: |al-la_dAni| \arb[fullvoc]{al-la_dAni}
1339% \arb[trans]{al-la_dAni}, |al-la_dayni| \arb[fullvoc]{al-la_dayni} 1347% \arb[trans]{al-la_dAni}, |al-la_dayni| \arb[fullvoc]{al-la_dayni}
@@ -1793,8 +1801,8 @@ vowels (see §~3).
1793% \end{compactenum} 1801% \end{compactenum}
1794% \DescribeMacro{\arbup} By default, \package{arabluatex} applies rule 1802% \DescribeMacro{\arbup} By default, \package{arabluatex} applies rule
1795% \ref{ref:dmg-up-rend}. Once delimited by a set of Lua functions, 1803% \ref{ref:dmg-up-rend}. Once delimited by a set of Lua functions,
1796% every \arb[trans]{tanwIn} is passed as an argument on to a 1804% \arb[trans]{'i`rAb} is passed as an argument on to a \cs{arbup}
1797% \cs{arbup} command which is set to \cs{textsuperscript}. 1805% command which is set to \cs{textsuperscript}.
1798% 1806%
1799% \DescribeMacro{\NoArbUp} \DescribeMacro{\ArbUpDflt} \cs{NoArbUp} may 1807% \DescribeMacro{\NoArbUp} \DescribeMacro{\ArbUpDflt} \cs{NoArbUp} may
1800% be used either in the preamble or at any point of the document in 1808% be used either in the preamble or at any point of the document in
@@ -1803,7 +1811,7 @@ vowels (see §~3).
1803% any point of the document. 1811% any point of the document.
1804% 1812%
1805% \DescribeMacro{\SetArbUp} Finally, \cs{SetArbUp}\marg{formatting 1813% \DescribeMacro{\SetArbUp} Finally, \cs{SetArbUp}\marg{formatting
1806% directives} may be used to customize the way \arb[trans]{tanwIn} is 1814% directives} may be used to customize the way \arb[trans]{'i`rAb} is
1807% displayed. To take one example, here is how Arabic 1815% displayed. To take one example, here is how Arabic
1808% \arb[trans]{'i`rAb} may be rendered as subscript text:--- 1816% \arb[trans]{'i`rAb} may be rendered as subscript text:---
1809% \iffalse 1817% \iffalse
@@ -1822,7 +1830,54 @@ muhaddamaTaN mi'_danatu-hu}: \arb[trans]{ra'aytu
1822% As shown in the above example, |#1| is the token that is replaced 1830% As shown in the above example, |#1| is the token that is replaced
1823% with the actual \arb[trans]{tanwIn} in the formatting directives of 1831% with the actual \arb[trans]{tanwIn} in the formatting directives of
1824% the \cs{SetArbUp} command. 1832% the \cs{SetArbUp} command.
1825% 1833%
1834% \paragraph{\arb[trans]{'i`rAb} boundaries}
1835% Every declinable noun (\arb[trans]{mu`rab}) may be declined either
1836% with or without \arb[trans]{tanwIn}, viz. \arb[trans]{mun.sarifuN}
1837% or \arb[trans]{.gayr-u mun.sarifiN}. The former is automatically
1838% parsed by \package{arabluatex}, whereas the latter has to be
1839% delimited with an hyphen, like so:---
1840% \begin{quote}
1841% \arb[trans]{\textbf{mun.sarif}}: |mu`allimuN|
1842% \arb[voc]{mu`allimuN} \arb[trans]{mu`allimuN}, |kA'inuN|
1843% \arb[voc]{kA'inuN} \arb[trans]{kA'inuN}, |kA'inAtuN|
1844% \arb[voc]{kA'inAtuN} \arb[trans]{kA'inAtuN}, |\cap{`amraNU}|
1845% \arb[voc]{\cap{`amraNU}} \arb[trans]{\cap{`amraNU}}, |fataN_A|
1846% \arb[voc]{fataN_A} \arb[trans]{fataN_A}.
1847%
1848% \arb[trans]{\textbf{.gayr mun.sarif}}: |al-mu`allim-u|
1849% \arb[voc]{al-mu`allim-u} \arb[trans]{al-mu`allim-u}, |kitAb-Ani|
1850% \arb[voc]{kitAb-Ani} \arb[trans]{kitAb-Ani}, |ra^sa'-Ani|
1851% \arb[voc]{ra^sa'-Ani} \arb[trans]{ra^sa'-Ani}, |sAriq-Una|
1852% \arb[voc]{sAriq-Una} \arb[trans]{sAriq-Una}, |qA.d-Una|
1853% \arb[voc]{qA.d-Una} \arb[trans]{qA.d-Una}, |al-.zulm-Atu|
1854% \arb[voc]{al-.zulm-Atu} \arb[trans]{al-.zulm-Atu}.
1855% \end{quote}
1856%
1857% \begin{quoting}
1858% \textsc{Rem.}~\emph{a.} As the \arb[trans]{tanwIn} is passed over
1859% in pronunciation when it is followed by the letters
1860% \arb[novoc]{r}, \arb[novoc]{l}, \arb[novoc]{m}, \arb[novoc]{w},
1861% \arb[novoc]{y} (see \vref{ref:assimilation}), it may be desirable
1862% to further distinguish it by putting it above the line, but not to
1863% do the same for \arb[trans]{.gayr mun.sarif} terminations. This
1864% can be achieved by simply omitting the hyphen before any
1865% \arb[trans]{.gayr mun.sarif} termination:---\\
1866% |kAna| |.ganiyyaN| |l_akinna-hu| |labisa| |^gubbaTaN| |mumazzaqaN|
1867% |'aydu-hA| \arb[voc]{kAna .ganiyyaN l_akinna-hu labisa ^gubbaTaN
1868% mumazzaqaN 'aydu-hA} \arb[trans]{kAna .ganiyyaN l_akinna-hu labisa
1869% ^gubbaTaN mumazzaqaN 'aydu-hA}.
1870%
1871% \textsc{Rem.}~\emph{b.} Although the hyphen before the
1872% \arb[trans]{tanwIn} is optional as \package{arabluatex} always
1873% parses nouns with such termination, it may also be used to mark
1874% better the inflectional endings:---\\
1875% |mana`a| |'l-nAs-a| |kAffaT-aN| |min| |mu_hA.tabati-hi|
1876% |'a.had-uN| |bi-sayyidi-nA| \arb[voc]{mana`a 'l-nAs-a kAffaT-aN
1877% min mu_hA.tabati-hi 'a.had-uN bi-sayyidi-nA} \arb[trans]{mana`a
1878% 'l-nAs-a kAffaT-aN min mu_hA.tabati-hi 'a.had-uN bi-sayyidi-nA}.
1879% \end{quoting}
1880%
1826% \subsection{Examples} 1881% \subsection{Examples}
1827% \label{sec:examples-translit} 1882% \label{sec:examples-translit}
1828% Here follows in transliteration the story of 1883% Here follows in transliteration the story of
@@ -2226,7 +2281,7 @@ wa-ya.sIru ta.hta 'l-jild-i
2226% \end{macrocode} 2281% \end{macrocode}
2227% \end{macro} 2282% \end{macro}
2228% \begin{macro}{\arbup} 2283% \begin{macro}{\arbup}
2229% \changes{v1.3}{2016/05/19}{\arb[trans]{tanwIn} is now written as 2284% \changes{v1.3}{2016/05/19}{\arb[trans]{'i`rAb} is now written as
2230% superscript text in \texttt{dmg} mode by default.} 2285% superscript text in \texttt{dmg} mode by default.}
2231% \begin{macro}{\NoArbUp} 2286% \begin{macro}{\NoArbUp}
2232% \begin{macro}{\ArbUpDflt} 2287% \begin{macro}{\ArbUpDflt}
diff --git a/arabluatex_fullvoc.lua b/arabluatex_fullvoc.lua
index f9d4e60..e4a9495 100644
--- a/arabluatex_fullvoc.lua
+++ b/arabluatex_fullvoc.lua
@@ -53,8 +53,9 @@ hamzafv = {
53 {a="'i'([^uaiUAI])", b="إI%1"}, 53 {a="'i'([^uaiUAI])", b="إI%1"},
54 -- madda (historic writing below) 54 -- madda (historic writing below)
55 {a="'a'([^uaiUAI])", b="آ%1"}, 55 {a="'a'([^uaiUAI])", b="آ%1"},
56--tmp {a="'a?A([%_%^%.]?[%`%'btjghdrzsfqklmnywAY])", b="آ%1"}, 56 {a="([^uiUI])\'a?A([%_%^%.]?[%`%'btjghdrzsfqklmnywAY])", b="%1آ%2"},
57 {a="([^UIui])'a?A([%_%^%.]?[%`%'btjghdrzsfqklmnywAY])", b="%1آ%2"}, 57 {a="^\'a?A([%_%^%.]?[%`%'btjghdrzsfqklmnywAY])", b="آ%1"},
58 {a="(%W)\'a?A([%_%^%.]?[%`%'btjghdrzsfqklmnywAY])", b="%1آ%2"},
58 {a="(A)(')(uN?)$", b="aآء%3"}, 59 {a="(A)(')(uN?)$", b="aآء%3"},
59 {a="(A)(')(uN?)(%W)", b="aآء%3%4"}, 60 {a="(A)(')(uN?)(%W)", b="aآء%3%4"},
60 {a="(A)(')(iN?)$", b="aآء%3"}, 61 {a="(A)(')(iN?)$", b="aآء%3"},
@@ -148,8 +149,9 @@ hamzafveasy = { -- differences marked below with 'easy'
148 {a="'i'([^uaiUAI])", b="إI%1"}, 149 {a="'i'([^uaiUAI])", b="إI%1"},
149 -- madda (historic writing below) 150 -- madda (historic writing below)
150 {a="'a'([^uaiUAI])", b="آ%1"}, 151 {a="'a'([^uaiUAI])", b="آ%1"},
151--tmp {a="'a?A([%_%^%.]?[%`%'btjghdrzsfqklmnywAY])", b="آ%1"}, 152 {a="([^uiUI])\'a?A([%_%^%.]?[%`%'btjghdrzsfqklmnywAY])", b="%1آ%2"},
152 {a="([^UIui])'a?A([%_%^%.]?[%`%'btjghdrzsfqklmnywAY])", b="%1آ%2"}, 153 {a="^\'a?A([%_%^%.]?[%`%'btjghdrzsfqklmnywAY])", b="آ%1"},
154 {a="(%W)\'a?A([%_%^%.]?[%`%'btjghdrzsfqklmnywAY])", b="%1آ%2"},
153 --easy (begin) 155 --easy (begin)
154 {a="(A)(')(uN?)$", b="aاء%3"}, 156 {a="(A)(')(uN?)$", b="aاء%3"},
155 {a="(A)(')(uN?)(%W)", b="aاء%3%4"}, 157 {a="(A)(')(uN?)(%W)", b="aاء%3%4"},
@@ -215,73 +217,73 @@ hamzafveasy = { -- differences marked below with 'easy'
215} 217}
216 218
217tanwinfv = { 219tanwinfv = {
218 {a="uNU", b="ٌو"}, 220 {a="%-?uNU", b="ٌو"},
219 {a="aNU", b="ًوا"}, 221 {a="%-?aNU", b="ًوا"},
220 {a="iNU", b="ٍو"}, 222 {a="%-?iNU", b="ٍو"},
221 {a="([uai]N)(%s)([uai])", b="%1%2ٱ"}, 223 {a="%-?([uai]N)(%s)([uai])", b="%1%2ٱ"},
222 {a="(aN[%_]?[AY])(%s)([uai])", b="%1%2ٱ"}, 224 {a="%-?(aN[%_]?[AY])(%s)([uai])", b="%1%2ٱ"},
223 -- assimilations (begin) 225 -- assimilations (begin)
224 {a="(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"}, 226 {a="%-?(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"},
225 {a="(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"}, 227 {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"},
226 {a="(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"}, 228 {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"},
227 {a="(T)(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"}, 229 {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
228 {a="(ء)(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"}, 230 {a="(ء)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
229 {a="([^TA])(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"}, 231 {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"},
230 {a="(iN)(%s)([rlmnwy])", b="ٍ%2%3%3"}, 232 {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"},
231 -- assimilations (end) 233 -- assimilations (end)
232 -- quoted tanwīn (begin) 234 -- quoted tanwīn (begin)
233 {a="(\"uN)", b=""}, 235 {a="%-?(\"uN)", b=""},
234 {a="(B)(\"aN)", b="%1"}, 236 {a="(B)%-?(\"aN)", b="%1"},
235 {a="(\"aN)(_A)", b="ى"}, 237 {a="%-?(\"aN)(_A)", b="ى"},
236 {a="(\"aN)(Y)", b="ى"}, 238 {a="%-?(\"aN)(Y)", b="ى"},
237 {a="(T)(\"aN)", b="%1"}, 239 {a="(T)%-?(\"aN)", b="%1"},
238 {a="(ء)(\"aN)", b="%1"}, 240 {a="(ء)%-?(\"aN)", b="%1"},
239 {a="([^TA])(\"aN)", b="%1ا"}, 241 {a="([^TA])%-?(\"aN)", b="%1ا"},
240 {a="(\"iN)", b=""}, 242 {a="%-?(\"iNI?)", b=""},
241 -- quoted tanwīn (end) 243 -- quoted tanwīn (end)
242 {a="(uN)", b="ٌ"}, 244 {a="%-?(uN)", b="ٌ"},
243 {a="(B)(aN)", b="%1ً"}, 245 {a="(B)%-?(aN)", b="%1ً"},
244 {a="(aN)(_A)", b="ًى"}, 246 {a="%-?(aN)(_A)", b="ًى"},
245 {a="(aN)(Y)", b="ًى"}, 247 {a="%-?(aN)(Y)", b="ًى"},
246 {a="(T)(aN)", b="%1ً"}, 248 {a="(T)%-?(aN)", b="%1ً"},
247 {a="(ء)(aN)", b="%1ً"}, 249 {a="(ء)%-?(aN)", b="%1ً"},
248 {a="([^TA])(aN)", b="%1ًا"}, 250 {a="([^TA])%-?(aN)", b="%1ًا"},
249 {a="(iNI?)", b="ٍ"} 251 {a="%-?(iNI?)", b="ٍ"}
250} 252}
251 253
252tanwinfveasy = { -- no assimilations (see below) 254tanwinfveasy = { -- no assimilations (see below)
253 {a="uNU", b="ٌو"}, 255 {a="%-?uNU", b="ٌو"},
254 {a="aNU", b="ًوا"}, 256 {a="%-?aNU", b="ًوا"},
255 {a="iNU", b="ٍو"}, 257 {a="%-?iNU", b="ٍو"},
256 {a="([uai]N)(%s)([uai])", b="%1%2ٱ"}, 258 {a="%-?([uai]N)(%s)([uai])", b="%1%2ٱ"},
257 {a="(aN[%_]?[AY])(%s)([uai])", b="%1%2ٱ"}, 259 {a="%-?(aN[%_]?[AY])(%s)([uai])", b="%1%2ٱ"},
258 -- assimilations (begin) 260 -- assimilations (begin)
259--easy {a="(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"}, 261--easy {a="%-?(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"},
260--easy {a="(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"}, 262--easy {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"},
261--easy {a="(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"}, 263--easy {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"},
262--easy {a="(T)(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"}, 264--easy {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
263--easy {a="(ء)(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"}, 265--easy {a="(ء)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
264--easy {a="([^TA])(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"}, 266--easy {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"},
265--easy {a="(iN)(%s)([rlmnwy])", b="ٍ%2%3%3"}, 267--easy {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"},
266 -- assimilations (end) 268 -- assimilations (end)
267 -- quoted tanwīn (begin) 269 -- quoted tanwīn (begin)
268 {a="(\"uN)", b=""}, 270 {a="%-?(\"uN)", b=""},
269 {a="(B)(\"aN)", b="%1"}, 271 {a="(B)%-?(\"aN)", b="%1"},
270 {a="(\"aN)(_A)", b="ى"}, 272 {a="%-?(\"aN)(_A)", b="ى"},
271 {a="(\"aN)(Y)", b="ى"}, 273 {a="%-?(\"aN)(Y)", b="ى"},
272 {a="(T)(\"aN)", b="%1"}, 274 {a="(T)%-?(\"aN)", b="%1"},
273 {a="(ء)(\"aN)", b="%1"}, 275 {a="(ء)%-?(\"aN)", b="%1"},
274 {a="([^TA])(\"aN)", b="%1ا"}, 276 {a="([^TA])%-?(\"aN)", b="%1ا"},
275 {a="(\"iN)", b=""}, 277 {a="%-?(\"iNI?)", b=""},
276 -- quoted tanwīn (end) 278 -- quoted tanwīn (end)
277 {a="(uN)", b="ٌ"}, 279 {a="%-?(uN)", b="ٌ"},
278 {a="(B)(aN)", b="%1ً"}, 280 {a="(B)%-?(aN)", b="%1ً"},
279 {a="(aN)(_A)", b="ًى"}, 281 {a="%-?(aN)(_A)", b="ًى"},
280 {a="(aN)(Y)", b="ًى"}, 282 {a="%-?(aN)(Y)", b="ًى"},
281 {a="(T)(aN)", b="%1ً"}, 283 {a="(T)%-?(aN)", b="%1ً"},
282 {a="(ء)(aN)", b="%1ً"}, 284 {a="(ء)%-?(aN)", b="%1ً"},
283 {a="([^TA])(aN)", b="%1ًا"}, 285 {a="([^TA])%-?(aN)", b="%1ًا"},
284 {a="(iNI?)", b="ٍ"} 286 {a="%-?(iNI?)", b="ٍ"}
285} 287}
286 288
287trigraphsfv = { -- trigraphs or more 289trigraphsfv = { -- trigraphs or more
@@ -457,10 +459,10 @@ digraphsfv = {
457 {a="yy", b="يّ"}, 459 {a="yy", b="يّ"},
458 -- sukūn begin 460 -- sukūn begin
459 --tmp: next line is added 461 --tmp: next line is added
460 {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])%-(%_?[uaiUAIY])", b="%1%2"}, 462 {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])%-([uaiUAI])", b="%1%2"},
461 {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])$", b="%1ْ"}, 463 {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])$", b="%1ْ"},
462 {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])([%s])", b="%1ْ%2"}, 464 {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])([%s])", b="%1ْ%2"},
463 {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])%-(%_?[^uaiUAIًٌٍ])", b="%1ْ%2"}, 465 {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])([%_]?[^%_uaiUAIYًٌٍ])", b="%1ْ%2"},
464 -- take out sukūn in cases of assimilation 466 -- take out sukūn in cases of assimilation
465 {a="(n)(ْ)(%s)([روي])", b="%1%3%4"}, 467 {a="(n)(ْ)(%s)([روي])", b="%1%3%4"},
466 {a="(n)(ْ)(%s)([ل])", b="%1%3%4"}, 468 {a="(n)(ْ)(%s)([ل])", b="%1%3%4"},
@@ -559,7 +561,7 @@ digraphsfveasy = { -- see the diffenrences under 'easy' marker below
559 -- so there be no need to edit them: 561 -- so there be no need to edit them:
560 {a="ْ", b=""}, 562 {a="ْ", b=""},
561 --tmp: next line is added 563 --tmp: next line is added
562-- {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])%-([uai])", b="%1%2"}, 564-- {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])%-([uaiUAI])", b="%1%2"},
563-- {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])$", b="%1ْ"}, 565-- {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])$", b="%1ْ"},
564-- {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])([%s])", b="%1ْ%2"}, 566-- {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])([%s])", b="%1ْ%2"},
565-- {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])([%_]?[^%_uaiUAIًٌٍ])", b="%1ْ%2"}, 567-- {a="([%_%^%.]?[Bbtjghxdrzs%`fqklmnwy])([%_]?[^%_uaiUAIًٌٍ])", b="%1ْ%2"},
@@ -654,4 +656,3 @@ singlefveasy = { -- see the differences under 'easy' tag below
654 {a="([^0-9])%-([^0-9])", b="%1%2"}, 656 {a="([^0-9])%-([^0-9])", b="%1%2"},
655 {a="B", b="ـ"}, 657 {a="B", b="ـ"},
656} 658}
657
diff --git a/arabluatex_novoc.lua b/arabluatex_novoc.lua
index 16f3b51..f069f5a 100644
--- a/arabluatex_novoc.lua
+++ b/arabluatex_novoc.lua
@@ -23,36 +23,36 @@ along with this program. If not, see
23--]] 23--]]
24 24
25tanwinnv = { 25tanwinnv = {
26 {a="uNU", b="و"}, 26 {a="%-?uNU", b="و"},
27 {a="aNU", b="وا"}, 27 {a="%-?aNU", b="وا"},
28 {a="iNU", b="و"}, 28 {a="%-?iNU", b="و"},
29 -- assimilations (begin). These are good but may not apply here. 29 -- assimilations (begin). These are good but may not apply here.
30-- {a="(uN)(%s)([rlmnwy])", b="|%2%3%3"}, 30-- {a="%-?(uN)(%s)([rlmnwy])", b="|%2%3%3"},
31-- {a="(aN)(_A)(%s)([rlmnwy])", b="ى%3%4%4"}, 31-- {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ى%3%4%4"},
32-- {a="(aN)(Y)(%s)([rlmnwy])", b="ى%3%4%4"}, 32-- {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ى%3%4%4"},
33-- {a="(T)(aN)(%s)([rlmnwy])", b="%1%3%4%4"}, 33-- {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1%3%4%4"},
34-- {a="(ء)(aN)(%s)([rlmnwy])", b="%1%3%4%4"}, 34-- {a="(ء)%-?(aN)(%s)([rlmnwy])", b="%1%3%4%4"},
35-- {a="([^TA])(aN)(%s)([rlmnwy])", b="%1ا%3%4%4"}, 35-- {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ا%3%4%4"},
36-- {a="(iN)(%s)([rlmnwy])", b="|%2%3%3"}, 36-- {a="%-?(iNI?)(%s)([rlmnwy])", b="|%2%3%3"},
37 -- assimilations (end) 37 -- assimilations (end)
38 -- "quoted" tanwīn (begin) 38 -- "quoted" tanwīn (begin)
39 {a="(\"uN)", b="ٌ"}, 39 {a="%-?(\"uN)", b="ٌ"},
40 {a="(B)(\"aN)", b="%1ً"}, 40 {a="(B)%-?(\"aN)", b="%1ً"},
41 {a="(\"aN)(_A)", b="ًى"}, 41 {a="%-?(\"aN)(_A)", b="ًى"},
42 {a="(\"aN)(Y)", b="ًى"}, 42 {a="%-?(\"aN)(Y)", b="ًى"},
43 {a="(T)(\"aN)", b="%1ً"}, 43 {a="(T)%-?(\"aN)", b="%1ً"},
44 {a="(ء)(\"aN)", b="%1ً"}, 44 {a="(ء)%-?(\"aN)", b="%1ً"},
45 {a="([^TA])(\"aN)", b="%1ًا"}, 45 {a="([^TA])%-?(\"aN)", b="%1ًا"},
46 {a="(\"iN)", b="ٍ"}, 46 {a="%-?(\"iNI?)", b="ٍ"},
47 -- "quoted" tanwīn (end) 47 -- "quoted" tanwīn (end)
48 {a="(uN)", b=""}, 48 {a="%-?(uN)", b=""},
49 {a="(B)(aN)", b="%1"}, 49 {a="(B)%-?(aN)", b="%1"},
50 {a="(aN)(_A)", b="ى"}, 50 {a="%-?(aN)(_A)", b="ى"},
51 {a="(aN)(Y)", b="ى"}, 51 {a="%-?(aN)(Y)", b="ى"},
52 {a="(T)(aN)", b="%1"}, 52 {a="(T)%-?(aN)", b="%1"},
53 {a="(ء)(aN)", b="%1"}, 53 {a="(ء)%-?(aN)", b="%1"},
54 {a="([^TA])(aN)", b="%1ا"}, 54 {a="([^TA])%-?(aN)", b="%1ا"},
55 {a="(iN)", b=""}, 55 {a="%-?(iNI?)", b=""},
56 -- initial straight double quote gives a connective ʾalif. This has 56 -- initial straight double quote gives a connective ʾalif. This has
57 -- nothing to do with the tanwīn, but I put it here for time being. 57 -- nothing to do with the tanwīn, but I put it here for time being.
58 {a="^\"", b="ٱ"}, 58 {a="^\"", b="ٱ"},
diff --git a/arabluatex_trans.lua b/arabluatex_trans.lua
index 45fd3d5..76e297e 100644
--- a/arabluatex_trans.lua
+++ b/arabluatex_trans.lua
@@ -138,8 +138,15 @@ tanwintrdmg = {
138 {a="(T)%-?(aN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="t\\arbup{ani}%3%4"}, 138 {a="(T)%-?(aN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="t\\arbup{ani}%3%4"},
139 {a="([^TA])%-?(aN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1\\arbup{ani}%3%4"}, 139 {a="([^TA])%-?(aN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1\\arbup{ani}%3%4"},
140 {a="%-?(iN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="\\arbup{ini}%2%3"}, 140 {a="%-?(iN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="\\arbup{ini}%2%3"},
141-- tmp (+ ibn)
142 {a="%-?(uN)(%s)(i)", b="\\arbup{uni}%2'"},
143 {a="%-?(aN)(_A)(%s)(i)", b="ạ\\arbup{ni}%3%'"},
144 {a="%-?(aN)(Y)(%s)(i)", b="ạ\\arbup{ni}%3%'"},
145 {a="(T)%-?(aN)(%s)(i)", b="t\\arbup{ani}%3%'"},
146 {a="([^TA])%-?(aN)(%s)(i)", b="%1\\arbup{ani}%3%'"},
147 {a="%-?(iN)(%s)(i)", b="\\arbup{ini}%2%'"},
141 -- 148 --
142-- {a="uN", b="\\arbup{un}"}, (now included in last line in this table) 149-- {a="uN", b="\\arbup{un}"}, (now included in the last line of this table)
143 {a="%-?(aN)(_A)", b="ạ\\arbup{n}"}, 150 {a="%-?(aN)(_A)", b="ạ\\arbup{n}"},
144 {a="%-?(aN)(Y)", b="ạ\\arbup{n}"}, 151 {a="%-?(aN)(Y)", b="ạ\\arbup{n}"},
145 {a="(T)%-?(\"?aN)", b="t\\arbup{an}"}, 152 {a="(T)%-?(\"?aN)", b="t\\arbup{an}"},
@@ -260,10 +267,16 @@ trigraphstrdmgeasy = { -- see the differences below under 'easy' tag
260digraphstrdmg = { 267digraphstrdmg = {
261 {a="([uai]%-)(\"?[uai])", b="%1'"}, -- hyphen + initial alif without hamza 268 {a="([uai]%-)(\"?[uai])", b="%1'"}, -- hyphen + initial alif without hamza
262 {a="^(\"?[uai])", b="%1"}, -- initial alif without hamza 269 {a="^(\"?[uai])", b="%1"}, -- initial alif without hamza
270 -- this is not necessary, take out for now:
263-- {a="([%_]?[uaiUAIY])(%s)([uai])", b="%1%2'"}, -- initial alif without hamza 271-- {a="([%_]?[uaiUAIY])(%s)([uai])", b="%1%2'"}, -- initial alif without hamza
264 {a="(aW)(%s)(\"?[uai])", b="awu%2%3"}, 272 {a="(aW)(%s)(\"?[uai])", b="awu%2%3"},
265 {a="([^%_][uai])(%s)(\"?[uai])", b="%1%2'"}, 273 {a="([^%_][uai])(%s)(\"?[uai])", b="%1%2'"},
266 {a="([%_]?[AYa])(%s)(\"?[uai])", b="a%2'"}, 274--tmp (more complex, see next 4 l.)
275-- {a="([%_]?[AYa])(%s)(\"?[uai])", b="a%2'"},
276 {a="(%_A)(%s)(\"?[uai])", b="ạ%2'"},
277 {a="(Y)(%s)(\"?[uai])", b="ạ%2'"},
278 {a="(%_a)(%s)(\"?[uai])", b="a%2'"},
279 {a="(A)(%s)(\"?[uai])", b="a%2'"},
267 {a="([%_]?[Uu])(%s)(\"?[uai])", b="u%2'"}, 280 {a="([%_]?[Uu])(%s)(\"?[uai])", b="u%2'"},
268 {a="([%_]?[Ii])(%s)(\"?[uai])", b="i%2'"}, 281 {a="([%_]?[Ii])(%s)(\"?[uai])", b="i%2'"},
269 -- ʾiʿrāb hyphen (begin) 282 -- ʾiʿrāb hyphen (begin)
@@ -281,7 +294,11 @@ digraphstrdmg = {
281 -- shorten long vowels preceding ʾalif conjunctionis 294 -- shorten long vowels preceding ʾalif conjunctionis
282 {a="(U)(A)", b="U"}, 295 {a="(U)(A)", b="U"},
283 {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awu%2%3"}, 296 {a="(aW)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awu%2%3"},
284 {a="([%_]?[AYa])(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="a%2%3"}, 297--tmp {a="([%_]?[AYa])(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="a%2%3"},
298 {a="(%_a)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="a%2%3"},
299 {a="(%_A)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="ạ%2%3"},
300 {a="(A)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="a%2%3"},
301 {a="(Y)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="ạ%2%3"},
285 {a="([%_]?[Uu])(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="u%2%3"}, 302 {a="([%_]?[Uu])(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="u%2%3"},
286 {a="([%_]?[Ii])(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="i%2%3"}, 303 {a="([%_]?[Ii])(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="i%2%3"},
287 {a="%-%-", b=""}, 304 {a="%-%-", b=""},
diff --git a/arabluatex_voc.lua b/arabluatex_voc.lua
index 0097450..0331794 100644
--- a/arabluatex_voc.lua
+++ b/arabluatex_voc.lua
@@ -93,8 +93,9 @@ hamza = {
93 {a="'i'([^uaiUAI])", b="إI%1"}, 93 {a="'i'([^uaiUAI])", b="إI%1"},
94 -- madda (historic writing below) 94 -- madda (historic writing below)
95 {a="'a'([^uaiUAI])", b="آ%1"}, 95 {a="'a'([^uaiUAI])", b="آ%1"},
96--tmp {a="'a?A([%_%^%.]?[%`%'btjghdrzsfqklmnywAY])", b="آ%1"}, 96 {a="([^uiUI])\'a?A([%_%^%.]?[%`%'btjghdrzsfqklmnywAY])", b="%1آ%2"},
97 {a="([^UIui])'a?A([%_%^%.]?[%`%'btjghdrzsfqklmnywAY])", b="%1آ%2"}, 97 {a="^\'a?A([%_%^%.]?[%`%'btjghdrzsfqklmnywAY])", b="آ%1"},
98 {a="(%W)\'a?A([%_%^%.]?[%`%'btjghdrzsfqklmnywAY])", b="%1آ%2"},
98 {a="(A)(')(uN?)$", b="aآء%3"}, 99 {a="(A)(')(uN?)$", b="aآء%3"},
99 {a="(A)(')(uN?)(%W)", b="aآء%3%4"}, 100 {a="(A)(')(uN?)(%W)", b="aآء%3%4"},
100 {a="(A)(')(iN?)$", b="aآء%3"}, 101 {a="(A)(')(iN?)$", b="aآء%3"},
@@ -179,8 +180,9 @@ hamzaeasy = { -- differences marked below with 'easy'
179 {a="'i'([^uaiUAI])", b="إI%1"}, 180 {a="'i'([^uaiUAI])", b="إI%1"},
180 -- madda (historic writing below) 181 -- madda (historic writing below)
181 {a="'a'([^uaiUAI])", b="آ%1"}, 182 {a="'a'([^uaiUAI])", b="آ%1"},
182--tmp {a="'a?A([%_%^%.]?[%`%'btjghdrzsfqklmnywAY])", b="آ%1"}, 183 {a="([^uiUI])\'a?A([%_%^%.]?[%`%'btjghdrzsfqklmnywAY])", b="%1آ%2"},
183 {a="([^UIui])'a?A([%_%^%.]?[%`%'btjghdrzsfqklmnywAY])", b="%1آ%2"}, 184 {a="^\'a?A([%_%^%.]?[%`%'btjghdrzsfqklmnywAY])", b="آ%1"},
185 {a="(%W)\'a?A([%_%^%.]?[%`%'btjghdrzsfqklmnywAY])", b="%1آ%2"},
184 --easy (begin) 186 --easy (begin)
185 {a="(A)(')(uN?)$", b="aاء%3"}, 187 {a="(A)(')(uN?)$", b="aاء%3"},
186 {a="(A)(')(uN?)(%W)", b="aاء%3%4"}, 188 {a="(A)(')(uN?)(%W)", b="aاء%3%4"},
@@ -246,69 +248,69 @@ hamzaeasy = { -- differences marked below with 'easy'
246} 248}
247 249
248tanwin = { 250tanwin = {
249 {a="uNU", b="ٌو"}, 251 {a="%-?uNU", b="ٌو"},
250 {a="aNU", b="ًوا"}, 252 {a="%-?aNU", b="ًوا"},
251 {a="iNU", b="ٍو"}, 253 {a="%-?iNU", b="ٍو"},
252 -- assimilations (begin) 254 -- assimilations (begin)
253 {a="(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"}, 255 {a="%-?(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"},
254 {a="(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"}, 256 {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"},
255 {a="(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"}, 257 {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"},
256 {a="(T)(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"}, 258 {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
257 {a="(ء)(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"}, 259 {a="(ء)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
258 {a="([^TA])(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"}, 260 {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"},
259 {a="(iN)(%s)([rlmnwy])", b="ٍ%2%3%3"}, 261 {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"},
260 -- assimilations (end) 262 -- assimilations (end)
261 -- quoted tanwīn (begin) 263 -- quoted tanwīn (begin)
262 {a="(\"uN)", b=""}, 264 {a="%-?(\"uN)", b=""},
263 {a="(B)(\"aN)", b="%1"}, 265 {a="(B)%-?(\"aN)", b="%1"},
264 {a="(\"aN)(_A)", b="ى"}, 266 {a="%-?(\"aN)(_A)", b="ى"},
265 {a="(\"aN)(Y)", b="ى"}, 267 {a="%-?(\"aN)(Y)", b="ى"},
266 {a="(T)(\"aN)", b="%1"}, 268 {a="(T)%-?(\"aN)", b="%1"},
267 {a="(ء)(\"aN)", b="%1"}, 269 {a="(ء)%-?(\"aN)", b="%1"},
268 {a="([^TA])(\"aN)", b="%1ا"}, 270 {a="([^TA])%-?(\"aN)", b="%1ا"},
269 {a="(\"iN)", b=""}, 271 {a="%-?(\"iNI?)", b=""},
270 -- quoted tanwīn (end) 272 -- quoted tanwīn (end)
271 {a="(uN)", b="ٌ"}, 273 {a="%-?(uN)", b="ٌ"},
272 {a="(B)(aN)", b="%1ً"}, 274 {a="(B)%-?(aN)", b="%1ً"},
273 {a="(aN)(_A)", b="ًى"}, 275 {a="%-?(aN)(_A)", b="ًى"},
274 {a="(aN)(Y)", b="ًى"}, 276 {a="%-?(aN)(Y)", b="ًى"},
275 {a="(T)(aN)", b="%1ً"}, 277 {a="(T)%-?(aN)", b="%1ً"},
276 {a="(ء)(aN)", b="%1ً"}, 278 {a="(ء)%-?(aN)", b="%1ً"},
277 {a="([^TA])(aN)", b="%1ًا"}, 279 {a="([^TA])%-?(aN)", b="%1ًا"},
278 {a="(iNI?)", b="ٍ"} 280 {a="%-?(iNI?)", b="ٍ"}
279} 281}
280 282
281tanwineasy = { -- 'easy' requires some lines to be taken out: 283tanwineasy = { -- 'easy' requires some lines to be taken out:
282 {a="uNU", b="ٌو"}, 284 {a="%-?uNU", b="ٌو"},
283 {a="aNU", b="ًوا"}, 285 {a="%-?aNU", b="ًوا"},
284 {a="iNU", b="ٍو"}, 286 {a="%-?iNU", b="ٍو"},
285 -- assimilations (begin) 287 -- assimilations (begin)
286-- {a="(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"}, 288-- {a="%-?(uN)(%s)([rlmnwy])", b="ٌ%2%3%3"},
287-- {a="(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"}, 289-- {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"},
288-- {a="(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"}, 290-- {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"},
289-- {a="(T)(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"}, 291-- {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
290-- {a="(ء)(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"}, 292-- {a="(ء)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"},
291-- {a="([^TA])(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"}, 293-- {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"},
292-- {a="(iN)(%s)([rlmnwy])", b="ٍ%2%3%3"}, 294-- {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"},
293 -- assimilations (end) 295 -- assimilations (end)
294 -- quoted tanwīn (begin) 296 -- quoted tanwīn (begin)
295 {a="(\"uN)", b=""}, 297 {a="%-?(\"uN)", b=""},
296 {a="(B)(\"aN)", b="%1"}, 298 {a="(B)%-?(\"aN)", b="%1"},
297 {a="(\"aN)(_A)", b="ى"}, 299 {a="%-?(\"aN)(_A)", b="ى"},
298 {a="(\"aN)(Y)", b="ى"}, 300 {a="%-?(\"aN)(Y)", b="ى"},
299 {a="(T)(\"aN)", b="%1"}, 301 {a="(T)%-?(\"aN)", b="%1"},
300 {a="(ء)(\"aN)", b="%1"}, 302 {a="(ء)%-?(\"aN)", b="%1"},
301 {a="([^TA])(\"aN)", b="%1ا"}, 303 {a="([^TA])%-?(\"aN)", b="%1ا"},
302 {a="(\"iN)", b=""}, 304 {a="%-?(\"iNI?)", b=""},
303 -- quoted tanwīn (end) 305 -- quoted tanwīn (end)
304 {a="(uN)", b="ٌ"}, 306 {a="%-?(uN)", b="ٌ"},
305 {a="(B)(aN)", b="%1ً"}, 307 {a="(B)%-?(aN)", b="%1ً"},
306 {a="(aN)(_A)", b="ًى"}, 308 {a="%-?(aN)(_A)", b="ًى"},
307 {a="(aN)(Y)", b="ًى"}, 309 {a="%-?(aN)(Y)", b="ًى"},
308 {a="(T)(aN)", b="%1ً"}, 310 {a="(T)%-?(aN)", b="%1ً"},
309 {a="(ء)(aN)", b="%1ً"}, 311 {a="(ء)%-?(aN)", b="%1ً"},
310 {a="([^TA])(aN)", b="%1ًا"}, 312 {a="([^TA])%-?(aN)", b="%1ًا"},
311 {a="(iNI?)", b="ٍ"} 313 {a="%-?(iNI?)", b="ٍ"}
312} 314}
313 315
314trigraphs = { -- trigraphs or more 316trigraphs = { -- trigraphs or more
@@ -452,7 +454,7 @@ digraphs = {
452 --tmp-added hyphen + initial alif without hamza: 454 --tmp-added hyphen + initial alif without hamza:
453 {a="(%-)([uai])([%^%_%.%`]?)(%a)", b="%1ا%3%4"}, 455 {a="(%-)([uai])([%^%_%.%`]?)(%a)", b="%1ا%3%4"},
454 {a="^([uai])", b="ا%1"}, -- initial alif without hamza 456 {a="^([uai])", b="ا%1"}, -- initial alif without hamza
455 {a="(%s)([uai])", b="%1ا%2"}, -- initial alif without hamza 457 {a="(%s)([uai])", b="%1ا"}, -- initial alif without hamza
456 {a="%-%-", b="ـ"}, 458 {a="%-%-", b="ـ"},
457 {a="ؤؤ", b="ؤّ"}, 459 {a="ؤؤ", b="ؤّ"},
458 {a="أأ", b="أّ"}, 460 {a="أأ", b="أّ"},