Preflight for LaTeX papers and theses
Write your paper with any AI agent, or by hand. Ship one that checks out.
Overfull is a free, open preflight kit for LaTeX. It compiles your document, reads the log and the PDF, looks up every reference, and tells you what is wrong in plain language, with the file and line to fix.
Check a log or PDF in your browserRead the guide
The browser check runs on this page; your files are not uploaded.
- Version
- 3.0.0, the successor to tex-thesis
- Licence
- MIT; templates MIT-0
- Runs on
- Docker, or a local TeX Live 2026
- Agents
- Claude Code, Codex, Cursor, Copilot, Gemini CLI, or none
What goes wrong
What goes wrong before a deadline
A citation to a paper that does not exist, or exists with a different year. ?? where a figure number should be. A figure without alt text. Ten pages when the workshop allows nine. Whether you typed the LaTeX or an agent did, these slip through on the last night, and none of them needs judgement to find: they are facts about the log, the PDF and public indexes, so a program can check them.
Retrieval improves proof search when the index is built from verified lemmas, as shown in Figure ?? and in recent work on scaling [?].
Proof mark: ref?
Proof mark: no alt text
- A. Vaswani et al. Attention is all you need. NeurIPS, 20172018.
- L. Chen and R. Okafor. Scaling laws for retrieval-augmented proof search. ICLR, 2024.
Proof marks: year: 2017 (arXiv)
not in CrossRef, DBLP, arXiv
10
Proof mark: limit 9 pp.
overfull check reports with a rule id, a location and a fix.Three ways to work
Three ways to work
By hand
Write LaTeX the way you always have. make build compiles in Docker, so a local TeX Live is optional. make check prints the report in plain language, with the file and line of each problem.
With an agent
The templates ship AGENTS.md and skills that coding agents read. The agent adds references only through overfull cite, which writes the entry from CrossRef, arXiv or DBLP, runs overfull check --json after each change, and opens a pull request you review with the changes highlighted in the PDF.
In CI
The GitHub Action reads the log, PDF and .bib your workflow already builds, annotates the pull request at the right lines and writes a summary. Each template also ships a workflow that builds in Docker and runs veraPDF.
All three give the same report, and so does the browser check on this site.
Five checks
What a check covers
Build
TeX errors from the log, grouped by root cause, with the file and line that caused them.
31 rules
Output
What reaches the PDF: ?? for undefined references, [?] citations, missing figures, overfull lines, stale bibliographies.
16 rules
References
Every bibliography entry looked up in CrossRef, doi.org, arXiv and DBLP. Entries no index knows are reported, never silently kept.
13 rules
Accessibility
Tagged PDF, document language and title, alt text on figures, and a PDF/UA validation with veraPDF when it is installed.
9 rules
Venue
Page limit, paper size, anonymity for double-blind review, AI-use disclosure, arXiv packaging rules.
18 rules
An agent session
Cite, check, fix, repeat
A workshop paper, a nine-page limit, one request. This is the loop the template’s instructions put an agent in.
youAdd the Vaswani et al. transformer paper to related work. We need to stay under the 9-page limit.
agentI’ll look the paper up instead of writing the entry from memory.
$ overfull cite arXiv:1706.03762 found arXiv 1706.03762 Attention Is All You Need Vaswani, Shazeer, Parmar, Uszkoreit, Jones, Gomez, Kaiser, Polosukhin (2017) added vaswani2017attention → references.bib
agentCited it in sections/related.tex as \citet{vaswani2017attention}. Building and checking.
$ overfull build && overfull check --json { "status": "fail", "checks": [ … { "check": "venue", "status": "fail", "problems": [ { "rule": "page-limit-exceeded", "severity": "error", "message": "Main text runs to page 10; the limit is 9", "location": { "page": 10 } } ] } ] }
agentOver by about half a page. Table 3 floats onto page 10. I’ll move the per-dataset rows to the appendix and keep the summary row in the main text.
$ overfull build && overfull check build pass output pass references pass 32 of 32 verified accessibility pass tagged, PDF/UA-2 venue pass main text 9 of 9 pages (11 total)
agentAll five checks pass. Opened pull request #42, “Cite Vaswani et al.; move Table 3 detail to appendix”, with the report and a PDF showing the changes.
The report
One sheet per build
Every problem carries a rule id, a location and a fix. Log cascades fold under their root cause, so one missing brace is one problem, not forty.
The same report comes out as terminal text, JSON for agents, Markdown for pull request comments, and GitHub annotations.
Build
Status: pass Build succeeded (paper.pdf, 10 pages)Output
Status: fail 1 × undefined-reference-
error Reference to
fig:resultsis undefinedThere is no
\label{fig:results}, so the PDF shows ?? where it is referenced.Fix: Add
\label{fig:results}after the caption or heading it should point to, or fix the spelling in\ref{fig:results}.Evidence
LaTeX Warning: Reference `fig:results' on page 1 undefined on input line 4.
References
Status: fail 29 of 31 references verified-
error No index has a record of "Scaling Laws for Retrieval-Augmented Proof Search" (2024)
Searched CrossRef, DBLP and arXiv by title; no candidate is similar.
Fix: Ask the author for a DOI or arXiv id. If none exists, remove the entry and its
\cite. -
warning vaswani2017attention: year is 2018 in the .bib, 2017 in arXiv
Fix: Run
overfull cite arXiv:1706.03762 --key vaswani2017attentionto rewrite the entry from the record.
Accessibility
Status: fail Tagged PDF/UA-2, language en, 1 of 6 figures without alt text-
error Figure on page 4 has no alternative text
Fix: Add
alt={…}to\includegraphics, describing what the figure shows.
Venue
Status: fail Profile: paper-
error Main text runs to page 10; the limit is 9
Fix: Cut or move material to the appendix until
\label{overfull:main-end}lands on page 9.
Templates
Start from a template
The thesis and paper templates produce tagged PDF/UA-2; Beamer slides cannot be tagged yet. Each template sets its language and title, requires alt text on figures, and ships agent instructions, a Makefile and a CI workflow. A fresh copy builds without errors; the paper template warns until you write its AI-use statement.
- Thesis
- Bachelor’s, master’s and PhD. A4, chapters, front matter, PDF/UA-2.
overfull init thesis - Paper
- Research papers and preprints, with a page-limit marker and arXiv packaging.
overfull init paper - Slides
- Beamer for defences and conference talks.
overfull init slides
Getting started
Start in five minutes
You need Docker (or a local TeX Live 2026). The first build downloads the image, about 3 GB (9–10 GB on disk); after that, builds take seconds.
Get the
overfullcommand: a single-file download from GitHub Releases (native executables for Linux, macOS and Windows), or skip it and run everything from the Docker imageghcr.io/amet13/overfull:3.$ curl -fLo overfull https://github.com/amet13/overfull/releases/latest/download/overfull-linux-x64$ chmod +x overfull && sudo mv overfull /usr/local/bin/Create a project from a template.
$ overfull init paper my-paper && cd my-paperBuild and check it. Or open the folder in your coding agent and ask for the change you want; it runs the check itself. In CI, add
uses: amet13/overfull@v3.$ make build$ make check
Already have a LaTeX project and a build log? Check it in your browser now. Source and issues are on GitHub.