Este es el error que más bloquea a los principiantes: el compilador equivocado. LaTeX ofrece tres —pdfLaTeX, XeLaTeX, LuaLaTeX— y basta un menú desplegable para pasar de uno a otro. Veamos cuándo usar cada uno.
¿Cuál elegir?
- pdfLaTeX — la opción por defecto, rápida, adecuada para la mayoría de los documentos. Empiece siempre por él.
- XeLaTeX / LuaLaTeX — necesarios en cuanto el documento utiliza
fontspec(fuentes del sistema, archivos .otf/.ttf) o unicode avanzado (árabe, cirílico…).
Compilar La mayoría de los documentos funcionan con pdfLaTeX. Compile este tal cual (el compilador ya está configurado en pdfLaTeX).
El caso clásico: fontspec exige XeLaTeX
Si un documento carga \usepackage{fontspec} y usted lo compila con pdfLaTeX, se detiene en seco con: «Fatal Package fontspec Error: The fontspec package requires either XeTeX or LuaTeX». La solución no requiere ninguna modificación del código: basta con cambiar de compilador.
Corregir Este documento carga
fontspec y falla con pdfLaTeX (mire el registro). En el menú desplegable del compilador (en la parte superior del editor), elija XeLaTeX y vuelva a compilar: funciona, sin tocar el código.Ver la solución
% !TEX program = xelatex
\documentclass{article}
\usepackage{fontspec}
\begin{document}
Este documento carga fontspec: exige XeLaTeX o LuaLaTeX.
\end{document} Truco duradero: añada como primerísima línea
% !TEX program = xelatex. El editor seleccionará automáticamente el compilador correcto al abrir el archivo, y ya no tendrá que pensar en ello.La recompensa de XeLaTeX: las fuentes del sistema
Una vez en XeLaTeX (o LuaLaTeX), puede componer con cualquier fuente instalada, mediante \setmainfont{...}.
Compilar Este ejemplo ya está configurado en XeLaTeX. Compílelo: el texto se compone con la fuente del sistema Lato, imposible de este modo con pdfLaTeX.
Para recordar:
fontspec o una fuente del sistema → XeLaTeX o LuaLaTeX. En caso contrario, pdfLaTeX es suficiente. El menú del compilador está siempre a un clic, y % !TEX program = ... hace la elección permanente.Este error aparece con tanta frecuencia que le hemos dedicado una página propia: paquetes antiguos y compilador →