Skip to content
Automation
Skill

/compile-latex

Use when compiling a LaTeX paper, debugging LaTeX errors, building a paper PDF, or when a .tex file fails to produce output. Handles engine detection (xelatex vs pdflatex), bibliography systems (biber vs bibtex), and multi-pass compilation.

From plugin
auto-empirical-research-skills
4.9k200 skills

Claude Code

$ npx -y skills add brycewang-stanford/Auto-Empirical-Research-Skills --skill compile-latex --agent claude-code

SKILL.md

compile-latex.SKILL.md
name: compile-latex
description: Use when compiling a LaTeX paper, debugging LaTeX errors, building a paper PDF, or when a .tex file fails to produce output. Handles engine detection (xelatex vs pdflatex), bibliography systems (biber vs bibtex), and multi-pass compilation.

Compile LaTeX

Overview

This skill compiles LaTeX documents correctly with the right engine and bibliography system, handles multi-pass compilation, and parses errors to suggest fixes. It ships with a wrapper script (`scripts/compile.sh`) that detects everything automatically and can be invoked directly.

When to Use

  • Compiling any `.tex` file
  • "The paper won't compile"
  • LaTeX error messages appearing in output
  • Generating the final PDF for submission
  • CI or automated builds of a paper
  • Verifying that cross-references and citations resolve correctly

Mandatory Steps

1. **Detect the engine from the preamble.** Look for `\usepackage{fontspec}`. If present, use `xelatex`. Otherwise use `pdflatex`. The wrapper script does this automatically.

2. **Detect the bibliography system.** `\usepackage{biblatex}` in the preamble implies biber. `\bibliography{...}` at the end of the document implies bibtex. Neither implies no bibliography pass.

3. **Prefer `latexmk` if available.** It handles multi-pass logic automatically and is more robust than running passes manually.

4. **If `latexmk` is unavailable, run the manual sequence:** engine → bib (if applicable) → engine → engine.

5. **On error, parse the log file** (`<base>.log`). Extract lines starting with `!`, report the line number and file, and suggest a likely fix from the error table below.

6. **Verify the PDF was produced** after successful compilation and that it is non-empty.

Using the Wrapper Script

Invoke the compile script directly:

./skills/compile-latex/scripts/compile.sh paper/paper.tex

The script detects engine and bibliography system, runs `latexmk` if available, falls back to manual multi-pass otherwise, and exits non-zero on failure. All detection and pass logic is handled internally — no flags needed beyond the path to the `.tex` file.

Common Errors and Fixes

| Error | Cause | Fix | |-------|-------|-----| | `Undefined control sequence \foo` | Missing package | Add `\usepackage{pkg}` providing `\foo` | | `File 'x.sty' not found` | Missing package | Install TeX package (`tlmgr install x`) | | `Citation 'X' undefined` | Bib pass not run | Run biber or bibtex, then re-run engine | | `Missing \begin{document}` | Preamble typo | Check brace balance in preamble | | `Package fontspec Error` | Used pdflatex instead of xelatex | Switch engine | | `Overfull \hbox` | Typographical warning | Usually safe to ignore, or rephrase the offending line | | `LaTeX Error: File 'x.tex' not found` | Missing `\input{}` target | Verify path relative to the main file |

Anti-Patterns

  • Running `pdflatex` on a document that needs `xelatex`
  • Ignoring `Citation undefined` warnings — they mean the bibliography is broken
  • Single-pass compilation when cross-references exist (`\ref`, `\cite`, `\label`)
  • Committing `.aux`, `.log`, `.bbl`, `.out`, `.toc`, `.fls`, `.fdb_latexmk` auxiliary files to git
  • Ignoring errors and just "running it again" until it compiles

Verification Before Completion

  • [ ] Engine detected matches preamble requirements
  • [ ] Bibliography system correctly identified
  • [ ] Multi-pass executed when needed (engine → bib → engine → engine)
  • [ ] Exit code 0 from the compile step
  • [ ] `<base>.pdf` exists and is non-empty
  • [ ] No `Undefined` warnings in the final log
  • [ ] Auxiliary files not staged in git
Read more
@brycewang-stanford
Ships withauto-empirical-research-skills

## 🔥 力荐 · StatsPAI — Stata 与 R 的 Python 平替,为 AI Agent 而生 🔁 Stata / R 平替:reghdfe、csdid、rdrobust、synth、fixest、did 等常用命令在 Python 中一站式替代,一个 import statspai as sp 搞定 DID / RD / IV / SCM / DML / matching 🤖 面向 Agent 设计:结构化结果对象 + 内置 MCP Server,Claude / Codex

4.9k200 skills
Get the whole plugin

Stars on GitHub

Momentum

stars in total
4.9k
Star history of brycewang-stanford/Auto-Empirical-Research-Skills on GitHub, a chart by star-history.com

More skills from other plugins.

agent-builder

agent-builder

Load immediately after an Agent intent, before the first agent_builder_* call. Governs how you create, configure, test, and…

n8n11d209k
@n8n-io@n8n-ioInstall Skill
browser-use

browser-use

Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…

@browser-use@browser-useInstall Skill
agent-browser

agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…

@vercel-labs-2@vercel-labs-2Install Skill
add-anydoc

add-anydoc

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when…

@nanocoai@nanocoaiInstall Skill

Questions about compile-latex.

Which coding agents can use compile-latex?
compile-latex installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.