From 60f993283f724252b3d9df2d696ba2629a0bd73c Mon Sep 17 00:00:00 2001 From: Robert Alessi Date: Tue, 27 Mar 2018 21:19:41 +0200 Subject: start encoding the honorifics --- arabluatex.dtx | 22 +++++++++++++++++++--- arabluatex.lua | 13 +++++++++++++ arabluatex_voc.lua | 4 ++++ 3 files changed, 36 insertions(+), 3 deletions(-) diff --git a/arabluatex.dtx b/arabluatex.dtx index b97ce4e..e6b680e 100644 --- a/arabluatex.dtx +++ b/arabluatex.dtx @@ -3692,9 +3692,9 @@ wa-ya.sIru ta.hta 'l-jild-i % Lua functions to insert transliterated Arabic text. Therefore, it is % not documented. % \begin{macrocode} -\DeclareDocumentCommand{\txarb}{+m}{\bgroup\textdir +\NewDocumentCommand{\txarb}{+m}{\bgroup\textdir TRT\arabicfont#1\egroup} -\DeclareDocumentCommand{\txtrans}{+m}{\bgroup\textdir +\NewDocumentCommand{\txtrans}{+m}{\bgroup\textdir TLT\al@trans@font#1\egroup} % \end{macrocode} % \end{macro} @@ -3716,7 +3716,7 @@ wa-ya.sIru ta.hta 'l-jild-i % either globally if no option is set, or locally, then passes its % argument to the appropriate Lua function. % \begin{macrocode} -\DeclareDocumentCommand{\arb}{O{\al@mode} +m}% +\NewDocumentCommand{\arb}{O{\al@mode} +m}% {\edef\@tempa{#1}% \ifx\@tempa\al@mode@voc% \bgroup\textdir TRT\arabicfont% @@ -3743,6 +3743,22 @@ wa-ya.sIru ta.hta 'l-jild-i \fi\fi\fi\fi} % \end{macrocode} % \end{macro} +% \begin{macro}{\arbmark} +% New command to be documented +% \begin{macrocode} +\NewDocumentCommand{\garbmark}{m}{% + \bgroup% + \SetInputScheme{arabtex}% + \ifx\al@mode\al@mode@trans% + \luadirect{tex.write(processarbmarks(\luastringN{#1}, + \luastringO{trans}))}% + \else% + \luadirect{tex.write(processarbmarks(\luastringN{#1}, + \luastringO{notrans}))}% + \fi\egroup} +% \end{macrocode} +% +% \end{macro} % \begin{environment}{arab} % The |arab| environment does for paragraphs the same as \cs{arb} does % for short insertions of Arabic text. diff --git a/arabluatex.lua b/arabluatex.lua index 2b1360c..2c0e2c2 100644 --- a/arabluatex.lua +++ b/arabluatex.lua @@ -665,6 +665,19 @@ function processtrans(str, mode, rules, scheme) return str end +function processarbmarks(str, mode) + if mode == "trans" then + for i = 1,#arbmarks do + str = string.gsub(str, arbmarks[i].a, arbmarks[i].c) + end + else + for i = 1,#arbmarks do + str = string.gsub(str, arbmarks[i].a, arbmarks[i].b) + end + end + return str +end + function uc(str) str = string.gsub(str, "(\\txtrans.?)(%b{})", function(tag, body) body = string.sub(body, 2, -2) diff --git a/arabluatex_voc.lua b/arabluatex_voc.lua index a0108fe..b27efdc 100644 --- a/arabluatex_voc.lua +++ b/arabluatex_voc.lua @@ -22,6 +22,10 @@ along with this program. If not, see . --]] +arbmarks = { + {a="bismillah", b="﷽", c="\\arb{bi-ismi \\uc{'l-l_ahi} 'l-ra.hm_ani 'l-ra.hImi}"} +} + abjad = { {"a\"'", "b", "j", "d", "h", "w", "z", ".h", ".t"}, {"y", "k", "l", "m", "n", "s", "`", "f", ".s", }, -- cgit v1.2.3