Comme les lecteurs réguliers de ce blog le savent bien, il m'arrive
d'écrire des petits textes littéraires que j'appelle fragments littéraires gratuits
. Et
comme n'importe qui ayant lu quelques-uns d'entre eux l'aura forcément
remarqué, je me gargarise prends un plaisir tout
particulier à faire usage de courtes citations dans toutes sortes de
langues — et en particulier dans toutes sortes d'alphabets non
latins. (Je vois ça comme un hommage d'écrivain à la multiplicité des
formes d'écriture inventés par l'Homme : que ceux qui ne savent pas
lire cinquante langues se rassurent, moi non plus, et ce n'est jamais
nécessaire pour comprendre le fragment.) Tant qu'il s'agit de faire
de mes fragments littéraires une page HTML (lien
ci-dessus), pas de difficulté : en HTML on peut librement
utiliser le jeu de caractères universel Unicode, qui contient
tous les alphabets dont j'ai envie (et bien d'autres), sauf le tengwar mais même pour
ça on s'en sort en utilisant une région à usage privé — et c'est
le boulot du navigateur qui est en face d'arriver à transformer le
HTML que j'écris en quelque chose d'affichable à l'écran
(notamment, c'est au lecteur qu'il appartient d'avoir les bonnes
polices).
L'ennui, c'est que je veux aussi en générer (et si possible : de
façon complètement automatisée) une version PDF,
c'est-à-dire déjà mise en page et prête à l'impression, avec une
typographie décente (voire, de qualité), avec une table des matières
et tout et tout ; demander à un navigateur Web de faire le travail de
mise en page (en imprimant vers du PDF) fournit, quel que
soit le navigateur utilisé, un truc inacceptable.
Pour mettre en page de jolis documents, la solution —
malheureusement fort archaïque — qui semble encore la meilleure,
c'est (La)TeX (le
logiciel de mise en page universellement utilisé, notamment, dans le
monde de l'édition mathématique). Hélas, TeX a été conçu bien des
années avant qu'Unicode ne dissipe par sa lumière bienfaisante les
ténèbres de la confusion qui régnaient sur le monde des jeux de
caractères, et par conséquent il ne connaît rien de tout ça. Et il
n'est vraiment pas prévu pour les écritures allant de droite à gauche.
Bien entendu, des polices et des jeux de macros (packages) LaTeX ont été créés pour taper du russe,
du japonais, du grec, et même du sanskrit, de l'arabe, de l'hébreu et
encore quantité d'autres langues (dont, d'ailleurs, les hiéroglyphes
égyptiens — qui ne sont pas dans Unicode et ne sont hélas pas
près d'y entrer). Mais ces packages se mélangent mal entre eux et il
ne faut pas espérer pouvoir faire facilement un document mélangeant
toutes ces langues : or c'est précisément ce que j'ai envie de
faire.
Heureusement, tout de même, le monde de TeX n'a pas l'intention de
rester indéfiniment privé de la clarté d'Unicode. Il y a plusieurs
projets (naturellement subtilement
semblables et pourtant profondément incompatibles) qui prétendent
enrichir TeX, soit en adaptant le moteur sous-jacent soit en lui
ajoutant toute une couche de macros, pour le rendre plus « Unicode-aware ». Parmi ces projets, il y a Omega, ou plutôt,
Aleph (c'est en gros la même chose, disons qu'Omega est plus ou moins
mort et Aleph a rassemblé les morceaux pour faire quelque chose de
vaguement utilisable), ce que j'utilisais jusqu'à présent
(actuellement, voici la
version PDF de mes fragments). L'idée en est fort
intéressante et séduisante, puisqu'il s'agit de rajouter à TeX tout un
système d'automates
finis qu'on peut empiler et qui font le travail de conversion des
différentes formes d'Unicode entre elles ou de création des ligatures,
ou de tout ce qu'on voudra ; malheureusement, le système n'est
quasiment pas documenté donc excessivement difficile à utiliser, il
s'interface assez mal avec les packages LaTeX tels que Babel
(d'ailleurs, depuis une mise à jour récente de ma distribution TeX ça
a tout simplement cessé de marcher) et il a l'air un peu (seulement un
peu ?) à l'abandon.
Plus récemment, un autre projet est apparu qui semble à la fois
plus simple (quoique moins puissant sur certains plans) et donc plus
utilisable : il s'agit de XeTeX (le nom tend à
rappeler qu'il sait écrire de droite à gauche). À la différence de
TeX et Omega/Aleph, XeTeX prend le parti d'utiliser le même mécanisme
de polices vectorielles qui est maintenant quasi universel en
informatique : les polices TrueType (qui, elles
aussi, sont bien postérieures à la conception de TeX et de son
mécanisme de polices génériques pré-rastérisées, Metafont). C'est
plutôt une bonne chose, parce qu'on a d'excellentes polices TrueType
couvrant de larges régions d'Unicode. On m'a suggéré d'utiliser XeTeX
plutôt qu'Aleph pour mettre en page mes fragments littéraires
gratuits, et c'est ce que je vais faire.
Pour l'instant j'ai fait un essai (source ici) qui est assez
concluant[#] : je ne sais pas
faire correctement les ligatures requises par les langues indiennes,
mais comme je n'ai pas encore cité de sanskrit ou de tamoul dans mes
fragments ce n'est pas grave dans l'immédiat.
Ceci dit, si on en croit les nouvelles qui nous proviennent du
futur, l'avenir de TeX devrait résider dans un moteur appelé LuaTeX,
successeur de l'actuel PDFTeX, qui incorporerait également les
extensions d'Aleph en rajoutant aux automates finis la possibilité
d'interface avec le langage de programmation Lua :
il ne reprendrait pas la suite de XeTeX mais devrait être capable de
réaliser les fonctionnalités de celui-ci. Bon, ça c'est ce qu'on nous
promet : je ne sais pas pour quand ce sera (if
ever) ; en attendant cette merveille, XeTeX a l'air de ne pas
être mal.
[#] J'attire notamment
l'attention sur la citation en hébreu (ונפקחו
עיניכם
והייתם
כאלהים
), qui a été coupée
correctement sur deux lignes, c'est-à-dire avec le début (ונפקחו
עיניכם
והייתם
) sur une ligne,
évidemment écrit de droite à gauche, et le dernier
mot (כאלהים
)
sur la ligne suivante. Il ne suffit évidemment pas d'inverser l'ordre
des caractères et de les écrire de gauche à droite, pour mettre
correctement en page de l'hébreu (à l'intérieur d'un texte
français) !