texlive[45591] Master/texmf-dist: arabluatex (24oct17)

commits+karl at tug.org commits+karl at tug.org
Tue Oct 24 23:23:56 CEST 2017


Revision: 45591
          http://tug.org/svn/texlive?view=revision&revision=45591
Author:   karl
Date:     2017-10-24 23:23:56 +0200 (Tue, 24 Oct 2017)
Log Message:
-----------
arabluatex (24oct17)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/lualatex/arabluatex/arabluatex.pdf
    trunk/Master/texmf-dist/doc/lualatex/arabluatex/samples/al-Jahiz.pdf
    trunk/Master/texmf-dist/doc/lualatex/arabluatex/samples/al-Jahiz.tex
    trunk/Master/texmf-dist/doc/lualatex/arabluatex/samples/template-01.pdf
    trunk/Master/texmf-dist/source/lualatex/arabluatex/README.tex
    trunk/Master/texmf-dist/source/lualatex/arabluatex/arabluatex.dtx
    trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua
    trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.sty
    trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_fullvoc.lua
    trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_novoc.lua
    trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_trans.lua
    trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_voc.lua

Modified: trunk/Master/texmf-dist/doc/lualatex/arabluatex/arabluatex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/lualatex/arabluatex/samples/al-Jahiz.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/lualatex/arabluatex/samples/al-Jahiz.tex
===================================================================
--- trunk/Master/texmf-dist/doc/lualatex/arabluatex/samples/al-Jahiz.tex	2017-10-24 21:23:24 UTC (rev 45590)
+++ trunk/Master/texmf-dist/doc/lualatex/arabluatex/samples/al-Jahiz.tex	2017-10-24 21:23:56 UTC (rev 45591)
@@ -147,7 +147,7 @@
 \maketitle
 \vspace{-1in}
 
-\label{source}
+\phantomsection\label{source}
 Here follows the exact source code that has been used to produce the
 above presented outputs. Discretionary hyphens
 (\mintinline{latex}|\-|) may have been inserted at some points to

Modified: trunk/Master/texmf-dist/doc/lualatex/arabluatex/samples/template-01.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/lualatex/arabluatex/README.tex
===================================================================
--- trunk/Master/texmf-dist/source/lualatex/arabluatex/README.tex	2017-10-24 21:23:24 UTC (rev 45590)
+++ trunk/Master/texmf-dist/source/lualatex/arabluatex/README.tex	2017-10-24 21:23:56 UTC (rev 45591)
@@ -133,9 +133,14 @@
 
 
 A new directory named arabluatex will have been created, containing
-ArabLuaTeX.  Git hosting
+ArabLuaTeX.
 
-Please, do not use GitHub or GitLab: see
-\href{https://libreboot.org/git/#githosting}{there}.
+\subsection*{Git hosting}
+\label{sec:git-hosting}
+Make an account on \url{https://notabug.org} and navigate (while
+logged in) to \url{https://notabug.org/ralessi/arabluatex}. Click
+\emph{Fork} and you will have in your account your own repository of
+\verb|arabluatex| where you will be able to make whatever changes you
+like to.
 
 \end{document}
\ No newline at end of file

Modified: trunk/Master/texmf-dist/source/lualatex/arabluatex/arabluatex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/lualatex/arabluatex/arabluatex.dtx	2017-10-24 21:23:24 UTC (rev 45590)
+++ trunk/Master/texmf-dist/source/lualatex/arabluatex/arabluatex.dtx	2017-10-24 21:23:56 UTC (rev 45591)
@@ -27,7 +27,7 @@
 %<package-info>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
 %<package-info>\ProvidesPackage{arabluatex}
 %<*package-info>
-    [2017/07/28 v1.9.1 An ArabTeX-like interface for LuaLaTeX]
+    [2017/10/24 v1.9.2 An ArabTeX-like interface for LuaLaTeX]
 %</package-info>
 %
 %<*driver>
@@ -155,7 +155,7 @@
 \defaultfontfeatures{RawFeature={+liga}}
 \setmainfont{Old Standard}[SmallCapsFont={Latin Modern Roman Caps},
   RawFeature={+mark;+ccmp;+ss05;+ss06}]
-\usepackage{arabluatex}[2017/07/28]
+\usepackage{arabluatex}[2017/10/24]
 \usepackage[nopar]{quran}
 \usepackage{varioref}
 \usepackage{hyperxmp}
@@ -227,7 +227,7 @@
 %</driver>
 % \fi
 %
-% \CheckSum{704}
+% \CheckSum{707}
 %
 % \CharacterTable
 %  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -558,6 +558,22 @@
 % \item The euphonic \arb[trans]{ta^sdId} is generated (see
 %   \vpageref{ref:euphonic-tashdid}).
 % \item In |fullvoc| mode, the \arb[trans]{sukUn} is expressed.
+% \item In such words as \arb{^say'aN}, \arb{.zim'aN} and the like,
+%   the \arb[trans]{hamzaT} alone is not written over the letter
+%   \arb[trans]{yA'} with no diacritical points below as in
+%   \arb{sayy"'aN}, \arb{.zimy"'aN}, but over a horizontal stroke
+%   placed in the continuation of the preceding letter. %
+% \iffalse
+%<*example>
+% \fi
+\begin{arabluacode}[text only]
+Please note that only few Arabic fonts provide such contrivances. In
+case this feature is not supported by some Arabic font, it is
+advisable to use \cs{SetArbEasy}.
+\end{arabluacode}
+% \iffalse
+%</example>
+% \fi
 % \end{compactitem}
 % 
 % \DescribeMacro{\SetArbEasy} \NEWfeature{v1.4.4}
@@ -793,7 +809,7 @@
 % \arb[novoc]{h} & \dmg{h} & \loc{h} & \brill{h} & |h| \\
 % \arb[novoc]{w} & \dmg{w} & \loc{w} & \brill{w} & |w| \\
 % \arb[novoc]{y} & \dmg{y} & \loc{y} & \brill{y} & |y|\footnote{For
-% the letter \arb[novoc]{.y} with no diacritical point below, see
+% the letter \arb[novoc]{.y} with no diacritical points below, see
 % \emph{Rem{.} b.} below.} \\
 % \arb[novoc]{T} & \dmg{aT} & \loc{aT} & \brill{aT} & |T| \\
 % \bottomrule
@@ -1173,13 +1189,16 @@
 %   \arb[voc]{mas'alaTuN} \arb[trans]{mas'alaTuN}, |'as'alu|
 %   \arb[voc]{'as'alu} \arb[trans]{'as'alu}, |yatasA'alUna|
 %   \arb[voc]{yatasA'alUna}\linebreak \arb[trans]{yatasA'alUna},
-%   |murU'aTuN| \arb[voc]{murU'aTuN} \arb[trans]{murU'aTuN},
-%   |ta'xIruN| \arb[fullvoc]{ta'xIruN} \arb[trans]{ta'xIruN},
-%   |ta'ax|\allowbreak|xara| \arb[voc]{ta'axxara}
-%   \arb[trans]{ta'axxara}, |ji'tu-ka| \arb[voc]{ji'tu-ka}
-%   \arb[trans]{ji'tu-ka}, |qA'iluN| \arb[voc]{qA'iluN}
-%   \arb[trans]{qA'iluN}, |.hIna'i_diN| \arb[trans]{.hIna'i_diN}
-%   \arb[voc]{.hIna'i_diN}.
+%   |murU'aTuN| \arb[voc]{murU'aTuN}, |taw'amuN|
+%   \arb[fullvoc]{taw'amuN} \arb[trans]{taw'amuN},
+%   \arb[trans]{murU'aTuN}, |ta'xIruN| \arb[fullvoc]{ta'xIruN}
+%   \arb[trans]{ta'xIruN}, |ta'ax|\allowbreak|xara|
+%   \arb[voc]{ta'axxara} \arb[trans]{ta'axxara}, |ji'tu-ka|
+%   \arb[voc]{ji'tu-ka} \arb[trans]{ji'tu-ka}, |qA'iluN|
+%   \arb[voc]{qA'iluN} \arb[trans]{qA'iluN}, |.hIna'i_diN|
+%   \arb[trans]{.hIna'i_diN} \arb[voc]{.hIna'i_diN}, |hay'aTuN|
+%   \arb[voc]{hay'aTuN} \arb[trans]{hay\-'aTuN}, |hay'AtuN|
+%   \arb[voc]{hay'AtuN} \arb[trans]{hay'AtuN}.
 %
 %   From \textcite[i. 14 B]{Wright}:--- All consonants, whatsoever,
 %   not even \arb[trans]{'alif} \emph{hèmzatum} excepted, admit of
@@ -1219,7 +1238,8 @@
 %   \arb[voc]{al-^say'-u} \arb[trans]{al-^say'-u}, |'a^syA'-u|
 %   \arb[voc]{'a^syA'-u} \arb[trans]{'a^syA'-u}, |'a^syA'-a|
 %   \arb[voc]{'a^syA'-a} \arb[trans]{'a^syA'-a}, |.zim'aN|
-%   \arb[voc]{.zim'aN} \arb[trans]{.zim'aN}.
+%   \arb[voc]{.zim'aN} \arb[trans]{.zim'aN}, |radI'aN|
+%   \arb[voc]{radI'aN} \arb[trans]{radI'aN}.
 %
 %   \label{ref:taxfif-hamzah}
 %   \textbf{\arb[trans]{ta_hfIf-u 'l-hamzaT-i}}: if the
@@ -1232,6 +1252,34 @@
 %   of encoding such sequences, see \vpageref{ref:initial-hamza}
 %   (\arb[trans]{hamzaT} followed by \arb[novoc]{U} and \arb[novoc]{I})
 %   and the \arb[trans]{maddaT} \vpageref{ref:madda}.
+%
+%   Imperatives of verbs that have the \arb[trans]{hamzaT} as the
+%   first radical are other cases of \arb[trans]{ta_hfIf-u
+%   'l-hamzaT-i}: |i'sir| \arb[fullvoc]{i'sir} \arb[trans]{i'sir},
+%   |i'_dan| \arb[fullvoc]{i'_dan} \arb[trans]{i'_dan}, |u'mul|
+%   \arb[fullvoc]{u'mul} \arb[trans]{u'mul}.  \package{arabluatex}
+%   also provides ways of encoding those words when the initial
+%   \arb[trans]{'alif} comes into \arb[trans]{wa.sl}, so as to make
+%   the \arb[trans]{'alif wa.sl} fall away when preceded by
+%   \arb[voc]{wa} or \arb[voc]{fa}: |wa-'sir| \arb[fullvoc]{wa-'sir}
+%   \arb[trans]{wa-'sir}, |fa-'_dan| \arb[fullvoc]{fa-'_dan}
+%   \arb[trans]{fa-'_dan}, |fa-'ti| \arb[fullvoc]{fa-'ti}
+%   \arb[trans]{fa-'ti}, |wa-'tamirUA| \arb[fullvoc]{wa-'tamirUA}
+%   \arb[trans]{wa-'tamirUA}; or be retained outside the imperative,
+%   as in |fa-i'tazarat| \arb[fullvoc]{fa-i'tazarat}
+%   \arb[trans]{fa-i'tazarat}, |ba`da| |i'tilAfiN| \arb[fullvoc]{ba`da
+%   i'tilAfiN} \arb[trans]{ba`da i'tilAfiN}.
+%
+%   \textbf{The strange spelling of \arb[trans]{mi'aTuN}}: |mi'aTuN|
+%   \arb[voc]{mi'aTuN} \arb[trans]{mi'aTuN}, \linebreak |mi'atAni|
+%   \arb[voc]{mi'atAni} \arb[trans]{mi'atAni}, |mi'atayni|
+%   \arb[voc]{mi'atayni} \arb[trans]{mi'atayni}, |mi'Una|
+%   \arb[voc]{mi'Una} \arb[trans]{mi'Una}, |mi'AtuN|
+%   \arb[voc]{mi'AtuN} \arb[trans]{mi'AtuN}, |mi'aN_A|
+%   \arb[voc]{mi'aN_A} \arb[trans]{mi'aN_A}. Of course, the
+%   \enquote*{pipe} character may be used to prevent this rule from
+%   being applied (see \vref{sec:pipe}): \verb+mi'a|TuN+
+%   \arb[voc]{mi'a|TuN} \arb[trans]{mi'a|TuN}.
 % \end{quote}
 %
 % \paragraph{\arb[trans]{maddaT}} \label{ref:madda}At the beginning of
@@ -2000,9 +2048,22 @@
 % \begin{quote}
 %   |\abjad{45}:| |kitAbu-hu| |\aemph{fI| |'l-`AdAt-i}|
 %   \arb[voc]{\abjad{45}: kitAbu-hu \aemph{fI 'l-`AdAt-i}}
-%   \arb[trans]{\abjad{45}: kitAbu-hu fI 'l-\cap{`AdAt-i}}.
+%   \arb[trans]{\abjad{45}: kitAbu-hu \aemph{fI 'l-\cap{`AdAt-i}}}.
 % \end{quote}
+% 
+% \begin{quoting}
+%   \textsc{Rem.}~\emph{a.} As the above example shows,
+%   \package{arabluatex} places the horizontal stroke \emph{under} the
+%   emphasized words in any of the transliteration modes.
 %
+%   \textsc{Rem.}~\emph{b.} \NEWfeature{v1.9.2}\DescribeMacro{\aemph*}
+%   \cs{aemph*} is also provided should one wish to always have the
+%   horizontal stroke printed over the emphasized words, like so:
+%   |\abjad{45}:| |kitAbu-hu| |\aemph*{fI| |'l-`AdAt-i}|
+%   \arb[voc]{\abjad{45}: kitAbu-hu \aemph*{fI 'l-`AdAt-i}}
+%   \arb[trans]{\abjad{45}: kitAbu-hu \aemph*{fI 'l-\cap{`AdAt-i}}}.
+% \end{quoting}
+% 
 % \section{Arabic poetry}
 % \label{sec:poetry}
 % \NEWfeature{v1.6} \package{arabluatex} provides a special
@@ -2470,7 +2531,7 @@
 %   \NoArbUp\arb[trans]{\cap{`amruNU}}\ArbUpDflt\,;
 % \item \label{ref:dmg-up-rend}As superscript text:
 %   \arb[trans]{\cap{`amruNU}}\,;
-% \item Discarded: \arb[trans]{\cap{`amr}}.
+% \item \label{ref:irab-discarded}Discarded: \arb[trans]{\cap{`amr}}.
 % \end{compactenum}
 % \DescribeMacro{\arbup} By default, \package{arabluatex} applies rule
 % \ref{ref:dmg-up-rend}. Once delimited by a set of Lua functions,
@@ -2551,7 +2612,42 @@
 %   min mu_hA.tabati-hi 'a.had-uN bi-sayyidi-nA} \arb[trans]{mana`a
 %   'l-nAs-a kAffaT-aN min mu_hA.tabati-hi 'a.had-uN bi-sayyidi-nA}.
 % \end{quoting}
+% 
+% \paragraph{Discarding the \arb[trans]{'i`rAb}}
+% As said above (\vref{ref:irab-discarded}), the \arb[trans]{'i`rAb}
+% may be discarded in some cases, as in transliterated proper names or
+% book titles. \package{arabluatex} is able to render words ending
+% with \arb[trans]{tA' marbU.taT} in different ways, depending on
+% their function:---
+% \begin{compactenum}[(a)]
+% \item Nouns followed by an adjective in apposition: |madInaT|
+%   |kabIraT| \arb[trans]{madInaT kabIraT}, |al-madInaT| |al-kabIraT|
+%   \arb[trans]{al-madInaT al-kabIraT}.
+% \item Nouns followed by another noun in the genitive (contruct
+%   state): |.hikmaT| |al-l_ah| \arb[trans]{.hikmaT al-\cap{l}_ah},
+%   |fi.d.daT| |al-darAhim| \arb[trans]{fi.d.daT al-darAhim}.
+% \end{compactenum}
+% \begin{quoting}
+%   \textsc{Rem.} It may so happen, as in the absence of the article
+%   before the annexed word, that \package{arabluatex} be unable to
+%   determine which of the above two cases the word ending with
+%   \arb[trans]{tA' marbU.taT} falls into. The \enquote*{pipe}
+%   character (see \vref{sec:pipe}) may be appended to that word to
+%   indicate that what follows is in the construct state:
+%   |\cap{r}isAlaT| |fI| |tartIb| \verb+qirA'aT|+ |kutub|
+%   |\cap{^g}AlInUs| \arb[trans]{\cap{r}isAlaT fI tartIb qirA'aT|
+%   kutub \cap{^g}AlInUs}.
+% \end{quoting}
+% 
 %
+% \paragraph{Uncertain short vowels}
+% In some printed books, it may happen that more than one short vowel
+% be placed on a consonant in cases where the vocalization is
+% uncertain or ambiguous, like so: \arb[voc]{fa`uaila}. In
+% transliteration, the uncertain vowels go between slashes and are
+% separated by commas: |fa`uaila| \arb[voc]{fa`uaila}
+% \arb[trans]{fa`uaila}.
+%
 % \subsection{Examples}
 % \label{sec:examples-translit}
 % Here follows in transliteration the story of
@@ -3254,7 +3350,7 @@
 %    \begin{macrocode}
 \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}
 %    \end{macrocode}
 % \package{arabluatex} requires \LuaLaTeX\ of course. Issue a warning
@@ -3357,12 +3453,25 @@
   \luadirect{mkarbbreak(\luastringN{#1})}}
 %    \end{macrocode}
 % \end{macro}
-% \begin{macro}{\aemph} Arabic emphasis. Needs to be redefined as well.
+% \begin{macro}{\aemph} Arabic emphasis. Needs to be redefined as
+%   well. The function is actually coded in Lua.
+% \begin{macro}{\aemph*} The \enquote*{starred} version of this
+%   command alway puts the stroke over its argument.
+%   \changes{v1.9.2}{2017/10/24}{Starred version which always puts the
+%   stroke over its argument}
 %    \begin{macrocode}
 \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}))}}}}}
 %    \end{macrocode}
+% \end{macro}
+% \end{macro}
 % \begin{macro}{\SetInputScheme}
 %   \changes{v1.4}{2016/07/05}{\cs{SetInputScheme} may be used to
 %   process other input schemes such as \enquote*{Buckwalter}}
@@ -3375,7 +3484,6 @@
 \NewDocumentCommand{\SetInputScheme}{m}{\def\al at input@scheme{#1}}
 %    \end{macrocode}
 % \end{macro}
-% \end{macro}
 % \begin{macro}{\SetArbEasy}
 %   \changes{v1.2}{2016/05/09}{New \cs{SetArbEasy}/\cs{SetArbDflt} for
 %   \enquote*{modern} or \enquote*{classic} Arabic styles.}
@@ -3603,7 +3711,7 @@
 \define at boolkey[al]{verse}{delim}[true]{}
 \define at choicekey[al]{verse}{mode}{fullvoc, voc, novoc,
   trans}{\def\al at mode{#1}}
-\presetkeys[al]{verse}{metre=\LR{\vskip -\baselineskip}, utf=false,
+\presetkeys[al]{verse}{metre={}, utf=false,
   delim=false}{}
 %    \end{macrocode}
 % Then follows the environment itself:

Modified: trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua	2017-10-24 21:23:24 UTC (rev 45590)
+++ trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua	2017-10-24 21:23:56 UTC (rev 45591)
@@ -719,3 +719,12 @@
    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

Modified: trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.sty
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.sty	2017-10-24 21:23:24 UTC (rev 45590)
+++ trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.sty	2017-10-24 21:23:56 UTC (rev 45591)
@@ -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 at input@scheme{arabtex}
 \NewDocumentCommand{\SetInputScheme}{m}{\def\al at input@scheme{#1}}
 \def\al at arb@rules{dflt}
@@ -186,7 +192,7 @@
 \define at boolkey[al]{verse}{delim}[true]{}
 \define at choicekey[al]{verse}{mode}{fullvoc, voc, novoc,
   trans}{\def\al at 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}%

Modified: trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_fullvoc.lua
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_fullvoc.lua	2017-10-24 21:23:24 UTC (rev 45590)
+++ trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_fullvoc.lua	2017-10-24 21:23:56 UTC (rev 45591)
@@ -58,10 +58,15 @@
    {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 @@
    {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 @@
    {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 @@
    {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 @@
    {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 @@
    {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 @@
    {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 @@
    {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 @@
    {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 @@
 --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 @@
    {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 @@
    {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 @@
 }
 
 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 @@
    {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 @@
    {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 @@
 }
 
 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 @@
    {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

Modified: trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_novoc.lua
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_novoc.lua	2017-10-24 21:23:24 UTC (rev 45590)
+++ trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_novoc.lua	2017-10-24 21:23:56 UTC (rev 45591)
@@ -47,7 +47,7 @@
    {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 @@
    {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

Modified: trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_trans.lua
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_trans.lua	2017-10-24 21:23:24 UTC (rev 45590)
+++ trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_trans.lua	2017-10-24 21:23:56 UTC (rev 45591)
@@ -100,6 +100,10 @@
    -- 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 @@
 }
 
 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 @@
    {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 @@
    --   {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 @@
 }
 
 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 @@
    {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 @@
    --   {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="ṯ"},

Modified: trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_voc.lua
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_voc.lua	2017-10-24 21:23:24 UTC (rev 45590)
+++ trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_voc.lua	2017-10-24 21:23:56 UTC (rev 45591)
@@ -194,10 +194,15 @@
    {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 @@
    {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 @@
    {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 @@
    {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 @@
    {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 @@
    {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 @@
    {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 @@
    {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 @@
    {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 @@
 --   {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 @@
    {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 @@
    {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 @@
    {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



More information about the tex-live-commits mailing list