试题教师版生成器(Teacher Version Generator)
Overview
本 Skill 把「试题 / 答案 / 答题卡」三份材料加工成教师版:在对应横线处填入答案(红色字体),原样保留括号内提示词与原始排版,输出 .docx。核心难点(解析题号、定位横线、按题号对齐答案、标红、保留括号)由 scripts/make_teacher_version.py 确定性地完成;本文件负责判定类型、调度脚本、生成交付说明。
详细规则与边界见 references/rules.md,执行前若需核对请先读它。
触发条件(When to use)
满足以下任一即激活:
- 关键词:教师版、教师用卷、答案版、带答案版、生成试题教师版、生成答题卡教师版
- 某题型教师版(如「阅读理解教师版」「完形填空教师版」「语法填空教师版」)
- 填入要求:答案填入横线、答案红色、括号单词保留
- 交付要求:用 Word 交付、输出 docx
- 用户一次性给出多份材料(试题+答案、答题卡+答案、三份齐全)也视为激活
教师版类型判定(务必先判定再执行)
| 用户表述 | 输出 |
|---|---|
| 明确说「答题卡教师版」 | 答题卡版式,答案填在答题卡横线上 |
| 明确说「试题教师版」 | 试题版式,答案填在题干横线上 |
| 只说「生成教师版」未指明 | 默认输出【答题卡教师版】 |
| 指定某题型(如「只做语法填空」) | 仅处理该题型,其余保持原样不填 |
| 同时要试题版和答题卡版 | 分别生成两个 .docx 交付 |
输入材料
- 支持格式:Word(.docx / .doc) 为主;PDF 经转换或提取文本后也可(见下方「格式兜底」)。
- 用户可能给三份,也可能只给两份(如试题+答案,或答题卡+答案)。
- 若用户要求「答题卡教师版」却没给答题卡:先询问——是否以试题版式代替答题卡,或请其补充答题卡。
- 若缺失答案文件:必须询问补充,绝不猜测答案。
- 图片/截图暂不支持,遇到提示用户转成 Word 或 PDF。
执行流程
- 识别与读取:确认用户提供的文件为 Word/PDF,区分「试题 / 答案 / 答题卡」三类。
- 判定类型:按上表确定输出类型与目标题型范围(scope)。
- 准备答案文件:若答案是
.docx/.pdf,用脚本或提取工具转成纯文本;脚本读.txt/.docx答案均可。 - 运行脚本(核心,确定性处理):
bash python scripts/make_teacher_version.py \ --target 试题或答题卡.docx \ --answers 答案.txt或.docx \ --output 输出_教师版.docx \ --type answer-sheet|test \ --only "1,2,3" # 可选:仅处理指定题号(用于某题型/范围)
---type answer-sheet:答题卡版(默认,按题号+横线);test:试题版(题干内横线)。
---only:逗号分隔题号或21-35区间,用于「某题型教师版」。
- 脚本会自动:解析题号、定位横线(连续下划线或带下划线空白)、按题号建映射(支持偏移)、把横线替换为红色答案、原样保留(word)/(word)括号、保留字体/字号/页边距,并打印交付说明(匹配方式、偏移量、未匹配题号清单)。 - 自检(对照脚本输出与文档):
- 已填答案数量 == 已匹配题号数量;
- 所有填入答案均为红色(RGB 255,0,0);
- 所有括号内单词原样保留;
- 横线位置与原文件一致、排版未变;
- 未匹配题号已记录。 - 交付:输出
.docx(建议文件名原名_教师版.docx或原名_答题卡教师版.docx),并在对话中说明:生成了哪种教师版、覆盖题型、匹配方式(含题号偏移)、未匹配题号清单。
题号对齐规则
- 以试题/答题卡题号为主索引,答案按题号对应填入。
- 若答案题号与试题题号存在偏移(如答案从 21 起、试题从 1 起),脚本做偏移匹配并在交付说明中给出偏移量(如
答案题号 = 试题题号 + 20)。 - 某题号在答案中找不到 → 该处留空,并在清单中列出「未匹配到答案的题号」。
- 答案中存在试题没有的题号 → 忽略,不写入。
- 不按题干文字模糊匹配,避免英语题干重复导致错填。
答案填入规则(核心约束)
- 横线(如
______、____)为答案位;将对应答案填入横线处并标红,不要用"横线+上方写字"的方式。 - 括号
(word)/(word)为提示词,必须原样保留:不删、不替、不变色、不加粗、不移动。 - 仅答案文字为红色(RGB 255,0,0),其余文字颜色不变。
- 字号、字体、行距、页边距等排版一律保持原文件不变。
- 答案含多个词整体标红填入,不拆散。
异常与兜底
- 文件无法解析 / 格式不支持 → 提示用户转换格式,不强行处理。
- 答案缺失 → 询问补充,不猜测。
- 题号大量对不上(超 30%)→ 暂停填入,先报告对齐情况请用户确认。
- 用户要某题型但该题型不存在 → 告知并请其确认题型名称。
- 复杂表格/文本框导致横线定位失败 → 保留原结构,在对应位置以红色文字填答案,并在交付说明标注受影响题号。
边界(不可逾越)
- 不修改题目内容、不改编试题、不生成新题。
- 不翻译、不解释答案。
- 不改变原文件版式、字体、字号、页边距。
- 括号内单词一律保留,即使看起来像答案也不替换。
资源
scripts/make_teacher_version.py:确定性执行答案填入与标红的核心脚本(依赖python-docx,运行前python -m pip install python-docx)。references/rules.md:完整规则、示例与边界(本文件的原则性摘要)。