题目答案与解析
图像能力与依据
- 对图片、扫描 PDF 或含配图的文档,先执行
../paper-maker/SKILL.md的「视觉能力预检」。是否可用视觉流程以当前会话能否实际接收和理解图像为准,不可只按模型名称判断。 - DeepSeek V4 Flash Vision 是经济型视觉选择;其他确认支持图像输入的模型使用同一「原图 → 题块识别记录 → 示意图坐标 → 裁剪 → 人工复核」流程。
- 当前模型不能直接识图时,必须先提示:“当前模型无法直接识图,已切换 OCR 兜底;文字、公式和图像边界需人工核对。” OCR 内容、公式、题型判断和配图边界均标为「待核对」。
- 只有 paper-maker 中已复核的题干、选项、公式和
review_status: approved的配图可作为答案与解析的可靠依据;其余内容需保留「待核对」,不得据此臆造答案。
工作流程
- 确认输入文档并判断格式:
- paper-maker 格式 .tex:含
\questionitem/\questionitemfig宏 → 直接使用。 - paper-maker 格式 PDF(无 .tex):视为需归一化,按第 2 步处理。
- 非 paper-maker 格式:纯文字(.txt/.md/粘贴文本)、纯图片、文字+图片混合文档(.docx/.pdf 等)。
- paper-maker 格式 .tex:含
- 格式归一化:除 paper-maker 的 .tex 外,一律先按 paper-maker skill(
../paper-maker/SKILL.md)的流程把题目整理成试卷.tex+试卷.pdf(先做视觉能力预检,再识别题干、公式、经复核的配图并按题型归类;文档输入由 paper-maker 的scripts/extract_document.py提取为content.txt/pages.txt/images/),作为答案制作的依据;该文件作为交付物之一。 - 开始时向用户确认两个选项:
- 是否需要解析:是 → 选择和填空题也给出过程;否 → 仅解答题给出过程,客观题只列答案。
- 是否提供参考答案:提供 → 以用户答案为准(注明"答案由用户提供"),AI 只补写解析;不提供 → AI 逐题求解并标注「AI 生成,建议核对」。用户答案建议按「题号:答案」提供(如
1:A 2:B 3:5;多选连写如4:AB;多空如6:(1)1 (2)2);按题号匹配,匹配不到的题目标「答案待核对」。
- 运行
scripts/parse_paper_tex.py 试卷.tex得到结构化题目(题号、来源、题型、题干、选项、配图路径),编号与题型分组必须和试卷一一对应。配图存在裁剪记录时,先检查对应.crop.json为review_status: approved;否则标「待核对」,不以图中未确认信息推导答案。核对题型推断:解答题未写\workarea时会被误判为填空;不明确时与用户确认,或用--kinds纠正(如--kinds 5=解答)。 - 逐题求解/写解析:公式一律 LaTeX 数学模式;看不清或不确定的内容标「待核对」,严禁编造。解题后自查:重算关键步骤、核对量纲/单位,确认选择题答案与选项一一对应;仍不确定的保留「待核对」。
- 复制
assets/answer-template.tex生成答案.tex:每题复现题干(含原图)→「答案:」→(可选)「解析:」;解析必须紧跟该题或该题配图下方;题型连续分组,与试卷一致,排版要求见「排版与规则」。 - 编译:
which xelatex有则用 xelatex;否则用 Tectonic;两者都没有时按「无本地 LaTeX 的替代方案」处理(优先在线编译,HTML 兜底须人工核对)。 - 运行
scripts/render_check.py 答案.pdf逐页渲染核对,检查溢出、重叠、公式错误、配图裁剪;并检查编译日志没有Missing character警告;若出现(如来源里的全角罗马数字 Ⅰ),把对应字符替换为 ASCII 等价写法(如Ⅰ→I)后重新编译;发现问题则修改后重新编译并再次检查。 - 交付:做了格式归一化时,同时交付新整理的
试卷.tex/试卷.pdf与答案.tex/答案.pdf(同名、同一目录);输入本就是 paper-maker 格式时只交付答案文档。若目标用户没有本地 LaTeX,交付时附上在线编译说明(上传 .tex 与配图目录到 Overleaf 或 TeXPage 即可编译)。
无本地 LaTeX 的替代方案
- 在线编译/编辑(推荐,零安装):把
答案.tex与配图目录一起打包,上传到 Overleaf(overleaf.com)或 TeXPage(texpage.com,中文友好、支持 ctex)新建项目编译。模板自包含(宏定义都在 .tex 内),无需修改即可出 PDF,也可直接在浏览器里编辑答案与解析。 - 仅查看/打印:直接把已生成的 PDF 发给用户即可,不需要任何 LaTeX 环境。
- 需要 Word 编辑:若环境装有 pandoc,可执行
pandoc 答案.tex -o 答案.docx --resource-path=.生成可编辑 Word(公式转为 OMML,需人工核对);没有 pandoc 时建议用在线编辑器修改 LaTeX 后重新导出。 - 本机无 LaTeX 的兜底:可生成含 MathJax 的 HTML 用浏览器打开并打印为 PDF,但复杂 ctex 模板与自定义宏可能无法完整还原,必须人工核对后才能交付。
排版与规则
- 每题结构:题干在上(含原题配图),
答案:加粗,解析:加粗;解析必须紧跟该题或该题配图下方,不得与题目分开排版。 - 题目、配图、答案、解析尽量同页连续(模板命令内置
\nopagebreak控制);解析过长时允许在其内部跨页,但不要为了强行同页在题末留下大片空白。 - 配图默认宽度 85% 行宽、高度不超过 5cm,把页面空间留给解析;若配图过大把解析挤到下一页,应调小配图。
- 题间分隔线紧凑;题目与解析自然连续排布,不强制分页,充分利用页面空间。
- 解析中仅在文字引用「如图」等时再次插入对应配图,否则不重复配图。
- 多选题答案连写(如
AB);多空填空按空对应列出,如(1)1;(2)2。 - 解答题解析分步(编号或段落),公式、分数、上下标、希腊字母用数学模式;物理量与向量用
\boldsymbol{}。 - 使用模板命令:
\answeritem{题号}{来源}{题干}{答案}、\answeritemex{题号}{来源}{题干}{答案}{解析}、\answeritemfig{题号}{来源}{题干}{配图}{答案}、\answeritemfigex{题号}{来源}{题干}{配图}{答案}{解析}。
防幻觉红线
- AI 生成的答案统一标注「AI 生成,建议核对」;用户提供答案时优先采用并注明来源。
- 看不清、无法确定的内容标「待核对」或「来源未知」,严禁推测、补全、编造。
- 题干必须复现原文,不自行添加或修改原题信息。
资源
assets/answer-template.tex:答案文档 LaTeX 模板(与 gaokao-template 同风格)。scripts/parse_paper_tex.py:解析 paper-maker 试卷 .tex → 结构化 JSON,支持--kinds纠正题型。scripts/render_check.py:把 PDF 每页渲染成 PNG,交付前逐页核对(与 paper-maker 同脚本,改动时保持两边同步)。scripts/smoke_test.py:自检脚本——用内置样例生成并编译答案 .tex,检查编译日志与解析输出。- 文档提取与示意图裁剪统一使用 paper-maker 的
scripts/extract_document.py和scripts/tighten_crop.py;裁剪产物的.crop.json记录区域、参数和人工复核状态,answer-maker 不再自带提取/裁剪脚本。
运行环境
- 运行 Python 脚本时优先使用 Codex 桌面运行时自带的 Python(调用
load_workspace_dependencies获取路径),系统 Python 可能缺少 python-docx/pdfplumber/Pillow。