数学练习题 PDF 生成器(LaTeX/KaTeX)

SKILL教育学习
教育学习 未标注权限 许可证不明确
安装这个技能

数学练习题 PDF 生成器。当用户需要创建数学练习题、考试试卷、数学作业集等 PDF 文档时使用此技能。支持完整 LaTeX 数学公式排版、封面设计、分类章节结构。提供 HTML+KaTeX(Playwright 渲染,推荐)和 LaTeX(xelatex 编译)两种输出方式,内置公式语法防错规则和自检脚本。

累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_ce094de0/math-exercise-pdf

技能档案

教育学习
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_ce094de0仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791737584
正文体量6.4 KBSKILL.md 原文大小,越大说明说明书写得越细

SKILL.md 全文

6.4 KB
模型实际读到的说明书原文,来自技能仓库

考研数学做题模板 - PDF生成器

生成专业排版的数学练习题PDF文档,支持完整的LaTeX数学公式渲染。

输出格式选择

  1. HTML方式(推荐)- 使用HTML+KaTeX,通过Playwright (Chromium headless) 生成PDF,无需LaTeX环境
  2. LaTeX方式 - 生成.tex文件后用xelatex编译,公式渲染最精致

工作流程

步骤1:收集题目信息

向用户确认以下信息:
- 标题(如"数学练习题"、"考研数学强化训练"等)
- 副标题(如知识点范围)
- 年份/系列信息
- 题目内容(按章节/分类组织)

步骤2:选择输出格式

如果 用户需要高质量PDF且本地有LaTeX环境 → 使用LaTeX模板
如果 用户需要快速预览或无LaTeX环境 → 使用HTML模板

步骤3:生成文档

HTML方式(推荐):
1. 复制 assets/math_template.html 作为基础
2. 替换封面信息(标题、副标题、年份)
3. 按章节添加题目内容
4. 保存为 .html 文件
5. 运行 python scripts/html_to_pdf.py <文件名>.html 生成PDF
6. 若脚本提示"未放在数学定界符中的LaTeX命令",先修复再导出

LaTeX方式:
1. 复制 assets/math_template.tex 作为基础
2. 替换封面信息(标题、副标题、年份)
3. 按章节添加题目内容
4. 保存为 .tex 文件
5. 使用 xelatex 编译生成PDF

文件结构

math-exercise-pdf/
├── SKILL.md                    # 技能说明文档
├── assets/
│   ├── math_template.html      # HTML模板(推荐)
│   ├── math_template.tex       # LaTeX模板
│   └── README.md               # 模板使用说明
└── scripts/
    ├── html_to_pdf.py          # HTML转PDF脚本
    ├── self_check.py           # 自检脚本(验证环境+最小PDF)
    └── README.md               # 脚本使用说明

题目格式规范

数学公式语法

行内公式:$公式$
块级公式:$$公式$$ 或 \[公式\]

公式渲染防错规则(关键)

  1. 所有 LaTeX 命令(如 \frac、\sum、\lim、\epsilon、\underline)必须写在数学定界符中($...$ 或 $$...$$)。
  2. 填空线请写为 $\\underline{\\qquad\\qquad}$,不要在普通文本里裸写 \underline{...}。
  3. 不要覆盖 KaTeX 内部分式布局相关样式(如 .katex .mfrac 的 display:flex),否则会导致分子分母错位或缺失。
  4. 数学公式中的不等号必须使用以下三种之一(按推荐顺序):
    - \\lt / \\gt (KaTeX 原生命令,最推荐)
    - < / > (HTML 实体,脚本会自动转义为 \\lt / \\gt)
    - 不要写裸 < / > (KaTeX 不支持,浏览器会把它当 HTML 标签,破坏公式)
  5. PDF 导出统一使用 scripts/html_to_pdf.py;脚本会先做语法检查,并自动修复数学区内的 < / > 后再导出。
  6. 如需跳过语法检查,可使用 --strict,但只建议在确认无误时使用。

章节结构模板

## 第X部分 章节名称

### 题 N
题目内容,支持数学公式 $x^2 + y^2 = r^2$

### 题 N+1
下一题内容...

常用LaTeX数学命令

符号 代码 符号 代码
分数 \dfrac{a}{b} 根号 \sqrt{x}
求和 \sum_{i=1}^{n} 积分 \int_a^b
极限 \lim_{x \to 0} 偏导 \frac{\partial f}{\partial x}
向量 \vec{a} 矩阵 \begin{pmatrix}...\end{pmatrix}

脚本命令行参数

python html_to_pdf.py <输入html> [输出pdf] [--strict] [--keep-temp]

参数:
    --strict      严格模式: 检测到可疑LaTeX时中止导出 (默认仅警告不中断)
    --keep-temp   保留临时安全副本 (调试用, 默认导出后自动删除)

故障排查

快速诊断

运行 python scripts/self_check.py 一次性检查:
- Python 依赖(playwright、pymupdf)
- Playwright Chromium 浏览器是否已下载
- KaTeX CDN(jsdelivr)是否可达
- sanitize_raw_angle_in_math 函数的正确性
- 最小 HTML 文件能否成功生成 PDF

如果自检失败,按错误提示逐项修复。

常见问题

Q1: PDF 中出现裸 LaTeX(如 $x^2$)
- 原因:KaTeX 库未加载(断网/CND被墙)或触发时机问题
- 排查:
1. self_check.py 第3项检查 KaTeX CDN 是否可达
2. 用浏览器打开 HTML,按 F12 看 Console 是否有 JS 错误
3. 用浏览器打开 HTML,看 DOM 中 .katex 元素数是否 > 0

Q2: PDF 中数学公式里的 < / > 显示为字面字符
- 原因:用户写了裸 < / > 而非 \\lt / \\gt 或 < / >
- 修复:把 HTML 里的 $ ... < ... $ 改成 $ ... \\lt ... $
- 注:脚本不能自动修复裸 < / >(避免误判跨HTML标签的OCR噪声)

Q3: PDF 中出现 $\frac{\partial}{\partial}$ 这种"梯形"伪影
- 原因:自定义 CSS 覆盖了 KaTeX 的 .katex .mfrac 样式
- 修复:删除任何对 .katex .mfrac 的 display / flex / align-items 覆盖

Q4: 三角符号(▲▼●)出现在 PDF 上
- 原因:.katex 上设置了过大的 font-size(如 1.1em)
- 修复:删除 .katex { font-size: ... !important; } 覆盖

Q5: 某些公式不渲染但 PDF 看起来"还行"
- 原因:KaTeX throwOnError: false 让失败公式保持原文
- 排查:浏览器打开 HTML,按 F12 Console 看 ParseError 警告
- 修复:根据警告修正 LaTeX 语法

渲染机制说明

本 skill 使用 Playwright (Chromium headless) 而非 Edge headless,原因是:
- Playwright 对 defer 脚本和 auto-render 的触发更可靠
- Playwright 的 page.evaluate 可主动调用 renderMathInElement,避免依赖 DOMContentLoaded 时机

KaTeX auto-render 的二次扫描机制(setTimeout(600ms))确保所有动态添加的公式也被处理。

示例输出

HTML模板渲染效果

第一部分 高等数学

题 1
设函数 $f(x)$ 在 $[0,1]$ 上连续,证明:
$$\int_0^1 f(x)dx = f(\xi), \quad \xi \in [0,1]$$

题 2
求极限:$\displaystyle\lim_{x\to 0}\frac{\sin x}{x}$

依赖要求

pip install playwright pymupdf
playwright install chromium
  • LaTeX转PDF(可选):TeX Live 或 MiKTeX 发行版

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。