diff options
-rw-r--r-- | arabluatex.dtx | 82 | ||||
-rw-r--r-- | arabluatex_fullvoc.lua | 6 | ||||
-rw-r--r-- | arabluatex_voc.lua | 6 |
3 files changed, 88 insertions, 6 deletions
diff --git a/arabluatex.dtx b/arabluatex.dtx index 93ce3a4..c5cf1da 100644 --- a/arabluatex.dtx +++ b/arabluatex.dtx | |||
@@ -27,7 +27,7 @@ | |||
27 | %<package-info>\NeedsTeXFormat{LaTeX2e}[1999/12/01] | 27 | %<package-info>\NeedsTeXFormat{LaTeX2e}[1999/12/01] |
28 | %<package-info>\ProvidesPackage{arabluatex} | 28 | %<package-info>\ProvidesPackage{arabluatex} |
29 | %<*package-info> | 29 | %<*package-info> |
30 | [2016/12/17 v1.6 An ArabTeX-like interface for LuaLaTeX] | 30 | [2016/12/24 v1.7 An ArabTeX-like interface for LuaLaTeX] |
31 | %</package-info> | 31 | %</package-info> |
32 | % | 32 | % |
33 | %<*driver> | 33 | %<*driver> |
@@ -145,7 +145,7 @@ | |||
145 | \defaultfontfeatures{RawFeature={+liga}} | 145 | \defaultfontfeatures{RawFeature={+liga}} |
146 | \setmainfont{Old Standard}[SmallCapsFont={Latin Modern Roman Caps}, | 146 | \setmainfont{Old Standard}[SmallCapsFont={Latin Modern Roman Caps}, |
147 | RawFeature={+mark;+ccmp;+ss05;+ss06}] | 147 | RawFeature={+mark;+ccmp;+ss05;+ss06}] |
148 | \usepackage{arabluatex}[2016/12/17] | 148 | \usepackage{arabluatex}[2016/12/24] |
149 | \usepackage[nopar]{quran} | 149 | \usepackage[nopar]{quran} |
150 | \usepackage{varioref} | 150 | \usepackage{varioref} |
151 | \usepackage{hypdoc} | 151 | \usepackage{hypdoc} |
@@ -203,7 +203,7 @@ | |||
203 | %</driver> | 203 | %</driver> |
204 | % \fi | 204 | % \fi |
205 | % | 205 | % |
206 | % \CheckSum{0} | 206 | % \CheckSum{697} |
207 | % | 207 | % |
208 | % \CharacterTable | 208 | % \CharacterTable |
209 | % {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 | 209 | % {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 |
@@ -257,7 +257,7 @@ | |||
257 | % \pagebreak | 257 | % \pagebreak |
258 | % \listoftables | 258 | % \listoftables |
259 | % \normalsize | 259 | % \normalsize |
260 | % | 260 | % |
261 | % \begin{abstract} | 261 | % \begin{abstract} |
262 | % This package provides for \LuaLaTeX\ an Arab{\TeX}-like interface | 262 | % This package provides for \LuaLaTeX\ an Arab{\TeX}-like interface |
263 | % to generate Arabic writing from an \textsc{ascii} | 263 | % to generate Arabic writing from an \textsc{ascii} |
@@ -1320,6 +1320,7 @@ vowels (see §~3). | |||
1320 | % \end{quote} | 1320 | % \end{quote} |
1321 | % | 1321 | % |
1322 | % \subparagraph{\arb[trans]{'alif-u 'l-wa.sl-i} preceded by a diphthong} | 1322 | % \subparagraph{\arb[trans]{'alif-u 'l-wa.sl-i} preceded by a diphthong} |
1323 | % \label{sec:diphthong-alif} | ||
1323 | % The diphthong is resolved into two simple vowels \parencite[i. 21 | 1324 | % The diphthong is resolved into two simple vowels \parencite[i. 21 |
1324 | % D--22 A]{Wright} viz. \emph{ay}~→ \emph{\u{a}\u{i}} and \emph{aw}~→ | 1325 | % D--22 A]{Wright} viz. \emph{ay}~→ \emph{\u{a}\u{i}} and \emph{aw}~→ |
1325 | % \emph{\u{a}\u{u}}. \package{arabluatex} detects the cases in which | 1326 | % \emph{\u{a}\u{u}}. \package{arabluatex} detects the cases in which |
@@ -1656,6 +1657,75 @@ vowels (see §~3). | |||
1656 | % \meta{n} prevents the necessary \arb[trans]{ta^sdId} rule | 1657 | % \meta{n} prevents the necessary \arb[trans]{ta^sdId} rule |
1657 | % (\cpageref{ref:necessary-tashdid}) from being applied. | 1658 | % (\cpageref{ref:necessary-tashdid}) from being applied. |
1658 | % | 1659 | % |
1660 | % \subsection{Putting back on broken contextual analysis rules} | ||
1661 | % \label{sec:arbnull} | ||
1662 | % \NEWfeature{v1.7} In complex documents such as critical editions | ||
1663 | % where footnotes and other kind of annotations can be particularly | ||
1664 | % abundant, the contextual analysis rules that are described above may | ||
1665 | % be broken by \LaTeX\ commands. To take an example, consider the | ||
1666 | % following:---% | ||
1667 | % \iffalse | ||
1668 | %<*example> | ||
1669 | % \fi | ||
1670 | \begin{arabluacode} | ||
1671 | This is wrong: | ||
1672 | \begin{arab}[fullvoc] | ||
1673 | fa-lammA ra'aW\LRfootnote{A footnote that interferes with the | ||
1674 | contextual analysis.} 'l-na^gma... | ||
1675 | \end{arab} | ||
1676 | \end{arabluacode} | ||
1677 | % \iffalse | ||
1678 | %</example> | ||
1679 | % \fi% | ||
1680 | % According to the rule stated \vpageref{sec:diphthong-alif}, the | ||
1681 | % diphthong in \arb[trans]{ra'aW} must be resolved into two simple | ||
1682 | % vowels before the \arb[trans]{'alif-u 'l-wa.sl-i}, as | ||
1683 | % \arb[fullvoc]{ra'aW 'l-na^gma}. | ||
1684 | % | ||
1685 | % \DescribeMacro{\arbnull} The \cs{arbnull} command is provided so as | ||
1686 | % to put back on contextual analysis rules in such situations. It | ||
1687 | % takes as argument the word that must be brought back for any given | ||
1688 | % rule to be applied as it ought to. Depending on the contexts that | ||
1689 | % have to be restored, \cs{arbnull} may be found just after or before | ||
1690 | % Arabic words.% | ||
1691 | % \iffalse | ||
1692 | %<*example> | ||
1693 | % \fi | ||
1694 | \begin{arabluacode}[text only] | ||
1695 | In any case, \emph{no space must be left} after or before the Arabic | ||
1696 | word that \cs{arbnull} is applied to. | ||
1697 | \end{arabluacode} | ||
1698 | % \iffalse | ||
1699 | %</example> | ||
1700 | % \fi% | ||
1701 | % The following shows how the Arabic should have been written in the | ||
1702 | % preceding example and gives further illustrations of the same | ||
1703 | % technique:---% | ||
1704 | % \iffalse | ||
1705 | %<*example> | ||
1706 | % \fi | ||
1707 | \begin{arabluacode} | ||
1708 | \begin{arab}[fullvoc] | ||
1709 | fa-lammA ra'aW\arbnull{'l-na^gma}\LRfootnote{A footnote that | ||
1710 | interferes with the contextual analysis.} 'l-na^gma... | ||
1711 | |||
1712 | qAla\LRfootnote{A footnote that interferes with the contextual | ||
1713 | analysis.} \arbnull{qAla}uhrub fa-lan tuqtala. | ||
1714 | |||
1715 | zayduN\arbnull{ibnu}\LRfootnote{A footnote that interferes with | ||
1716 | the contextual analysis.} \arbnull{zayduN}ibn-u | ||
1717 | `amriNU.\LRfootnote{See \vref{fn:zayd-is-son}.} | ||
1718 | \end{arab} | ||
1719 | \begin{arab}[trans] | ||
1720 | zayduN\arbnull{ibnu}\LRfootnote{A footnote that interferes with | ||
1721 | the contextual analysis.} \arbnull{zayduN}ibn-u | ||
1722 | `amriNU.\LRfootnote{See \vref{fn:zayd-is-son}.} | ||
1723 | \end{arab} | ||
1724 | \end{arabluacode} | ||
1725 | % \iffalse | ||
1726 | %</example> | ||
1727 | % \fi% | ||
1728 | % | ||
1659 | % \subsection{\texorpdfstring{Stretching characters: the | 1729 | % \subsection{\texorpdfstring{Stretching characters: the |
1660 | % \arb[trans]{ta.twIl}}{Stretching characters: the taṭwīl}} | 1730 | % \arb[trans]{ta.twIl}}{Stretching characters: the taṭwīl}} |
1661 | % \label{sec:tatwil} | 1731 | % \label{sec:tatwil} |
@@ -2939,7 +3009,7 @@ wa-ya.sIru ta.hta 'l-jild-i | |||
2939 | % \begin{macrocode} | 3009 | % \begin{macrocode} |
2940 | \NeedsTeXFormat{LaTeX2e} | 3010 | \NeedsTeXFormat{LaTeX2e} |
2941 | \ProvidesPackage{arabluatex}% | 3011 | \ProvidesPackage{arabluatex}% |
2942 | [2016/12/17 v1.6 An ArabTeX-like interface for LuaLaTeX] | 3012 | [2016/12/24 v1.7 An ArabTeX-like interface for LuaLaTeX] |
2943 | \RequirePackage{ifluatex} | 3013 | \RequirePackage{ifluatex} |
2944 | % \end{macrocode} | 3014 | % \end{macrocode} |
2945 | % \package{arabluatex} requires \LuaLaTeX\ of course. Issue a warning | 3015 | % \package{arabluatex} requires \LuaLaTeX\ of course. Issue a warning |
@@ -3345,7 +3415,7 @@ wa-ya.sIru ta.hta 'l-jild-i | |||
3345 | % \end{macrocode} | 3415 | % \end{macrocode} |
3346 | % \end{macro} | 3416 | % \end{macro} |
3347 | % \begin{macro}{\arbnull} | 3417 | % \begin{macro}{\arbnull} |
3348 | % \changes{v1.7}{2016/12/23}{New \cs{arbnull} command for putting | 3418 | % \changes{v1.7}{2016/12/24}{New \cs{arbnull} command for putting |
3349 | % back on any contextual analysis broken by other commands.} The | 3419 | % back on any contextual analysis broken by other commands.} The |
3350 | % \cs{arbnull} command does nothing by itself. It is processed only | 3420 | % \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 | 3421 | % if it is found in Arabic context so as to put back on contextual |
diff --git a/arabluatex_fullvoc.lua b/arabluatex_fullvoc.lua index 0b558df..31956a6 100644 --- a/arabluatex_fullvoc.lua +++ b/arabluatex_fullvoc.lua | |||
@@ -245,6 +245,7 @@ tanwinfv = { -- with assimilations (\SetArbDflt*) | |||
245 | {a="(o[%S]-)(%-?[uai]N[UI]?)(o)([rlmnwy])", b="%4%4"}, | 245 | {a="(o[%S]-)(%-?[uai]N[UI]?)(o)([rlmnwy])", b="%4%4"}, |
246 | {a="(%-?[uai]NU)(%s)([rlmnwy])", b="%1%2%3%3"}, | 246 | {a="(%-?[uai]NU)(%s)([rlmnwy])", b="%1%2%3%3"}, |
247 | -- assimilations (end) | 247 | -- assimilations (end) |
248 | {a="(o[%S]-)(%-?[uai]N[UI]?)(o)([uai])", b="ٱ"}, | ||
248 | {a="%-?(uNU)(%s)([uai])", b="%1%2ٱ"}, | 249 | {a="%-?(uNU)(%s)([uai])", b="%1%2ٱ"}, |
249 | {a="%-?(aNU)(%s)([uai])", b="%1%2ٱ"}, | 250 | {a="%-?(aNU)(%s)([uai])", b="%1%2ٱ"}, |
250 | {a="%-?(iNU)(%s)([uai])", b="%1%2ٱ"}, | 251 | {a="%-?(iNU)(%s)([uai])", b="%1%2ٱ"}, |
@@ -264,6 +265,8 @@ tanwinfv = { -- with assimilations (\SetArbDflt*) | |||
264 | {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"}, | 265 | {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"}, |
265 | {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"}, | 266 | {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"}, |
266 | -- assimilations (end) | 267 | -- assimilations (end) |
268 | {a="(o[%S]-)(%-?aN)(_A)(o)([uai])", b="ٱ"}, | ||
269 | {a="(o[%S]-)(%-?aN)(Y)(o)([uai])", b="ٱ"}, | ||
267 | -- quoted tanwīn (begin) | 270 | -- quoted tanwīn (begin) |
268 | {a="%-?(\"uN)", b=""}, | 271 | {a="%-?(\"uN)", b=""}, |
269 | {a="(B)%-?(\"aN)", b="%1"}, | 272 | {a="(B)%-?(\"aN)", b="%1"}, |
@@ -289,6 +292,7 @@ tanwinfveasy = { -- no assimilations (see below) | |||
289 | --easy {a="(o[%S]-)(%-?[uai]N[UI]?)(o)([rlmnwy])", b="%4%4"}, | 292 | --easy {a="(o[%S]-)(%-?[uai]N[UI]?)(o)([rlmnwy])", b="%4%4"}, |
290 | --easy {a="(%-?[uai]NU)(%s)([rlmnwy])", b="%1%2%3%3"}, | 293 | --easy {a="(%-?[uai]NU)(%s)([rlmnwy])", b="%1%2%3%3"}, |
291 | -- assimilations (end) | 294 | -- assimilations (end) |
295 | {a="(o[%S]-)(%-?[uai]N[UI]?)(o)([uai])", b="ٱ"}, | ||
292 | {a="%-?(uNU)(%s)([uai])", b="%1%2ٱ"}, | 296 | {a="%-?(uNU)(%s)([uai])", b="%1%2ٱ"}, |
293 | {a="%-?(aNU)(%s)([uai])", b="%1%2ٱ"}, | 297 | {a="%-?(aNU)(%s)([uai])", b="%1%2ٱ"}, |
294 | {a="%-?(iNU)(%s)([uai])", b="%1%2ٱ"}, | 298 | {a="%-?(iNU)(%s)([uai])", b="%1%2ٱ"}, |
@@ -308,6 +312,8 @@ tanwinfveasy = { -- no assimilations (see below) | |||
308 | --easy {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"}, | 312 | --easy {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"}, |
309 | --easy {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"}, | 313 | --easy {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"}, |
310 | -- assimilations (end) | 314 | -- assimilations (end) |
315 | {a="(o[%S]-)(%-?aN)(_A)(o)([uai])", b="ٱ"}, | ||
316 | {a="(o[%S]-)(%-?aN)(Y)(o)([uai])", b="ٱ"}, | ||
311 | -- quoted tanwīn (begin) | 317 | -- quoted tanwīn (begin) |
312 | {a="%-?(\"uN)", b=""}, | 318 | {a="%-?(\"uN)", b=""}, |
313 | {a="(B)%-?(\"aN)", b="%1"}, | 319 | {a="(B)%-?(\"aN)", b="%1"}, |
diff --git a/arabluatex_voc.lua b/arabluatex_voc.lua index a17a453..6be30d1 100644 --- a/arabluatex_voc.lua +++ b/arabluatex_voc.lua | |||
@@ -372,6 +372,7 @@ tanwin = { | |||
372 | {a="(o[%S]-)(%-?[uai]N[UI]?)(o)([rlmnwy])", b="%4%4"}, | 372 | {a="(o[%S]-)(%-?[uai]N[UI]?)(o)([rlmnwy])", b="%4%4"}, |
373 | {a="(%-?[uai]NU)(%s)([rlmnwy])", b="%1%2%3%3"}, | 373 | {a="(%-?[uai]NU)(%s)([rlmnwy])", b="%1%2%3%3"}, |
374 | -- assimilations (end) | 374 | -- assimilations (end) |
375 | {a="(o[%S]-)(%-?[uai]N[UI]?)(o)([uai])", b="%4"}, | ||
375 | {a="%-?uNU", b="ٌو"}, | 376 | {a="%-?uNU", b="ٌو"}, |
376 | {a="%-?aNU", b="ًوا"}, | 377 | {a="%-?aNU", b="ًوا"}, |
377 | {a="%-?iNU", b="ٍو"}, | 378 | {a="%-?iNU", b="ٍو"}, |
@@ -386,6 +387,8 @@ tanwin = { | |||
386 | {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"}, | 387 | {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"}, |
387 | {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"}, | 388 | {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"}, |
388 | -- assimilations (end) | 389 | -- assimilations (end) |
390 | {a="(o[%S]-)(%-?aN)(_A)(o)([uai])", b="%5"}, | ||
391 | {a="(o[%S]-)(%-?aN)(Y)(o)([uai])", b="%5"}, | ||
389 | -- quoted tanwīn (begin) | 392 | -- quoted tanwīn (begin) |
390 | {a="%-?(\"uN)", b=""}, | 393 | {a="%-?(\"uN)", b=""}, |
391 | {a="(B)%-?(\"aN)", b="%1"}, | 394 | {a="(B)%-?(\"aN)", b="%1"}, |
@@ -411,6 +414,7 @@ tanwineasy = { -- 'easy' requires some lines to be taken out: | |||
411 | -- {a="(o[%S]-)(%-?[uai]N[UI]?)(o)([rlmnwy])", b="%4%4"}, | 414 | -- {a="(o[%S]-)(%-?[uai]N[UI]?)(o)([rlmnwy])", b="%4%4"}, |
412 | -- {a="(%-?[uai]NU)(%s)([rlmnwy])", b="%1%2%3%3"}, | 415 | -- {a="(%-?[uai]NU)(%s)([rlmnwy])", b="%1%2%3%3"}, |
413 | -- assimilations (end) | 416 | -- assimilations (end) |
417 | {a="(o[%S]-)(%-?[uai]N[UI]?)(o)([uai])", b="%4"}, | ||
414 | {a="%-?uNU", b="ٌو"}, | 418 | {a="%-?uNU", b="ٌو"}, |
415 | {a="%-?aNU", b="ًوا"}, | 419 | {a="%-?aNU", b="ًوا"}, |
416 | {a="%-?iNU", b="ٍو"}, | 420 | {a="%-?iNU", b="ٍو"}, |
@@ -425,6 +429,8 @@ tanwineasy = { -- 'easy' requires some lines to be taken out: | |||
425 | -- {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"}, | 429 | -- {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"}, |
426 | -- {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"}, | 430 | -- {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"}, |
427 | -- assimilations (end) | 431 | -- assimilations (end) |
432 | {a="(o[%S]-)(%-?aN)(_A)(o)([uai])", b="%5"}, | ||
433 | {a="(o[%S]-)(%-?aN)(Y)(o)([uai])", b="%5"}, | ||
428 | -- quoted tanwīn (begin) | 434 | -- quoted tanwīn (begin) |
429 | {a="%-?(\"uN)", b=""}, | 435 | {a="%-?(\"uN)", b=""}, |
430 | {a="(B)%-?(\"aN)", b="%1"}, | 436 | {a="(B)%-?(\"aN)", b="%1"}, |