LaTeX Compiler
Compile LaTeX documents to PDF using pdflatex, xelatex, or lualatex with template support
Like a lobster shell, security has layers — review code before you run it.
License
Runtime requirements
SKILL.md
latex-compiler
Compile LaTeX documents to PDF. Accepts LaTeX source as content strings and returns compiled PDF via base64 or container-internal path.
Prerequisites
This skill requires a LaTeX compilation server listening on localhost:8080. The Prismer project provides one as part of its container setup.
Source & review: The container source is at github.com/Prismer-AI/Prismer/tree/main/docker/base (Apache-2.0). Before running, review the Dockerfile and docker-compose.dev.yml to verify:
- No host filesystem volumes are mounted (the dev compose only maps ports)
- The container runs as a non-root user
- Only port 16888 (gateway) is exposed to the host
If the container is not running, all tool calls will fail with a connection error. The skill does not fall back to other local services or retry on different ports.
Description
This skill sends LaTeX source strings via HTTP POST to localhost:8080. It supports pdflatex, xelatex, and lualatex engines, bibliography processing via biber, multi-pass compilation for cross-references, and starter templates.
Data flow: The skill sends only LaTeX content strings (from tool parameters) to the container via HTTP. It does not read host files, environment variables, or credentials. Output PDFs are generated inside the container at /home/user/output/reports/ (container-internal path, not host-mounted). Use latex_preview to retrieve PDFs as base64 — no host filesystem mount is involved.
Usage Examples
- "Compile this LaTeX document to PDF"
- "Preview the PDF output of my paper"
- "What LaTeX templates are available?"
- "Give me the IEEE template"
- "Compile this with xelatex for Chinese support"
Process
- Choose template — Use
latex_templatesto see available templates, thenlatex_get_templateto get starter content - Write LaTeX — Edit the source document
- Compile — Use
latex_compileto generate the PDF (saved in container) - Preview — Use
latex_previewto get an inline base64 PDF for display
Tools
latex_compile
Compile LaTeX source to PDF. The PDF is saved inside the container.
Parameters:
content(string, required): Full LaTeX source codefilename(string, optional): Output filename stem (default:document)engine(string, optional):pdflatex|xelatex|lualatex(default:pdflatex)bibliography(string, optional): BibTeX/BibLaTeX content (triggers biber)runs(number, optional): Compilation passes (default: 2 for cross-references)
Returns: { success, pdf_path, log, errors, warnings, compile_id }
Example:
{ "content": "\\documentclass{article}\\begin{document}Hello\\end{document}", "engine": "pdflatex" }
latex_preview
Compile LaTeX source and return the PDF as base64 for inline preview.
Parameters:
content(string, required): Full LaTeX source codefilename(string, optional): Output filename stem (default:document)engine(string, optional):pdflatex|xelatex|lualatex(default:pdflatex)bibliography(string, optional): BibTeX/BibLaTeX content (triggers biber)
Returns: { success, pdf_base64, pdf_path, log, errors, warnings, compile_id }
Example:
{ "content": "\\documentclass{article}\\begin{document}Hello\\end{document}" }
latex_templates
List available LaTeX templates and supported engines.
Parameters: None
Returns: { templates: string[], engines: string[] }
latex_get_template
Get the LaTeX source of a starter template.
Parameters:
name(string, required): Template name —article,article-zh,beamer,ieee
Returns: { name, content }
Example:
{ "name": "ieee" }
Notes
- Chinese documents (
article-zh) requirexelatexorlualatexengine - Compilation timeout is 120 seconds per run
- Multi-pass compilation (default 2 runs) resolves cross-references and TOC
- If
bibliographyis provided, biber runs automatically between passes - PDFs are saved to
/home/user/output/reports/inside the container (not on the host) - Use
latex_previewto get PDF as base64 without needing host filesystem access - No host filesystem mounts are required — all I/O is via HTTP to the container
- If localhost:8080 is unreachable, tools return a connection error (no fallback to other services)
Files
1 totalComments
Loading comments…
