Introduction à XeTeX

Exemple minimal

Fichier minimal.tex

	\documentclass[12pt]{article}
	\usepackage{fontspec}

	\begin{document}
	Omnes homines liberi æquique dignitate atque juribus nascuntur. Ratione conscientiaque præditi sunt et alii erga alios cum fraternitate se gerere debent.
	\end{document}
	

Résultat :

Remarques :
1. Ce fichier ne comporte aucune définition de police de caractère : c'est la police par défaut de LaTeX qui est utilisée : Latin Modern
2. Le caractère æ est entré directement au clavier
3. Le texte est automatiquement justifié. Les césures sont automatiques.
4. Ce texte est la traduction latine du premier article de la déclaration des droits de l'homme : voir ici.

Principes

1. Unicode

XeTeX permet de taper directement au clavier tout caractère Unicode.
Attention : le fichier source doit être encodé en utf-8 (ou utf-16) (sinon il faut indiquer à XeTex l'encodage avec la macro \XeTeXdefaultencoding <encodage>).
Pour les caractères français : installer le clavier français de Denis Liégeois.
Pour des caractères plus rares : utiliser Lexilogos.
Existe aussi la macro \char"<NNNN> : NNNN est le numéro Unicode en hexadécimal du caractère. Par exemple \char"2665 donne ♥. On trouve les numéros avec charmap sur Windows.

2. Polices de caractères

XeTeX donne accès à toute police installée sur l'ordinateur.

2.1. La méthode pure et dure

Définir la commande \rom (on peut choisir n'importe quel nom) pour passer à la police Linux Libertine en 8pt

	\font\rom="Linux Libertine" at 8pt
\rom Texte

Définir la commande \rom pour passer à la police Linux Libertine en 8pt avec le 0 barré (otf feature)

	\font\rom="Linux Libertine:+zero" at 8pt
	
2.2. Avec fontspec

Le module fontspec simplifie les choses :

	\usepackage{fontspec}
\setmainfont{Linux Libertine}
\setsansfont{Linux Biolinum}
\setmonofont{DPCustomMono2}

Les macros \setsansfont et \setmonofont ne sont pas obligatoires.

Pour utiliser les fonctions open type (otf features)

	\fontspec[Ligatures=Discretionary,Numbers=OldStyle,Color=0000FF]{Linux Libertine}
	

Pour un changement local :

	{\addfontfeature{LetterSpace=1.0}Texte}
	

Existe aussi \addfontfeatures{} pour plusieurs fonctions otf.