• Aucun résultat trouvé

L’alternative Unicode

Dans le document Une courte (?) introduction à LATEX 2ε (Page 55-59)

2.5 Support multilingue

2.5.8 L’alternative Unicode

Par Axel Kielhorn < A.Kielhorn@web.de>

Unicode est la meilleure approche si vous souhaitez inclure plusieurs langages dans le même document, en particulier si ces langages ne sont pas basés sur un alphabet latin. Il existe deux systèmes TEX capables de prendre de l’Unicode directement en entrée :

X E TEX , développé initialement pour MacOS X mais désormais disponible pour toutes les architectures. Il fut inclus à partir de 2007 dans TeXLive.

LuaTEX , le successeur de pdfTEX. Il fut inclus à partir de 2008 dans TeXLive.

Nous décrivons dans la suite X E LATEX tel qu’il existe dans TeXLive 2010.

Démarrage rapide

Convertir un fichier LATEX existant vers un format compatible avec X E LATEX entraîne la procédure suivante :

1. Sauvegarder le fichier en UTF-8 2. Retirer

\usepackage{inputenc}

\usepackage{fontenc}

\usepackage{textcomp}

du préambule.

3. Changer

\usepackage[langageA]{babel}

en

\usepackage{polyglossia}

\setdefaultlanguage[babelshorthands]{langageA}

4. Ajouter

\usepackage[Ligatures=TeX]{fontspec}

au préambule.

L’extensionpolyglossia[23] est un substitut à babel. Elle prend soin des motifs de césure et des chaînes de textes générées automatiquement. L’option babelshorthandsactive la compatibilité avec babel en ce qui concerne les raccourcis pour l’allemand et le catalan.

L’extensionfontspec[25] gère le chargement des polices pour X E LATEX et LuaTEX. La police par défaut est Latin Modern Roman. Il est à noter ici un fait peu connu, à savoir que certaines commandes TEX sont des ligatures définies dans les polices Computer Modern. Si vous souhaitez les utiliser avec une police non-TEX, vous devez les émuler. L’option

C’est du Γρκ pour moi +

Jusqu’à maintenant l’utilisation d’un système TEX Unicode n’apportait aucun avantage. Cet état de fait change dès que l’on quitte l’alphabet latin et que l’on utilise un langage plus intéressant comme le grec ou le russe.

Avec un système basé sur Unicode, pour pouvez simplement22 entrer les caractères dans votre éditeur et TEX les comprendra.

Écrire en plusieurs langues est facile, il suffit de spécifier les langages dans le préambule23 :

\setdefaultlanguage{french}

\setotherlanguage[babelshorthands]{german}

Pour écrire un paragraphe en allemand, vous utiliserez l’environnement german:

Texte en français.

\begin{german}

Deutscher Text.

\end{german}

Encore du texte en français.

Si vous avez seulement besoin d’un mot dans une langue autre, utilisez alors la commande\textlangage :

Texte en français. \textgerman{Gesundheit} est en fait un mot allemand.

Cela peut sembler superflu puisque le seul avantage est alors une césure correcte, mais pour un langage plus exotique le jeu en vaut la chandelle.

Parfois la police principale du document ne contient pas les glyphes requis pour le second langage24. La solution est alors de spécifier une police à utiliser pour ce langage. Chaque fois qu’un nouveau langage est activé, polyglossiavérifiera d’abord si une police aura été spécifiée pour ce langage.

\newfontfamily\russianfont[Script=Cyrillic,(...)]{(font)}

Maintenant vous pouvez écrire :

\textrussian{Pravda} est un journal russe.

Puisque le document que vous lisez actuellement est codé en Latin1, il m’est impossible de montrer les caractères cyrilliques.

L’extension xgreek[26] offre le support pour écrire autant en ancien grec qu’en grec moderne (monotonique ou polytonique).

22. Pour des valeurs suffisamment petites de “simple”.

23. les noms des langages sont en anglais, il faut bien un socle commun... (NdT) 24. Latin Modern ne contient pas de caractères cyrilliques.

Langages à l’écriture de droite à gauche.

Certains langages s’écrivent de gauche à droite, d’autres de droite à gauche (abbrévié en RTL, comme “right to left”en anglais). polyglossiadoit faire appel à l’extensionbidi[27]25 pour le support des langages RTL. L’extension bidi doit être la dernière à être chargée, même après hyperref à qui cette place est usuellement réservée (de plus, commepolyglossiachargebidi, alors polyglossiadevra être la dernière extension chargée).

L’extension xepersian[28] propose un support de la langue perse. Elle fournit des commandes LATEX permettant d’écrire des commandes comme

\section en perse, ce qui rend cette extension attrayante pour les natifs de cette langue. xepersian est la seule extension disposant du support du kashida avec X E LATEX. Le développement d’une extension avec support du syriaque selon un algorithme similaire est en cours.

La police IranNastaliq fournie par le SCICT26 est disponible sur son site webhttp://www.scict.ir/Portal/Home/Default.aspx.

L’extensionarabxetex[24] propose le support de plusieurs langages utilisant un alphabet arabe :

– arab (arabe) – persian (perse) – urdu

– sindhi (sindhî)

– pashto (ou pachto ou pachtoune) – ottoman (turc)

– kurdish (kurde) – kashmiri (Cachemire) – malay (malais ou jawi) – uighur (ouïghoure)

Elle offre un mécanisme de mise en correspondance des polices qui permet à X E LATEX de traiter les entrées à l’aide d’une transcription ASCII ArabTEX.

Les polices avec support de plusieurs langues arabes sont offertes par l’IRMUG27 sur http://wiki.irmug.org/index.php/X_Series_2.

Il n’y a pas d’extension pour l’hébreu parce qu’aucune n’est néces-saire, polyglossia étant suffisante ici. Si cependant vous souhaitez une po-lice convenable pour de l’hébreu en Unicode, SBL Hebrew est gratuite pour un usage non commercial et disponible sur http://www.sbl-site.

org/educational/biblicalfonts.aspx. Vous pouvez également regarder à la police Ezra SIL distribuée sous la licence SIL Open Font License sur http://www.sil.org/computing/catalog/show_software.asp?id=76.

Rappelez-vous simplement d’utiliser les commandes suivantes pour les

25. bidine fonctionne pas avec LuaTEX.

26. Supreme Council of +Information and Communication Technology – Conseil suprême pour les technologies de l’information et de la communication. (NdT)

27. Iranian Mac User Group – groupe iranien des utilisateurs de Mac (NdT).

utiliser :

\newfontfamily\hebrewfont[Script=Hebrew]{SBL Hebrew}

\newfontfamily\hebrewfont[Script=Hebrew]{Ezra SIL}

Chinois, japonais et coréen (CJK)

L’extension xeCJK[29] prend soin de la sélection des polices et de la ponctuation pour ces langues.

Dans le document Une courte (?) introduction à LATEX 2ε (Page 55-59)