# Academic Report Ppt

> Use when building a 导师汇报/答辩 PPT from locked evidence.

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

---


# 学术汇报 PPT（证据锁定型）

**触发**：用户已有冻结的分析产物（图 / CSV / 证据卡），要求组装成"问题 → 处理 → 证据 → 结论"的汇报 PPT，并交付检查报告。典型场景：给导师的论文进度汇报、答辩预演、组会。

## 一、用户硬性标准（违反即返工）

1. **说人话**：禁用 AI/CS 腔——异构、范式、智能表征、特征空间、鲁棒、架构、赋能、多模态。改用领域语言（如光谱领域：背景、重叠峰、峰位、峰强、分辨能力）。
2. **页标题 = 问题式或结论式**："能拟合出来，不代表这个点一定可靠" ✅；"峰拟合结果" ❌。
3. 每页必须能回答四问：这一页在说什么问题 / 做了什么 / 哪张图证明 / 得到什么 + 为何能进入下一步。
4. **科学边界严格**：
   - 不写因果（"因为 A 所以 B"）
   - 不把低于仪器分辨能力的变化写成"变化"
   - 不写未经正式检验的统计推断（如"远超随机水平"）
   - 不外推到未测样品；单样品结论必须写明"这是代表性样品"
5. **交付 = 成品 + 检查报告**（页数 / 逐页修改 / 主线检查 / 数字核对 / 边界核对 / 禁用词扫描 / 讲稿检查 / 是否适合直接汇报）。
6. 迭代**不推倒重做**：按任务书逐条改，命名 v2/v3 并覆盖桌面旧成品；旧版留在项目内作基准。
7. 汇总表中的每个数字都要能追到证据卡；不确定的（样品条件、外部记录）标注"需与记录核对"，**不要断言**。

## 二、技术要点（踩过的坑）

### python-pptx
- **`title_only` 版式没有正文占位符**：用 spec 驱动脚本写 `bullets` 时，文字会被塞进 footer / slide-number 占位符 → 位置错乱、与图重叠（曾一次 26 处重叠）。**结论：自建布局**——`blank` 版式 + 自己 `add_textbox` / `add_table` / `add_shape` 逐元素定位。
- 图片 contain 缩放：按原始宽高比，先按宽算高，超出框则用高反推宽，再双轴居中。
- 中文字体 `微软雅黑`；标题 24–26pt、正文 15–17pt、表格 11.5–12.5pt、说明小字 10–12pt。
- 图形：流程用 `MSO_SHAPE.CHEVRON`，结论块用 `ROUNDED_RECTANGLE` + 浅底色。

### 图与数字
- **图/表标题里的数字必须由数据动态计算**。硬编码会与实测脱节（实例：图标题里写死的倍数区间和真实结果差了近两个数量级，而且这个错数字已经扩散到 5 个文件）。
- 改一个数字后**全库 grep 同步**（脚本 / 证据卡 / 总表 / 导读 / 报告）。
- 多面板证据图（6×3 之类）投影不可读：裁出代表行做"主视觉 + 次视觉"，别把整张大图塞进一页。裁剪比例参考：总标题 0–3%、列标题 3–5%、每行约 15%（切掉列标题是常见事故，裁完用 vision 复核）。
- 表达性示意图（结构 / 证据链）用 matplotlib + FancyBboxPatch/FancyArrowPatch 画，比堆指标更"去算法感"。

### 讲稿（Speaker Notes）
- 目标 30–60 秒/页，中文按 **≈250 字/分钟** 估算。
- 写法：解释"为什么这一页必须做"，不念图；句式"我们一开始发现… / 所以这里先… / 这张图证明… / 因此下一步才能…"。

## 三、无渲染工具时的验证（本机常无 soffice / pdftoppm）

程序化核对三步：
1. **布局**：逐形状读 `left/top/width/height` → 越界 + 两两重叠（跳过 TXT×TXT；标题框与图轻微相交属正常）。
2. **内容**：提取全部文本（含表格单元格 + notes）join 成全文 → ① 锁定数字必须出现；② 禁用词/废弃表述必须 0；③ 边界声明必须以否定形式在位。
3. **讲稿**：逐页字数 → 时长区间。

样例脚本分三类：布局 / 嵌入 / 讲稿检查、锁定数字 / 禁用词 / 边界检查、任务书逐条落实核对。

## 四、脚本自身的坑

- 对 list 用 `in` 是**成员检查**不是子串搜索：`"关键字" in pages_list` 恒为 False。必须 `full = "\n".join(pages)` 再 `in`。
- 示意图/裁剪图内的数字不在 PPT 文本里 → 检查脚本要区分"正文文本"与"图内文字"，否则误报缺失。

## 五、验收口径

逐条核对任务书 → 跑三类扫描 → 按"听众只听一次能否全程知道为什么做下一步"自检 → 检查报告里给出"是否适合直接汇报"的明确结论，并附"建议在 PowerPoint 里目视确认一次"的提醒（程序化检查看不到视觉观感）。
