mathews-tom/armory/arxiv-figures
Claude Code and agent skill by mathews-tom/armory
- community
Checking that the SKILL.md file is still in the repository.
Optimize and prepare figures for arXiv submission: format conversion (EPS/PDF/PNG/JPG), size reduction, metadata stripping, processor compatibility (DVI vs PDFLaTeX). Triggers on: "optimize figures for arXiv", "reduce figure size", "convert figures for arXiv", "fix arXiv figures", "figure too large", "arxiv image compression". Companion to arxiv-preflight and arxiv-package.
Install
npx vskill@latest install mathews-tom/armory/arxiv-figuresSKILL.md
arXiv Figure Optimizer
Purpose
Analyze, optimize, and convert figures in a TeX/LaTeX project to meet arXiv requirements and size constraints. Produces correctly formatted, efficiently compressed figures that compile without errors.
Companion skills:
arxiv-preflight— full submission validationarxiv-package— tarball packaging
Format Rules
By Processor
| Processor | Accepted | Rejected | |
|---|---|---|---|
| LaTeX (DVI mode) | .ps, .eps | .pdf, .png, .jpg | |
| PDFLaTeX | .pdf, .png, .jpg | .ps, .eps |
By Content Type
| Content | Optimal Format | Rationale | |
|---|---|---|---|
| Photographs | JPEG | Lossy compression suits continuous tone | |
| Line drawings / diagrams | PDF (vector) | Scalable, sharp at any resolution | |
| Plots with text labels | PDF (vector) | Text remains crisp and searchable | |
| Screenshots / raster art | PNG | Lossless compression for sharp edges | |
| Mixed photo + text | PNG or PDF | Depends on dominant content |
Workflow
1. Inventory
Scan the project for all figures:
- Parse
\includegraphicscalls from all.texfiles - Identify the TeX processor (DVI vs PDFLaTeX) from document preamble or build config
- For each figure: record path, format, file size, dimensions (pixels or vector bounds)
- Flag missing figures, wrong-format figures, oversized figures
2. Analyze
For each figure, determine:
- Format compliance — does the format match the processor?
- File size — flag individual figures >2MB, total >15MB
- Resolution — PNG/JPEG: flag >34 Megapixels (arXiv warning threshold since Feb 2026)
- Content type — photograph vs diagram vs plot (determines optimal format)
- Redundant metadata — PNG: ICC profiles, alpha channels, EXIF, interlacing
- EPS efficiency — verbose PostScript from plotting programs (common with matplotlib, R, MATLAB)
3. Optimize
Apply transformations in order of impact:
Format Conversion (when format violates processor requirements)
Size Reduction — Vector Figures
Size Reduction — Raster Figures
PNG Optimization (avoid arXiv warnings)
- Remove palette indexing if unnecessary
- Remove alpha channel if background is solid
- Strip ICC color profiles
- Remove metadata chunks
- Disable interlacing
EPS BoundingBox Fix (prevents Missing number, treated as zero)
- Verify
%%BoundingBoxappears near top of file, not only at end - If only
%%BoundingBox: (atend), extract actual values and place at top
4. Update TeX Source
If figures were renamed or reformatted:
- Update
\includegraphicspaths - Remove explicit extensions where possible (allows processor flexibility)
- Verify
\graphicspathsettings if used
5. Verify
After optimization:
- Attempt local compilation to verify all figures render
- Compare visual output of optimized vs original figures
- Report size reduction per figure and total
6. Report
Tools Reference
| Tool | Install | Use Case | |
|---|---|---|---|
ImageMagick (convert) | System package | Format conversion, resizing, stripping | |
Ghostscript (ps2pdf, eps2eps) | System package | EPS/PS optimization and conversion | |
epstopdf | TeX Live | EPS → PDF conversion | |
pdfcrop | TeX Live | Trim PDF whitespace | |
optipng | System package | PNG lossless optimization | |
pngquant | System package | PNG lossy size reduction | |
jpegoptim | System package | JPEG lossless optimization |
Core Principles
- Never degrade visual quality below print-readable. Optimization means
removing waste (metadata, unnecessary resolution, verbose encoding), not destroying information.
- Match format to processor. A figure in the wrong format blocks compilation.
This is the highest priority fix.
- Preserve vector where possible. Converting vector to raster is a one-way
quality loss. Only do this when the vector version is pathologically large (>10MB) and cannot be distilled.
- Report everything. The user decides which optimizations to accept. Show
before/after sizes and explain each transformation.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/arxiv-figures/SKILL.md
Popularity
- Repository stars
- 251
- Repository forks
- 37
- 7-day trend score
- 28
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/mathews-tom/armory/arxiv-figures)