aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arabluatex.dtx82
-rw-r--r--arabluatex_fullvoc.lua6
-rw-r--r--arabluatex_voc.lua6
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]
1695In any case, \emph{no space must be left} after or before the Arabic
1696word 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"},