English: A professional exam review material generator powered by the Typst typesetting engine. Deep-dive into core concepts, curate advanced problems from top universities, and generate beautifully typeset PDF review materials.
中文: 基于 Typst 排版引擎的专业期末复习资料生成工具。深度提取核心考点,搜集并升维顶尖大学考题,生成高质量 PDF 复习资料。
- Deep Concept Analysis / 硬核知识点提取: Not just listing concepts, but digging into derivations, boundary cases, and classic counterexamples
- Problem Elevation / 高阶题目升维: Transform simple calculation problems into rigorous proof questions with multi-concept integration
- Professional Math Typesetting / 专业数学排版: Powered by Typst — perfect formula rendering (not the low-quality output of fpdf2)
- Dual Output Modes / 双模式输出: Full version (with detailed solutions) + Practice version (hidden answers for self-testing)
- Three-Level Classification / 三级考点分类: [CORE] Core Battle / [KEY] Key Consolidation / [BROWSE] Quick Browse
Generated review material for University Physics — Thermodynamics First Law:
- 34 pages of professional typesetting
- 15 problems ranging from proof (7) to synthesis (3) to analysis (3)
- Difficulty distribution: Challenging (6-7pts) 6 / Advanced (8-10pts) 8 / Medium (4-5pts) 1
- Math formulas perfectly rendered with numbered equations, derivation steps, and colored concept boxes
Document Parse -> Core Concept Extraction -> Problem Curation & Elevation
-> Typst Typesetting -> PDF Compilation
Analyze textbooks/lecture notes to extract:
- Complex derivation and proof processes
- Boundary cases and limit conditions
- Classic counterexamples
- Deep connections between concepts
- Frequent trap points from past exams
Search strategies:
site:.edu filetype:pdf "subject" "final exam"github.com subject exam problemsMIT subject problem set,Caltech subject exam
Elevation techniques (when original problems are too simple):
- Calculation problem → rigorous proof problem
- Single concept → multi-concept integration
- Add boundary condition analysis
- Require counterexample construction
Generated .typ source file structure:
review.typ
|-- Cover (subject + date + statistics)
|-- Table of Contents
|-- Part 1: Review Outline (quick reference table)
|-- Part 2: Core Concept Deep Dive
| |-- Concept definitions & formulas
| |-- Key derivation steps
| |-- Boundary case analysis
| |-- Classic counterexamples
| |-- Common pitfalls
|-- Part 3: Advanced Problems
| |-- Difficulty-zoned (challenging / advanced / top-tier)
| |-- Each problem: Question → Key Insight → Solution → Common Mistakes
| |-- Practice mode (hidden solutions)
|-- Part 4: Review Strategies
|-- Appendix: Formula sheet + statistics
Windows (recommended):
winget install --id Typst.TypstmacOS:
brew install typstLinux: Download from GitHub Releases.
Verify:
typst --version
# typst 0.14.2pip install -r requirements.txtPlace exam-review.md in your .claude/skills/ directory, then invoke:
/exam-review
Or simply provide a document and ask:
请用 exam-review skill 帮我生成热力学复习资料
1. Parse Document / 解析文档:
python scripts/parse_document.py examples/thermodynamics/source_textbook.pdf \
--output extracted.txt2. Prepare Review Data / 准备复习数据:
See examples/example_review_data.json for the data structure. Key fields:
{
"subject": "Subject Name",
"date": "2026-06-05",
"core_priority": [{
"title": "Topic Name",
"content": "Core concepts (Typst math syntax $...$ supported)",
"derivation": "Derivation process",
"boundary_cases": "Boundary analysis",
"counterexamples": "Classic counterexamples",
"pitfalls": "Common traps",
"connections": "Links to other topics",
"formula": "Related formulas",
"questions": [{
"question": "Problem content",
"source": "Problem source",
"elevated": true,
"elevation_note": "Elevation description",
"score": 8,
"type": "proof/synthesis/analysis/calculation/short-answer",
"solution": "Detailed solution",
"key_insight": "Key solving idea",
"common_mistakes": "Common errors"
}]
}],
"key_priority": [...],
"browse_priority": [...],
"strategies": ["Strategy 1", "..."]
}3. Generate PDF / 生成 PDF:
# Full version (with solutions)
python scripts/generate_review_typst.py \
examples/thermodynamics/review_data.json \
--output review_output/
# Practice version (hidden answers)
python scripts/generate_review_typst.py \
examples/thermodynamics/review_data.json \
--output review_output/ --practiceOutput files:
review_output/review_subject_date.typ— Typst source (editable)review_output/exam_review_subject_date.pdf— Final PDF
.
├── exam-review.md # Claude Code skill definition
├── README.md # This file
├── requirements.txt # Python dependencies
├── .gitignore # Git ignore rules
├── scripts/
│ ├── generate_review_typst.py # Main Typst PDF generator (core)
│ ├── parse_document.py # Document parser (PDF/DOCX/TXT/IMG OCR)
│ └── generate_review_pdf.py # Legacy fpdf2 generator (deprecated)
├── examples/
│ ├── example_review_data.json # Minimal example data structure
│ └── thermodynamics/ # Full example: Thermodynamics
│ ├── review_data.json # Complete review data
│ ├── source_textbook.pdf # Source textbook chapter
│ └── README.md # Example documentation
└── review_output/ # Generated outputs (gitignored)
| Content | Typst Syntax |
|---|---|
| Inline math | $x^2 + y^2 = z^2$ |
| Display (numbered) | $ E = m c^2 $ (spaces around) |
| Fraction | $a/b$ or $frac(a, b)$ |
| Subscript | $x_i$, $x_(i j)$ |
| Superscript | $x^2$, $x^(a+b)$ |
| Root | $sqrt(x)$, $root(3, x)$ |
| Summation | $sum_(i=1)^n a_i$ |
| Integral | $integral_a^b f(x) dif x$ |
| Limit | $lim_(x -> 0) sin(x)/x = 1$ |
| Greek letters | $alpha, beta, Gamma, delta$ |
| Partial derivative | $partial f / partial x$ |
| Differential | $dif x$ (predefined in script) |
Full reference: Typst Math Documentation
- v2.0.0 (2026-06-05): Upgraded to Typst typesetting engine; added problem elevation mechanism; enhanced derivation proofs, boundary analysis, counterexample construction; supports practice mode
- v1.0.0 (2025-06-05): Initial version using fpdf2 for PDF generation
MIT License