Accueil > LaTeX > Typographie > Langues dans un alphabet non latin et polices de caractère
Langues dans un alphabet non latin et polices de caractère
lundi 22 octobre 2012, par
En préparant une formation pour un collègue, je me suis rendu compte que mon livre pouvait être un peu elliptique sur certains aspects de la gestion du polylinguisme avec LaTeX, notamment lorsqu’on l’on à affaire à des langues s’écrivant avec des caractères non latins.
Unicode ne suffit pas
La norme Unicode permet de stocker tous les caractères existants sur Terre [1].
Néanmoins Unicode ne définit pas comment s’affichent les caractères : ce travail est confiée aux polices.
Or il n’existe pas de polices contenant l’ensemble des caractères Unicodes. Il est donc parfois utile de définir une police différente pour une langue différente.
Exemple
Soit le code suivant :
Le premier mot du livre de la Genèse est : \texthebrew{בְּרֵאשִׁ֖ית}.
Si je choisie d’utiliser comme police principale la police Linux Libertine [2], j’ai un problème : celle-ci ne supporte pas encore toutes les subtilités de l’hébreu biblique.
Ainsi j’obtiens le résultat suivant, assez inesthétique :

Évidemment je pourrais trouver une police gérant aussi l’hébreu, par exemple la classique [?Times New Roman] :

Cependant, je peux préférer la Linux Libertine pour les caractères latins.
Varier la police
La solution est donc de prendre une police particulière pour l’hébreu, par exemple sur le site du SIL.
Il faut alors utiliser fontspec
, qui permet de définir des nouvelles familles de caractères, en combinaison avec polyglossia
, qui permet de gérer les changements de langue.
Pour cela, on définit une famille \<lang>font
.
Donc pour avoir l’hébreu affiché avec la police Ezra SIL, je crée une nouvelle famille de polices :
\newfontfamily\hebrewfont[Script=Hebrew]{Ezra SIL}
Grâce à cela, la police change automatiquement lors de l’appel à \hebrewtext
. N’oubliez pas cependant le Script=Hebrew
. Il permet à XeLaTeX, lorsqu’il compose l’affichage final, d’utiliser les bon paramètres pour appeler les caractères de la police et par conséquent d’avoir un placement correct de ces caractères, notamment les niquud.

Régler la police
Comme vous pouvez constater, il y a un problème de taille. En effet, deux polices différentes n’ont pas, pour un même nombre de points, la même taille physique.
La solution est alors de dire à fontspec
d’appliquer un redimensionnement sur la police. Dans le cas présent, nous souhaitons utiliser la police à 80 % de sa taille :
\newfontfamily\hebrewfont[Scale=0.8,Script=Hebrew]{Ezra SIL}

En problème connexe se pose la manière de saisir les caractères Unicodes. Je vous promet de vous écrire bientôt des articles pour expliquer comment créer son propre pilote de clavier sous Mac Os X...
[1] Du moins tout les caractères ayant été suffisamment étudiés pour pouvoir être décrits dans un certain formalismes. Ainsi certaines rares sont encore en cours d’intégration à Unicode...
[2] Via \setmainfont{Linux Libertine O}
.
Messages
14 novembre 2012, 21:20, par gilcot
Encore une preuve d’élégance et de simplicité inégalables :p