Extract TikZ Diagrams to SVG
SkillDocs & knowledgeLets your agent pull TikZ diagrams out of Beamer slides, compile them, and turn them into SVG files.
Then ask your AI: use the Extract TikZ Diagrams to SVG skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add it as a step in a pipeline you build on Ahel, or connect Ahel to Claude, ChatGPT, Cursor, Claude Code or Codex and ask your AI to use it.
About this skill
Extract TikZ diagrams from Beamer `.tex` source, compile each to a standalone PDF, and convert to SVG with 0-based indexing. Use when user says "extract the tikz", "regenerate the diagrams", "rebuild the SVGs", "sync tikz to quarto", or after editing TikZ blocks in a Beamer deck that also has a Quar
What this skill tells your AI
The instructions your AI receives, as published by pedrohcgs/claude-code-my-workflow in .claude/skills/extract-tikz/SKILL.md and read by Ahel’s review.
Extract TikZ diagrams from the Beamer source, compile to multi-page PDF, and convert each page to SVG for use in Quarto slides.
Creating a brand-new diagram instead of extracting? Use
/new-diagram— it scaffolds fromtemplates/tikz-snippets/with the prevention rules pre-applied.
Steps
Step 0: Freshness Check (MANDATORY)
Before compiling, verify that extract_tikz.tex matches the current Beamer source.
- Find the Beamer source:
ls Slides/$ARGUMENTS*.tex - Extract all
\begin{tikzpicture}blocks from Beamer - Compare with
Figures/$ARGUMENTS/extract_tikz.tex - If ANY difference exists: update extract_tikz.tex from the Beamer source
- If extract_tikz.tex doesn't exist: create it from scratch
Step 1: Prevention pre-check (MANDATORY — halt on violation)
Before compiling, verify every \begin{tikzpicture} block in Figures/$ARGUMENTS/extract_tikz.tex satisfies the prevention rules in .claude/rules/tikz-prevention.md. The pre-check is a small Python script shared with /new-diagram so both skills enforce identical behavior:
python3 scripts/check-tikz-prevention.py "Figures/$ARGUMENTS/extract_tikz.tex"
What it checks:
- P3 —
scale=Xwithout node scaling. Barescale=shrinks coordinates but not text. Allowed forms:scale=X, every node/.style={scale=X}orscale=X, transform shape. The checker parses the full\begin{tikzpicture}[...]options block even when it spans multiple lines. - P4 — Directional keyword on edge labels. Every edge label (
nodeinside a\draw) must carryabove,below,left,right, or a compound (e.g.above left).midwayalone is a path position, not a direction. The checker scans the full\draw ...;statement so\drawon one line andnode[...]{...}on the next line are still linked.
Note what the pre-check does NOT enforce: P1 (boxed-node explicit dimensions) and P2 (coordinate-map comment) are structural and get flagged by tikz-reviewer in Step 8, not here.
Exit codes: 0 = all files pass, 1 = one or more P3/P4 violations (stderr lists file, line, snippet, rule), 2 = usage error.
If exit is non-zero: halt, report the offending lines, and ask the user to fix the Beamer source (single source of truth). Do NOT compile.
Step 2: Navigate to the lecture's Figures directory
cd Figures/$ARGUMENTS
Step 3: Compile the extract_tikz.tex file
TEXINPUTS=../../Preambles:$TEXINPUTS xelatex -interaction=nonstopmode extract_tikz.tex
Step 4: Count the number of pages
pdfinfo extract_tikz.pdf | grep "Pages:"
Step 5: Convert each page to SVG using 0-BASED INDEXING
CRITICAL: PDF pages are 1-indexed, but output SVG files are 0-indexed!
PAGES=$(pdfinfo extract_tikz.pdf | grep "Pages:" | awk '{print $2}')
for i in $(seq 1 $PAGES); do
idx=$(printf "%02d" $((i-1)))
pdf2svg extract_tikz.pdf tikz_exact_$idx.svg $i
done
Step 6: Sync to docs/ for deployment
cd ../..
./scripts/sync_to_docs.sh $ARGUMENTS
Step 7: Verify SVG files
- Read 2-3 SVG files to confirm they contain valid SVG markup
- Confirm file sizes are reasonable (not 0 bytes)
Step 8: Visual Quality Review (tikz-reviewer)
Spawn the tikz-reviewer agent (via the Agent tool with subagent_type=tikz-reviewer) on the TikZ source blocks to catch label overlaps, geometric errors, and visual inconsistencies. The reviewer cites specific passes and formulas from .claude/rules/tikz-measurement.md. If it returns NEEDS REVISION or REJECTED, loop:
- Apply the recommended fixes to the Beamer
.texsource (single source of truth). - Re-copy the updated block to
extract_tikz.tex. - Re-run the prevention pre-check (Step 1) and compile.
- Regenerate SVGs, re-sync.
- Re-invoke tikz-reviewer.
Stop when tikz-reviewer returns APPROVED (max 5 rounds).
Step 9: Report results
Source of Truth Reminder
TikZ diagrams MUST be edited in the Beamer .tex file first, then copied verbatim to extract_tikz.tex. See .claude/rules/single-source-of-truth.md.
Signals
- GitHub stars
- 2k
- Forks
- 3k
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
extract-tikz-pedrohcgs- Source
- github.com/pedrohcgs/claude-code-my-workflow
github.com/pedrohcgs/claude-code-my-workflow
Related picks
Skill · sickn33
The pick for Pythonpython-design-patterns
Skill · wshobson
The pick for Pythonlatex-drawing-guide
Skill · brycewang-stanford
The pick for LaTeXlatex-math-formatter
Skill · a5c-ai
The pick for LaTeXgolden-pdf-ch
Skill · yusufkaraaslan
The pick for PDFpdf-co-automation
Skill · composio-community
The pick for PDF