Arxiv prep
Skill SeidSmatti/misc-CC-Plugins/plugins/academic-latex/skills/arxiv-prep
Personal multi usage Claude Code plugins/skills marketplace
npx -y skills add SeidSmatti/misc-CC-Plugins --skill arxiv-prepAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Prepares an arXiv-ready submission archive — flattens multi-file documents with latexpand, includes the matching .bbl (arXiv runs latex but not biber/bibtex), verifies figure formats are PDF/PNG/JPG, strips macOS/Windows cruft, and produces a compact .tar.gz. Use when the user mentions arXiv submission, "submit to arxiv", "preprint server", "arxiv-ready", or asks to bundle a paper. Cites arxiv.org/help/submit_tex.html as the source of truth.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.4 KB, as published. Nobody here has run it
arxiv-prep — bundle a paper for arXiv submission
arXiv runs latex (with TeX Live) on uploaded sources to produce the PDF. It does NOT run biber or bibtex. This is the single most-violated rule. The submission must include a pre-generated .bbl for the bibliography to render.
Sources of truth: https://info.arxiv.org/help/submit_tex.html, https://info.arxiv.org/help/faq/index.html.
Pre-flight checks
Before bundling, verify:
| Check | How |
|---|---|
| Document compiles cleanly locally | Invoke /academic-latex:compile, fail-fast on errors |
Bibliography produces a .bbl (biblatex+biber OR natbib+bibtex) | ls main.bbl |
All \includegraphics figures are PDF/PNG/JPG | grep -nE '\\includegraphics' main.tex and check file extensions |
No .eps figures (unless using DVI mode — uncommon) | find . -name '*.eps' |
| No absolute paths to figures | grep '\\includegraphics' main.tex | grep '/' |
No system-specific includes (\input{/Users/...}) | grep -E '\\input\{/' main.tex |
If any check fails, stop and surface to the user.
Step 1 — Flatten
Multi-file documents (\input{chapter1.tex}, \include{...}, etc.) work on arXiv but are easier to debug when flat. Flatten with latexpand:
latexpand --empty-comments main.tex > arxiv/main.tex
--empty-comments strips comments, keeping line numbers — this prevents minor source-format quirks from confusing arXiv's auto-detection.
Source: https://ctan.org/pkg/latexpand.
If the document has a custom class (mybook.cls) or style (mystyle.sty) bundled locally, copy them to the arxiv directory unchanged — arXiv ignores .tex/.cls/.sty distinction and reads everything from the archive root.
Step 2 — Bundle .bbl
cp main.bbl arxiv/main.bbl
The .bbl filename basename must match the main .tex basename. Don't include the .bib (arXiv stores it but doesn't use it; it's bytes you pay for).
If you used biblatex+biber, regenerate the .bbl from the LATEST tex/biber run before copying — a stale .bbl produces a wrong bibliography. Latexmk's last .bbl is what you want; check timestamps:
ls -la main.bbl main.tex # bbl should be newer or equal-time
Note: arXiv supports current bbl formats. As of 2026-05, TeX Live 2025 (default at arXiv) produces bbl format 3.3; TL 2023 produced 3.2 — both supported. If you used a much older biber, regenerate.
Step 3 — Copy figures
mkdir -p arxiv/figures
cp -r figures/*.{pdf,png,jpg,jpeg} arxiv/figures/ 2>/dev/null
Strip files arXiv doesn't need:
.tex.bak,*.aux,*.log,*.out,*.synctex.gz,*.fls,*.fdb_latexmk.DS_Store,__MACOSX/,Thumbs.db.git/,.svn/,.hg/- Source files for figures that aren't
\includegraphics-d
find arxiv -name '*.aux' -delete
find arxiv -name '*.log' -delete
find arxiv -name '*.out' -delete
find arxiv -name '*.synctex.gz' -delete
find arxiv -name '*.fls' -delete
find arxiv -name '*.fdb_latexmk' -delete
find arxiv -name '.DS_Store' -delete
find arxiv -name 'Thumbs.db' -delete
find arxiv -type d -name '__MACOSX' -exec rm -rf {} +
find arxiv -type d -name '.git' -exec rm -rf {} +
Step 4 — Sanity test the bundle
Recompile from inside the bundle directory:
cd arxiv
latexmk -pdf -interaction=nonstopmode main.tex
If the compile fails — fix and re-bundle. arXiv will hit the same failure.
Visually verify the produced PDF matches the original (run /academic-latex:verify-visual with the original PDF as reference).
Step 5 — Pack
tar czf submission.tar.gz -C arxiv .
ls -lah submission.tar.gz
arXiv's upload size limit is generous (50MB usually) but smaller is better. If the archive is large, the figure files are usually the cause:
du -h arxiv/figures/* | sort -h | tail
Re-render large figures at a more reasonable DPI, or convert PNG to JPG where lossy is acceptable.
.arxivignore-style cleanup (Google's arxiv-latex-cleaner)
For an automated cleanup, Google ships a tool that handles many edge cases:
pip install arxiv-latex-cleaner
arxiv-latex-cleaner ./paper # produces ./paper_arXiv/
It strips comments, handles included figures, removes auxiliary files, and (optionally) shrinks figures. Useful when the project has many ad-hoc files.
Source: https://github.com/google-research/arxiv-latex-cleaner.
Common rejection reasons
| Symptom | Cause | Fix |
|---|---|---|
| "Bibliography did not produce" | No bundled .bbl or .bbl basename mismatch | Bundle .bbl with matching basename |
| "Figure file not found" | Wrong path or wrong extension after bundling | Use relative paths; ensure figures are .pdf/.png/.jpg |
| "Compilation timed out" | Pathological TikZ figures | Externalize TikZ figures locally and submit pre-rendered PDFs |
| "Too many files" | Submitting cache/aux directories | Strip *.aux, *.log, etc. (see Step 3) |
| "Wrong main file" | arXiv guesses wrong | Rename main file ms.tex or put it FIRST in the archive |
Post-submission
arXiv requires the same kind of single-file-or-bundle approach for replacement versions. Save the working arxiv/ directory; for a v2, edit and re-bundle.
When uncertain
For arXiv-specific edge cases (long compile times, special encodings, journal-cross-listing), delegate to /academic-latex:docs-lookup to fetch the relevant section of info.arxiv.org/help. Don't guess.
Last verified
2026-05-09 — arxiv.org/help/submit_tex.html, arxiv-latex-cleaner repo, latexpand on CTAN.