\usepackage{curl}
Compile LaTeX a PDF desde el terminal con un solo comando curl. Sin SDK ni dependencias: solo la API REST y su clave de API.
\section{Compilación básica}
Envíe una solicitud POST a /api/v1/compile con su código fuente LaTeX. El cuerpo de la respuesta es el PDF binario sin procesar: guárdelo directamente con --output.
curl -X POST https://api.formatex.io/api/v1/compile \
-H "X-API-Key: $FORMATEX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"latex": "\\documentclass{article}\\begin{document}Hello World\\end{document}",
"engine": "pdflatex"
}' \
--output output.pdf\section{Selección de motor}
Defina el campo engine para cambiar de compilador. Use xelatex para Unicode y fuentes del sistema, o lualatex para scripting con Lua. Consulte la documentación de motores para ver la comparación completa.
# pdfLaTeX (fastest)
curl -X POST https://api.formatex.io/api/v1/compile \
-H "X-API-Key: $FORMATEX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"latex": "...", "engine": "pdflatex"}' \
--output pdflatex.pdf
# XeLaTeX (Unicode + system fonts)
curl -X POST https://api.formatex.io/api/v1/compile \
-H "X-API-Key: $FORMATEX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"latex": "...", "engine": "xelatex"}' \
--output xelatex.pdf\section{Desde un archivo .tex}
Use jq para escapar de forma segura el contenido del archivo en una cadena JSON antes de pasarlo a curl. Así se gestionan correctamente los saltos de línea y los caracteres especiales.
# Read from file using shell substitution
curl -X POST https://api.formatex.io/api/v1/compile \
-H "X-API-Key: $FORMATEX_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"latex\": $(cat main.tex | jq -Rs .), \"engine\": \"pdflatex\"}" \
--output output.pdf
# Or use jq to build the JSON properly
jq -n --rawfile src main.tex '{"latex": $src, "engine": "pdflatex"}' | \
curl -X POST https://api.formatex.io/api/v1/compile \
-H "X-API-Key: $FORMATEX_API_KEY" \
-H "Content-Type: application/json" \
-d @- \
--output output.pdf\section{Encabezados de respuesta}
Use --dump-header para capturar los encabezados de respuesta. La API devuelve X-Compile-Duration-Ms y X-Engine en cada compilación correcta.
curl -X POST https://api.formatex.io/api/v1/compile \
-H "X-API-Key: $FORMATEX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"latex": "...", "engine": "pdflatex"}' \
--output output.pdf \
--dump-header headers.txt
# X-Compile-Duration-Ms: 94
# X-Engine: pdflatex
# Content-Type: application/pdf
cat headers.txt\section{Endpoints}
| Método | Endpoint | Descripción |
|---|---|---|
| POST | /api/v1/compile | Compila LaTeX de forma síncrona. Devuelve los bytes del PDF sin procesar. |
| POST | /api/v1/compile/async | Envía un trabajo de compilación. Devuelve un ID de trabajo para consultar. |
Códigos de respuesta: 200: PDF binario, 401: clave de API no válida o ausente, 422: error de compilación de LaTeX (cuerpo JSON con el campo error).
\section{Authentication}
Todas las solicitudes requieren un encabezado X-API-Key. Exporte su clave como variable de entorno para poder usarla en cada comando.
export FORMATEX_API_KEY =your-api-key~/.bashrc o ~/.zshrc para conservarla entre sesiones.\section{Otros SDK}
\end{curl}
Obtenga su clave de API, ejecute el comando de inicio rápido y tenga un PDF en menos de un segundo, directamente desde su terminal.