Cette page a pour but de montrer comment on peut utiliser le programme XeTeX pour utiliser facilement des polices extérieures et taper du texte dans des systèmes d'écriture latins ou non latins.
XeTeX est un programme basé sur TeX, qui en est une variante (les fichiers écrits pour l'un pour l'autre ne seront pes nécessairement compatibles). Il a d'abord été conçu pour fonctionner avec Mac OS X mais fonctionne aujourd'hui avec une grande diversité de systèmes.
Un de ses grands avantages est de gérer tout à fait correctement les fichiers encodés en UTF-8, et les polices TrueType et OpenType, ce qui permet de bénéficier des mêmes possiblités techniques que les logiciels de traitement de texte pour produire des documents, qu'ils soient écrits en arménien, en araméen, en japonais, en lituanien ou en persan.
De la même manière qu'on utilise la commande latex
pour
compiler les fichiers écrits pour LaTeX, on utilise la commande
xelatex
pour compiler les fichiers LaTeX destinés Ã
profiter des fonctionnalités de XeTeX.
La commande xelatex
s'utilise comme la commande
pdflatex
.
xelatex fichier.tex
L'option -no-pdf
permet de retrouver le comportement de la
commande latex
qui ne produit pas un fichier directement
lisible mais un fichier intermédiaire de la forme
fichier.xdv
. La commande xdvipdfmx
sert Ã
convertir les fichiers XDV en fichers PDF.
XeTeX accepte les fichiers encodés en UTF-8. Pour cela, ajouter au début du document la commande
\XeTeXdefaultencoding utf-8
pour en tenir compte.
XeLaTeX possède un certain nombre de paquets spécifiques, et au contraire ne doit pas être utilisé avec certains paquets traditionnels de LaTeX.
inputenc
et fontenc
sont
inutilesfontspec
sert à sélectionner les polices
facilementAvant de commencer, il y a un pré-requis qui n'est pas spécifique à LaTeX : savoir taper un texte quelconque, dans la langue qui vous intéresse, en Unicode. Heureusement, nous avons une documentation sur les éditeurs en Unicode, que nous vous invitons à lire avant d'aller plus loin si ce n'est déjà fait.
Tout ce que vous avez à faire maintenant, c'est de créer votre fichier LaTeX avec votre éditeur en Unicode. Nous allons voir dans un instant ce qu'il faut mettre dans le préambule.
Les fichiers déjà écrits pour LaTeX peuvent nécessiter quelques adaptations : grâce à votre éditeur de texte favori, enregistrez votre fichier au format UTF-8, et remplacez les lignes
\usepackage[T1]{fontenc} \usepackage[utf8]{inputenc}
par
\XeTeXdefaultencoding utf-8 \usepackage{fontspec}
Par défaut, XeTeX utilisera les polices Latin Modern qui ont un aspect semblable aux polices standard de LaTeX. Mais si vous voulez en changer, en particulier pour afficher du texte dans d'autres écritures, il faudra se procurer une police capable de les afficher. Prenons par exemple la police FreeSerif. La commande suivante permet de sélectionner cette police par défaut pour l'ensemble du document.
\setmainfont[Mapping=tex-text,Ligatures=Common]{FreeSerif}
Les options indiquées permettent respectivement d'utiliser certaines
suites de caractères pour les caractères spéciaux (comme
---
pour —), et d'utiliser les ligatures standard
de la police si celle-ci en possède (notamment fi et ffi).
Attention, certaines anciennes polices, datant d'avant l'introduction du standard Unicode pour l'encodage des caractères, permettent d'afficher des écritures non latines, en remplaçant les dessins des caractères latins par ceux des caractères grecs : elles permettent ainsi d'«écrire en grec» avec un clavier latin (comme la police Symbol). L'usage de ces polices de caractères est à proscrire : l'utilisation de systèmes Unicode permet aux fichiers de reproduire fidèlement les caractères présents dans le texte.
Il est possible que la police choisie par défaut ne convienne pas à tous les usages, par exemple pour écrire en chinois. Si cela s'avérait nécessaire, rien de plus simple : il suffit de déclarer une nouvelle police avec la commande suivante
\newfontfamily\cjkfont[Script=CJK]{AR PL ZenKai Uni}
Cette commande déclare une nouvelle police utilisable avec la
commande \cjkfont
(il s'agit de la police AR PL ZenKai
Uni). On pourra alors l'utiliser sous la forme suivante :
En chinois, «Chine» s'écrit {\cjkfont ä¸å½}.
\documentclass{article} \XeTeXdefaultencoding utf-8 \usepackage{fontspec} \defaultfontfeatures{Mapping=tex-text} \setmainfont{Linux Libertine O} \usepackage[margin=4cm]{geometry} \usepackage{amsthm} \title{Îá¼± ÏÏῶÏοι á¼Ïιθμοί} \date{20 ÎαÏÏá½·Î¿Ï 2008} \begin{document} \maketitle \textbf{ÎεώÏημα 1.} «Îá¼± ÏÏῶÏοι á¼Ïιθμοὶ ÏÎ»Îµá½·Î¿Ï Ï Îµá¼°Ïὶ ÏανÏá½¸Ï Ïοῦ ÏÏοÏεθένÏÎ¿Ï ÏÎ»á½µÎ¸Î¿Ï Ï ÏÏá½½ÏÏν á¼Ïιθμῶν.» (\emph{ΣÏοιÏεία}, Îá½ÎºÎ»Îµá½·Î´Î·Ï). á¼Ïα, Ïὸ Ïύνολο Ïῶν ÏÏá½½ÏÏν á¼Ïιθμῶν εἶναι á¼ÏειÏο. \textsc{á¼Ïόδειξη. } á¼ÏÏÏ $P$ á¼vα ÏεÏεÏαÏμένο Ïύνολο $\{p_1, \dots, p_k\}$ ÏÏá½½ÏÏν á¼Ïιθμῶν. ÎεÏÏοῦμε Ïὸv á¼Îºá½³Ïαιον á¼Ïιθμόν $N := p_1\cdots p_k + 1$, Ïοὺ εἶναι μεγαλύÏεÏÎ¿Ï Ïοῦ $1$. ΤόÏε á½Ïá½±ÏÏει á¼Î½Î± ÏÏῶÏο διαιÏá½³Ïη $q$ Ïοῦ $N$. á¼v $q = p_i$, Ïá½¹Ïε $q | N - p_1\cdots p_k$, á¼Ïα $q | 1$, καὶ αá½Ïὸ εἶναι á¼ÏοÏο. $\qed$ \end{document}