LaTeX 中文复习资料生成器(通用版)
一键操作:任意课程资料 → 6-12 个 PDF(总结、练习、3-5 套试卷 + 答案)
输出文件
生成 2 + 2N 个文件:2 个基础文件 + 每套试卷对应一份试卷和一份答案。默认 N = 5(12 个文件:A-C 加上 D 提高卷和 E 挑战卷);小型课程(≤3 章)N = 2(6 个文件);若用户时间紧张或要求减少,则 N = 3(8 个文件)。
| 文件 | 用途 |
|---|---|
知识点汇总.tex | 每章的详细复习笔记 |
章节练习.tex | 带 inline 答案(放在 notebox 中)的练习题 |
模拟卷A.tex / _答案.tex | 基础——仅题目 / 含评分标准的解答 |
模拟卷B.tex / _答案.tex | 核心章节 |
模拟卷C.tex / _答案.tex | 跨章节综合 |
模拟卷D.tex / _答案.tex | 提高卷(默认在 5 套输出中) |
模拟卷E.tex / _答案.tex | 挑战卷(默认在 5 套输出中) |
N 套试卷的章节划分(最大化覆盖率,无重叠):
- A:前三分之一——基础部分
- B:中间三分之一——核心部分
- C:最后三分之一 + 跨章节综合
- D/E(可选):不引入新章节。以更高难度重新考查相同范围(见 §3.6)。
对于小型课程(≤3 章):回退为 2 套试卷(A:第 1-2 章,B:第 2-3 章,允许重叠)。
每套试卷使用第 0 步中提取的格式。当没有任何信息时,仅作为回退:20 道选择(×1)+ 10 道多选(×2)+ 10 道判断(×1)+ 5 道简答/计算(×10)= 100 分,120 分钟。确保前三套试卷的题目主题不重叠:出现在试卷 A 中的主题不应出现在 B 或 C 中。D/E 可以重新考察主题,但必须改变角度并提高认知层级。
关键规则:
模拟卷*.tex= 仅题目 + 草稿纸。绝不要在试卷文件中放入答案。模拟卷*_答案.tex= 包含评分细则的独立答案文件。- 使用与上表一致的中文文件名。对于纯英文课程,改用英文文件名:
chapter_summary.tex、chapter_exercises.tex、mock_exam_A...E.tex、mock_exam_A...E_answers.tex。
使用时机
- 用户要求生成“复习资料”、“考点总结”、“模拟卷”、“练习题”
- 用户提供课程资料(PDF/PPT/DOCX)并希望得到 PDF 输出
- 任何课程类型,任何语言混合(中文、英文、双语)
跳过时机:只有 1-2 页材料;用户只需要单个文件;纯英文且不含 CJK 字符。
第 0 步:提取考试信息(在编写任何内容之前)
最大的失败模式是生成了一个与真实考试不匹配的通用试卷。首先提取并记录下表;在总结的第一页和交付的 README 中放置一段“考试简介”。
| 项目 | 在哪里找到 | 示例 |
|---|---|---|
| 日期/时长 | 教学大纲、最后一堂课 | [日期]、[时长] |
| 题型与分值 | 录音、教学大纲 | [例如] 20 道选择×1 + 4 道简答×10 + 2 道论述×20 |
| 范围/排除项 | 老师的明确陈述 | 第 1-6 章;第 7 章排除 |
| 权威依据 | 老师的规则 | 教材/PPT/两者/往年试题 |
| 重点/权重 | 录音、反复出现的主题 | 第 3 章 = 核心;后续章节 = 仅基础知识 |
| 术语变体 | 教材与幻灯片对照 | 教材“术语 A” = 幻灯片“术语 B” |
| 允许的辅助工具 | 教学大纲 | 闭卷 |
规则:
- 绝不要默认采用 20 道选择 + 10 道多选 + 10 道判断 + 5 道论述的格式,除非没有其他信息。该格式是回退方案,不是默认方案。
- 如果考试没有选择题,就不要杜撰选择题。如果考试包含一道 30 分的案例分析题,就围绕案例分析来构建试卷。
- 如果存在录音,先将其转录成文字。最后一堂课几乎总是包含格式、范围和重点信息。
- 排除项也是考试内容的一部分:“第 7 章不在考试范围内”必须出现在第一页。
0.1 信息库存:不同课程可获取的信息量不同
不同课程能提供的信息量也不同。记录你处于哪个层级,并且绝不要将假设悄然提升为事实。
| 可用材料 | 可提取的内容 | 如何处理剩余部分 |
|---|---|---|
| 完整录音/转录稿 | 格式、范围、排除项、重点、术语 | 最佳情况——将其引用为考试简介 |
| 教学大纲 | 章节、权重、有时包括格式 | 根据大纲构建结构;重点仍未知 |
| 往年试题(过去 3-5 年) | 题型、风格、重复主题 | 从中推断格式;注明“根据往年试题推断” |
| 仅幻灯片 | 主题、术语、“重点/考点”标记 | 范围 = 幻灯片内容;考试可能基于 PPT——需询问 |
| 仅教材 | 章节结构和深度 | 假设全面覆盖,无格式信息 |
| 无任何材料 | — | 询问用户(格式和范围是最值得问的两个问题);如果无法询问,在第一页注明假设 |
权威来源规则:记录考试遵循的是 教材/PPT/两者/往年试题。如果未知,在生成前询问。不要假设教材获胜——许多课程是考察幻灯片内容的。
0.2 术语处理取决于权威来源
| 权威来源 | 使用哪个术语 |
|---|---|
| 教材 | 以教材术语为主,首次出现时在括号中标明幻灯片术语 |
| PPT | 以幻灯片术语为主,首次出现时在括号中标明教材术语 |
| 两者/混合 | 使用考试题干或往年试题中出现的术语;在“术语对照”框中列出两者 |
| 未知 | 使用教师材料中出现频率最高的术语,并标记 |
始终添加一行:“两种表述均有效”仅当老师确实如此说过;否则不要捏造宽容性。
0.3 生成前先询问(格式 + 个性化)
绝不要在假设的基础上开始编写。如果材料没有回答以下问题,一次性(而非逐一)询问用户。
必须知道(阻塞性):
- 题型与分值:选择/简答/计算/证明/画图/编程/案例各几道、多少分、多长时间。
- 考试范围与排除章节。
- 命题依据:教材 / PPT / 两者 / 往年题。
个性化(询问一次,然后应用): 4. 还剩几天、每天能投入几小时(决定资料厚度与套数)。 5. 哪几章最弱(加权:多出题、多解释、多对比)。 6. 目标分数(及格线 / 中上 / 冲高分 → 决定深度与是否加挑战题)。 7. 想要几套卷(默认 5:A–C + D 提高 + E 挑战;时间紧可只要 3 套,或 2 套)。 8. 答案要多细(只给答案 / 给步骤 / 给评分点 + 易错点)。 9. 是否需要 OCR 扫描教材、是否需要双语。
如果用户不回答则使用的默认值(打印在第一页,以便用户更正):
- 默认 5 套(A–C + D 提高 + E 挑战);时间紧才降到 3 套;答案给评分点 + 关键步骤;不 OCR;中文。
- 范围 = 所提供材料覆盖的章节;命题依据 = 材料中出现最多的那套,并标注“未确认”。
如何询问:粘贴一张紧凑卡片(模板见 references/exam-blueprint.md §1),一次最多 6 个问题。如果用户说“你看着办”,则陈述默认值并继续。
第 1 步:阅读所有材料
PDF — 始终先使用 pdftotext(Read 工具在许多未加密的 PDF 上会错误报告“受密码保护”):
pdftotext -layout "file.pdf" - 2>/dev/null | head -N # N = 所需页数
# 对于特定页面:pdftotext -layout -f 1 -l 30 "file.pdf" -
仅当 pdftotext 输出乱码时:尝试使用 Read 作为回退。如果两者都失败,使用 python -c "import PyPDF2; ..." 尝试提取。
DOCX/PPTX — Python zipfile + xml.etree.ElementTree(模板见参考)。始终使用 glob.glob() 以避免 Windows 中文路径错误。
扫描版教材(无文本层) — OCR 流程:
- 检查:
pdftotext -f 1 -l 3 book.pdf -无输出 → 为扫描版 PDF。 - 使用 GPU OCR(通过
rapidocr_onnxruntime+onnxruntime-gpu,use_cuda: true使用 PaddleOCR 模型):在 RTX 4070 上,200 dpi 下约 1.5 秒/页;CPU 约 30 秒/页,因此 GPU 很重要。 - 从扫描版目录(OCR 前 ~10 页)或 PDF 书签获取章节页码范围:
PDF 页码 = 印刷页码 + 偏移量。 - 逐章进行 OCR,每章一个
chN.txt文件,每页以【第 N 页】为前缀,便于后续引用。 - 跳过老师明确排除的章节——不要浪费 GPU 时间。
- 告知用户 OCR 错误率(约 3%),并且数字/标点符号需要对照纸质书检查。
课堂录音:首先转录(whisper / funasr / 提供的转录稿)。最后一堂课通常会说明考试格式、范围、排除项和重点——这是第 0 步的输入,而非可选的背景信息。
读取后,提取并记录:
- 章节数、结构,哪些章节有/没有材料
- 课程名称、讲师、教材、考试格式、评分权重(来自教学大纲/第 0 章)
- 讲师的强调内容:“重点”/“考点”标签、重复主题、往年试题主题列表
- 语言:全中文 / 全英文 / 双语 → 决定输出语言
- 用户提供的任何优先级列表或限制条件(目标分数、学习时间)
第 2 步:检测课程类型
材料中的信号:
公式、推导、“证明”、希腊字母、需要计算的数字 → 定量类(数学/物理/投资/金融)
代码、架构、电路、协议、“设计/实现” → 工程类
事件、日期、概念、政策、意识形态、法律条文 → 定性类(人文/社会科学)
官方文件、“精神/意义/新时代”、价值判断、时政 → 思政类(思政/政治理论)
混合公式 + 案例(管理、金融、法律) → 混合类
模板:
- 定量类:背景 → 核心模型 → 假设 → 推导 → 性质 → 验证 → 常见错误
- 工程类:原理 → 架构/设计 → 关键机制 → 公式/计算 → 示例 → 权衡折衷 → 常见错误
- 定性类(人文):背景 → 核心概念 → 框架 → 关键论点 → 比较 → 意义 → 易混淆点
- 思政类:背景与定位 → 核心概念/原文表述 → 逻辑框架(为什么/是什么/怎么做)→ 联系实际 → 常见表述错误
- 混合类(管理/法律/医学):概念 → 框架 → 案例应用 → 决策规则 → 常见错误
选择最合适的模板。对于混合课程,可逐章变化。参见 references/course-types.md 中的各类别专项指南(评分逻辑、答题空间、致命错误)。
2.1 试卷设计因课程类型而异
适用于管理的试卷会不适用于思政和工程类课程。在编写题目之前设定好这些参数。
| 课程类型 | 典型题型 | 答题空间 | 评分逻辑 | 致命错误 |
|---|---|---|---|---|
| 工程类 | 选择、填空、简答、计算、画图、设计、编程 | 计算 8--12 cm;画图半页(给坐标/网格);代码 20--30 行 | 步骤分:公式→代入→结果→单位;代码看正确性/边界/复杂度 | 只写结果无过程;单位/量纲错;代码只过样例 |
| 人文类 | 名词解释、简答、材料分析、论述 | 名词 4 cm;简答 8 cm;论述 1.5 页 | 观点 + 论据 + 结构 + 表达;允许多元答案但要论证 | 只罗列不论证;无文本/史料证据;时代错置 |
| 思政类 | 单选、多选、判断、简答、材料分析、论述 | 简答 8--10 cm;材料分析 12--15 cm;论述整页 | 踩点给分,关键词必须是官方表述;多选按“少选得部分分、错选不得分” | 口语化、自由发挥、引用错、观点偏差;用旧表述 |
| 定量类 | 选择、填空、计算、证明 | 计算 8--10 cm;证明 10--12 cm | 步骤分 + 结果分;有效数字/近似条件 | 跳步;条件写错;结论与假设不符 |
| 混合类(管理/法律/医学) | 选择、简答、案例分析、论述 | 每小问 3--4 cm;论述整页 | 框架 + 案例事实 + 结论;法学按“结论—依据—涵摄” | 只背理论不结合案例;结论无依据 |
类型特定规则:
- 工程类:在试卷前部提供公式表/常数表;答案要求带单位;为图表留网格空间;说明是否允许使用计算器。
- 人文类:答案文件给出“要点 + 可接受的其他观点”,而非单一标准答案;如果课程要求,引用原始文本。
- 思政类:每个答案必须紧扣教材/官方文件措辞;添加“表述对照”框(口语说法 → 规范说法);绝不要捏造政策引文;检查最新的 12 个月内会议精神/时政;对任何不确定的引文标记为“以教材原文为准”。
- 定量类:说明假设和显著性水平;答案展示完整的推导链。
第 3 步:使用优先级权重规划内容
章节优先级逻辑(使用第一个适用的规则): 0. 用户指出某个章节是薄弱环节(“我第 4 章最虚”)→ 赋予最高权重:更多题目、更多解释、更多比较。
- 用户明确说明“第 X 章最重要”或提供了优先级主题列表 → 赋予高权重
- 教师材料将主题标记为“重点”/“考点” → 据实赋予权重
- 往年试题集中在某些章节 → 据实赋予权重
- 默认:所有章节等权重
在第 0.3 步之后应用个性化:
- 时间预算:≤3 天 → 总结 + 1-2 套;≥1 周 → 总结 + 练习 + 3-5 套。
- 目标分数:及格 → 要点和基础;高分 → 增加比较、边缘案例、挑战题。
- 答案详细程度:“仅要点”/“步骤”/“评分细则 + 常见错误”(默认:评分细则 + 关键步骤)。
- 薄弱章节:每个薄弱章节增加一个工作示例和一个额外题目。
每章最低要求:
- 总结:150+ 行,5+ 小节,1+ 个比较表/时间线,[CORE]/[KEY]/[NOTE] 标记
- 练习:10+ 道题(4-5 道单选,2-3 道多选,2-3 道填空,2 道简答,1 道论述)。答案放在
notebox中。 - 试卷:使用第 0 步的格式和 §2.1 中的类型特定表格(20+10+10+5 / 100 分 / 120 分钟的结构仅为回退方案)
- 试卷答案:独立文件,包含每题明确的分数分配的评分细则
缺失章节:从其他材料重构。如果没有任何可用信息,在输出中标记,并就该主题使用标准教材知识。
输出语言:与考试语言匹配。如果是英文考试 → 英文题目 + 双语解释。如果是中文考试 → 全中文。由源材料决定。
术语对齐:应用 §0.2 中的表格——主要术语取决于考试遵循的是教材、PPT、两者还是往年试题。首次出现时将另一个名称放在括号中,并且绝不要悄悄混用。
第 3.5 步:设计试卷(答题空间、案例、分页)
3.5.1 答题空间(强制性)
没有书写空间的模拟考试只是一份题单,而不是考试。每个需要书写的题目后面都必须跟有与预期答案大小相适应的空白空间。
| 题型 | 空白空间 | LaTeX |
|---|---|---|
| 单选 / 判断 | 无(选项 inline) | — |
| 填空 | 每空 0.8--1.2 cm | \vspace{1cm} |
| 名词解释 | 3 cm | \vspace{3cm} |
| 简答 (10 分) | 3--4 cm | \vspace{3.2cm} |
| 计算 | 8--12 cm | \vspace{10cm} |
| 证明 / 推导 | 10--12 cm | \vspace{11cm} |
| 画图 / 设计 | 半页纸,带网格或边框 | \vspace{12cm} + 网格 |
| 编程 | 20--30 行 + 复杂度说明 | \vspace{14cm} |
| 论述 (25 分) | 9--12 cm,或一整页 | \vspace{10cm} |
| 案例分析 (30 分,3 小问) | 每个小题后 3--4 cm | \vspace{3.2cm} ×3 |
规则:
- 将
\vspace{...}放在其所属的小问题之后,绝不要放在该段所有问题之后。 - 对于有多小题的题目,在每个小题之间留空,而不是只在末尾。
- 如果题目要求画图或绘制图表(工程、经济、管理问卷),渲染或将坐标网格作为图片包含在内。
- 答题空间规则适用于所有试卷(模拟卷 A、B、C、D、E)。无例外。