
Latex Document
- 20 installs
- 3.2k repo stars
- Updated August 4, 2026
- brycewang-stanford/auto-empirical-research-skills
latex-document is a skill that creates, compiles, and converts LaTeX documents into professional PDFs, covering resumes, reports, papers, presentations, and more.
About
This skill creates, compiles, and converts LaTeX documents into professional PDFs with PNG previews. A user reaches for it to produce resumes, reports, cover letters, invoices, academic papers, theses, presentations, posters, or fillable forms, and to convert between Markdown, DOCX, HTML, and LaTeX. Its compile script supports pdflatex, xelatex, and lualatex with auto-detection and can also OCR handwritten or printed PDFs into LaTeX.
- Creates and compiles any LaTeX document into professional PDFs with PNG previews
- Supports resumes, reports, papers, theses, presentations, posters and forms
- Converts between Markdown, DOCX, HTML and LaTeX and OCRs PDFs to LaTeX
Latex Document by the numbers
- 20 all-time installs (skills.sh)
- Ranked #435 of 688 Office & Documents skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
latex-document capabilities & compatibility
- Capabilities
- econ write
- Use cases
- documentation · presentations · pdf parsing · resume
What latex-document says it does
Universal LaTeX document skill: create, compile, and convert any document to professional PDF with PNG previews.
Compile script supports pdflatex, xelatex, lualatex with auto-detection
PDF-to-LaTeX conversion of handwritten or printed documents (math, business, legal, general).
npx skills add https://github.com/brycewang-stanford/auto-empirical-research-skills --skill latex-documentAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 20 |
|---|---|
| repo stars | ★ 3.2k |
| Last updated | August 4, 2026 |
| Repository | brycewang-stanford/auto-empirical-research-skills ↗ |
What it does
Create and compile a LaTeX document into a professional PDF, or convert or OCR documents to and from LaTeX.
Who is it for?
Anyone creating or compiling a LaTeX document such as a resume, report, paper, thesis, presentation, or form.
When should I use this skill?
The user asks to create a resume/CV, write or compile a LaTeX document, make a report/invoice/presentation, or convert/OCR a PDF to LaTeX.
What you get
A compiled professional PDF with PNG previews from a LaTeX source, or a converted document between LaTeX and other formats.
By the numbers
- supports 51 listed document tasks
- 3 compile engines (pdflatex, xelatex, lualatex)
Files
<!-- ╔══════════════════════════════════════════════════════════════╗ ║ 本文件为开源 Skill 原始文档,收录仅供学习与研究参考 ║ ║ CoPaper.AI 收集整理 | https://copaper.ai ║ ╚══════════════════════════════════════════════════════════════╝
来源仓库: https://github.com/ndpvt-web/latex-document-skill 项目名称: latex-document-skill 开源协议: MIT License 收录日期: 2026-04-02
声明: 本文件版权归原作者所有。此处收录旨在为社会科学实证研究者 提供 AI Agent Skills 的集中参考。如有侵权,请联系删除。 -->
LaTeX Document Skill
Create any LaTeX document, compile to PDF, and generate PNG previews. Convert PDFs of any type to LaTeX.
Workflow: Create Documents
1. Determine document type (resume, report, letter, invoice, article, thesis, academic CV, presentation, poster, exam, book, cheat sheet) 2. If poster: Run the poster sub-workflow (see Poster Sub-Workflow below), then skip to step 5. 3. If cheat sheet / reference card: Run the cheat sheet sub-workflow (see Cheat Sheet / Reference Card Sub-Workflow below), then skip to step 5. 4. Ask the user which enrichment elements they want (use AskUserQuestion tool with multiSelect). Offer relevant options based on document type:
- AI-generated images -- custom illustrations, diagrams, photos (uses generate-image skill)
- Charts/graphs -- bar, line, pie, scatter, heatmap (pgfplots or matplotlib)
- Flowcharts/diagrams -- process flows, architecture, decision trees (TikZ or Mermaid)
- Citations/bibliography -- academic references, footnotes, works cited (BibTeX/biblatex)
- Tables with data -- comparison matrices, financial data, statistics (booktabs)
- Watermarks -- DRAFT, CONFIDENTIAL, or company logo background
- Skip this step for simple documents (cover letters, invoices) or when the user has already specified exactly what they want.
5. Copy the appropriate template from assets/templates/ or write from scratch 6. Customize content based on user requirements 7. Generate external assets based on user's element choices:
- AI images:
python3 <skill_path>/../generate-image/scripts/generate_image.py "prompt" --output ./outputs/figure.png - matplotlib charts:
python3 <skill_path>/scripts/generate_chart.py <type> --data '<json>' --output chart.png - Mermaid diagrams:
bash <skill_path>/scripts/mermaid_to_image.sh diagram.mmd output.png
8. For documents 5+ pages: Review the Long-Form Document Anti-Patterns section and run the Content Generation Checklist before compiling. Key rules: prefer prose over bullets, include global list compaction, escape </> in text mode, vary section formats, limit ewpage, size images at 0.75-0.85 textwidth. 9. Compile with scripts/compile_latex.sh (auto-detects XeLaTeX for CJK/RTL, glossaries, bibliography) 10. Show PNG preview to user, deliver PDF
Poster Sub-Workflow
When the user requests a poster: read references/poster-design-guide.md for the complete workflow including conference size presets (NeurIPS/ICML/CVPR/ICLR dimensions), layout archetypes (Traditional/BetterPoster/Visual-Heavy), color schemes, and typography standards. Use poster.tex (portrait) or poster-landscape.tex (landscape). Ask the user for conference/orientation, layout style, and color scheme using AskUserQuestion, then proceed to step 5.
Cheat Sheet / Reference Card Sub-Workflow
When the user requests a cheat sheet, reference card, or formula sheet:
1. Read references/cheatsheet-guide.md for the complete workflow including template selection, content budgets, typography rules, and the PDF-to-cheatsheet pipeline. 2. Select template: cheatsheet.tex (general, 3-col landscape), cheatsheet-exam.tex (exam formula, 2-col portrait), or cheatsheet-code.tex (programming, 4-col landscape). 3. Follow the guide's workflow steps, then return to main workflow step 5.
Workflow: Mail Merge (Batch Personalized Documents)
Generate N personalized documents from a LaTeX template + CSV/JSON data source using scripts/mail_merge.py. Template syntax: {{variable}} for simple substitution, Jinja2 (<< >>, <% %>) for conditionals/loops. See assets/templates/mail-merge-letter.tex for an example. Full guide: references/interactive-features.md.
Workflow: Version Diffing (latexdiff)
Generate highlighted change-tracked PDFs using scripts/latex_diff.sh. Supports file-to-file diff, git revision diff, multi-file flatten, and custom markup styles. Full guide: references/interactive-features.md.
Workflow: Convert Document Formats
Convert between Markdown, DOCX, HTML, and LaTeX using scripts/convert_document.sh. Full guide: references/format-conversion.md.
Workflow: Convert PDF to LaTeX
Convert existing PDFs (handwritten notes, printed reports, legal docs) to LaTeX. Full pipeline: references/pdf-conversion.md.
Quick steps: Split PDF into page images (scripts/pdf_to_images.sh), select a conversion profile, create shared preamble, apply scaling strategy, validate with scripts/validate_latex.py, concatenate, compile.
Scaling strategy: 1-10 pages = single agent; 11-20 pages = split in half (2 agents); 21+ pages = batch-7 pipeline (ceil(N/7) agents with run_in_background: true).
Conversion profiles (in references/profiles/): math-notes.md (equations, theorems -- has beautiful mode), business-document.md (reports, memos), legal-document.md (contracts, statutes), general-notes.md (handwritten, mixed content).
Workflow: Fill PDF Forms
Fill existing PDF forms -- both fillable (with form fields) and non-fillable (image-based). Full guide: references/pdf-operations.md.
Step 1: Check form type:
python3 <skill_path>/scripts/pdf_check_form.py form.pdfIf fillable (has form fields):
# Extract field metadata
python3 <skill_path>/scripts/pdf_extract_fields.py form.pdf field_info.json
# Create field_values.json with values for each field, then fill
python3 <skill_path>/scripts/pdf_fill_form.py form.pdf field_values.json output.pdfIf non-fillable (no form fields):
# Convert to images for visual analysis
bash <skill_path>/scripts/pdf_to_images.sh form.pdf ./tmp/pages
# Visually identify fields, create fields.json with bounding boxes
# Validate bounding boxes (+ optional validation image)
python3 <skill_path>/scripts/pdf_validate_boxes.py fields.json --image page_1.png --output validation.png --page 1
# Fill with text annotations
python3 <skill_path>/scripts/pdf_fill_annotations.py form.pdf fields.json output.pdfWorkflow: Advanced PDF Operations
For text/table extraction (pdfplumber), OCR (pytesseract), programmatic PDF creation (reportlab), watermarking, page rotation/cropping, metadata extraction, JavaScript libraries (pdf-lib, pdfjs-dist), and batch processing, see references/pdf-operations.md.
Compile Script
# Basic compile (auto-detects engine)
bash <skill_path>/scripts/compile_latex.sh document.tex
# Compile + generate PNG previews
bash <skill_path>/scripts/compile_latex.sh document.tex --preview
# Compile + PNG in specific directory
bash <skill_path>/scripts/compile_latex.sh document.tex --preview --preview-dir ./outputs
# Force a specific engine
bash <skill_path>/scripts/compile_latex.sh document.tex --engine xelatex
bash <skill_path>/scripts/compile_latex.sh document.tex --engine lualatex
# Use latexmk for automatic multi-pass (recommended for complex documents)
bash <skill_path>/scripts/compile_latex.sh document.tex --use-latexmk --preview
# PDF/A output for thesis submissions and archival compliance
bash <skill_path>/scripts/compile_latex.sh document.tex --pdfa
# Verbose output for debugging compilation issues
bash <skill_path>/scripts/compile_latex.sh document.tex --verbose
# Quiet mode for batch/CI jobs (only errors shown)
bash <skill_path>/scripts/compile_latex.sh document.tex --quiet
# Clean auxiliary files only (no compilation)
bash <skill_path>/scripts/compile_latex.sh document.tex --cleanCompilation Flags
| Flag | Description |
|---|---|
--preview | Generate PNG previews of each page after compilation |
--preview-dir DIR | Directory for PNG output (default: same as .tex file) |
--engine ENGINE | Force engine: pdflatex, xelatex, or lualatex |
--use-latexmk | Use latexmk as compilation backend (auto multi-pass, bibliography, index) |
--verbose | Show full compilation output (all engine logs) |
--quiet | Suppress all non-error output |
--clean | Remove auxiliary files (.aux, .log, .bbl, .fdb_latexmk, etc.) and exit |
--pdfa | Produce PDF/A-2b compliant output (auto-injects pdfx package) |
--auto-fix | Auto-fix common compilation errors (float placement, encoding) |
Compilation Backends
Manual multi-pass (default): Runs the engine multiple times with bibliography/index/glossary passes as needed. This is the traditional approach and works without latexmk installed.
latexmk (`--use-latexmk`): Uses latexmk for automatic dependency-driven compilation. Recommended for complex documents with bibliographies, indexes, glossaries, or cross-references -- latexmk determines the correct number of passes automatically. Requires latexmk (included with TeX Live).
Log Filtering (texfot)
When texfot is installed (included with TeX Live), compilation output is automatically filtered to show only relevant warnings and errors, suppressing noisy package loading messages. This applies in the default verbosity mode. Use --verbose to see unfiltered output, or --quiet to suppress all non-error output.
Engine auto-detection: If the .tex file uses fontspec, xeCJK, or polyglossia, the script automatically uses xelatex. If it uses luacode or luatextra, it uses lualatex. Otherwise defaults to pdflatex. Override with --engine.
The script auto-installs texlive (including texlive-science, texlive-xetex, texlive-luatex, biber) and poppler-utils if missing. It auto-detects ibliography{} (runs bibtex), ddbibresource{} (runs biber), \makeindex (runs makeindex), \makeglossaries (runs makeglossaries), runs the correct number of passes, generates PNG previews with pdftoppm, and cleans auxiliary files.
Script & Tool Reference
For PDF utilities (encrypt, merge, optimize, extract pages, pdf-to-images), LaTeX quality tools (lint, word count, analysis, package check, citations), compilation auto-fix, bibliography fetching, and diagram scripts (Mermaid, Graphviz, PlantUML), see references/script-tools.md.
Templates
Copy from assets/templates/ and customize.
Resume Templates (5 ATS-Compatible Options)
Select based on experience level, industry, and ATS requirements. See references/resume-ats-guide.md for full ATS guidance.
| Template | Best For | Key Feature | ATS Score |
|---|---|---|---|
| `resume-classic-ats.tex` | Finance, law, government, any ATS portal | Zero graphics, plain text only, maximum parse safety | 10/10 |
| `resume-modern-professional.tex` | Tech, corporate, general professional | Subtle color accents, clean design, good ATS + human appeal | 9/10 |
| `resume-executive.tex` | VP, Director, C-suite (5-15+ years) | Two-page, executive summary, board roles, P&L focus | 9/10 |
| `resume-technical.tex` | Software, data, engineering roles | Skills-first hybrid, projects section, tech stack emphasis | 9/10 |
| `resume-entry-level.tex` | New graduates, career starters | Education-first, one page, coursework, activities | 9/10 |
All 5 templates follow ATS rules: single-column, no graphics/images, no tables for layout, standard section headings, contact info in body (not header/footer).
STEM Student Templates
- `homework.tex` -- Homework/assignment submission template (
articleclass, 11pt) with toggle-able solutions (\showsolutionstrue/\showsolutionsfalse), custom problem/solution environments, honor code section,fancyhdrheaders,amsmath+amssymb+amsthmmath,listingscode highlighting (Python, Java, C++, Matlab styles),enumitemfor (a), (b), (c) sub-parts,hyperref. Customization via `
<!-- ╔══════════════════════════════════════════════════════════════╗ ║ 本文件为开源 Skill 原始文档,收录仅供学习与研究参考 ║ ║ CoPaper.AI 收集整理 | https://copaper.ai ║ ╚══════════════════════════════════════════════════════════════╝
来源仓库: https://github.com/ndpvt-web/latex-document-skill 项目名称: latex-document-skill 开源协议: MIT License 收录日期: 2026-04-02
声明: 本文件版权归原作者所有。此处收录旨在为社会科学实证研究者 提供 AI Agent Skills 的集中参考。如有侵权,请联系删除。 -->
<p align="center"> <img src="assets/capy-professor.png" alt="Professor Capybara — your LaTeX document expert" width="400"/> </p>
<h1 align="center">LaTeX Document Skill</h1>
<p align="center"> <strong>The capybara sat down at the typewriter. When it stood up, there was a thesis.</strong> </p>
<p align="center"> <em>Turn handwritten notes, scanned textbooks, and raw data into publication-ready LaTeX -- without knowing a single LaTeX command.</em> </p>
<p align="center"> 27 templates · 27 automation scripts · 26 reference guides · 4 OCR profiles · 217 tests · 0 LaTeX commands required </p>
---
The 10-Second Pitch
You describe a document in plain English. This skill produces a compiled PDF.
- An 80-page handwritten math PDF becomes color-coded lecture notes with proper equations and TikZ diagrams.
- A 162-page textbook becomes a 2-page cheat sheet.
- A CSV becomes nine chart types.
- A one-line prompt becomes a thesis, a resume, a conference poster, or a 37-page book with drop caps.
No LaTeX knowledge required. The capybara handles the semicolons.
---
What Can It Actually Do?
(Spoiler: more than most humans with a PhD in LaTeX.)
| You say... | What happens under the hood |
|---|---|
| "Create my resume" | Selects from 5 ATS-optimized templates, compiles with pdflatex, generates PDF + PNG preview |
| "Convert my 80-page handwritten math notes into beautiful LaTeX" | pdf_to_images.sh renders at 200 DPI -> batch-7 parallel OCR agents -> math-notes.md profile generates colored tcolorbox theorems (blue), definitions (green), examples (orange) -> compile_latex.sh runs multi-pass pdflatex -> polished PDF with proper equations, proofs, and TikZ diagrams |
| "Turn this 162-page scan into a 2-page cheat sheet" | pdf_to_images.sh splits PDF -> vision OCR per page -> extracts key content -> symbol substitution -> telegram-style compression -> fits into cheatsheet.tex with 3-column landscape 7pt layout |
| "Build a quarterly report with charts" | generate_chart.py creates bar/line/pie charts from JSON/CSV -> csv_to_latex.py converts data into booktabs tables -> Mermaid/TikZ flowcharts compiled inline -> all embedded in report.tex with TOC |
| "Generate 9 charts from my sales CSV" | generate_chart.py reads CSV -> outputs bar, line, scatter, pie, heatmap, box, histogram, area, radar charts -> multi-series, legends, colorblind-safe Tol palette |
| "Convert my old PDF to LaTeX" | Pages split at 200 DPI -> parallel OCR agents -> clean .tex with profile-tuned formatting -> 0 errors per 7-page batch (validated on 115-page PDF) |
| "Send personalized letters to 500 candidates" | mail_merge.py loads template + CSV -> Jinja2 rendering -> 4 parallel pdflatex workers -> qpdf --pages merge into single PDF |
| "What changed between v1 and v2 of my thesis?" | latex_diff.sh runs latexdiff -> highlighted change-tracked PDF with additions in blue, deletions in red |
| "Make a NeurIPS poster" | Interactive: asks orientation -> layout -> color scheme -> generates A0 tikzposter with correct dimensions and QR codes |
| "Create a calculus final exam with answer key" | exam class with \printanswers toggle, grading table, 6 question types (MCQ, T/F, fill-blank, matching, short, essay) |
| "Fetch BibTeX for these DOIs" | fetch_bibtex.sh hits doi.org with Accept: application/x-bibtex header -> appends to .bib -> cross-refs every ` |
Related skills
FAQ
What compile engines does latex-document support?
Its compile script supports pdflatex, xelatex, and lualatex with auto-detection, a latexmk backend, and PDF/A output.
Can it convert between document formats?
Yes, it uses Pandoc to convert Markdown, DOCX, and HTML to and from LaTeX, and can OCR handwritten or printed PDFs into LaTeX.