An AI coding assistant skill for creating, compiling, reviewing, and polishing academic Beamer LaTeX presentations.
Supports Claude Code, OpenAI Codex CLI, Google Antigravity, and VS Code AI extensions (Copilot, Cline, Cursor).
Full lifecycle: create → compile → review → polish → verify.
Need an editable PowerPoint at the end? Use the optional Beamer-first, PowerPoint-second workflow below: establish the argument, technical depth, and visual structure in Beamer, then hand the verified .tex and .pdf to Codex Presentations for an editable .pptx rebuild.
| Action | Description |
|---|---|
create [topic] |
Collaborative, iterative lecture creation with phase gates (material analysis → needs interview → structure plan → draft → quality loop) |
compile [file] |
3-pass XeLaTeX + bibtex with post-compile diagnostics |
review [file] |
Read-only proofreading report (grammar, typos, overflow, consistency, academic quality) |
audit [file] |
Visual layout audit (overflow, fonts, boxes, spacing) |
pedagogy [file] |
Holistic pedagogical review with 13 validation patterns |
tikz [file] |
TikZ diagram review and SVG extraction |
excellence [file] |
Comprehensive multi-dimensional quality review |
devils-advocate [file] |
Challenge slide design with pedagogical questions |
visual-check [file] |
PDF-based visual verification of compiled slides |
validate [file] |
Structural validation against skill constraints |
extract-figures [pdf] |
Extract figures from paper PDFs for direct inclusion in slides |
- Quality scoring system — automated rubric (start at 100, deduct per issue) with Excellent/Good/Needs Work/Poor thresholds
- No overlays — no
\pause,\onslide,\only. Uses multiple slides and color emphasis instead - Content density guards — upper bounds (7 bullets, 2 equations, 5 symbols per slide) and lower bounds (every slide earns its place)
- Box overflow detection — Beamer suppresses overflow warnings inside blocks; the skill catches them via visual audit
- Motivation before formalism — every concept starts with "Why?" before "What?"
- TikZ precision — mathematical accuracy enforced via
\pgfmathsetmacro(no hardcoded approximations) - Semantic color system — colorblind-safe palette (
\pos{},\con{},\HL{}) with WCAG AA contrast (≥ 4.5:1) - Figure extraction — pull figures directly from paper PDFs via
pdf-mcp, ready for\includegraphics - Markdown paper input — use
.mdas a clean intermediate when PDF parsing loses structure; keep the PDF available for figures - Timing allocation — built-in slide-count heuristics for 5min lightning talks through 90min lectures
- Columns & layout rules — enforced
columns[T]patterns with gap/width constraints - Backup slides — automatic appendix section for anticipated Q&A
- Algorithm & code support —
algorithm2e,listings,pgfplotsintegration with per-slide line limits - XeLaTeX only — modern font handling, 16:9 aspect ratio, 10pt default
- Editable PPTX hand-off — a documented workflow for rebuilding a verified Beamer deck with Codex Presentations without asking this skill to become a PowerPoint generator
A full TeX distribution with XeLaTeX is required:
# macOS
brew install --cask mactex
# Ubuntu/Debian
sudo apt install texlive-full
# Arch
sudo pacman -S texliveInstall pdf-mcp (fork with file-based image extraction — avoids base64 token bloat) so Claude Code can read large PDFs (papers, references) and extract figures directly:
pip install git+https://github.com/Noi1r/pdf-mcp.git
claude mcp add pdf-mcp --scope user pdf-mcpIf you use a SOCKS proxy, also install socksio (required by httpx for SOCKS support):
pip install socksioThis enables the create action to analyze research papers and extract-figures to pull figures for slide inclusion.
Clone the repo first:
git clone https://github.com/Noi1r/beamer-skill.gitCopy the skill directory into your Claude Code skills folder:
mkdir -p ~/.claude/skills
cp -r beamer-skill/beamer ~/.claude/skills/Restart Claude Code. The skill will be automatically detected and triggered when you mention beamer, slides, lecture, tikz, or related keywords.
Copy AGENTS.md and references/ into your project root:
cp beamer-skill/beamer/AGENTS.md your-project/AGENTS.md
cp -r beamer-skill/beamer/references your-project/referencesCodex CLI automatically reads AGENTS.md from the working directory. The main file contains core rules and action summaries; detailed workflows are in references/ and referenced as needed.
Antigravity is compatible with the SKILL.md format. Copy the skill directory:
mkdir -p ~/.claude/skills
cp -r beamer-skill/beamer ~/.claude/skills/The same SKILL.md used by Claude Code works with Antigravity without modification.
Copy the Copilot instructions file into your project:
mkdir -p your-project/.github
cp beamer-skill/.github/copilot-instructions.md your-project/.github/Copilot Chat automatically reads .github/copilot-instructions.md and applies the rules during conversations.
Copy the Cline rules file into your project:
mkdir -p your-project/.clinerules
cp beamer-skill/.clinerules/beamer.md your-project/.clinerules/Cline automatically loads all files in .clinerules/ as custom instructions.
Copy the Cursor rules file into your project:
mkdir -p your-project/.cursor/rules
cp beamer-skill/.cursor/rules/beamer.mdc your-project/.cursor/rules/Cursor automatically loads .mdc files from .cursor/rules/. The globs field in the frontmatter ensures the rules activate for .tex, .bib, and .sty files.
| Platform | Instruction file | Content level | Auto-trigger |
|---|---|---|---|
| Claude Code | SKILL.md |
Full (~55KB) | Yes (keyword matching) |
| Antigravity | SKILL.md |
Full (~55KB) | Yes (keyword matching) |
| Codex CLI | AGENTS.md + references/ |
Medium (~30KB total) | Yes (auto-reads AGENTS.md) |
| VS Code Copilot | .github/copilot-instructions.md |
Compact (~5KB) | Yes (auto-reads) |
| VS Code Cline | .clinerules/beamer.md |
Compact (~5KB) | Yes (auto-reads) |
| VS Code Cursor | .cursor/rules/beamer.mdc |
Compact (~5KB) | Yes (glob-triggered on .tex) |
Once installed, the skill is triggered automatically when you mention beamer, slides, lecture, tikz, or related keywords.
Create a lecture from a paper:
Help me create a beamer presentation based on this paper: /path/to/paper.pdf
Create from converted Markdown (recommended when PDF parsing is weak):
Help me create a beamer presentation based on this paper markdown: /path/to/paper.md
Markdown often preserves section hierarchy, equations, captions, and references better than direct PDF reading. If PDF parsing loses structure, first convert the paper to Markdown with MinerU or another PDF-to-Markdown tool, then pass the .md file to create. This is optional; MinerU is not a required dependency. Keep the original PDF available when you need figure extraction or page-level visual reference.
Extract figures from a paper:
Extract figures from /path/to/paper.pdf for my slides
Compile slides:
Compile my slides: /path/to/slides.tex
Full quality check:
Run excellence review on /path/to/slides.tex
Proofread only:
Proofread /path/to/slides.tex
Beamer and PowerPoint are good at different parts of the job. This workflow deliberately separates editorial reasoning from delivery-format production:
- The Beamer skill reads the source material, adapts the talk to its audience and duration, gates the outline for approval, fixes notation, develops protocol diagrams, and validates the resulting PDF.
- Codex Presentations rebuilds that approved deck as an editable PowerPoint, using native text, tables, and simple diagram objects where practical, then performs format-specific rendering and layout QA.
Starting from the paper in Beamer gives the talk a strong thesis and technical spine before PowerPoint layout decisions begin. Starting the PowerPoint stage from an approved deck reduces the risk that a visually clean rebuild silently changes the slide order, drops assumptions, or flattens the main contribution.
This is a controlled hand-off, not a one-click LaTeX-to-PowerPoint conversion. The Beamer deck remains the authority for content and reasoning; the PPTX is the editable delivery artifact.
flowchart LR
A["Paper / source material"] --> B["Beamer skill"]
B --> C["Approved outline"]
C --> D["deck.tex"]
D --> E["Compiled + visually checked deck.pdf"]
I["Figures, data, .bib, styles, source log"] --> F
D -->|"content, notation, slide order"| F["Codex Presentations"]
E -->|"visual reference"| F
F --> G["Editable deck.pptx"]
G --> H["Render + overflow + semantic QA"]
H -->|"layout or semantic mismatch"| F
H -->|"approved content change"| D
H -->|"pass"| J["Verified deck.pptx"]
- Give the Beamer skill the paper or source material, presentation duration, audience, and desired emphasis.
- Approve the structure plan before slide drafting begins.
- Treat
deck.texas the source of truth for claims, notation, formulas, diagrams, citations, and slide order. - Complete the Phase 5 quality loop: compile, review, fix, and recompile. Use
visual-checkorexcellenceas read-only evidence, address every critical and major finding, and independently rescore with the Phase 5 numeric rubric until the deck reaches at least 90. (visual-checkandexcellencedo not themselves produce this numeric score.) - Prepare a self-contained hand-off bundle:
deck.tex— semantic source: exact content, formulas, hierarchy, and orderingdeck.pdf— visual source: composition, emphasis, spacing, and diagram appearance- referenced figures and vector assets — original files, not screenshots from the PDF
.bib, CSV/data files, custom.sty/theme files, and any plotting scripts needed to interpret the deck- font information and a compact source/provenance log when these are not already explicit in the deck
Do not begin the PowerPoint rebuild while the narrative, technical claims, or protocol-flow semantics are still unsettled.
In a Codex environment with the Presentations skill available, ask it to:
- Use
deck.texfor content fidelity,deck.pdffor visual reference, and the rest of the hand-off bundle for original assets, data, citations, and styling context. - Recreate text, tables, diagrams, connectors, and charts as native editable PowerPoint objects where practical.
- Preserve the approved section order, technical claims, notation, and takeaway hierarchy. Do not add or remove substantive content without explicit approval.
- Carry slide-level provenance from the
.bib, figure captions, and source log into[Sources]blocks in PowerPoint speaker notes. These blocks are source metadata, not a speaking script. - Render the generated PPTX, inspect every slide, and check overflow, font substitution, connector direction, table readability, and diagram semantics.
The goal is not pixel-for-pixel imitation. It is a faithful, editable PowerPoint adaptation with the same argument and technical meaning.
| Change | Where to make it first |
|---|---|
| Thesis, narrative, slide order, technical claim | deck.tex |
| Formula, notation, protocol edge, diagram semantics | deck.tex |
| Citation or reported result | deck.tex |
| Office-specific alignment, non-semantic animation, delivery-time polish | deck.pptx |
| Reveals or animation that change reasoning order | deck.tex as separate frames |
If a PowerPoint edit changes meaning rather than presentation, back-port it to deck.tex, recompile the PDF, and refresh the affected PPTX slides. This preserves one authoritative argument instead of two slowly diverging decks.
Use three separate turns so the Beamer structure gate and the final format hand-off remain real approval points.
Turn 1 — analyze and propose the structure:
Use the beamer skill to create a [DURATION]-minute academic talk from
/path/to/paper.pdf for [AUDIENCE]. Emphasize [TOPICS]. Analyze the source and
stop after the detailed structure plan. Do not draft slides until I approve it.
Turn 2 — after approving the structure:
The structure is approved. Continue with the Beamer draft, compile it with
XeLaTeX, and complete the Phase 5 quality loop. Use visual-check or excellence
as read-only review evidence, fix every critical and major finding, and then
rescore separately with the Phase 5 numeric rubric until the deck reaches 90.
Deliver deck.tex, deck.pdf, and a self-contained hand-off bundle containing
the referenced figures, data, bibliography, custom styles, fonts, and source log.
Turn 3 — after approving the Beamer deck:
Use the Presentations skill to rebuild the approved Beamer deck as an
editable 16:9 PowerPoint. Use deck.tex as the authority for content, notation,
formulas, and slide order; use deck.pdf as the visual reference; use the hand-off
bundle for original assets, data, citations, and style context. Preserve the
technical claims and hierarchy. Recreate text, tables, and simple diagrams as
editable native objects where practical. Add slide-level [Sources] metadata in
speaker notes, render every slide, and fix all overflow, font, connector, semantic,
and readability issues before delivering the verified deck.pptx.
The PowerPoint stage is optional and requires a Codex environment with the Presentations skill. This repository itself creates and validates Beamer artifacts; it does not bundle a PPTX converter.
The skill defaults to:
\author{Presenter: [name]}
\institute{Shanghai Jiao Tong University}To change this, either:
- Tell the AI assistant your name/affiliation when creating slides, or
- Edit the preamble section in the corresponding instruction file (
SKILL.md,AGENTS.md, or the VS Code config)
If you have a custom beamer preamble, header file, or theme, simply provide it. The skill will use yours instead of the built-in default.
The example/ directory contains real-world examples generated entirely by this skill:
| Example | Topic | Type |
|---|---|---|
zkagent_slides |
zkAgent — zero-knowledge proof agents | Theoretical CS / cryptography |
slides |
TWIST1⁺ FAP⁺ fibroblasts in Crohn's disease | Basic research (with extracted figures) |
slides_EP |
Endoscopic papillectomy outcomes | Clinical retrospective study |
Each example includes the source paper (PDF), the generated .tex, and the compiled .pdf. The figures/ directory contains images extracted from the source papers via extract-figures.
Automated evaluation comparing Claude Code with the beamer skill against a baseline (no skill). Each test was run by an independent subagent; assertions check objective, verifiable properties of the output.
| Assertion | With Skill | Baseline |
|---|---|---|
| .tex file generated | Pass | Pass |
aspectratio=169, 10pt |
Pass | Pass |
| No overlay commands | Pass | Pass |
| Slide count in 8–12 range | Pass (11) | Pass (12) |
References slide (thebibliography) |
Pass | Fail |
Backup slides after \appendix |
Pass | Fail |
Semantic colors (\pos, \con, \HL) |
Pass | Fail |
| Pass rate | 7/7 (100%) | 4/7 (57%) |
| Assertion | With Skill | Baseline |
|---|---|---|
| Review report generated | Pass | Pass |
| 5-category classification | Pass | Fail |
| Standard issue format (Location / Current / Proposed / Severity) | Pass | Fail |
| Separate validation report | Pass | Fail |
| Structured validation table (slide count, aspect ratio, hard rules) | Pass | Fail |
Original .tex unmodified (read-only) |
Pass | Pass |
| Pass rate | 6/6 (100%) | 2/6 (33%) |
| Metric | With Skill | Baseline | Delta |
|---|---|---|---|
| Overall pass rate | 13/13 (100%) | 6/13 (46%) | +54 pp |
| Mean tokens | ~65k | ~50k | +30% |
| Mean wall time | ~230s | ~130s | +73% |
The skill guarantees structural compliance (references, backups, semantic colors, formatted reports) that the baseline consistently misses. Token/time overhead is moderate (~30%/~73%) relative to the quality gain.
beamer-skill/
├── beamer/
│ ├── SKILL.md # Full skill (Claude Code / Antigravity)
│ ├── AGENTS.md # Codex CLI main file
│ └── references/ # Codex CLI detailed rules
│ ├── create-workflow.md # Phase 0-5 creation workflow
│ ├── tikz-standards.md # TikZ quality standards & patterns
│ └── review-actions.md # review/audit/pedagogy/excellence/validate
├── .github/
│ └── copilot-instructions.md # VS Code Copilot
├── .clinerules/
│ └── beamer.md # VS Code Cline
├── .cursor/
│ └── rules/
│ └── beamer.mdc # VS Code Cursor
├── example/ # Real-world examples
│ ├── 199.pdf # Source paper (zkAgent)
│ ├── zkagent_slides.* # Generated slides
│ ├── slides.* # Crohn's disease fibrosis
│ ├── slides_EP.* # Endoscopic papillectomy
│ └── figures/ # Extracted paper figures
├── README.md
└── LICENSE
MIT