From e11852284d62c0d0192e9b2a204cb1e7f0ad45f1 Mon Sep 17 00:00:00 2001 From: Robert Alessi Date: Thu, 29 Mar 2018 19:03:38 +0200 Subject: \arbmarks{} first checks if its argument is defined in the arbmarks table --- arabluatex.dtx | 6 ++++-- arabluatex.lua | 25 +++++++++++++++++++------ arabluatex_voc.lua | 7 ++++--- 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/arabluatex.dtx b/arabluatex.dtx index 121de84..09b38e4 100644 --- a/arabluatex.dtx +++ b/arabluatex.dtx @@ -229,7 +229,7 @@ % % \fi % -% \CheckSum{715} +% \CheckSum{0} % % \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 @@ -3744,7 +3744,9 @@ wa-ya.sIru ta.hta 'l-jild-i % \end{macrocode} % \end{macro} % \begin{macro}{\arbmark} -% New command to be documented +% \changes{v1.10.4}{2018/03/29}{New command for inserting additional +% marks in Arabic environments} \cs{arbmark} takes one argument from a +% list of defined elements. % \begin{macrocode} \NewDocumentCommand{\arbmark}{m}{% \bgroup% diff --git a/arabluatex.lua b/arabluatex.lua index cd0bfa2..7a7460a 100644 --- a/arabluatex.lua +++ b/arabluatex.lua @@ -676,14 +676,27 @@ function newarbmark(abbr, rtlmk, ltrmk) return true end -function processarbmarks(str) - if tex.textdir == "TLT" then - for i = 1,#arbmarks do - str = string.gsub(str, arbmarks[i].a, arbmarks[i].c) +local function isintable(table, element) + for i = 1,#table do + if table[i].a == element then + return true end + end + return false +end + +function processarbmarks(str) + if not isintable(arbmarks, str) then + str = "\\LR{}" else - for i = 1,#arbmarks do - str = string.gsub(str, arbmarks[i].a, arbmarks[i].b) + if tex.textdir == "TLT" 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 end return str diff --git a/arabluatex_voc.lua b/arabluatex_voc.lua index 49b45a6..ac26c13 100644 --- a/arabluatex_voc.lua +++ b/arabluatex_voc.lua @@ -23,9 +23,10 @@ along with this program. If not, see --]] arbmarks = { - {a="bismillah", b="﷽", c="\\arb[trans]{bi-ismi \\uc{'l-l_ahi} 'l-ra.hm_ani 'l-ra.hImi}"}, - {a="salam", b="ﷵ", c="\\arb[trans]{.sall_A\\arbnull{'l-l_ahu} \\uc{'l-l_ahu} `alay-hi wa-sallama}"}, - {a="slm", b="ﷺ", c="\\arb[trans]{.sall_A\\arbnull{'l-l_ahu} \\uc{'l-l_ahu} `alay-hi wa-sallama}"} + {a="bismillah", b="^^^^fdfd", c="\\arb[trans]{bi-ismi \\uc{'l-l_ahi} 'l-ra.hm_ani 'l-ra.hImi}"}, + {a="salam", b="^^^^fdf5", c="\\arb[trans]{.sall_A\\arbnull{'l-l_ahu} \\uc{'l-l_ahu} `alay-hi wa-sallama}"}, + {a="slm", b="^^^^fdfa", c="\\arb[trans]{.sall_A\\arbnull{'l-l_ahu} \\uc{'l-l_ahu} `alay-hi wa-sallama}"}, + {a="jalla", b="^^^^fdfb", c="\\arb[trans]{^galla ^galAla-hu}"} } abjad = { -- cgit v1.2.3