# Answer Maker

> 制作题目的答案与解析文档，交付与 paper-maker 同风格的 .tex 与 PDF。输入可以是纯文字、纯图片、文字+图片的混合文档，也可以是 paper-maker 生成的试卷 .tex/PDF；若输入格式与 paper-maker 生成格式不一致，先调用 paper-maker 把题目整理成标准试卷格式，并在输出时附上新整理的题目文档。当用户说"做答案"、"制作答案"、"生成答案解析"、"题目答案"、"整理答案解析"或要求给题目配答案/解析时使用。

- Skill: `alizeisnotalice/answer-maker` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add alizeisnotalice/answer-maker`
- Raw SKILL.md: https://api.skillmd.com/api/skills/alizeisnotalice/answer-maker/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: alizeisnotalice (https://skillmd.com/u/alizeisnotalice)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/alizeisnotalice/answer-maker

---


# 题目答案与解析

## 图像能力与依据

- 对图片、扫描 PDF 或含配图的文档，先执行 `../paper-maker/SKILL.md` 的「视觉能力预检」。是否可用视觉流程以当前会话能否实际接收和理解图像为准，不可只按模型名称判断。
- DeepSeek V4 Flash Vision 是经济型视觉选择；其他确认支持图像输入的模型使用同一「原图 → 题块识别记录 → 示意图坐标 → 裁剪 → 人工复核」流程。
- 当前模型不能直接识图时，必须先提示：**“当前模型无法直接识图，已切换 OCR 兜底；文字、公式和图像边界需人工核对。”** OCR 内容、公式、题型判断和配图边界均标为「待核对」。
- 只有 paper-maker 中已复核的题干、选项、公式和 `review_status: approved` 的配图可作为答案与解析的可靠依据；其余内容需保留「待核对」，不得据此臆造答案。

## 工作流程

1. 确认输入文档并判断格式：
   - **paper-maker 格式 .tex**：含 `\questionitem` / `\questionitemfig` 宏 → 直接使用。
   - **paper-maker 格式 PDF（无 .tex）**：视为需归一化，按第 2 步处理。
   - **非 paper-maker 格式**：纯文字（.txt/.md/粘贴文本）、纯图片、文字+图片混合文档（.docx/.pdf 等）。
2. **格式归一化**：除 paper-maker 的 .tex 外，一律先按 paper-maker skill（`../paper-maker/SKILL.md`）的流程把题目整理成 `试卷.tex` + `试卷.pdf`（先做视觉能力预检，再识别题干、公式、经复核的配图并按题型归类；文档输入由 paper-maker 的 `scripts/extract_document.py` 提取为 `content.txt`/`pages.txt`/`images/`），作为答案制作的依据；该文件作为交付物之一。
3. 开始时向用户确认两个选项：
   - 是否需要解析：是 → 选择和填空题也给出过程；否 → 仅解答题给出过程，客观题只列答案。
   - 是否提供参考答案：提供 → 以用户答案为准（注明"答案由用户提供"），AI 只补写解析；不提供 → AI 逐题求解并标注「AI 生成，建议核对」。用户答案建议按「题号:答案」提供（如 `1:A 2:B 3:5`；多选连写如 `4:AB`；多空如 `6:(1)1 (2)2`）；按题号匹配，匹配不到的题目标「答案待核对」。
4. 运行 `scripts/parse_paper_tex.py 试卷.tex` 得到结构化题目（题号、来源、题型、题干、选项、配图路径），编号与题型分组必须和试卷一一对应。配图存在裁剪记录时，先检查对应 `.crop.json` 为 `review_status: approved`；否则标「待核对」，不以图中未确认信息推导答案。**核对题型推断**：解答题未写 `\workarea` 时会被误判为填空；不明确时与用户确认，或用 `--kinds` 纠正（如 `--kinds 5=解答`）。
5. 逐题求解/写解析：公式一律 LaTeX 数学模式；看不清或不确定的内容标「待核对」，严禁编造。**解题后自查**：重算关键步骤、核对量纲/单位，确认选择题答案与选项一一对应；仍不确定的保留「待核对」。
6. 复制 `assets/answer-template.tex` 生成 `答案.tex`：每题复现题干（含原图）→「答案：」→（可选）「解析：」；解析必须紧跟该题或该题配图下方；题型连续分组，与试卷一致，排版要求见「排版与规则」。
7. 编译：`which xelatex` 有则用 xelatex；否则用 Tectonic；两者都没有时按「无本地 LaTeX 的替代方案」处理（优先在线编译，HTML 兜底须人工核对）。
8. 运行 `scripts/render_check.py 答案.pdf` 逐页渲染核对，检查溢出、重叠、公式错误、配图裁剪；并检查编译日志没有 `Missing character` 警告；若出现（如来源里的全角罗马数字 Ⅰ），把对应字符替换为 ASCII 等价写法（如 `Ⅰ` → `I`）后重新编译；发现问题则修改后重新编译并再次检查。
9. 交付：做了格式归一化时，同时交付新整理的 `试卷.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。

