数学试卷制作 Latex 排版 skill
最近做了一个很有意思的小项目。
起点其实很简单:老师手里有很多觉得不错的数学样卷,但这些样卷大多是扫描 PDF、OCR PDF,能看、能打印,却不方便后续改题和重组。
一开始我们也走过弯路,先试过 Word 方向。后来很快发现,这条路很难同时兼顾两件事:
版式要像正规试卷
数学公式和图题还要稳
所以后面我们彻底换了思路,不再追求“转成 Word 草稿”,而是改成:
样卷图片 / PDF -> LaTeX 项目 -> 编译 PDF
这样用户不用碰 LaTeX,系统内部处理就行。
真正让这个项目走上正轨的,是后面确认了一件事:
正规考试卷不是普通 A4 文档。
它更接近:
A3 / 大8开
横版
每页左右两个半页
带装订线
一旦把这个骨架想对了,后面的分页、图题、题型分布才开始变得顺。
这个 skill 也不是从零发明出来的。
前面先整合了两个已有 skill:
latex-document:负责文档转 LaTeX、项目初始化、编译管线
latex:负责底层 LaTeX 结构、宏包、引擎和排版规范
在这两个能力的基础上,我们再补上“试卷专用规则层”,包括:
A3 / 大8开切换
横版双半页
装订线
选择题、填空题、解答题、图题的分块
自动分页规则
最后做出来的是一个新的 skill:
xsls-exam-skill
它现在已经能做到:
接收样卷图片、扫描 PDF、OCR PDF
先识别试卷骨架
再生成分页规划
最后输出 LaTeX 和 PDF
而且我们已经把第一份正式案例沉淀了进去,后面可以继续做回归验证和迭代。
对我来说,这个项目最有价值的地方,不是“排出了一份卷子”,而是把一件原本很依赖人工经验的事,慢慢整理成了一套可以复用的规则系统。
很多时候,真正值得做的,不是一次性把东西做出来,而是把它做成以后还能不断复用的能力。
配图建议
样卷原始 PDF 截图
第一版排版失败或偏差示意
A3 / 大8开横版双半页示意图
最终 skill 目录结构截图
成品 PDF 预览图
https://github.com/Jetson7817/xsls-exam-skill