数学打印纸版生成器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_ce094de0/math-print-paper
技能介绍
要解决的问题
把电子版数学题打印成纸质练习稿(热敏纸打印机场景),常见痛点有三个:公式和正文混排后字号不合理——题干太小看不清,题号和来源反而占地方;原始页面带大量 CSS 装饰,打印费墨;以及公式本身是 LaTeX 源码,直接用浏览器打印,纸上出现的还是 $x^2$ 这样的原始文本,必须先渲染。
核心能力与工作方式
模板按「主次分明」的字号策略排版:题干与数学公式统一 36pt 黑色,题号和来源压缩到 24pt 灰色(次要信息不抢视觉焦点),章节标题 28–32pt,页边距仅 0.5cm,题目间距 0.6em,整体紧凑、无装饰元素。
核心脚本 scripts/convert_to_print.py 用 Playwright(Chromium headless)做渲染,按输入类型走两条路径:
- 完整 HTML(推荐):输入已包含
<html>、KaTeX 引用和打印样式时,脚本直接渲染整份文件,不做正则拆解重组,避免内容丢失;仅当缺 KaTeX 或打印样式时自动补全。 - 裸题目片段:缺少完整结构时,才用内置模板包装后再渲染。
渲染阶段使用 wait_until='networkidle' 并轮询 .katex 元素数量,超时 15 秒不中断;模板内置 robustKatex IIFE 二次扫描,兜底动态插入的公式。渲染后会统计已加载的题目数和 .katex 元素数写入日志,方便确认没有公式悄悄丢失。
公式语法支持标准 LaTeX:$...$ 行内公式、$$...$$ 块级公式。
适用边界与注意点
方案依赖 KaTeX CDN(jsdelivr)在线加载。断网或 CDN 不可达时,公式会以裸 LaTeX 出现在 PDF 里,可先跑 scripts/self_check.py 一次性检查 Python 依赖、Chromium、CDN 可达性和最小生成用例。
两个容易踩的坑:
- 不要在
.katex上设font-size: ... !important,会让三角符号(▲▼●)伪影出现在公式里;KaTeX 默认继承父元素字号已经足够大。 - 不等号必须写成
\lt/\gt或</>,裸写<会触发解析错误,而 KaTeX 配置了throwOnError: false,失败公式会静默保留原文,排查时看浏览器 F12 控制台的 ParseError 警告。
另外,如果 PDF 里字号没变大,检查输入 HTML 的 body 是否设置了 font-size: 36pt,或直接使用技能自带的完整模板。
使用场景
- 把电子错题集里的题目批量转成大字体纸质练习稿,用于热敏纸打印机打印。
- 教师将试卷电子版中的公式题渲染成适合低年级学生阅读的打印版,去除装饰元素节省墨水。
- 家长把网上下载的数学题库 HTML 片段转换为紧凑打印版,方便孩子在纸上直接做题。
- 编写数学题库时验证 LaTeX 公式能否正确渲染,防止打印后出现裸 LaTeX 源码。
适合人员
- 中小学数学教师,需要把电子题目快速排成适合打印的纸质练习稿
- 家长或教辅编辑,要把错题或题库转成大字体版本供孩子在热敏纸上反复做题
- 教育类工具开发者,希望在自己的流水线里集成公式渲染与打印排版能力