\usepackage{claude}
Combine el SDK de Python de Anthropic con FormaTeX para generar PDF profesionales íntegramente con IA. Claude escribe el LaTeX; FormaTeX lo compila: dos llamadas a la API, un PDF.
\section{Por qué Claude}
Claude escribe LaTeX válido
Claude destaca por producir LaTeX sintácticamente correcto, con clases de documento, paquetes y notación matemática adecuados.
FormaTeX compila de forma fiable
FormaTeX ejecuta una distribución completa de TeX Live en el servidor. pdflatex y xelatex están disponibles en todos los planes; lualatex y latexmk, en Pro y superiores, todo mediante una sola llamada REST.
Sin instalación local de TeX
No necesita configurar TeX Live en su equipo ni en su servidor. La compilación está totalmente gestionada, con entornos aislados y efímeros por cada solicitud.
Resultados de nivel profesional
Obtenga PDF impecables, con separación silábica, kerning y renderizado de fuentes correctos, con la misma calidad que una instalación local de LaTeX.
\section{Paso 1}
Indíquele a Claude, mediante un mensaje de sistema, que responda únicamente con código fuente LaTeX sin formato. El prompt system es fundamental: sin él, Claude podría envolver la salida en bloques de markdown o añadir texto explicativo.
import anthropic
client = anthropic.Anthropic(api_key="your-anthropic-key")
SYSTEM_PROMPT = """You are a LaTeX expert. When asked to create a document,
respond ONLY with valid LaTeX source code — no markdown fences, no explanation.
Always include \\documentclass, preamble, and \\begin{document}...\\end{document}."""
def generate_latex(prompt: str) -> str:
"""Ask Claude to write a complete LaTeX document."""
message = client.messages.create(
model="claude-sonnet-5-5",
max_tokens=4096,
system=SYSTEM_PROMPT,
messages=[{"role": "user", "content": prompt}],
)
return message.content[0].text\section{Paso 2}
Pase directamente la cadena LaTeX devuelta por Claude al endpoint de compilación de FormaTeX. La respuesta son bytes de PDF sin procesar: guárdelos en disco o transmítalos al cliente.
import requests
FORMATEX_API_KEY = "your-formatex-key"
FORMATEX_URL = "https://api.formatex.io/api/v1/compile"
def compile_to_pdf(latex_source: str, engine: str = "pdflatex") -> bytes:
"""Send LaTeX source to FormaTeX and return PDF bytes."""
response = requests.post(
FORMATEX_URL,
headers={
"X-API-Key": FORMATEX_API_KEY,
"Content-Type": "application/json",
},
json={"latex": latex_source, "engine": engine},
timeout=30,
)
response.raise_for_status()
return response.content\section{Ejemplo completo}
El script completo de extremo a extremo combina ambos pasos. Llame a generate_and_compile con cualquier prompt en lenguaje natural y obtenga un archivo PDF en disco.
import anthropic
import requests
anthropic_client = anthropic.Anthropic(api_key="your-anthropic-key")
FORMATEX_URL = "https://api.formatex.io/api/v1/compile"
FORMATEX_API_KEY = "your-formatex-key"
SYSTEM_PROMPT = """You are a LaTeX expert. Respond ONLY with valid LaTeX source.
Always include \\documentclass, full preamble, and \\begin{document}...\\end{document}."""
def generate_and_compile(prompt: str, engine: str = "pdflatex") -> bytes:
# Step 1: Claude writes the LaTeX
message = anthropic_client.messages.create(
model="claude-sonnet-5-5",
max_tokens=4096,
system=SYSTEM_PROMPT,
messages=[{"role": "user", "content": prompt}],
)
latex_source = message.content[0].text
# Step 2: FormaTeX compiles to PDF
response = requests.post(
FORMATEX_URL,
headers={
"X-API-Key": FORMATEX_API_KEY,
"Content-Type": "application/json",
},
json={"latex": latex_source, "engine": engine},
timeout=30,
)
response.raise_for_status()
return response.content
# Generate a research summary PDF
pdf_bytes = generate_and_compile(
"Write a 2-page LaTeX article summarising transformer architecture, "
"including the self-attention equation and a simple diagram using TikZ."
)
with open("transformer_summary.pdf", "wb") as f:
f.write(pdf_bytes)
print("PDF saved to transformer_summary.pdf")\section{Related}
\end{claude}
Obtenga una clave de API de FormaTeX, copie el ejemplo completo anterior y publique PDF generados con IA en minutos.