\engines{comparison}
XeLaTeX frente a pdfLaTeX
Ambos motores producen PDF de alta calidad, pero toman decisiones de diseño distintas. Esta guía cubre todas las diferencias relevantes para que pueda elegir el adecuado para cada documento.
- La velocidad importa (el motor más rápido)
- Usa texto latino estándar
- Necesita la máxima compatibilidad de paquetes
- Se requiere el kerning o la protrusión de Microtype
- Texto Unicode o no latino (árabe, chino, griego…)
- Necesita fuentes del sistema u OpenType
- Fuentes matemáticas modernas (XITS Math, Libertinus)
- Composición de texto de derecha a izquierda o bidireccional
\section{Diferencias técnicas}
Qué cambia realmente por dentro
Unicode y codificación de entrada
pdfLaTeX
pdfLaTeX es anterior a Unicode y trata los archivos fuente como flujos de bytes de 8 bits. Debe declarar \usepackage[utf8]{inputenc} para manejar la entrada UTF-8 y \usepackage[T1]{fontenc} para una codificación de salida correcta. Los caracteres fuera de la codificación T1 requieren paquetes adicionales.
XeLaTeX
XeLaTeX está construido sobre un motor Unicode. Lee UTF-8 de forma nativa, sin necesidad de declarar inputenc ni fontenc. Todo carácter Unicode está disponible siempre que la fuente elegida cubra ese punto de código.
Carga de fuentes
pdfLaTeX
pdfLaTeX usa métricas de fuentes de TeX (archivos .tfm) y fuentes Type 1 u OTF preinstaladas en la distribución de TeX. No se puede cargar una fuente arbitraria del sistema por su nombre: solo son accesibles las fuentes que se han empaquetado para TeX.
XeLaTeX
XeLaTeX accede a las fuentes a través de la API de fuentes del sistema operativo. Con fontspec puede cargar cualquier fuente instalada por su nombre: \setmainfont{Fira Sans} . Las características de OpenType (ligaduras, versalitas, ejes variables) son accesibles directamente.
Velocidad de compilación
pdfLaTeX es sistemáticamente el motor más rápido, aproximadamente el doble que XeLaTeX en documentos equivalentes. La diferencia se reduce en documentos grandes con muchas matemáticas y aumenta en documentos con muchas fuentes, donde XeLaTeX debe resolver las rutas de las fuentes del sistema.
pdfLaTeX
~0.8s
documento típico de una sola pasada
XeLaTeX
~1.5s
documento típico de una sola pasada
Compatibilidad de paquetes
pdfLaTeX
Décadas de paquetes se escribieron asumiendo pdfLaTeX como motor. Paquetes como microtype, pdfpages y la mayoría de los paquetes de CTAN funcionan por completo. Espere una compatibilidad casi universal.
XeLaTeX
La mayoría de los paquetes funcionan con XeLaTeX, pero algunos tienen un soporte limitado o nulo, en particular los que se enganchan a elementos internos de fuentes específicos de pdfLaTeX. microtype funciona en XeLaTeX, pero pierde las funciones de protrusión y expansión de caracteres.
Matemáticas
Ambos motores producen una excelente salida matemática. pdfLaTeX usa la pila clásica de fuentes matemáticas Computer Modern / AMS. XeLaTeX también la admite, pero además habilita fuentes matemáticas OpenType mediante unicode-math, incluidas XITS Math, Libertinus Math y STIX Two Math. Para documentos que mezclan caracteres Unicode con matemáticas (por ejemplo, letras griegas en línea), XeLaTeX es la opción natural.
\subsection{Matriz de características}
Comparación lado a lado
\begin{examples}
Ejemplos mínimos funcionales
Ambos ejemplos se compilan con FormaTeX. Pruébelos directamente en el playground.
% pdfLaTeX — fastest, widest package support
\documentclass{article}
\usepackage[utf8]{inputenc} % required for pdfLaTeX
\usepackage[T1]{fontenc}
\usepackage{microtype} % works best with pdfLaTeX
\begin{document}
Hello, World! Standard Latin text compiles in milliseconds.
$E = mc^2$
\end{document}% XeLaTeX — Unicode native, system fonts
\documentclass{article}
\usepackage{fontspec} % system font loading
\usepackage{unicode-math} % Unicode math support
\setmainfont{Linux Libertine O}
\setmathfont{XITS Math}
\begin{document}
XeLaTeX natively handles Unicode: α β γ δ — no inputenc needed.
Greek: Αλφαβητικό σύστημα
$∫₀^∞ e^{−x²} dx = √π/2$
\end{document}\subsection{Packages}
Paquetes clave de cada motor
inputenc
Codificación de entrada (necesaria para UTF-8 en pdfLaTeX)
fontenc
Codificación de fuentes: T1 para europeo occidental
microtype
Mejoras microtipográficas; funciona mejor con pdfLaTeX
babel
Soporte multilingüe y separación silábica
fontspec
Cargue cualquier fuente del sistema u OpenType por su nombre
unicode-math
Fuentes matemáticas Unicode (XITS Math, Libertinus Math)
polyglossia
Soporte multilingüe moderno, reemplaza a babel
bidi
Composición de texto bidireccional (hebreo, árabe, etc.)
\section{Migration}
Cambiar de pdfLaTeX a XeLaTeX
La mayoría de los documentos de pdfLaTeX se compilan con XeLaTeX tras un pequeño ajuste del preámbulo. Con FormaTeX, solo tiene que cambiar el parámetro "engine" en su llamada a la API y luego actualizar su preámbulo en consecuencia.
\usepackage[utf8]{inputenc}XeLaTeX lee UTF-8 de forma nativa: no se necesita inputenc
\usepackage[T1]{fontenc}fontenc es un paquete específico de pdfLaTeX
\usepackage{fontspec}Necesario para cargar fuentes del sistema en XeLaTeX
\usepackage{unicode-math}Habilita fuentes matemáticas OpenType como XITS Math
\usepackage{polyglossia}Reemplaza a babel en documentos multilingües
\subsection{Uso de la API}
Selección del motor mediante la API de FormaTeX
Cambiar de motor es modificar un solo campo. Ambos motores están disponibles en todos los planes, sin configuración adicional.
curl -X POST https://api.formatex.io/api/v1/compile \
-H "X-API-Key: $FORMATEX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"engine": "xelatex",
"latex": "\\documentclass{article}\\usepackage{fontspec}\\begin{document}Hello\\end{document}"
}' \
--output document.pdfCambie "engine": "xelatex" por "engine": "pdflatex" para cambiar de motor. Consulte la guía completa de motores para ver los cuatro motores admitidos.
Compile con cualquier motor en segundos
FormaTeX ejecuta pdfLaTeX, XeLaTeX, LuaLaTeX y latexmk. Una clave de API, sin infraestructura.

