Back to skills
SKILL.md
Paper To Slides
ASecurity把一篇 PDF 论文拆解成组会/学术汇报用的 PPT 初稿:解析元信息与章节、识别论文类型、按学术汇报六段结构分配页数、处理图表、批量写演讲者备注。当教师说「把这篇论文做成汇报 PPT」「组会要讲这篇」「论文转 PPT」「学术汇报怎么讲」「帮我把这篇 paper 做成 slides」「下周读书会我讲这篇」时使用。典型场景是文献派工后学生汇报稿的成型、课题组读书会、会议报告准备、答辩前的方法复述。产出是初稿,所有数据与结论必须逐字回核 PDF 原文。 Triggers: 把这篇论文做成汇报 PPT、组会要讲这篇、论文转 PPT、学术汇报怎么讲、文献汇报、读书会 PPT、paper 做成 slides、组会汇报稿、论文解读 PPT、会议报告 PPT、这篇文献让学生讲、把 PDF 做成 slides。
- 11 stars
- 0 votes
- 0 copies
- 0 views
- Added October 20, 2026
Security analysis
96/100- Installs packages at runtime which could introduce malicious dependencies
npx -y skills add EtherealMingo/university-teacher-skills --skill paper-to-slides --agent claude-codeAre you the author of Paper To Slides?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/etherealmingo-paper-to-slides)---
name: paper-to-slides
description: "把一篇 PDF 论文拆解成组会/学术汇报用的 PPT 初稿:解析元信息与章节、识别论文类型、按学术汇报六段结构分配页数、处理图表、批量写演讲者备注。当教师说「把这篇论文做成汇报 PPT」「组会要讲这篇」「论文转 PPT」「学术汇报怎么讲」「帮我把这篇 paper 做成 slides」「下周读书会我讲这篇」时使用。典型场景是文献派工后学生汇报稿的成型、课题组读书会、会议报告准备、答辩前的方法复述。产出是初稿,所有数据与结论必须逐字回核 PDF 原文。 Triggers: 把这篇论文做成汇报 PPT、组会要讲这篇、论文转 PPT、学术汇报怎么讲、文献汇报、读书会 PPT、paper 做成 slides、组会汇报稿、论文解读 PPT、会议报告 PPT、这篇文献让学生讲、把 PDF 做成 slides。"
---
# 论文 → 组会 / 学术汇报 PPT
> **Goal**:把一篇别人写的 PDF 论文,变成一份**结构合规、数据可溯源、备注齐全**的学术汇报
> PPT 初稿。AI 负责解析、归类、排页、画图、写备注;**论文里的每一个数字和每一句结论都必须
> 逐字回到 PDF 原文**。这是初稿,讲之前必须自己讲一遍。
## 何时使用
- 「把这篇论文做成汇报 PPT」「论文转 PPT」「paper 做成 slides」
- 「组会要讲这篇」「读书会我讲这篇文献」「这篇文献让学生讲」
- 「学术汇报怎么讲」「会议报告 PPT 怎么排」
- 导师派工学生做文献汇报(承接 `lab-meeting` 的「文献派工」)
- 答辩/中期前需要快速复述自己或他人的方法框架
**不适用**:非学术 PDF(产品说明书、政府报告、合同、财报);教师自己的原创成果宣讲
(那是 `lecture-slides` 或竞赛通道);只想要一页摘要(直接用 `skills/paper-analyst`
的 `quick` 模式,不必出 PPT)。
## 底座(禁止重写)
| 路径 | 用途 | 本机实测状态 |
|---|---|---|
| `skills/paper-analyst/SKILL.md` | **主底座**:五种分析模式、降级输入回退策略 | 已读,模式定义直接复用 |
| `skills/paper-analyst/references/output-schema.md` | 解析结果的字段规范(7 节 + quick 模式) | 已读,字段与缺失标记照用 |
| `skills/paper-analyst/references/paper-type-rubric.md` | 论文类型判定规则(6 类 + 冲突消解) | 已读,类型标签与证据要求照用 |
| `skills/paper-analyst/references/presentation-schema.md` | 幻灯片计划 JSON 结构 + 时长→页数对照 | 已读,`slides.json` 以此为准 |
| `skills/paper-analyst/references/presentation-style-guide.md` | 压缩规则:每页 ≤4 bullets、数字不四舍五入、受众压缩档 | 已读,与 pptx_kit 的 overdense 一起用 |
| `skills/paper-analyst/references/quality-checklist.md` | **反幻觉清单**,交付前逐条过 | 已读,本 skill 红线直接引用 |
| `skills/paper-analyst/references/pptx-handoff.md` | 上游的 handoff 约定(面向自然语言 pptx skill) | 已读;**本包改为走 office-layer 的 JSON 通道**,只保留其「交接前剥掉 `[原文声明]` 标签」「不把备注塞进 PPT 正文」两条纪律 |
| `skills/paper-analyst/scripts/extract_pdf_meta.py` | PDF 元信息 + 扫描版判定 → JSON | **已实测跑通**(依赖 pypdf,venv 内已有) |
| `skills/paper-analyst/scripts/extract_pdf_figures.py` | 逐页导出 PDF 内嵌位图 + `figures/index.json` | **本机不可直接运行**:需 pymupdf,venv 未装且联网安装超时。见阶段一「路径 A/B/C」 |
| `skills/slides-polish/SKILL.md` | 可选视觉打磨:HTML+内联 SVG → headless Chrome → PNG → 嵌回 pptx | 已读;Chrome(`/Applications/Google Chrome.app/...`)与 Keynote AppleScript(实测版本 15.3.1)本机可用 |
| `skills/office-layer/SKILL.md` | **文件产出唯一通道**:pptx_kit build/notes/inspect | 已读,三个子命令均已实测 |
| `skills/empirical-research/lit-review/SKILL.md` | 综述型汇报时:多篇文献管理与综述式 deck 的组织方式 | 已读,仅在综述型论文时按需加载 |
| `skills/empirical-research/econ-audit/SKILL.md` | 实证型论文:识别方法与识别策略的可攻击点,用于生成「可能被追问」 | 已读,用于阶段六备注 |
| `skills/empirical-research/data-dictionary/SKILL.md` | 实证型论文:变量口径与样本说明,用于讲清数据段 | 已读,仅在论文有数据附录时用 |
| `THIRD_PARTY_NOTICES.md` | 上游溯源与许可证合规 | 已读 |
**环境**(每个命令块都用这个绝对路径,避免 cwd 不同导致找不到 venv):
```bash
SKILLS="/Users/mingo/Documents/kimi/Workspaces/skills"
PY="$SKILLS/skills/office-layer/.venv/bin/python"
ANALYST="$SKILLS/skills/paper-analyst"
KIT="$SKILLS/skills/office-layer/scripts/pptx_kit.py"
mkdir -p /tmp/mplcache && export MPLCONFIGDIR=/tmp/mplcache # 受限环境下 matplotlib 必需
```
## 前置信息收集(intake,一次性问完)
按 `CONVENTIONS.md` §4,把下面这些**合并成一次提问**,不要边做边问:
1. **论文文件**(PDF 路径;有几篇)
2. **场合与时长**:组会读书报告 / 开题前的文献汇报 / 会议分会场 / 课堂文献导读;
讲多长时间(10 / 20 / 30 分钟)
3. **听众层次**:本课题组(同行,可上公式)/ 跨方向听众(要讲直觉)/ 本科生(只讲结论与意义)
4. **汇报人**:教师本人讲,还是学生讲(决定备注的详细程度)
5. **要点侧重**:导师指定的重点(方法 / 结果 / 复现实验设计)
6. **是否有模板**:实验室统一 PPT 模板、学校模板(有则套用配色与版式)
7. **是否需要重绘图表**:论文图是否能直接截取(版权与清晰度约束见阶段四)
**信息不全时用安全默认值继续**,并在交付说明里写清用了哪些默认值:
| 未知项 | 安全默认值 |
|---|---|
| 时长 | 20 分钟(对应 9–10 页正文) |
| 听众 | 本课题组(`audience: lab`,可上关键公式) |
| 汇报人 | 学生(备注写到"照着念"的细度) |
| 模板 | 无模板,用 office-layer 默认 16:9 版式 |
| 侧重 | 按论文类型自动分配(见阶段二) |
**缺什么也不能缺 PDF**。没有 PDF 就不要往下走 —— 论文内容一律不得凭记忆或从网上"回忆"补全。
## 工作流
### 阶段一 · PDF 解析与质量判级
**输入**:PDF 文件路径
**动作**:取元信息 → 逐页取正文 → 判定质量等级 → 提取图表
**输出**:`论文解析.md`(含质量判级 Header)+ `figures/` + `figures/index.json`
**退出条件**:元信息表 7 个字段全部有值(真值或显式 `[未明确给出]`),且质量等级已写入 Header
**1)元信息与扫描版判定**(实测可用)
```bash
$PY "$ANALYST/scripts/extract_pdf_meta.py" 论文.pdf
```
输出 JSON:`title / authors / subject / keywords / creator / pages / text_extractable / is_scanned`。
> **实测提醒(重要)**:这个脚本**只读 PDF 内嵌的元数据字典**(`/Title` `/Author`…),
> **不解析首页正文**。实测一个首页明明印着标题和作者的 PDF,它也返回
> `"title": null, "authors": null`。所以 **`null` ≠ 论文没有标题**,必须另取首页文本人工抄录,
> 并按 `output-schema.md` 记录来源(标 `[原文声明]` + 页码)。
> 另外 `is_scanned` 的判据是"前 3 页可抽取文本 < 100 字符",页眉页脚凑够 100 字就可能误判为
> 非扫描版 —— 判级要人工看一眼首页,不要只信这个布尔值。
**2)逐页取正文,人工核对章节边界**
```bash
$PY - <<'EOF'
from pypdf import PdfReader
r = PdfReader("论文.pdf")
for i, p in enumerate(r.pages, 1):
t = (p.extract_text() or "").strip()
print(f"\n===== p{i} ({len(t)} chars) =====")
print(t[:1500])
EOF
```
> **实测的双栏陷阱**:pypdf 的 `extract_text()` 不识别分栏。用一个双栏样例测试,输出是
> `LEFT-0 … RIGHT-0 …` / `LEFT-1 … RIGHT-1 …` —— 左右两栏被**逐行交错**拼接,
> 直接当正文读会串行、句子在中间被截断。
> 因此:抽出的文本若出现"一句话读到一半接上另一栏内容",**立即判为降级处理**,
> 改用按页高分辨率渲染 + 人工分栏阅读,并把章节边界交教师确认,不要猜。
**3)图表提取 —— 三条路径**
```bash
# 路径 A(paper-analyst 自带脚本,需要 pymupdf)
$PY -m pip install pymupdf # 本机实测:联网安装超时未完成,缺这一步会直接报错
$PY "$ANALYST/scripts/extract_pdf_figures.py" 论文.pdf
```
实测状态:本机 office-layer venv **未装 pymupdf**,直接调用在 `import fitz` 处
`ModuleNotFoundError`、退出码 1。该脚本只做一件事 —— 把 PDF 里**内嵌的栅格图片对象**
逐页导出为 `figures/fig_p{页码}_{序号}.png` 并写 `figures/index.json`(字段 `name/path/page`)。
**矢量图(多数折线图、散点图、架构图)不是图片对象,导不出来**,必须走路径 B。
```bash
# 路径 B(本机已验证,无需额外依赖)——渲染整页再精确裁切
mkdir -p pages figures
# B1 先按页拆 PDF。sips 对多页 PDF 只输出第一页(实测确认),所以必须先拆
$PY - <<'EOF'
from pypdf import PdfReader, PdfWriter
r = PdfReader("论文.pdf")
for i, p in enumerate(r.pages, 1):
w = PdfWriter(); w.add_page(p)
with open(f"pages/p{i}.pdf", "wb") as f:
w.write(f)
EOF
# B2 每页渲染成高清 PNG(--resampleWidth 2550 ≈ A4 300dpi,实测输出 2550×3300)
for f in pages/p*.pdf; do
sips -s format png --resampleWidth 2550 "$f" --out "pages/$(basename "$f" .pdf).png" >/dev/null
done
# B3 精确裁切图区。PIL 裁切是像素级精确的
$PY - <<'EOF'
from PIL import Image
im = Image.open("pages/p3.png")
print("整页尺寸:", im.size)
im.crop((180, 260, 2380, 1500)).save("figures/fig3_architecture.png") # (左, 上, 右, 下)
EOF
```
> **别用 `sips --cropOffset`**:实测语义不可靠(对左上角已知黑块的测试图,`Y=0 X=0` 却裁出全白)。
> 要精确定位就用 `sips` 只负责"渲染整页",`PIL.crop` 只负责"裁切"。
> 裁切坐标怎么定:按"目测比例 × 整页像素"给初值,输出后**必须由教师肉眼确认**再进 PPT
> —— 本机当前模型不支持读图(`read_image` 会报 model does not declare image input),
> AI 无法自验裁切结果,这一条是硬约束。
```bash
# 路径 C(内嵌栅格图:电镜照片、软件截图、地图)
$PY - <<'EOF'
from pypdf import PdfReader
r = PdfReader("论文.pdf")
for i, p in enumerate(r.pages, 1):
for j, im in enumerate(p.images, 1):
open(f"figures/embedded_p{i}_{j}_{im.name}", "wb").write(im.data)
print("page", i, im.name, len(im.data), "bytes")
EOF
```
实测:对含位图的 PDF 能正确导出(抽出一张 440×441 的 PNG);对纯矢量 PDF 返回 0 张 ——
**这是正常现象,不是脚本坏了**。
**4)PDF 提取的常见失败与应对**
| 现象 | 原因 | 应对 |
|---|---|---|
| `extract_pdf_meta.py` 返回 `title/authors` 全 null | PDF 元数据字典为空(LaTeX 默认常不写 `/Title`),脚本不解析首页正文 | 不算失败。另取首页文本人工抄录题名/作者/期刊/年份,标 `[原文声明]` + 页码 |
| `text_extractable: false` / `is_scanned: true` | 扫描版没有文字层 | 判**严重降级**:不许 OCR 猜内容。请教师换带文字层的版本(出版社官网 / arXiv 版 / 图书馆数据库版),或先用系统预览或 OCR 工具出文字层再回来。本机无 `tesseract`、`ocrmypdf`、`pdfimages`、`pdftoppm`(实测均不存在),`qlmanage` 在沙箱下报 `sandbox initialization failed`,这些路都不可依赖 |
| 正文左右栏交错、句子中途截断 | 双栏排版(实测已复现) | 判**降级处理**;按页渲染后人工分栏阅读;章节边界交教师确认 |
| 公式变成乱码 / 整段缺失 | pypdf 还原不了数学排版(公式是特殊字体 + 符号定位) | 公式不靠文本层:从渲染页裁切公式图,或按原样重排。**绝不凭记忆重写公式** |
| 表格文字粘连成一串 | 表格无文字层或跨单元格合并 | 数据以渲染图裁切为准;每个数值填入 PPT 前与图逐字核对 |
| `figures/` 导出 0 张 | PDF 全是矢量图,没有内嵌位图对象 | 走路径 B 渲染裁切 |
| 页眉、页脚、行号、投稿日期混进正文 | 抽取不过滤版面元素 | 当噪音剔除,不得当章节内容 |
| 参考文献串进正文 | 抽取按坐标流式输出 | 按 `References` / `Bibliography` 关键词定位截断 |
**降级协议**(照 `quality-checklist.md`):
Header 行必须写 `PDF 质量:[良好 | 降级处理-具体原因 | 严重降级-具体原因]`;
不可读的段落写 `[该部分文本不可读,已跳过]`;**不得为填满页面而脑补**。
### 阶段二 · 论文类型识别与讲述重点
**输入**:`论文解析.md`
**动作**:读 `paper-type-rubric.md` 判类型 → 输出类型标签 + 2–3 条证据 → 定讲述重点
**输出**:类型结论 + 讲述重点清单(写进 `论文解析.md` 顶部)
**退出条件**:类型标签写明、证据引用到论文具体位置(摘要原话 / 章节 / 图表)
先读 `skills/paper-analyst/references/paper-type-rubric.md` 判类型,
**不要默认这是 AI 论文**。该 rubric 的实验口径是 6 类:AI/深度学习、传统算法/理论、
系统/工程、实验/实证、综述/Survey、其他/跨学科;教师日常说的"综述型/方法创新型/实证型/
理论型/案例型"是另一套口径,按下表映射,**映射关系要写进交付说明**(口径不同,别混着说):
| 教师口径 | 映射到 rubric | 该讲什么 | 可略过什么 |
|---|---|---|---|
| **综述型** | 综述/Survey(标题含 survey/review/综述,系统梳理 20+ 篇,无原创实验) | 检索范围与纳入排除标准;分类框架(这是全文骨架);各大类的代表工作与演进脉络;作者指出的**开放问题**;对领域的判断 | 单篇工作的实现细节;单个数据集的具体数字;公式推导 |
| **方法创新型** | AI/深度学习 或 传统算法/理论 或 系统/工程(按方法载体归入其一) | 问题定义与输入输出;**与最接近工作的差异点**;方法框图(必须有一页讲清数据流);关键模块为什么这样设计;消融实验证明每个模块的必要性 | 教科书级的背景铺垫;基线的实现细节;与本文创新无关的工程 trick |
| **实证型** | 实验/实证(有人类被试/调查/统计检验/p 值/置信区间/伦理审批) | 研究假设;样本与数据来源、时间跨度;变量定义与度量口径;识别策略 / 计量模型;**因果还是相关**;稳健性检验与异质性分析 | 大段文献综述;模型的数学推导细节(除非是方法论文);与主结论无关的描述统计 |
| **理论型** | 传统算法/理论(定理-引理-证明结构、复杂度分析、无神经网络) | 问题形式化;核心定义;主定理及其**直观含义**(先说人话再上符号);证明思路与关键引理;成立条件与反例边界 | 冗长的证明细节(放备用页);算例的全部手算过程;与其他理论的泛泛比较 |
| **案例型** | rubric 无对应 → 归 **其他/跨学科** 并注明(rubric 的冲突消解规则要求标出两类) | 案例选择理由与代表性;情境描述(谁、在哪、什么时候);资料收集方法(访谈/档案/观察);分析框架与分析过程;可迁移的启示与**适用边界** | 泛化的统计数字;与本案例无关的理论综述;仅凭单案例就下的普遍结论 |
每种类型的**页数偏移**与**学生最常见翻车点**:
- **综述型**:方法段压缩给分类框架让位;翻车点是"把 20 篇文献一张一张念完",听众 3 分钟后就掉线 —— 必须按**分类维度**成组讲,每组只点 1–2 个代表作。
- **方法创新型**:方法与结果各占大头;翻车点是"只念公式不讲直觉",或者反过来只讲直觉、被追问关键定义时答不上来。
- **实证型**:数据与识别策略必须占满页;翻车点是**把相关性说成因果**,以及不交代样本口径就报系数。
- **理论型**:主定理单独成页;翻车点是"一页塞三个定理",以及不提成立条件。
- **案例型**:情境描述要配时间线或关系图;翻车点是**用单个案例得出普遍规律**,以及不交代案例的选取偏差。
### 阶段三 · 汇报结构设计与大纲
**输入**:类型结论 + 讲述重点 + 时长
**动作**:按六段结构分配页数 → 生成 `slides.json`(结构照 `presentation-schema.md`)
**输出**:`slides.json` + `论文解析.md` 里的汇报大纲
**退出条件**:**教师或汇报人确认大纲之后**才进阶段四;总页数与时长匹配
学术汇报的六段结构,按 `presentation-schema.md` 的"时长→页数"基线分配**配额**
(10min→6-7 页 / 20min→9-10 页 / 30min→12-14 页)。**不是在这之上再加页**,而是把基线拆开:
| 段落 | 内容要求 | 10min | 20min | 30min | 学生最容易讲错的地方 |
|---|---|---|---|---|---|
| 封面 | 论文题名(原文 + 中译)、全部作者、期刊/会议 + 年份、汇报人、日期;**必须标"本文为文献汇报,非本人成果"** | 1 | 1 | 1 | 漏掉期刊年份;把自己名字放在作者位上造成误解 |
| ① 研究背景与问题 | 领域现状 2–3 句 → **本文要解决的具体问题一句话说清** → 为什么这个问题值得做 | 1 | 1 | 2 | 把背景讲成教科书综述,讲了 5 分钟还没到问题(超时重灾区);讲不清"具体问题",只复述领域重要性 |
| ② 相关工作与缺口 | 按**方法族**分组(不逐篇念)→ 每组一句结论 → 明确写出 gap | 0–1 | 1 | 1 | 把 related work 逐篇念成列表,没有"缺口在哪";把论文引用的**他人**工作说成"作者提出的方法" |
| ③ 方法 | 问题形式化 → 框架图(一页图 + 逐块讲)→ 关键模块 → 训练/识别策略 → 关键假设与超参 | 2 | 2 | 3 | 只念公式不讲直觉(听众掉线);或只讲直觉不给关键定义(一追问就崩);漏讲假设与超参导致不可复现;**把原文没写的实现细节"补全"**(幻觉最高发) |
| ④ 实验与结果 | 数据与设置 → 主结果表(**数字照抄不四舍五入,行内标注 Table/Fig. 号**)→ 与基线对比 → 消融/稳健性 → 失败案例或反例 | 2 | 2 | 3 | 只说"效果更好"不给数字;数字被四舍五入;只报最好的一组、不给基线;把图中的视觉差异说成"显著"(原文没做检验就不能说);张冠李戴(表 2 的数字说成表 3) |
| ⑤ 讨论与局限 | 作者承认的局限(标 `[原文声明]`)→ 模型归纳的潜在局限(标 `[模型归纳]` + 依据)→ 与相关工作的关系 | 0–1 | 1 | 2 | 跳过作者承认的局限只讲优点,一问就露;把自己想到的局限说成"作者指出"(必须标 `[模型归纳]`);过度自贬到否定论文价值 |
| ⑥ 结论与展望 | 作者结论(引原话)→ 未来工作(**只讲论文自己写的**)→ 对我们组/我的研究有什么启发 | 1 | 1 | 1 | 把结论扩大化("可用于所有场景",原文只在某数据集验证);把 future work 说成已完成;全程零评述(组会要求有批判性) |
| 讨论问题 / 致谢 | 3 个供组会讨论的问题(对应 `presentation-schema.md` 的 closing) | 0 | 1 | 1 | 提"有没有问题"这类空问题;或提出论文已解答的问题 |
**合并规则**:页数不够时先砍②相关工作,再砍⑤讨论 —— **③方法和④结果永不压缩**,
宁可拆成 overflow 两页(`presentation-schema.md` 的 `overflow.enabled` / `max_pages` / `split_at`)。
### 阶段四 · 图表处理
**输入**:`figures/` + 论文原图/表
**动作**:判定每张图走"重绘 / 裁切 / 原图",逐张产出并写图注
**输出**:`figures/` 下成品图 + `图表出处清单.md`
**退出条件**:每张图的出处(Fig./Table 号 + 页码)已登记,图注写的是结论而不是"如图所示"
**为什么不能直接贴论文原图**:
1. **版权** —— 论文图表的著作权属作者/出版社。组会内部讲解属合理引用,但**公开上传
(B 站、公众号、公开网盘、会议录屏)需先确认出版社的版权政策**,并在图上标出处;
裁剪掉水印、去掉版权页再传播是明确的高风险动作。
2. **清晰度** —— 期刊图多按单栏宽度 8.5cm、约 300dpi 嵌入,截图到 16:9 全屏会放大到 1.5–2 倍,
字全糊。论文里的 6pt 轴标签投影出来根本看不见。
3. **配色与版式** —— 论文图配色是为黑白打印优化的(灰阶、细线、点划线),投影后对比度极低;
且与实验室 PPT 模板的标准色冲突。
**三条处理路径,按优先级**:
| 路径 | 适用 | 做法 | 硬约束 |
|---|---|---|---|
| **A. 重绘(首选)** | 柱状图、折线图、散点图、箱线图 | 用论文**表格里印出的数值**或图注中给出的数值,用 matplotlib 按 `slides-polish` 的单色系纪律重绘 | 数值**不得目测估读**;论文没给具体数值的图**不许重绘**(重绘=编数据)。图注写"据 [作者, 年份] Fig.3 重绘" |
| **B. 裁切** | 架构图、流程图、示意图、系统框架 | 阶段一路径 B:`sips` 渲染整页 → `PIL.crop` 精确裁切 → 放大到 16:9 后不糊 | 保留原图的 Fig. 号;裁切后由教师肉眼确认没切掉图例/坐标轴 |
| **C. 原图直用** | 电镜照片、实测波形、地图、软件截图(无法重绘) | 阶段一路径 C 的 `page.images` 抽内嵌位图;若无内嵌位图则用路径 B 高倍渲染 | 仅在 A、B 都不可行时用;必须在页脚标 `From: [第一作者] et al. (年份), Fig.X` |
**图注规范 —— 图注写结论,不写"如图所示"**:
| ✗ 错误写法 | ✓ 正确写法 |
|---|---|
| 如图所示 | 本文方法在 X 数据集上把 MAPE 从 12.4 降到 9.8(原文 Table 2) |
| 图 1 模型架构 | 图 1 模型架构:多模态编码器 → 跨模态注意力 → 预测头;本文新增的是中间的跨模态注意力模块(原文 Fig.1) |
| 结果对比图 | 在 4 个数据集上本文方法 3 胜 1 平,未胜出的 Y 数据集样本量仅 200(原文 Table 3) |
另外三条:图注字号不小于正文的 2/3(投影后要能读);每张重绘图的角落标注
`据 [作者, 年份] Fig.X 重绘`;每张原图的角落标注 `From: [作者, 年份] Fig.X`。
**所有出处汇总进 `图表出处清单.md`**,教师按这张表逐条核对。
### 阶段五 · 生成 PPTX
**输入**:已确认的 `slides.json` + `figures/` 成品图
**动作**:`pptx_kit.py build` 生成 → `inspect` 回读自检
**输出**:`组会汇报初稿.pptx`
**退出条件**:`inspect` 的 `overdense` 为空,且每页 `chars` 与预期相符
```bash
$PY "$KIT" build --spec slides.json --out 组会汇报初稿.pptx
$PY "$KIT" inspect --in 组会汇报初稿.pptx
```
`slides.json` 片段(结构见 `skills/paper-analyst/references/presentation-schema.md`,字段名以 pptx_kit 为准):
```json
{"meta": {"title": "多模态城市轨道交通客流预测(文献汇报)",
"subtitle": "Zhang et al., Journal of Transport Research, 2023",
"presenter": "汇报人:___|日期:___"},
"slides": [
{"title": "研究背景与问题",
"bullets": [{"text": "短期客流预测是线网调度的核心输入", "level": 0},
{"text": "现有方法只用刷卡数据,忽略天气与事件信息", "level": 0},
{"text": "本文问题:如何融合多模态信息降低高峰时段预测误差", "level": 0}],
"notes": "此处由阶段六统一写备注"},
{"title": "方法框架",
"bullets": [{"text": "多模态编码器 → 跨模态注意力 → 预测头", "level": 0}],
"image": "/abs/path/figures/fig2_framework.png"},
{"title": "核心结果",
"table": {"header": ["模型", "MAPE(%)"],
"rows": [["LSTM", "12.4"], ["Ours", "9.8"]]}}
]}
```
**实测行为(照此预期,别当成 bug)**:
- `build` 会**自动在第 1 页生成封面**(取 `meta`),`slides` 数组的页数 = 总页数 − 1。
实测:spec 里 2 页 → 生成 3 页。
- `image` 字段接受绝对路径,图片会被**真正嵌入**(实测 `ppt/media/image1.png` 与源文件
字节数完全一致)。
- `inspect` 把**单页正文 > 220 字符**的页报进 `overdense`。实测 326 字符的页被标记、
11 字符的页未被标记。**这是提示拆页,不是错误** —— 学术汇报页还应更空(每页 ≤4 bullets,
见 `presentation-style-guide.md`),所以 overdense 为空只是底线,不代表页面好看。
- PPTX 尺寸 16:9(`12191695×6858000`),中文走 `a:ea` 字体,靠本层保证,**不要手写 pptx**。
**可选打磨**:若教师要求"看起来像正式会议报告",按 `skills/slides-polish/SKILL.md` 的
HTML/SVG → headless Chrome → PNG → 嵌回 pptx 流程处理方法框架图与结果对比页。
本机实测可用:Chrome 在 `/Applications/Google Chrome.app/Contents/MacOS/Google Chrome`,
Keynote AppleScript 可用(版本 15.3.1),可走它那套"导出每页 PNG → `sips -Z 1800` → 人工看"
的验证回路(`sips` 已实测存在)。**注意**:slides-polish 的配色纪律是"不引入第四个品牌色",
学术汇报请进一步压到**一个主色 + 灰阶**,别把汇报做成产品发布会。
### 阶段六 · 演讲者备注
**输入**:已生成的 pptx + 每页的讲稿要点
**动作**:写 `notes.json` → `pptx_kit notes` 批量写入 → `inspect` 回读确认
**输出**:带备注的 pptx
**退出条件**:`inspect` 里每一页 `has_notes` 为 `true`,且 `notes_chars` 与预期一致
```bash
$PY "$KIT" notes --in 组会汇报初稿.pptx --notes notes.json
$PY "$KIT" inspect --in 组会汇报初稿.pptx # 必须回读确认
```
```json
{"1": "【时间】0:00–0:30|【开场】各位老师同学好,我汇报的是 Zhang 等 2023 年发表在 JTR 的这篇工作,这是文献汇报,不是我的成果。",
"2": "【时间】0:30–2:30|【过渡】说完背景,问题可以归结为一句话:……|【追问准备】为什么不用地铁 AFC 数据?答:原文 3.1 节说明 AFC 只覆盖进站。",
"3": "【时间】2:30–7:00|【要点】按图从左到右讲:编码器、注意力、预测头|【需提前准备的数据】Table 1 的样本区间是 2019.1–2021.6,被追问时要能立刻说出。"}
```
**实测行为(关键,写错就白写)**:
- `notes.json` 的键是**从 1 开始的页号**(1 = 第 1 页,含自动生成的封面)。
实测 `{"1":…,"2":…,"3":…}` → 三页全部写入并回读成功。
- 键为 `0` 或**超出总页数会被静默忽略,不报错**。实测 `{"0":…,"1":…}` 只写入第 1 页。
所以**写完必须 `inspect` 回读** `has_notes` / `notes_chars`,不能只看"命令成功"。
- 不带 `--out` 时 `notes` 是**原地改写**该 pptx。要保留旧版就自己先复制一份。
- 再跑一次会**覆盖**同页的旧备注,不会追加。
**学术汇报的备注该写什么(四要素,缺一不可)**:
| 要素 | 写什么 | 例子 |
|---|---|---|
| **时间分配** | 每页的起止时间,累计必须等于总时长 | `【时间】7:00–11:30`(20 分钟报告的第 4 页) |
| **过渡语** | 上一段到下一段的那一句衔接话,写出来照念 | `【过渡】方法讲完了,下面看它到底有没有用。` |
| **可能被追问的点** | 由 `skills/empirical-research/econ-audit/SKILL.md` 的审查角度生成:识别策略是否可信、样本是否外推、指标是否可比、消融是否充分、基线是否公平 | `【追问】为什么用 MAPE 不用 RMSE?答:原文 4.2 节说明高峰时段短时误差更重要。` |
| **需要提前准备的数据** | 一旦被追问就得立刻说出的具体数字/出处 | `【备数】基线 LSTM 的 MAPE=12.4(Table 2);样本量 8.7 万(3.1 节)` |
**备注里的追问点必须能在论文里找到答案**。找不到答案的,备注写成
`【追问】XX —— 论文未交代,如实回答"原文未说明"`,**不要编一个解释**。
对**学生汇报**,备注再细一层:开场和过渡语写成可照念的完整句子;对**教师本人汇报**,
备注只留时间节点、数据卡和追问点。
### 阶段七 · 反剽窃与交付自检
**输入**:完整 pptx
**动作**:出处标注检查 → 表述人称检查 → 走出检清单
**输出**:`交付说明.md`
**退出条件**:`图表出处清单.md` 每条已核,自检清单全过
**出处标注(硬要求)**:
1. **封面页必须写全**:原论文题名、全部作者、期刊/会议 + 年份、DOI 或 arXiv 号(有则写),
以及一行 **"本文为文献汇报,所讲内容均为原作者成果"**。
2. **每一张图、每一张表都标出处**:`From: [作者] et al. (年份), Fig.X` 或
`据 [作者] et al. (年份), Table Y 重绘`。**没有出处的图表不许上页**。
3. **直接引用原句**要加引号 + 标注页码,并在备注里写英文原文(便于被追问时回应)。
4. **人称纪律**:讲别人的工作,主语一律是"作者/该文/本文(指被讲论文)",
**不得用"我们发现""我们提出""我们的方法"**。中文里"本文"极易被听成"我的文章",
所以在页脚统一写"(以下'本文'均指所汇报论文)"。
5. **区分自己的延伸**:若汇报中含自己的评论、复现结果、延伸想法,**必须单独成页**,
页标题写明"我的评述/我的延伸",绝不可与原文内容混排。
6. **不得**裁剪掉论文水印、版权页后当作自制图;**不得**把作者的图表重绘后去掉出处标注;
**不得**把论文的结论改写成自己的结论。
7. 若需把 PPT 公开上传或录屏外发,先确认出版社版权政策,并在交付说明里提示教师核对。
**交付说明必须包含**:
- 这份 PPT 是**初稿**,请汇报人**逐页讲一遍**再定稿
- 所有数据的出处(指向 `图表出处清单.md`)
- PDF 质量等级,以及哪些段落是降级处理 / 未读到
- 用到的默认值(时长、听众、页数等)与需要教师替换的占位符清单
- 提示:中间文件(`pages/`、`figures/` 的原始渲染件)确认无误后可删除
## 产出物
| 文件 | 内容 |
|---|---|
| `组会汇报初稿.pptx` | 16:9 汇报稿,含封面、正文、演讲者备注;所有未知信息为 `【待补:…】` |
| `论文解析.md` | 质量判级 Header + 7 节解析(照 `output-schema.md`)+ 类型结论与证据 + 汇报大纲 |
| `slides.json` | 幻灯片计划(照 `presentation-schema.md` 结构,字段名以 pptx_kit 为准) |
| `notes.json` | 演讲者备注(1-based 页号),四要素齐全 |
| `figures/` | 重绘或裁切后的成品图;文件名对应页号 |
| `图表出处清单.md` | 每张图的 `Fig./Table 号 + 页码 + 处理方式(重绘/裁切/原图)` |
| `交付说明.md` | 初稿声明、质量等级、默认值、`【待补】` 清单、中间文件清理提示 |
## 红线
1. **不虚构论文中的数据与结论。** PPT 里的每一个数字、每一条结论、每一个方法细节,
都必须能在 PDF 原文里指到具体位置(节号 / 图号 / 表号 / 原句)。原文没给的一律
写 `[未明确给出]`,**不许用领域常识或记忆补全**。数值照抄,**不许四舍五入**
(`presentation-style-guide.md` 明文规定)。
2. **图表必须注明出处。** 每张图、每张表标注 `Fig./Table 号 + 作者 + 年份`;
重绘图标"重绘";没有出处的图表不许上页。公开传播前提示教师核对版权。
3. **汇报稿是初稿。** 交付时必须明确告知"这是初稿,请汇报人逐页讲一遍并核对数据",
不得用终稿口吻交付。讲稿的取舍(讲什么、略过什么)由教师和汇报人决定。
4. **不得把他人成果表述为自己的。** 封面必须标"文献汇报";正文人称纪律见阶段七;
自己的延伸内容必须单独成页并明确标注。
5. **不得脑补降级内容。** 扫描版、双栏乱序、公式丢失、图表不可读,一律按降级处理透明披露,
让教师补料;宁可少讲一页,不许编一段。
6. **不制造虚假的显著性。** 原文没做统计检验,就不能说"显著""明显优于";
只能陈述原文给出的数值本身。
7. **不修改、覆盖教师提供的原始 PDF。** 拆分页、渲染图一律放 `pages/`、`figures/` 等中间目录。
## 自检清单
- [ ] 每个数字都能在 PDF 原文指到位置(节号/图号/表号/页码)
- [ ] 没有对原文数值做任何四舍五入或"约等于"
- [ ] 所有 `[未明确给出]` / `[不确定]` 标记保留,没有被模型悄悄填上
- [ ] 每个创新点带 `[原文声明]` 或 `[模型归纳]` 标签,`[原文声明]` 有位置引用
- [ ] 类型标签由 rubric 判定并列出 2–3 条证据,没有默认套"AI 论文"模板
- [ ] 页数符合时长基线(10min 6-7 / 20min 9-10 / 30min 12-14),方法是/结果是段未被压缩
- [ ] 封面写全题名、全部作者、期刊会议、年份、DOI/arXiv(有则写)
- [ ] 封面有"本文为文献汇报,所讲内容均为原作者成果"一行
- [ ] 每张图、每张表都标了 `Fig./Table 号 + 作者 + 年份`,已录入 `图表出处清单.md`
- [ ] 图注写的是结论,不是"如图所示"
- [ ] 重绘图的数值取自原文明示数字,没有目测估读
- [ ] 裁切图已由教师肉眼确认(本机模型不支持读图,AI 无法自验)
- [ ] 正文人称纪律通过:无"我们提出/我们发现"(指被讲论文时)
- [ ] 自己的延伸内容单独成页并标注
- [ ] `inspect` 的 `overdense` 为空
- [ ] `inspect` 里每一页 `has_notes` 为 true 且 `notes_chars` 合理(备注键越界会被静默忽略)
- [ ] 每页备注含四要素:时间分配 / 过渡语 / 可能被追问的点 / 需提前准备的数据
- [ ] 备注里的追问答案都能在论文里找到依据,找不到的已如实标注
- [ ] PDF 质量等级已写入 `论文解析.md` 与 `交付说明.md`,降级段落已披露
- [ ] `交付说明.md` 写明"初稿"、列出 `【待补:…】` 清单与所用默认值
- [ ] PPTX 由 `pptx_kit.py build` 生成(不是手写 pptx,也不许用文本框拼伪表格)
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.