diff options
author | Karl Berry <karl@freefriends.org> | 2016-07-09 22:08:39 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2016-07-09 22:08:39 +0000 |
commit | 2040418d204110845d4e5cc31f35ba97b04acea3 (patch) | |
tree | 43dc63cc85a5aad670e623fc311c45cff7dc5950 | |
parent | 5aa22446c70e91fc5a81680737dddd97e940b384 (diff) |
arabluatex (9jul16)
git-svn-id: svn://tug.org/texlive/trunk@41670 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Master/texmf-dist/doc/lualatex/arabluatex/arabluatex.pdf | bin | 331668 -> 335114 bytes | |||
-rw-r--r-- | Master/texmf-dist/source/lualatex/arabluatex/arabluatex.dtx | 182 | ||||
-rw-r--r-- | Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua | 13 | ||||
-rw-r--r-- | Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.sty | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_voc.lua | 17 |
5 files changed, 130 insertions, 84 deletions
diff --git a/Master/texmf-dist/doc/lualatex/arabluatex/arabluatex.pdf b/Master/texmf-dist/doc/lualatex/arabluatex/arabluatex.pdf Binary files differindex f0d8023bd9d..0423606c510 100644 --- a/Master/texmf-dist/doc/lualatex/arabluatex/arabluatex.pdf +++ b/Master/texmf-dist/doc/lualatex/arabluatex/arabluatex.pdf diff --git a/Master/texmf-dist/source/lualatex/arabluatex/arabluatex.dtx b/Master/texmf-dist/source/lualatex/arabluatex/arabluatex.dtx index f72d1d904db..626d7dcee86 100644 --- a/Master/texmf-dist/source/lualatex/arabluatex/arabluatex.dtx +++ b/Master/texmf-dist/source/lualatex/arabluatex/arabluatex.dtx @@ -27,7 +27,7 @@ %<package-info>\NeedsTeXFormat{LaTeX2e}[1999/12/01] %<package-info>\ProvidesPackage{arabluatex} %<*package-info> - [2016/07/05 v1.4 This is ArabTeX for LuaLaTeX] + [2016/07/09 v1.4.1 This is ArabTeX for LuaLaTeX] %</package-info> % %<*driver> @@ -78,6 +78,16 @@ url = {http://www.amirifont.org/} } +@Book{Habash, + author = {Habash, Nizar Y.}, + title = {Introduction to Arabic Natural Language Processing}, + year = 2010, + series = {Synthesis Lectures on Human Language Technologies}, + number = 10, + publisher = {Morgan \& Claypool Publishers}, + location = {Toronto} +} + @MVBook{Wright, author = {Wright, W. LL.D}, title = {A Grammar of the Arabic Language}, @@ -135,7 +145,7 @@ \defaultfontfeatures{RawFeature={+liga}} \setmainfont{Old Standard}[SmallCapsFont={Latin Modern Roman Caps}] \newfontfamily\translitfont{Latin Modern Roman}[Ligatures=TeX] -\usepackage{arabluatex}[2016/07/05] +\usepackage{arabluatex}[2016/07/09] \SetTranslitFont{\translitfont} \usepackage{varioref} \usepackage{hypdoc} @@ -1805,6 +1815,21 @@ vowels (see §~3). % argument of \cs{cap} vz. up to the first letter that is to be % uppercased, like so: |\cap{m}u.hammaduN|. % +% \paragraph{Hyphenation} +% In case transliterated Arabic words break the \TeX\ hyphenation +% algorithm, one may use the command |\-| to insert discretionary +% hyphens. This command will be discarded in all of the Arabic modes +% of \package{arabluatex}, but will be processed by any of the +% transliteration modes:--- +% \begin{quote} +% |\cap{'abU}| |\cap{bakriN}| |\cap{mu\-.ham\-madu}| |bnu| +% |\cap{za\-ka| |\-riy\-yA'a}| |\cap{'l-rAzI}| \arb{\cap{'abU} +% \cap{bakriN} \cap{mu\-.ham\-mad-u} bnu \cap{za\-ka\-riy\-yA'a} +% \cap{'l-rAzI}} \arb[trans]{\cap{'abU} \cap{bakriN} +% \cap{mu\-.ham\-mad-u} bn-u \cap{za\-ka\-riy\-yA'-a} +% \cap{'l-rAzI}}. +% \end{quote} +% % \subsection{Additional note on \texttt{dmg} convention} % \label{sec:additional-note-dmg} % \NEWfeature{v1.3} According to \textcite[6]{dmg}, Arabic @@ -1964,85 +1989,90 @@ muhaddamaTaN mi'_danatu-hu}: \arb[trans]{ra'aytu %</example> % \fi % -% \paragraph{Limitations} -% To date, the following two limitations apply: -% \begin{compactenum}[(a)] -% \item The braces |{| and |}|, which are used in Buckwalter scheme to -% encode \arb[novoc]{"a} and \arb[novoc]{y"'}, must be replaced with -% square brackets viz. |[| and |]| respectively. -% \item The underscore character |_|, which is used in Buckwalter -% scheme to encode the Arabic \arb[trans]{ta.twIl} must be replaced -% with a double hyphen |--| (see above \vref{sec:tatwil}). -% \end{compactenum} +% \paragraph{\enquote*{base}, \enquote*{\texttt{xml}} and +% \enquote*{safe} schemes} +% \package{arabluatex} can use any of the so-called Buckwalter +% \enquote*{base}, \enquote*{\texttt{xml}} or \enquote*{safe} schemes +% as they are described in \textcite[25--26]{Habash}.\footnote{I am +% grateful to Graeme Andrews who suggested that the \enquote*{safe} +% scheme be included in \package{arabluatex}.} However, the following +% limitation apply to the \enquote*{base} and \enquote*{\texttt{xml}} +% schemes: the braces |{| and |}|, which are used to encode +% \arb[novoc]{"a} and \arb[novoc]{y"'}, must be replaced with square +% brackets viz. |[| and |]| respectively. +% +% It is therefore recommended to use the Buckwalter \enquote*{safe} +% scheme. % % \Cref{tab:buckwalter-scheme} gives the Buckwalter equivalents that % are currently used by \package{arabluatex}. The additional % characters that are defined in \vref{tab:additional-arabic-codings} % are also available. -% \begin{longtable}{llll} +% \begin{longtable}{lllll} % \captionlistentry{Buckwalter scheme}\\[-1em] % \toprule % Letter & \multicolumn{2}{l}{Transliteration\footnotemark} -% & Buckwalter notation \\ -% & \texttt{dmg} & \texttt{loc} & \\ \midrule +% & \multicolumn{2}{l}{Buckwalter notation} \\ +% & \texttt{dmg} & \texttt{loc} & |base/xml| & |safe| \\ \midrule % \endfirsthead % \toprule % Letter & \multicolumn{2}{l}{Transliteration} -% & Buckwalter notation \\ -% & \texttt{dmg} & \texttt{loc} & \\ \midrule +% & \multicolumn{2}{l}{Buckwalter notation} \\ +% & \texttt{dmg} & \texttt{loc} & |base/xml| & |safe| \\ \midrule % \endhead \footnotetext{See \vref{sec:transliteration}.} % \label{tab:buckwalter-scheme} -% \arb[novoc]{a} & \dmg{a} & \loc{a} & \verb|A| \\ -% \arb[novoc]{b} & \dmg{b} & \loc{b} & |b| \\ -% \arb[novoc]{t} & \dmg{t} & \loc{t} & |t| \\ -% \arb[novoc]{_t} & \dmg{_t} & \loc{_t} & |v|\\ -% \arb[novoc]{j} & \dmg{j} & \loc{j} & |j| \\ -% \arb[novoc]{.h} & \dmg{.h} & \loc{.h} & |H| \\ -% \arb[novoc]{x} & \dmg{x} & \loc{x} & |x|\\ -% \arb[novoc]{d} & \dmg{d} & \loc{d} & |d| \\ -% \arb[novoc]{_d} & \dmg{_d} & \loc{_d} & |*| \\ -% \arb[novoc]{r} & \dmg{r} & \loc{r} & |r| \\ -% \arb[novoc]{z} & \dmg{z} & \loc{z} & |z| \\ -% \arb[novoc]{s} & \dmg{s} & \loc{s} & |s| \\ -% \arb[novoc]{^s} & \dmg{^s} & \loc{^s} & |$| \\ -% \arb[novoc]{.s} & \dmg{.s} & \loc{.s} & |S| \\ -% \arb[novoc]{.d} & \dmg{.d} & \loc{.d} & |D| \\ -% \arb[novoc]{.t} & \dmg{.t} & \loc{.t} & |T| \\ -% \arb[novoc]{.z} & \dmg{.z} & \loc{.z} & |Z| \\ -% \arb[novoc]{`} & \dmg{`} & \loc{`} & |E| \\ -% \arb[novoc]{.g} & \dmg{.g} & \loc{.g} & |g| \\ -% \arb[novoc]{f} & \dmg{f} & \loc{f} & |f| \\ -% \arb[novoc]{q} & \dmg{q} & \loc{q} & |q| \\ -% \arb[novoc]{k} & \dmg{k} & \loc{k} & |k| \\ -% \arb[novoc]{l} & \dmg{l} & \loc{l} & |l| \\ -% \arb[novoc]{m} & \dmg{m} & \loc{m} & |m| \\ -% \arb[novoc]{n} & \dmg{n} & \loc{n} & |n| \\ -% \arb[novoc]{h} & \dmg{h} & \loc{h} & |h| \\ -% \arb[novoc]{w} & \dmg{w} & \loc{w} & |w| \\ -% \arb[novoc]{y} & \dmg{y} & \loc{y} & |y| \\ -% \arb[novoc]{T} & \dmg{aT} & \loc{aT} & |p| \\ +% \arb[novoc]{a} & \dmg{a} & \loc{a} & |A| & |A| \\ +% \arb[novoc]{b} & \dmg{b} & \loc{b} & |b| & |b| \\ +% \arb[novoc]{t} & \dmg{t} & \loc{t} & |t| & |t| \\ +% \arb[novoc]{_t} & \dmg{_t} & \loc{_t} & |v| & |v| \\ +% \arb[novoc]{j} & \dmg{j} & \loc{j} & |j| & |j| \\ +% \arb[novoc]{.h} & \dmg{.h} & \loc{.h} & |H| & |H| \\ +% \arb[novoc]{x} & \dmg{x} & \loc{x} & |x| & |x| \\ +% \arb[novoc]{d} & \dmg{d} & \loc{d} & |d| & |d| \\ +% \arb[novoc]{_d} & \dmg{_d} & \loc{_d} & |*| & |V| \\ +% \arb[novoc]{r} & \dmg{r} & \loc{r} & |r| & |r| \\ +% \arb[novoc]{z} & \dmg{z} & \loc{z} & |z| & |z| \\ +% \arb[novoc]{s} & \dmg{s} & \loc{s} & |s| & |s| \\ +% \arb[novoc]{^s} & \dmg{^s} & \loc{^s} & |$| & |c| \\ +% \arb[novoc]{.s} & \dmg{.s} & \loc{.s} & |S| & |S| \\ +% \arb[novoc]{.d} & \dmg{.d} & \loc{.d} & |D| & |D| \\ +% \arb[novoc]{.t} & \dmg{.t} & \loc{.t} & |T| & |T| \\ +% \arb[novoc]{.z} & \dmg{.z} & \loc{.z} & |Z| & |Z| \\ +% \arb[novoc]{`} & \dmg{`} & \loc{`} & |E| & |E| \\ +% \arb[novoc]{.g} & \dmg{.g} & \loc{.g} & |g| & |g| \\ +% \arb[novoc]{f} & \dmg{f} & \loc{f} & |f| & |f| \\ +% \arb[novoc]{q} & \dmg{q} & \loc{q} & |q| & |q| \\ +% \arb[novoc]{k} & \dmg{k} & \loc{k} & |k| & |k| \\ +% \arb[novoc]{l} & \dmg{l} & \loc{l} & |l| & |l| \\ +% \arb[novoc]{m} & \dmg{m} & \loc{m} & |m| & |m| \\ +% \arb[novoc]{n} & \dmg{n} & \loc{n} & |n| & |n| \\ +% \arb[novoc]{h} & \dmg{h} & \loc{h} & |h| & |h| \\ +% \arb[novoc]{w} & \dmg{w} & \loc{w} & |w| & |w| \\ +% \arb[novoc]{y} & \dmg{y} & \loc{y} & |y| & |y| \\ +% \arb[novoc]{Y} & \dmg{Y} & \loc{Y} & |Y| & |Y| \\ +% \arb[novoc]{T} & \dmg{aT} & \loc{aT} & |p| & |p| \\ % \midrule -% \arb[novoc]{|"'} & \dmg{|"'} & \loc{|"'} & \verb|'| \\ -% \arb[novoc]{A"'} & \dmg{A"'} & \loc{A"'} & \verb+|+ \\ -% \arb[novoc]{a"'} & \dmg{a"'} & \loc{a"'} & \verb|>| \\ -% \arb[novoc]{w"'} & \dmg{w"'} & \loc{w"'} & \verb|&| \\ -% \arb[novoc]{i"'} & \dmg{i"'} & \loc{i"'} & \verb|<| \\ -% \arb[novoc]{y"'} & \dmg{y"'} & \loc{y"'} & \verb|]| \\ +% \arb[novoc]{|"'} & \dmg{|"'} & \loc{|"'} & \verb|'| & |C| \\ +% \arb[novoc]{A"'} & \dmg{A"'} & \loc{A"'} & \verb+|+ & |M| \\ +% \arb[novoc]{a"'} & \dmg{a"'} & \loc{a"'} & \verb|>| & |O| \\ +% \arb[novoc]{w"'} & \dmg{w"'} & \loc{w"'} & \verb|&| & |W| \\ +% \arb[novoc]{i"'} & \dmg{i"'} & \loc{i"'} & \verb|<| & |I| \\ +% \arb[novoc]{y"'} & \dmg{y"'} & \loc{y"'} & \verb|]| & |Q| \\ % \midrule -% \arb[novoc]{BB} & --- & --- & \verb|~| \\ -% \arb[novoc]{"a} & ' & ' & |[| \\ +% \arb[novoc]{BB} & --- & --- & \verb|~| & |~| \\ +% \arb[novoc]{"a} & ' & ' & |[| & |L| \\ % \midrule -% \arb[voc]{Ba} & \dmg{Ba} & \loc{Ba} & \verb|a| \\ -% \arb[voc]{Bu} & \dmg{Bu} & \loc{Bu} & \verb|u| \\ -% \arb[voc]{Bi} & \dmg{Bi} & \loc{Bi} & \verb|i| \\ -% \arb[voc]{BaN} & \dmg{BaN} & \loc{BaN} & \verb|F| \\ -% \arb[voc]{BuN} & \dmg{BuN} & \loc{BuN} & \verb|N| \\ -% \arb[voc]{BiN} & \dmg{BiN} & \loc{BiN} & \verb|K| \\ -% \arb[voc]{B"} & --- & --- & \verb|o| \\ +% \arb[voc]{Ba} & \dmg{Ba} & \loc{Ba} & \verb|a| & |a| \\ +% \arb[voc]{Bu} & \dmg{Bu} & \loc{Bu} & \verb|u| & |u| \\ +% \arb[voc]{Bi} & \dmg{Bi} & \loc{Bi} & \verb|i| & |i| \\ +% \arb[voc]{BaN} & \dmg{BaN} & \loc{BaN} & \verb|F| & |F| \\ +% \arb[voc]{BuN} & \dmg{BuN} & \loc{BuN} & \verb|N| & |N| \\ +% \arb[voc]{BiN} & \dmg{BiN} & \loc{BiN} & \verb|K| & |K| \\ +% \arb[voc]{B"} & --- & --- & \verb|o| & |o| \\ % \midrule -% \arb[novoc]{B_a} & \dmg{B_a} & \loc{B_a} & |`| \\ +% \arb[novoc]{B_a} & \dmg{B_a} & \loc{B_a} & |`| & |e| \\ % \midrule -% \arb[novoc]{--} & --- & --- & |--| (\arb[trans]{ta.twIl})\\ +% \arb[novoc]{--} (\arb[trans]{ta.twIl}) & --- & --- & |_| & |_| \\ % \bottomrule % \caption*{\Cref*{tab:buckwalter-scheme}: Buckwalter scheme} % \end{longtable} @@ -2058,24 +2088,26 @@ muhaddamaTaN mi'_danatu-hu}: \arb[trans]{ra'aytu % like so:--- \SetInputScheme{buckwalter} % \begin{quote} % |Al-EaAlamu| \arb{Al-EaAlam-u} \arb[trans]{Al-EaAlam-u}, -% |Al-$~amsu| \arb{Al-$~ams-u} \arb[trans]{Al-$~ams-u}, +% |Al-camsu| \arb{Al-cams-u} \arb[trans]{Al-cams-u}, % |bi-SinaAEapi| |Al-T~ib~i|, \arb{bi-SinaAEap-i Al-T~ib~-i} % \arb[trans]{bi-SinaAEap-i Al-T~ib~-i}. % -% |wa-Al-l~`hi| \arb{wa-Al-l~`h-i} \arb[trans]{wa-Al-l~`h-i}, -% |Al-Hamdu| |li-l~`hi| \arb{Al-Hamd-u li-l~`h-i} -% \arb[trans]{Al-Hamd-u li-l~`h-i}. +% |wa-Al-l~ehi| \arb{wa-Al-l~eh-i} \arb[trans]{wa-Al-l~eh-i}, +% |Al-Hamdu| |li-l~ehi| \arb{Al-Hamd-u li-l~eh-i} +% \arb[trans]{Al-Hamd-u li-l~eh-i}. % \end{quote} % \SetInputScheme{arabtex} % -% Similary, it is not advisable to use \verb+|+ and |[| to encode the -% \arb[trans]{'alif-u 'l-mamdUdaT-i} and the \arb[trans]{'alif-u -% 'l-wa.sl-i} for such signs can be generated by \package{arabluatex}. -% Besides, as they do not \emph{per se} convey any morphological -% information on what they are derived from, they cannot be -% transliterated accurately. To take one example, % +% Similary, it is not advisable to use \verb+|+ and |[| +% (\enquote*{base} and \enquote*{\texttt{xml}} schemes) or |M| and |L| +% (\enquote*{safe} scheme) to encode the \arb[trans]{'alif-u +% 'l-mamdUdaT-i} and the \arb[trans]{'alif-u 'l-wa.sl-i} for such +% signs are supposed to be generated by \package{arabluatex} internal +% functions. Besides, as they do not \emph{per se} convey any +% morphological information on what they are derived from, they cannot +% be transliterated accurately. To take one example, % % \SetInputScheme{buckwalter}% -% |<ilY Al-[ntiqaADi| gives \arb{>ilY Al-[ntiqaADi} as expected, but +% |<ilY Al-LntiqaADi| gives \arb{>ilY Al-LntiqaADi} as expected, but % only |<ilY Al-intiqADi| can be transliterated as \arb[trans]{<ilY % Al-intiqaADi} with the correct vowel \meta{i} in place of the % % \SetInputScheme{arabtex}% @@ -2316,7 +2348,7 @@ wa-ya.sIru ta.hta 'l-jild-i % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{arabluatex}% -[2016/07/05 v1.4 ArabTeX-like interface for LuaLaTeX] +[2016/07/09 v1.4.1 ArabTeX-like interface for LuaLaTeX] \RequirePackage{ifluatex} % \end{macrocode} % \package{arabluatex} requires \LuaLaTeX\ of course. Issue a warning diff --git a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua index b21ee63dee8..c0e02324e07 100644 --- a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua +++ b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua @@ -129,6 +129,7 @@ local function takeoutcapetc(str) return string.format("%s", body) end) str = string.gsub(str, "\\linebreak", "") + str = string.gsub(str, "\\%-", "") return str end @@ -548,12 +549,12 @@ function cap(str) body = string.sub(body, 2, -2) return string.format("%s", body) end) - if string.find(str, "%-['`ʾʿ]") then - str = string.gsub(str, "(%-['`])", "%1\\MakeUppercase ") - str = string.gsub(str, "(%-ʿ)", "%1\\MakeUppercase ") - str = string.gsub(str, "(%-ʾ)", "%1\\MakeUppercase ") - elseif string.find(str, "%-[^'`ʾʿ]") then - str = string.gsub(str, "(%-)", "%1\\MakeUppercase ") + if string.find(str, "[^\\]%-['`ʾʿ]") then + str = string.gsub(str, "([^\\]%-['`])", "%1\\MakeUppercase ") + str = string.gsub(str, "([^\\]%-ʿ)", "%1\\MakeUppercase ") + str = string.gsub(str, "([^\\]%-ʾ)", "%1\\MakeUppercase ") + elseif string.find(str, "[^\\]%-[^'`ʾʿ]") then + str = string.gsub(str, "([^\\]%-)", "%1\\MakeUppercase ") elseif string.find(str, "^['`ʾʿ]") then str = string.gsub(str, "^(['`])", "%1\\MakeUppercase ") str = string.gsub(str, "^(ʿ)", "%1\\MakeUppercase ") diff --git a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.sty b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.sty index ae362ea5923..befb074e3e8 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}% -[2016/07/05 v1.4 ArabTeX-like interface for LuaLaTeX] +[2016/07/09 v1.4.1 ArabTeX-like interface for LuaLaTeX] \RequirePackage{ifluatex} \ifluatex\else \PackageError{arabluatex}{lualatex needed}{% diff --git a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_voc.lua b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_voc.lua index 39da99ec563..20ed016cb1c 100644 --- a/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_voc.lua +++ b/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_voc.lua @@ -74,6 +74,8 @@ raw = { buckwalter = { --- hard coded madda: hold it for now {a="%|", b="@"}, + {a="M", b="@"}, -- BW safe + {a="%_", b="--"}, -- taṭwīl -- prevent any unwanted šadda from being generated {a="bb", b="b|b"}, {a="tt", b="t|t"}, @@ -82,10 +84,12 @@ buckwalter = { {a="HH", b="H|H"}, {a="xx", b="x|x"}, {a="dd", b="d|d"}, - {a="%*|%*", b="*|*"}, + {a="%*%*", b="*|*"}, + {a="VV", b="V|V"}, -- BW safe {a="rr", b="r|r"}, {a="ss", b="s|s"}, {a="%$%$", b="$|$"}, + {a="cc", b="c|c"}, -- BW safe {a="SS", b="S|S"}, {a="DD", b="D|D"}, {a="TT", b="T|T"}, @@ -107,10 +111,15 @@ buckwalter = { -- {a="%>a\'([^uai])", b="@@@%1"}, -- hold this (madda) {a="a?A\'", b="@@"}, -- hold this (classic madda) {a="\'", b="|\"\'"}, + {a="C", b="|\"\'"}, -- BW safe {a="%>", b="a\"\'"}, + {a="O", b="a\"\'"}, -- BW safe {a="%&", b="w\"\'"}, + {a="W", b="w\"\'"}, -- BW safe {a="%<", b="i\"\'"}, + {a="I", b="i\"\'"}, -- BW safe {a="%]", b="y\"\'"}, + {a="Q", b="y\"\'"}, -- hamza end -- trigraphs {a="^Aal%-?", b="al-"}, @@ -134,10 +143,13 @@ buckwalter = { -- šadda: {a="([%g])(%~)", b="%1%1"}, {a="%`", b="_a"}, + {a="e", b="_a"}, -- BW safe {a="v", b="_t"}, {a="H", b=".h"}, {a="%*", b="_d"}, + {a="V", b="_d"}, -- BW safe {a="%$", b="^s"}, + {a="c", b="^s"}, -- BW safe {a="S", b=".s"}, {a="D", b=".d"}, {a="T", b=".t"}, @@ -150,7 +162,8 @@ buckwalter = { {a="K", b="iN"}, {a="o", b="\""}, -- hard-coded connective alif - {a="%[", b="ٱ"} + {a="%[", b="ٱ"}, + {a="L", b="ٱ"} -- BW safe } hamza = { |