Corrige el error fatal de fontspec en LaTeX.
El error Fatal Package fontspec Error: The fontspec package requires either XeTeX or LuaTeX aparece al compilar un documento que carga fontspec con pdfLaTeX o LaTeX estándar. El paquete depende de primitivas de gestión de fuentes que solo proporcionan XeTeX y LuaTeX.
La respuesta corta: cambia tu motor de pdfLaTeX a XeLaTeX o LuaLaTeX en los ajustes de tu editor. Si tu editorial te obliga a usar pdfLaTeX, elimina \usepackage{fontspec} y utiliza paquetes de fuentes tradicionales como lmodern con fontenc en su lugar.
Por qué ocurre el error
El pdfLaTeX tradicional gestiona las fuentes mediante archivos de métricas de fuentes de TeX (.tfm) y contornos PostScript Type 1. El paquete fontspec funciona de forma totalmente distinta: carga fuentes OpenType (.otf) y TrueType (.ttf) instaladas en tu sistema operativo o almacenadas dentro de la carpeta de tu proyecto.
Como pdfLaTeX carece de la maquinaria interna para leer tablas de fuentes OpenType, fontspec se detiene inmediatamente al cargar. Lanza Fatal fontspec error: "cannot-use-pdftex" o The fontspec package requires either XeTeX or LuaTeX para evitar la generación de un PDF corrupto.
Es posible que veas este error incluso si nunca escribiste \usepackage{fontspec} en tu preámbulo. Muchas plantillas modernas de CV (como Awesome-CV), paquetes multilingües como polyglossia y paquetes de matemáticas unicode cargan fontspec en segundo plano.
Solución 1: cambia tu compilador a XeLaTeX o LuaLaTeX
Cambiar el motor de tu proyecto es la solución estándar siempre que desees fuentes OpenType personalizadas o texto unicode.
En Texeno
Abre la configuración del proyecto desde la barra lateral izquierda o la barra superior. En Motor de compilación, elige XeLaTeX o LuaLaTeX. Ambos motores funcionan con TeX Live 2026 con compatibilidad total con fontspec.
En Overleaf
Haz clic en el icono de Menú en la esquina superior izquierda, sobre el árbol de archivos. En el menú desplegable Compilador, cambia pdfLaTeX por XeLaTeX o LuaLaTeX y vuelve a compilar.
En VS Code (LaTeX Workshop)
Añade un comentario mágico al principio de tu archivo
.texraíz, o establece la receta predeterminada ensettings.jsoncomolatexmk (xelatex).% !TEX program = xelatex \documentclass{article} \usepackage{fontspec}En TeXstudio
Añade la línea de directiva del programa al principio de tu documento, o ve a Opciones -> Configurar TeXstudio -> Compilar y establece el Compilador predeterminado en XeLaTeX.
%!TEX TS-program = xelatex
Solución 2: mantén pdfLaTeX y sustituye fontspec
Limpia los conflictos del preámbulo tras el cambio
Qué comprobar si la compilación falla tras el cambio
Si cambiar el motor elimina el error fatal pero la compilación se detiene con un mensaje nuevo, comprueba estas dos causas comunes.
Error de Package fontspec: La fuente no se encuentra
Esto ocurre cuando tu código solicita una fuente del sistema operativo (como Times New Roman, Calibri o SimSun) que no está instalada en el servidor Linux que ejecuta tu compilador. Proporciona el archivo de fuente (.otf o .ttf) en el directorio de tu proyecto y haz referencia a él por su nombre de archivo.
\setmainfont{CustomFont}[ Path = ./fonts/ , Extension = .otf , UprightFont = *-Regular , BoldFont = *-Bold ]Conflictos de Package unicode-math
Si cargas tanto
amssymbcomounicode-math, las definiciones de símbolos entrarán en conflicto. Eliminaamssymby carga solounicode-mathal compilar con XeLaTeX o LuaLaTeX.
Preguntas
¿Puedo usar fontspec con pdfLaTeX?
No. El paquete fontspec depende de operaciones primitivas que solo existen en XeTeX y LuaTeX. Si debes usar pdfLaTeX, sustituye fontspec por paquetes de fuentes estándar como lmodern o mathptmx.
¿Qué motor debería elegir: XeLaTeX o LuaLaTeX?
LuaLaTeX es el estándar moderno para TeX Live y gestiona sin problemas el modelado complejo de fuentes, los ajustes de microtipografía y la asignación dinámica de memoria. XeLaTeX sigue siendo una opción sólida para plantillas heredadas o escrituras de Asia oriental que utilizan xeCJK.
Prueba tu propio artículo en Texeno.
Empieza gratis, sube un proyecto como .zip y pulsa Recompilar. Mejora tu plan cuando necesites compilaciones más largas.
Empezar a escribir