\engines{comparison}

LuaLaTeX frente a pdfLaTeX

Ambos motores producen PDF de alta calidad, pero LuaLaTeX añade un entorno de ejecución completo de scripting con Lua y una carga moderna de fuentes, a costa de la velocidad. Esta guía cubre todas las diferencias relevantes para que pueda elegir el motor adecuado para cada documento.

pdfLaTeX— rápido y universalLuaLaTeX— scripting con Lua y fuentes modernas
Use pdfLaTeX cuando…
  • La velocidad importa: el motor más rápido disponible
  • Se requiere la máxima compatibilidad de paquetes
  • Documentos de texto latino estándar
  • Se necesita el kerning y la protrusión de Microtype
Use LuaLaTeX cuando…
  • Scripting con Lua para la generación de contenido dinámico
  • Carga moderna de fuentes con fontspec
  • Texto Unicode más allá del latino básico
  • Composición algorítmica compleja

\section{Diferencias técnicas}

Diferencias técnicas

Entender la arquitectura subyacente le ayuda a predecir el comportamiento cuando los paquetes interactúan, se cargan fuentes o se ejecutan scripts.

Capacidad de scripting con Lua

LuaLaTeX incorpora un intérprete completo de Lua 5.3. Puede escribir código procedural, recorrer datos, llamar a tex.print() y manipular el motor de composición mediante programación. pdfLaTeX no tiene una capa de scripting equivalente.

Carga de fuentes

LuaLaTeX usa fontspec para cargar cualquier fuente OpenType o del sistema por su nombre, sin configuración manual de .tfm. pdfLaTeX depende del sistema de fuentes de TeX y requiere inputenc + fontenc para una codificación correcta.

Compatibilidad con Unicode

LuaLaTeX lee UTF-8 de forma nativa a nivel del motor. pdfLaTeX aproxima Unicode mediante el paquete inputenc, que cubre la mayoría de las escrituras latinas pero requiere soluciones alternativas para CJK, árabe o símbolos matemáticos avanzados.

Velocidad de compilación

pdfLaTeX es el motor LaTeX más rápido: normalmente de 0.6 a 1 segundo para un documento sencillo. LuaLaTeX inicializa la máquina virtual de Lua y un sistema de fuentes más grande, lo que lo hace de 2 a 3 veces más lento en promedio. Para pipelines de CI o vistas previas en vivo, esta diferencia es significativa.

\section{Comparación de características}

Comparación de características

CaracterísticapdfLaTeXLuaLaTeX
Entrada Unicode
Mediante inputenc
Nativa
Fuentes del sistema
No
Sí (fontspec)
Scripting con Lua
No
Sí (luacode)
Velocidad de compilación
Rápido (~0.8s)
Más lento (~2–3×)
Compat. de paquetes
Excelente
Buena
Microtype
Soporte completo
Parcial
Lenguajes de derecha a izquierda
Limitado
Sí (luabidi)
Uso de memoria
Bajo
Mayor (máquina virtual de Lua)

\section{Ejemplos de código}

Ejemplos de código

Documentos mínimos lado a lado para cada motor.

pdfLaTeX
% pdfLaTeX — fast, maximum compatibility
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{microtype}

\begin{document}
Standard pdfLaTeX document. Fast compilation, excellent package support.
$f(x) = \int_0^x t^2\, dt = \frac{x^3}{3}$
\end{document}
LuaLaTeX
% LuaLaTeX — Lua scripting, modern fonts
\documentclass{article}
\usepackage{fontspec}
\usepackage{luacode}

% Lua scripting inside LaTeX
\begin{luacode}
  local n = 10
  local sum = 0
  for i = 1, n do sum = sum + i end
  tex.print("Sum 1.." .. n .. " = " .. sum)
\end{luacode}

\begin{document}
LuaLaTeX natively handles Unicode and supports Lua scripts.
\end{document}

\section{Cuándo usar LuaLaTeX}

Cuándo usar LuaLaTeX

LuaLaTeX es la opción adecuada en estos escenarios concretos.

Generación de contenido dinámico

Use bucles y condicionales de Lua para generar mediante programación filas de tablas repetitivas, listas de capítulos o salida estructurada dentro de LaTeX.

Renderizado de fuentes personalizadas

Cargue cualquier fuente OpenType o del sistema por su nombre con fontspec: ideal para informes de marca, tipografía personalizada o escrituras no latinas.

Algoritmos complejos

Incruste código Lua de cálculo directamente en su documento: estadísticas, transformaciones o formateo de datos antes de la composición.

Envíos modernos a arXiv

Algunas plantillas de revistas más recientes y envíos a arXiv exigen o prefieren explícitamente LuaLaTeX por su manejo moderno de fuentes y Unicode.

\section{Guía de migración}

Migrar de pdfLaTeX a LuaLaTeX

La mayoría de los documentos de pdfLaTeX se compilan con LuaLaTeX con unos pocos cambios en el preámbulo.

AcciónPaquete / comando
Eliminar\usepackage[utf8]{inputenc}
Eliminar\usepackage[T1]{fontenc}
Añadir\usepackage{fontspec}
Opcional\usepackage{luacode}
Considerar\usepackage{polyglossia}

\api{FormaTeX}

Uso de LuaLaTeX mediante la API

Pase "engine": "lualatex" en su solicitud de compilación para seleccionar LuaLaTeX.

curl -X POST https://api.formatex.io/api/v1/compile \
  -H "X-API-Key: $FORMATEX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "engine": "lualatex",
    "latex": "\\documentclass{article}\\usepackage{fontspec}\\begin{document}Hello\\end{document}"
  }' \
  --output document.pdf

\begin{document}

Compile LuaLaTeX en la nube

FormaTeX admite pdfLaTeX, LuaLaTeX y XeLaTeX. No requiere instalar TeX Live localmente: compile mediante la API o en el playground del navegador.