diff options
-rw-r--r-- | arabluatex.dtx | 11 | ||||
-rw-r--r-- | arabluatex.lua | 6 | ||||
-rw-r--r-- | arabluatex_trans.lua | 78 | ||||
-rw-r--r-- | arabluatex_voc.lua | 4 |
4 files changed, 80 insertions, 19 deletions
diff --git a/arabluatex.dtx b/arabluatex.dtx index 5ec4cbe..efac2c3 100644 --- a/arabluatex.dtx +++ b/arabluatex.dtx | |||
@@ -3324,7 +3324,6 @@ wa-ya.sIru ta.hta 'l-jild-i | |||
3324 | \ifdefined\spewnotes\spewnotes\else\fi% | 3324 | \ifdefined\spewnotes\spewnotes\else\fi% |
3325 | } | 3325 | } |
3326 | % \end{macrocode} | 3326 | % \end{macrocode} |
3327 | % | ||
3328 | % \end{macro} | 3327 | % \end{macro} |
3329 | % \end{environment} | 3328 | % \end{environment} |
3330 | % \begin{macro}{\abjad} \cs{abjad}\marg{number} expresses its argument | 3329 | % \begin{macro}{\abjad} \cs{abjad}\marg{number} expresses its argument |
@@ -3345,6 +3344,16 @@ wa-ya.sIru ta.hta 'l-jild-i | |||
3345 | \fi} | 3344 | \fi} |
3346 | % \end{macrocode} | 3345 | % \end{macrocode} |
3347 | % \end{macro} | 3346 | % \end{macro} |
3347 | % \begin{macro}{\arbnull} | ||
3348 | % \changes{v1.7}{2016/12/23}{New \cs{arbnull} command for putting | ||
3349 | % back on any contextual analysis broken by other commands.} The | ||
3350 | % \cs{arbnull} command does nothing by itself. It is processed only | ||
3351 | % if it is found in Arabic context so as to put back on contextual | ||
3352 | % analysis in case it has been broken by other commands. | ||
3353 | % \begin{macrocode} | ||
3354 | \NewDocumentCommand{\arbnull}{m}{\relax} | ||
3355 | % \end{macrocode} | ||
3356 | % \end{macro} | ||
3348 | % \begin{macro}{\abraces} | 3357 | % \begin{macro}{\abraces} |
3349 | % \cs{abraces}\marg{Arabic text} puts its argument between | 3358 | % \cs{abraces}\marg{Arabic text} puts its argument between |
3350 | % braces. This macro is written in Lua and is dependent on the | 3359 | % braces. This macro is written in Lua and is dependent on the |
diff --git a/arabluatex.lua b/arabluatex.lua index 527be3b..294e75f 100644 --- a/arabluatex.lua +++ b/arabluatex.lua | |||
@@ -128,6 +128,11 @@ local function indnum(str) | |||
128 | return str | 128 | return str |
129 | end | 129 | end |
130 | 130 | ||
131 | local function processdiscretionary(str) | ||
132 | str = string.gsub(str, "\\%-", "\\-{}") | ||
133 | return str | ||
134 | end | ||
135 | |||
131 | local function processarbnull(str, scheme) | 136 | local function processarbnull(str, scheme) |
132 | if scheme == "buckwalter" then | 137 | if scheme == "buckwalter" then |
133 | str = string.gsub(str, "(\\arbnull.?)(%b{})", function(tag, body) | 138 | str = string.gsub(str, "(\\arbnull.?)(%b{})", function(tag, body) |
@@ -558,6 +563,7 @@ end | |||
558 | 563 | ||
559 | function processtrans(str, mode, rules, scheme) | 564 | function processtrans(str, mode, rules, scheme) |
560 | str = "\\arb{".. str.."}" | 565 | str = "\\arb{".. str.."}" |
566 | str = processdiscretionary(str) | ||
561 | str = processarbnull(str, scheme) | 567 | str = processarbnull(str, scheme) |
562 | str = takeoutabjad(str) | 568 | str = takeoutabjad(str) |
563 | str = protectarb(str) | 569 | str = protectarb(str) |
diff --git a/arabluatex_trans.lua b/arabluatex_trans.lua index bc44229..0868262 100644 --- a/arabluatex_trans.lua +++ b/arabluatex_trans.lua | |||
@@ -31,7 +31,7 @@ punctuationtr = { | |||
31 | 31 | ||
32 | nulltr = { | 32 | nulltr = { |
33 | {a="%|", b=""}, | 33 | {a="%|", b=""}, |
34 | {a="o.-o", b=""} | 34 | {a="o[%S]-o", b=""} |
35 | } | 35 | } |
36 | 36 | ||
37 | -- cap | 37 | -- cap |
@@ -97,14 +97,14 @@ hamzatrdmg = { | |||
97 | {a="(A)(')", b="%1ʾ"}, -- historic madda | 97 | {a="(A)(')", b="%1ʾ"}, -- historic madda |
98 | -- initial (needs both ^ and %W patterns) | 98 | -- initial (needs both ^ and %W patterns) |
99 | -- 'aw: the diphthong is to be resolved into 'awi' (next 8 lines) | 99 | -- 'aw: the diphthong is to be resolved into 'awi' (next 8 lines) |
100 | {a="^('aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)(.-o)", b="%1i"}, | 100 | {a="^('aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"}, |
101 | {a="(%W)('aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)(.-o)", b="%1%2i"}, | 101 | {a="(%W)('aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1%2i"}, |
102 | {a="^('aw)(o)([%(%[%|%<]?\"?[uai])(.-o)", b="%1i"}, | 102 | {a="^('aw)(o)(\"?[uai])([%S]-o)", b="%1i"}, |
103 | {a="(%W)('aw)(o)([%(%[%|%<]?\"?[uai])(.-o)", b="%1%2i"}, | 103 | {a="(%W)('aw)(o)(\"?[uai])([%S]-o)", b="%1%2i"}, |
104 | {a="^('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, | 104 | {a="^('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, |
105 | {a="(%W)('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"}, | 105 | {a="(%W)('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"}, |
106 | {a="^('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, | 106 | {a="^('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, --p |
107 | {a="(%W)('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"}, | 107 | {a="(%W)('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"}, --p |
108 | -- then the 'initial' rules for the remaining cases | 108 | -- then the 'initial' rules for the remaining cases |
109 | {a="^(')([ua])", b="ʾ%2"}, | 109 | {a="^(')([ua])", b="ʾ%2"}, |
110 | {a="^(')(i)", b="ʾ%2"}, | 110 | {a="^(')(i)", b="ʾ%2"}, |
@@ -138,12 +138,19 @@ hamzatrdmg = { | |||
138 | } | 138 | } |
139 | 139 | ||
140 | tanwintrdmg = { | 140 | tanwintrdmg = { |
141 | {a="%-?([uai]NU)(o)([ui])([%S]-o)", b="\\arbup{un%3}"}, | ||
141 | {a="%-?([uai]NU)(%s)([ui])", b="\\arbup{un%3}%2'"}, | 142 | {a="%-?([uai]NU)(%s)([ui])", b="\\arbup{un%3}%2'"}, |
142 | {a="%-?uNU", b="\\arbup{un}"}, | 143 | {a="%-?uNU", b="\\arbup{un}"}, |
143 | {a="%-?aNU", b="\\arbup{an}"}, | 144 | {a="%-?aNU", b="\\arbup{an}"}, |
144 | {a="%-?iNU", b="\\arbup{in}"}, | 145 | {a="%-?iNU", b="\\arbup{in}"}, |
145 | {a="%-?iNI", b="i\\arbup{n}"}, | 146 | {a="%-?iNI", b="i\\arbup{n}"}, |
146 | -- tanwīn preceding ʾalif conjunctionis | 147 | -- tanwīn preceding ʾalif conjunctionis |
148 | {a="%-?(uN)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="\\arbup{uni}"}, | ||
149 | {a="%-?(aN)(_A)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="ạ\\arbup{ni}"}, | ||
150 | {a="%-?(aN)(Y)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="ạ\\arbup{ni}"}, | ||
151 | {a="(T)%-?(aN)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="t\\arbup{ani}"}, | ||
152 | {a="([^TA])%-?(aN)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1\\arbup{ani}"}, | ||
153 | {a="%-?(iN)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="\\arbup{ini}"}, | ||
147 | {a="%-?(uN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="\\arbup{uni}%2%3"}, | 154 | {a="%-?(uN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="\\arbup{uni}%2%3"}, |
148 | {a="%-?(aN)(_A)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="ạ\\arbup{ni}%3%4"}, | 155 | {a="%-?(aN)(_A)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="ạ\\arbup{ni}%3%4"}, |
149 | {a="%-?(aN)(Y)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="ạ\\arbup{ni}%3%4"}, | 156 | {a="%-?(aN)(Y)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="ạ\\arbup{ni}%3%4"}, |
@@ -151,6 +158,12 @@ tanwintrdmg = { | |||
151 | {a="([^TA])%-?(aN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1\\arbup{ani}%3%4"}, | 158 | {a="([^TA])%-?(aN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1\\arbup{ani}%3%4"}, |
152 | {a="%-?(iN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="\\arbup{ini}%2%3"}, | 159 | {a="%-?(iN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="\\arbup{ini}%2%3"}, |
153 | -- tanwīn preceding 'lla_dI/'llatI | 160 | -- tanwīn preceding 'lla_dI/'llatI |
161 | {a="%-?(uN)(o)('lla[%_]?[dt])([%S]-o)", b="\\arbup{uni}"}, | ||
162 | {a="%-?(aN)(_A)(o)('lla[%_]?[dt])([%S]-o)", b="ạ\\arbup{ni}"}, | ||
163 | {a="%-?(aN)(Y)(o)('lla[%_]?[dt])([%S]-o)", b="ạ\\arbup{ni}"}, | ||
164 | {a="(T)%-?(aN)(o)('lla[%_]?[dt])([%S]-o)", b="t\\arbup{ani}"}, | ||
165 | {a="([^TA])%-?(aN)(o)('lla[%_]?[dt])([%S]-o)", b="%1\\arbup{ani}"}, | ||
166 | {a="%-?(iN)(o)('lla[%_]?[dt])([%S]-o)", b="\\arbup{ini}"}, | ||
154 | {a="%-?(uN)(%s)('lla[%_]?[dt])", b="\\arbup{uni}%2%3"}, | 167 | {a="%-?(uN)(%s)('lla[%_]?[dt])", b="\\arbup{uni}%2%3"}, |
155 | {a="%-?(aN)(_A)(%s)('lla[%_]?[dt])", b="ạ\\arbup{ni}%3%4"}, | 168 | {a="%-?(aN)(_A)(%s)('lla[%_]?[dt])", b="ạ\\arbup{ni}%3%4"}, |
156 | {a="%-?(aN)(Y)(%s)('lla[%_]?[dt])", b="ạ\\arbup{ni}%3%4"}, | 169 | {a="%-?(aN)(Y)(%s)('lla[%_]?[dt])", b="ạ\\arbup{ni}%3%4"}, |
@@ -158,12 +171,19 @@ tanwintrdmg = { | |||
158 | {a="([^TA])%-?(aN)(%s)('lla[%_]?[dt])", b="%1\\arbup{ani}%3%4"}, | 171 | {a="([^TA])%-?(aN)(%s)('lla[%_]?[dt])", b="%1\\arbup{ani}%3%4"}, |
159 | {a="%-?(iN)(%s)('lla[%_]?[dt])", b="\\arbup{ini}%2%3"}, | 172 | {a="%-?(iN)(%s)('lla[%_]?[dt])", b="\\arbup{ini}%2%3"}, |
160 | -- tanwīn + alif without hamza and kasra (ibn) or dhamma (uhrub) | 173 | -- tanwīn + alif without hamza and kasra (ibn) or dhamma (uhrub) |
174 | {a="%-?(uN)(o)([ui])([%S]-o)", b="\\arbup{un%3}"}, | ||
175 | {a="%-?(aN)(_A)(o)([ui])([%S]-o)", b="ạ\\arbup{n%4}"}, | ||
176 | {a="%-?(aN)(Y)(o)([ui])([%S]-o)", b="ạ\\arbup{n%4}"}, | ||
177 | {a="(T)%-?(aN)(o)([ui])([%S]-o)", b="t\\arbup{an%4}"}, | ||
178 | {a="([^TA])%-?(aN)(o)([ui])([%S]-o)", b="%1\\arbup{an%4}"}, | ||
179 | {a="%-?(iN)(o)([ui])([%S]-o)", b="\\arbup{in%3}"}, | ||
180 | {a="(o[%S]-)([uai]N)(o)(\"?[ui])", b="'"}, | ||
161 | {a="%-?(uN)(%s)([ui])", b="\\arbup{un%3}%2'"}, | 181 | {a="%-?(uN)(%s)([ui])", b="\\arbup{un%3}%2'"}, |
162 | {a="%-?(aN)(_A)(%s)([ui])", b="ạ\\arbup{n%4}%3%'"}, | 182 | {a="%-?(aN)(_A)(%s)([ui])", b="ạ\\arbup{n%4}%3'"}, |
163 | {a="%-?(aN)(Y)(%s)([ui])", b="ạ\\arbup{n%4}%3%'"}, | 183 | {a="%-?(aN)(Y)(%s)([ui])", b="ạ\\arbup{n%4}%3'"}, |
164 | {a="(T)%-?(aN)(%s)([ui])", b="t\\arbup{an%4}%3%'"}, | 184 | {a="(T)%-?(aN)(%s)([ui])", b="t\\arbup{an%4}%3'"}, |
165 | {a="([^TA])%-?(aN)(%s)([ui])", b="%1\\arbup{an%4}%3%'"}, | 185 | {a="([^TA])%-?(aN)(%s)([ui])", b="%1\\arbup{an%4}%3'"}, |
166 | {a="%-?(iN)(%s)([ui])", b="\\arbup{in%3}%2%'"}, | 186 | {a="%-?(iN)(%s)([ui])", b="\\arbup{in%3}%2'"}, |
167 | -- | 187 | -- |
168 | -- {a="uN", b="\\arbup{un}"}, (now included in the last line of this table) | 188 | -- {a="uN", b="\\arbup{un}"}, (now included in the last line of this table) |
169 | {a="%-?(\"?At)%-?([ui])N", b="\\arbup{%1%2n}"}, | 189 | {a="%-?(\"?At)%-?([ui])N", b="\\arbup{%1%2n}"}, |
@@ -178,11 +198,15 @@ trigraphstrdmg = { -- trigraphs or more | |||
178 | -- 'llatI / 'llad_I | 198 | -- 'llatI / 'llad_I |
179 | {a="^'ll(a)([%_]?[dt])", b="'ll%1%2"}, | 199 | {a="^'ll(a)([%_]?[dt])", b="'ll%1%2"}, |
180 | {a="([%(%[%|%<%s])'ll(a)([%_]?[dt])", b="%1'll%2%3"}, --p | 200 | {a="([%(%[%|%<%s])'ll(a)([%_]?[dt])", b="%1'll%2%3"}, --p |
181 | -- law: the diphthong is to be resoved into 'awi' (next 4 lines) | 201 | -- law: the diphthong is to be resolved into 'awi' (next 8 lines) |
202 | {a="^(law)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"}, | ||
203 | {a="(%W)(law)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1%2i"}, | ||
204 | {a="^(law)(o)(\"?[uai])([%S]-o)", b="%1i"}, | ||
205 | {a="(%W)(law)(o)(\"?[uai])([%S]-o)", b="%1%2i"}, | ||
182 | {a="^(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, | 206 | {a="^(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, |
183 | {a="(%W)(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"}, | 207 | {a="(%W)(law)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"}, |
184 | {a="^(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, | 208 | {a="^(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, --p |
185 | {a="(%W)(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"}, | 209 | {a="(%W)(law)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"}, --p |
186 | -- al- + lām | 210 | -- al- + lām |
187 | {a="^(a)l%-(l)", b="%1l-%2"}, | 211 | {a="^(a)l%-(l)", b="%1l-%2"}, |
188 | {a="([%(%[%|%<%s%-])(a)l%-(l)", b="%1%2l-%3"}, --p | 212 | {a="([%(%[%|%<%s%-])(a)l%-(l)", b="%1%2l-%3"}, --p |
@@ -201,8 +225,14 @@ trigraphstrdmg = { -- trigraphs or more | |||
201 | {a="^(a)l%-", b="%1l-"}, | 225 | {a="^(a)l%-", b="%1l-"}, |
202 | {a="([%(%[%|%<%s%-])(a)l%-", b="%1%2l-"}, --p | 226 | {a="([%(%[%|%<%s%-])(a)l%-", b="%1%2l-"}, --p |
203 | -- diphthongs to be resolved before ʾalif conjunctionis | 227 | -- diphthongs to be resolved before ʾalif conjunctionis |
228 | {a="(aw)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1u"}, | ||
229 | {a="(ay)(o)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="%1i"}, | ||
230 | {a="(aw)(o)(\"?[uai])([%S]-o)", b="%1u"}, | ||
231 | {a="(ay)(o)(\"?[uai])([%S]-o)", b="%1i"}, | ||
204 | {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"}, | 232 | {a="(aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1u%2%3"}, |
205 | {a="(ay)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, | 233 | {a="(ay)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, |
234 | {a="(aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1u%2%3"}, --p | ||
235 | {a="(ay)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, --p | ||
206 | -- art. with waṣla + lām | 236 | -- art. with waṣla + lām |
207 | {a="'l%-(l)", b="'l-%1"}, | 237 | {a="'l%-(l)", b="'l-%1"}, |
208 | -- art. with waṣla + solar consonant | 238 | -- art. with waṣla + solar consonant |
@@ -235,7 +265,7 @@ trigraphstrdmg = { -- trigraphs or more | |||
235 | idghamtrdmg = { | 265 | idghamtrdmg = { |
236 | -- assimilations | 266 | -- assimilations |
237 | {a="(n)(}?)(%s)([rlmnwy])", b="%4%2%3%4"}, | 267 | {a="(n)(}?)(%s)([rlmnwy])", b="%4%2%3%4"}, |
238 | {a="(n)(o)([rlmnwy])(.-o)", b="%3"} | 268 | {a="(n)(o)([rlmnwy])([%S]-o)", b="%3"} |
239 | } | 269 | } |
240 | 270 | ||
241 | digraphstrdmg = { | 271 | digraphstrdmg = { |
@@ -249,6 +279,15 @@ digraphstrdmg = { | |||
249 | {a="(%W)(\"?[uai])", b="%1%2"}, -- initial alif without hamza | 279 | {a="(%W)(\"?[uai])", b="%1%2"}, -- initial alif without hamza |
250 | -- this is not necessary, take out for now: | 280 | -- this is not necessary, take out for now: |
251 | -- {a="([%_]?[uaiUAIY])(%s)([uai])", b="%1%2'"}, -- initial alif without hamza | 281 | -- {a="([%_]?[uaiUAIY])(%s)([uai])", b="%1%2'"}, -- initial alif without hamza |
282 | {a="(aW)(o)(\"?[uai])([%S]-o)", b="awu"}, | ||
283 | {a="(UA)(o)(\"?[uai])([%S]-o)", b="u"}, | ||
284 | {a="(%_A)(o)(\"?[uai])([%S]-o)", b="ạ"}, | ||
285 | {a="(Y)(o)(\"?[uai])([%S]-o)", b="ạ"}, | ||
286 | {a="(%_a)(o)(\"?[uai])([%S]-o)", b="a"}, | ||
287 | {a="(A)(o)(\"?[uai])([%S]-o)", b="a"}, | ||
288 | {a="([%_]?[Uu])(o)(\"?[uai])([%S]-o)", b="u"}, | ||
289 | {a="([%_]?[Ii])(o)(\"?[uai])([%S]-o)", b="i"}, | ||
290 | {a="(o[%S]-)([UAIYWuaiyw])(o)(\"?[uai])", b="'"}, | ||
252 | {a="(aW)(%s)([%(%[%|%<]?)(\"?[uai])", b="awu%2%3%4"}, --p | 291 | {a="(aW)(%s)([%(%[%|%<]?)(\"?[uai])", b="awu%2%3%4"}, --p |
253 | {a="(UA)(%s)([%(%[%|%<]?)(\"?[uai])", b="u%2%3'"}, --p | 292 | {a="(UA)(%s)([%(%[%|%<]?)(\"?[uai])", b="u%2%3'"}, --p |
254 | {a="([^%_][uai])(%s)([%(%[%|%<]?)(\"?[uai])", b="%1%2%3'"}, --p | 293 | {a="([^%_][uai])(%s)([%(%[%|%<]?)(\"?[uai])", b="%1%2%3'"}, --p |
@@ -272,6 +311,13 @@ digraphstrdmg = { | |||
272 | -- ʾiʿrāb hyphen (end) | 311 | -- ʾiʿrāb hyphen (end) |
273 | -- shorten long vowels preceding ʾalif conjunctionis | 312 | -- shorten long vowels preceding ʾalif conjunctionis |
274 | {a="(U)(A)", b="U"}, | 313 | {a="(U)(A)", b="U"}, |
314 | {a="(aW)(o)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="awu"}, | ||
315 | {a="(%_a)(o)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="a"}, | ||
316 | {a="(%_A)(o)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="ạ"}, | ||
317 | {a="(A)(o)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="a"}, | ||
318 | {a="(Y)(o)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="ạ"}, | ||
319 | {a="([%_]?[Uu])(o)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="u"}, | ||
320 | {a="([%_]?[Ii])(o)('[%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-o)", b="i"}, | ||
275 | --p (next 7 lines, just after %s) | 321 | --p (next 7 lines, just after %s) |
276 | {a="(aW)(%s)([%(%[%|%<]?['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awu%2%3"}, | 322 | {a="(aW)(%s)([%(%[%|%<]?['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="awu%2%3"}, |
277 | {a="(%_a)(%s)([%(%[%|%<]?['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="a%2%3"}, | 323 | {a="(%_a)(%s)([%(%[%|%<]?['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="a%2%3"}, |
diff --git a/arabluatex_voc.lua b/arabluatex_voc.lua index c856818..2f5e445 100644 --- a/arabluatex_voc.lua +++ b/arabluatex_voc.lua | |||
@@ -205,8 +205,8 @@ hamza = { | |||
205 | -- 'aw: the diphthong is to be resoved into 'awi' (next 4 lines) | 205 | -- 'aw: the diphthong is to be resoved into 'awi' (next 4 lines) |
206 | {a="^('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, | 206 | {a="^('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, |
207 | {a="(%W)('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"}, | 207 | {a="(%W)('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"}, |
208 | {a="^('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, | 208 | {a="^('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, --p |
209 | {a="(%W)('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"}, | 209 | {a="(%W)('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"}, --p |
210 | -- then the 'initial' rules for the remaining cases | 210 | -- then the 'initial' rules for the remaining cases |
211 | {a="^(')([ua])", b="أ%2"}, | 211 | {a="^(')([ua])", b="أ%2"}, |
212 | {a="^(')(i)", b="إ%2"}, | 212 | {a="^(')(i)", b="إ%2"}, |