Présentation
Il n’est pas question d’entrer ici dans le détail. Le package, actuellement en version 1.0.1 est publié sur le CTAN, où l’on peut trouver une documentation complète.
Pour une comparaison entre arabtex (pour (La)TeX), arabxetex (pour XeLaTeX) et arabluatex (pour LuaLaTeX), je renvoie à cette documentation (point 1.1).
Comme arabtex, arabluatex transforme la notation ASCII ArabTeX en arabe unicode. Cette notation est intéressante à deux titres :
- elle s’intègre parfaitement au code informatique. Cela est particulièrement important quand il s’agit de saisir des documents complexes, tels que des documents scientifiques ou des éditions critiques dans lesquelles abondent toutes sortes d’annotations. Ce n’est pas le cas du script arabe unicode, qui perturbe constamment le sens des crochets, parenthèses, accolades et autres signes informatiques, sans parler des interversions de mots.
- elle permet un encodage précis de la langue arabe, et donne la possibilité, par exemple, de séparer les préfixes, les particules et les affixes, introduisant ainsi la possibilité de recherches grammaticales selon des critères complexes.
Il faut ajouter à cette liste les différentes possibilités de traitement du code ASCII ArabTeX :
- vocalisation totale (scriptio plena) : mode
[fullvoc]
- vocalisation : mode
[voc]
- arabe non-vocalisé (scriptio defectiva) : mode
[novoc]
- translittération selon les différents standards : mode
[trans]
Tous ces traitements sont possibles à partir d’une seule opération de saisie.
Particularités
Le fonctionnement d’arabluatex est très différent de celui de ses prédécesseurs. Le traitement du code ASCII ne repose ni sur TeX ni sur le moteur TECkit, mais sur un jeu de fonctions Lua. Dans un premier temps, sont traitées dans les environnements arabes toutes les commandes LaTeX qui sont censées avoir de l’arabe dans leurs arguments, comme \emph
ou \textbf
. Ensuite, le code ASCII, une fois isolé, est confié à de nouvelles fonctions qui appliquent diverses tables de correspondances selon les choix qui ont été faits.
Autre particularité très importante : arabluatex ne fait appel ni à polyglossia ni à luabidi. Les sens d’écriture sont pris en charge directement par les primitives de LuaTeX que sont \pagedir \bodydir \pardir
et \textdir
. Sous LuaTeX, c’est en effet toujours ainsi que l’on devrait régler les sens d’écriture.
Dernier point important : arabluatex ne traite pas le code ASCII tout à fait comme ses prédécesseurs. Il faut donc lire la documentation avant de l’utiliser.
Pour ne prendre ici qu’un exemple, sous arabluatex on ne doit jamais écrire deux fois une lettre solaire pour obtenir le tašdīd euphonique. Ainsi, pour obtenir اَلشَّمسُ, on peut écrire al-^samsu
ou a^s-^samsu
, mais jamais al-^s^samsu
qui est en fait absurde.
arabluatex et reledmac
Dans les environnements \arb{}
ou\begin{arab} ... \end{arab}
la commande à double argument \edtext{}{}
est prise en charge. On peut ainsi avoir ceci :
Comme on le voit, dans l’édition d’un texte arabe, il faut remettre la commande \arb{}
dans le premier argument de \edtext{}{}
. On peut ainsi avoir comme lemme du texte dans une autre langue que l’arabe.
arabluatex et les commandes complexes
Comme on l’a dit plus haut, toute commande LaTeX à argument simple, placée à l’intérieur d’un environnement arabe, est censée contenir exclusivement du texte arabe.
Parfois, ce n’est pas le cas. Par exemple, si l’on souhaite insérer une commande dont l’agument est une dimension, il faut l’insérer elle-même dans la commande \RL{}
fournie par arabluatex, comme ceci :
Si l’argument ne contient que de l’arabe, on écrira :
Et c’est tout ! La « magie » de Lua fera le reste, et l’on obtiendra à la fin un index tout arabe, avec un classement alphabétique correct. En revanche, si la commande \index{}
ne contient pas que de l’arabe, il faudra écrire :
En conclusion
Happy LuaTeXing, bien sûr !