C'est l'erreur qui bloque le plus de débutants : le mauvais compilateur. LaTeX en propose trois — pdfLaTeX, XeLaTeX, LuaLaTeX — et il suffit d'un menu déroulant pour passer de l'un à l'autre. Voyons quand utiliser lequel.
Lequel choisir ?
- pdfLaTeX — le choix par défaut, rapide, adapté à la majorité des documents. Commencez toujours par lui.
- XeLaTeX / LuaLaTeX — nécessaires dès que le document utilise
fontspec(des polices système, fichiers .otf/.ttf) ou de l'unicode avancé (arabe, cyrillique…).
Compiler La plupart des documents fonctionnent en pdfLaTeX. Compilez celui-ci tel quel (le compilateur est déjà réglé sur pdfLaTeX).
Le cas classique : fontspec exige XeLaTeX
Si un document charge \usepackage{fontspec} et que vous le compilez en pdfLaTeX, il s'arrête net sur : « Fatal Package fontspec Error: The fontspec package requires either XeTeX or LuaTeX ». La solution ne demande aucune modification du code : il suffit de changer de compilateur.
Corriger Ce document charge
fontspec et échoue en pdfLaTeX (regardez le journal). Dans le menu déroulant du compilateur (en haut de l'éditeur), choisissez XeLaTeX, puis recompilez : il fonctionne, sans toucher au code.Voir la solution
% !TEX program = xelatex
\documentclass{article}
\usepackage{fontspec}
\begin{document}
Ce document charge fontspec : il exige XeLaTeX ou LuaLaTeX.
\end{document} Astuce durable : ajoutez en toute première ligne
% !TEX program = xelatex. L'éditeur sélectionnera automatiquement le bon compilateur à l'ouverture du fichier — vous n'aurez plus à y penser.La récompense de XeLaTeX : les polices système
Une fois en XeLaTeX (ou LuaLaTeX), vous pouvez composer avec n'importe quelle police installée, via \setmainfont{...}.
Compiler Cet exemple est déjà réglé sur XeLaTeX. Compilez-le : le texte est composé avec la police système Lato — impossible en pdfLaTeX de cette façon.
À retenir :
fontspec ou une police système → XeLaTeX ou LuaLaTeX. Sinon, pdfLaTeX convient. Le menu du compilateur est toujours à portée de clic — et % !TEX program = ... rend le choix permanent.Cette erreur revient si souvent qu'on lui a consacré une page dédiée : vieux packages & compilateur →