Langues dans un alphabet non latin et polices de caractère
Transcription
Langues dans un alphabet non latin et polices de caractère
Langues dans un alphabet non latin et polices de caractère Extrait du Geekographie Maïeulesque http://geekographie.maieul.net/106 Langues dans un alphabet non latin et polices de caractère - LaTeX - Typographie - Date de mise en ligne : lundi 22 octobre 2012 Copyright © Geekographie Maïeulesque - Tous droits réservés Copyright © Geekographie Maïeulesque Page 1/3 Langues dans un alphabet non latin et polices de caractère 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 : <a href="IMG/png/hebreulibertine.png" title='PNG - 10.5 ko' type="image/png"> Mot hébreu avec Linux Libertine : bof, bof. Évidemment je pourrais trouver une police gérant aussi l'hébreu, par exemple la classique Times New Roman : <a href="IMG/png/hebreutime.png" title='PNG - 10.4 ko' type="image/png"> Mot hébreu avec Times New Roman : mieux 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 Copyright © Geekographie Maïeulesque \font. Page 2/3 Langues dans un alphabet non latin et polices de caractère 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. <a href="IMG/png/hebreuezra.png" title='PNG - 11.2 ko' type="image/png"> Mot hébreu avec la police Ezra Sil : un problème de taille 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} <a href="IMG/png/hebreuezra80pc.png" title='PNG - 10.4 ko' type="image/png"> Mot hébreu avec la police Ezra Sil et une taille correcte Post-scriptum : 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}. Copyright © Geekographie Maïeulesque Page 3/3