paper-slides
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChinesePaper Slides: From Paper to Conference Talk
论文转幻灯片:从论文到会议报告
Generate conference presentation slides from: $ARGUMENTS
从以下内容生成会议演示幻灯片:$ARGUMENTS
Context
背景
This skill runs after Workflow 3 (). It takes a compiled paper and generates a presentation slide deck for conference oral talks, spotlight presentations, or poster lightning talks.
/paper-writingUnlike posters (single page, visual-first), slides tell a temporal story: each slide builds on the previous one, with progressive revelation of the research narrative. A good talk makes the audience understand why this matters before showing what was done.
本技能需在工作流3()完成后运行。它会接收已编译的论文,为会议口头报告、焦点报告或海报闪电报告生成演示幻灯片套件。
/paper-writing与海报(单页、视觉优先)不同,幻灯片讲述的是时序化故事:每张幻灯片都基于前一张内容展开,逐步呈现研究叙事。一份优秀的报告应先让听众理解「这项研究为何重要」,再展示「我们做了什么」。
Constants
常量配置
- VENUE = — Target venue, determines color scheme. Supported:
NeurIPS,NeurIPS,ICML,ICLR,AAAI,ACL,EMNLP,CVPR,ECCV. Override via argument.GENERIC - TALK_TYPE = — Talk format. Options:
spotlight(15-20 min),oral(5-8 min),spotlight(3-5 min),poster-talk(30-45 min). Determines slide count and content depth.invited - TALK_MINUTES = 15 — Talk duration in minutes. Auto-adjusts slide count (~1 slide/minute for oral, ~1.5 slides/minute for spotlight). Override explicitly if needed.
- ASPECT_RATIO = — Slide aspect ratio. Options:
16:9(default, modern projectors),16:9(legacy).4:3 - SPEAKER_NOTES = true — Generate blocks in beamer and corresponding PPTX notes. Set
\note{}for clean slides without notes.false - PAPER_DIR = — Directory containing the compiled paper.
paper/ - OUTPUT_DIR = — Output directory for all slide files.
slides/ - REVIEWER_MODEL = — Model used via Codex MCP for slide review.
gpt-5.4 - AUTO_PROCEED = false — At each checkpoint, always wait for explicit user confirmation.
- COMPILER = — LaTeX build tool.
latexmk - ENGINE = — LaTeX engine. Use
pdflatexfor CJK text.xelatex
💡 Override:/paper-slides "paper/" — talk_type: oral, venue: ICML, minutes: 20, aspect: 4:3
- VENUE = — 目标会议,决定配色方案。支持的会议:
NeurIPS、NeurIPS、ICML、ICLR、AAAI、ACL、EMNLP、CVPR、ECCV。可通过参数覆盖默认值。GENERIC - TALK_TYPE = — 报告格式。可选值:
spotlight(15-20分钟)、oral(5-8分钟)、spotlight(3-5分钟)、poster-talk(30-45分钟)。决定幻灯片数量和内容深度。invited - TALK_MINUTES = 15 — 报告时长(分钟)。会自动调整幻灯片数量(口头报告约1分钟/张,焦点报告约1.5分钟/张)。如有需要可手动覆盖。
- ASPECT_RATIO = — 幻灯片宽高比。可选值:
16:9(默认,适配现代投影仪)、16:9( legacy设备)。4:3 - SPEAKER_NOTES = true — 在beamer中生成块,并同步生成对应的PPTX备注。若需无备注的简洁幻灯片,可设置为
\note{}。false - PAPER_DIR = — 存放已编译论文的目录。
paper/ - OUTPUT_DIR = — 所有幻灯片文件的输出目录。
slides/ - REVIEWER_MODEL = — 通过Codex MCP用于幻灯片审核的模型。
gpt-5.4 - AUTO_PROCEED = false — 在每个检查点,始终等待用户明确确认后再继续。
- COMPILER = — LaTeX构建工具。
latexmk - ENGINE = — LaTeX引擎。若论文包含中日韩文本,使用
pdflatex。xelatex
💡 覆盖默认值示例:/paper-slides "paper/" — talk_type: oral, venue: ICML, minutes: 20, aspect: 4:3
Talk Type → Slide Count
报告类型 → 幻灯片数量
| Talk Type | Duration | Slides | Content Depth |
|---|---|---|---|
| 3-5 min | 5-8 | Problem + 1 method slide + 1 result + conclusion |
| 5-8 min | 8-12 | Problem + 2 method + 2 results + conclusion |
| 15-20 min | 15-22 | Full story with motivation, method detail, experiments, analysis |
| 30-45 min | 25-40 | Comprehensive: background, related work, deep method, extensive results, discussion |
| 报告类型 | 时长 | 幻灯片数量 | 内容深度 |
|---|---|---|---|
| 3-5分钟 | 5-8张 | 问题 + 1张方法页 + 1张结果页 + 结论 |
| 5-8分钟 | 8-12张 | 问题 + 2张方法页 + 2张结果页 + 结论 |
| 15-20分钟 | 15-22张 | 完整叙事:动机、方法细节、实验、分析 |
| 30-45分钟 | 25-40张 | 全面覆盖:背景、相关工作、深度方法、大量结果、讨论 |
Venue Color Schemes
会议配色方案
Same as :
/paper-poster| Venue | Primary | Accent | Background | Text |
|---|---|---|---|---|
| NeurIPS | | | | |
| ICML | | | | |
| ICLR | | | | |
| CVPR | | | | |
| GENERIC | | | | |
与一致:
/paper-poster| 会议 | 主色调 | 强调色 | 背景色 | 文字色 |
|---|---|---|---|---|
| NeurIPS | | | | |
| ICML | | | | |
| ICLR | | | | |
| CVPR | | | | |
| GENERIC | | | | |
State Persistence (Compact Recovery)
状态持久化(快速恢复)
Persist state to after each phase:
slides/SLIDES_STATE.jsonjson
{
"phase": 3,
"venue": "NeurIPS",
"talk_type": "spotlight",
"slide_count": 10,
"codex_thread_id": "019cfcf4-...",
"status": "in_progress",
"timestamp": "2026-03-18T15:00:00"
}On startup: if exists with and within 24h → resume. Otherwise → fresh start.
SLIDES_STATE.json"status": "in_progress"在每个阶段完成后,将状态保存到:
slides/SLIDES_STATE.jsonjson
{
"phase": 3,
"venue": "NeurIPS",
"talk_type": "spotlight",
"slide_count": 10,
"codex_thread_id": "019cfcf4-...",
"status": "in_progress",
"timestamp": "2026-03-18T15:00:00"
}启动时:若存在且,且时间在24小时内,则恢复之前的工作流。否则,从头开始。
SLIDES_STATE.json"status": "in_progress"Workflow
工作流
Phase 0: Input Validation & Setup
阶段0:输入验证与环境准备
-
Check prerequisites:bash
which pdflatex && which latexmk -
Verify paper exists:bash
ls $PAPER_DIR/main.tex || ls $PAPER_DIR/main.pdf ls $PAPER_DIR/sections/*.tex ls $PAPER_DIR/figures/ -
Backup existing slides: ifexists, copy to
slides/slides-backup-{timestamp}/ -
Create output directory:
mkdir -p slides/figures -
Detect CJK: if paper contains Chinese/Japanese/Korean, set ENGINE to
xelatex -
Determine slide count: from TALK_TYPE and TALK_MINUTES using the table above
-
Check for resume: readif it exists
slides/SLIDES_STATE.json
State: Write with .
SLIDES_STATE.jsonphase: 0-
检查前置依赖:bash
which pdflatex && which latexmk -
验证论文文件存在:bash
ls $PAPER_DIR/main.tex || ls $PAPER_DIR/main.pdf ls $PAPER_DIR/sections/*.tex ls $PAPER_DIR/figures/ -
备份现有幻灯片:若目录已存在,将其复制到
slides/slides-backup-{timestamp}/ -
创建输出目录:
mkdir -p slides/figures -
检测中日韩文本:若论文包含中文/日文/韩文,将ENGINE设置为
xelatex -
确定幻灯片数量:根据TALK_TYPE和TALK_MINUTES,参考上方表格计算
-
检查是否恢复工作流:若存在则读取状态
slides/SLIDES_STATE.json
状态保存:写入,标记。
SLIDES_STATE.jsonphase: 0Phase 1: Content Extraction & Slide Outline
阶段1:内容提取与幻灯片大纲
Read and build a slide-by-slide outline.
paper/sections/*.texSlide template by talk type:
读取并逐张构建幻灯片大纲。
paper/sections/*.tex按报告类型划分的幻灯片模板:
Oral (15-22 slides)
口头报告(15-22张)
| Slide | Purpose | Content Source | Figure? |
|---|---|---|---|
| 1 | Title | Paper metadata | No |
| 2 | Outline | Section headers | No |
| 3-4 | Motivation & Problem | Introduction | Optional |
| 5 | Key Insight | Introduction (contribution) | No |
| 6-9 | Method | Method section | Yes (hero figure) |
| 10-14 | Results | Experiments | Yes (per slide) |
| 15-16 | Analysis / Ablations | Experiments | Yes |
| 17 | Limitations | Conclusion | No |
| 18 | Conclusion / Takeaway | Conclusion | No |
| 19 | Thank You + QR | — | QR code |
| 幻灯片序号 | 用途 | 内容来源 | 是否使用图片 |
|---|---|---|---|
| 1 | 标题页 | 论文元数据 | 否 |
| 2 | 报告大纲 | 章节标题 | 否 |
| 3-4 | 动机与问题阐述 | 引言部分 | 可选 |
| 5 | 核心创新点 | 引言(贡献部分) | 否 |
| 6-9 | 方法介绍 | 方法章节 | 是(核心图) |
| 10-14 | 实验结果 | 实验章节 | 是(每页一张) |
| 15-16 | 分析/消融实验 | 实验章节 | 是 |
| 17 | 研究局限性 | 结论部分 | 否 |
| 18 | 结论/核心收获 | 结论部分 | 否 |
| 19 | 致谢+二维码 | — | 二维码 |
Spotlight (8-12 slides)
焦点报告(8-12张)
| Slide | Purpose | Content Source | Figure? |
|---|---|---|---|
| 1 | Title | Paper metadata | No |
| 2-3 | Problem + Why It Matters | Introduction | Optional |
| 4 | Key Insight | Contribution | No |
| 5-6 | Method | Method (condensed) | Yes (hero) |
| 7-9 | Results | Key results only | Yes |
| 10 | Takeaway | Conclusion | No |
| 11 | Thank You + QR | — | QR code |
| 幻灯片序号 | 用途 | 内容来源 | 是否使用图片 |
|---|---|---|---|
| 1 | 标题页 | 论文元数据 | 否 |
| 2-3 | 问题与重要性阐述 | 引言部分 | 可选 |
| 4 | 核心创新点 | 贡献部分 | 否 |
| 5-6 | 方法简介 | 方法章节(精简版) | 是(核心图) |
| 7-9 | 关键结果 | 仅展示核心实验结果 | 是 |
| 10 | 核心收获 | 结论部分 | 否 |
| 11 | 致谢+二维码 | — | 二维码 |
Poster-talk (5-8 slides)
海报闪电报告(5-8张)
| Slide | Purpose | Content Source | Figure? |
|---|---|---|---|
| 1 | Title | Paper metadata | No |
| 2 | Problem | Introduction (1 slide) | No |
| 3 | Method | Method (1 slide) | Yes |
| 4-5 | Results | Key result only | Yes |
| 6 | Takeaway + QR | Conclusion | QR |
For each slide, specify:
- Title (max 8 words)
- 3-5 bullet points (max 8 words each)
- Figure reference (if any) from paper/figures/
- Speaker note (2-3 sentences of what to say)
- Time allocation (in seconds)
Output:
slides/SLIDE_OUTLINE.md🚦 Checkpoint:
📊 Slide outline ready:
- Talk type: [TALK_TYPE] ([TALK_MINUTES] min)
- Slide count: [N] slides
- Figures used: [N] from paper/figures/
- Time budget: [breakdown]
Slide-by-slide outline:
1. [Title slide]
2. [Motivation — 1.5 min]
3. [Problem statement — 1 min]
...
Proceed to drafting? Or adjust the outline?⛔ STOP HERE and wait for user response. This is the most critical checkpoint — the outline determines the entire talk flow.
Options:
- "go" → proceed to Phase 2
- adjustments (e.g., "merge slides 3-4", "add a demo slide", "cut the ablation") → revise
- "stop" → save to
slides/SLIDE_OUTLINE.md
State: Write with .
SLIDES_STATE.jsonphase: 1| 幻灯片序号 | 用途 | 内容来源 | 是否使用图片 |
|---|---|---|---|
| 1 | 标题页 | 论文元数据 | 否 |
| 2 | 问题阐述 | 引言(单页) | 否 |
| 3 | 方法介绍 | 方法章节 | 是 |
| 4-5 | 核心结果 | 仅展示关键结果 | 是 |
| 6 | 核心收获+二维码 | 结论部分 | 二维码 |
每张幻灯片需明确:
- 标题(最多8个单词)
- 3-5个要点(每个要点最多8个单词)
- 图片引用(若有),来自paper/figures/目录
- 演讲者备注(2-3句话,提示演讲内容)
- 时间分配(秒为单位)
输出文件:
slides/SLIDE_OUTLINE.md🚦 检查点:
📊 幻灯片大纲已生成:
- 报告类型:[TALK_TYPE]([TALK_MINUTES]分钟)
- 幻灯片数量:[N]张
- 使用图片数量:[N]张,来自paper/figures/
- 时间分配明细:[breakdown]
逐张幻灯片大纲:
1. [标题页]
2. [动机 — 1.5分钟]
3. [问题陈述 — 1分钟]
...
是否继续进入草稿生成阶段?或需要调整大纲?⛔ 在此处暂停,等待用户回复。 这是最关键的检查点——大纲决定了整个报告的叙事逻辑。
可选操作:
- "go" → 进入阶段2
- 提出调整需求(例如:"合并第3-4张幻灯片"、"添加演示幻灯片"、"移除消融实验部分")→ 修改大纲
- "stop" → 将大纲保存到
slides/SLIDE_OUTLINE.md
状态保存:写入,标记。
SLIDES_STATE.jsonphase: 1Phase 2: Slide-by-Slide Content Drafting
阶段2:逐张幻灯片内容撰写
For each slide in the outline, draft the actual content.
Presentation rules (enforced strictly):
| Rule | Rationale |
|---|---|
| One message per slide | If a slide has two ideas, split it |
| Max 6 lines per slide | More than 6 lines = wall of text |
| Max 8 words per line | Audience reads, not listens, if text is long |
| Sentence fragments, not sentences | "Improves F1 by 3.2%" not "Our method improves the F1 score by 3.2 percentage points" |
| Figure slides: figure ≥60% area | The figure IS the content; bullets are annotations |
| Bold key numbers | "Achieves 94.3% accuracy" |
| Progressive disclosure | Use |
| No Related Work slide | Unless invited talk (30+ min) |
For each slide, produce:
\frametitle{}- Content (itemize or figure + caption)
- with speaker text (if SPEAKER_NOTES=true)
\note{}
根据大纲逐张撰写幻灯片的实际内容。
严格执行以下演示规则:
| 规则 | 原因说明 |
|---|---|
| 每张幻灯片仅传递一个核心信息 | 若一张幻灯片包含两个独立观点,需拆分为两张幻灯片 |
| 每张幻灯片最多6行内容 | 超过6行会形成文字墙,影响听众理解 |
| 每行最多8个单词 | 文字过长会让听众专注阅读而非听演讲 |
| 使用短语而非完整句子 | 例如用“F1提升3.2%”代替“我们的方法将F1分数提升了3.2个百分点” |
| 图片页:图片占比≥60% | 图片是内容核心,要点仅作为注释 |
| 关键数据加粗 | 例如“准确率达94.3%” |
| 逐步揭示复杂内容 | 对复杂幻灯片使用 |
| 除非是特邀报告,否则不包含相关工作幻灯片 | 普通报告时长有限,需聚焦核心内容 |
每张幻灯片需生成:
- 标题
\frametitle{} - 内容(列表或图片+说明)
- 演讲者备注(若SPEAKER_NOTES=true)
\note{}
Phase 3: Generate Slides LaTeX
阶段3:生成Beamer LaTeX源码
Create using beamer.
slides/main.texTemplate structure:
latex
\documentclass[aspectratio=169]{beamer}
% Venue theme
\usepackage{xcolor}
\definecolor{primary}{HTML}{VENUE_PRIMARY}
\definecolor{accent}{HTML}{VENUE_ACCENT}
% Clean theme
\usetheme{default}
\usecolortheme{default}
\setbeamercolor{frametitle}{fg=primary}
\setbeamercolor{title}{fg=primary}
\setbeamercolor{structure}{fg=accent}
\setbeamercolor{itemize item}{fg=primary}
\setbeamercolor{itemize subitem}{fg=accent}
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{footline}{
\hfill\insertframenumber/\inserttotalframenumber\hspace{2mm}\vspace{2mm}
}
% Packages
\usepackage{graphicx,amsmath,booktabs}
\graphicspath{{figures/}}
% Speaker notes (if enabled)
% \setbeameroption{show notes on second screen=right}
% Metadata
\title{PAPER TITLE}
\author{Author 1 \and Author 2}
\institute{Affiliation}
\date{VENUE YEAR}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
% Content slides follow...
\begin{frame}{Motivation}
\begin{itemize}
\item Bullet point 1
\item Bullet point 2
\item \textbf{Key insight in bold}
\end{itemize}
\note{Speaker note: explain the motivation...}
\end{frame}
% Figure slide example
\begin{frame}{Method Overview}
\centering
\includegraphics[width=0.85\textwidth]{method_overview.pdf}
\vspace{0.5em}
\begin{itemize}
\item Key annotation about the figure
\end{itemize}
\note{Walk through the figure left to right...}
\end{frame}
% ... more slides ...
\begin{frame}{Thank You}
\centering
{\Large Questions?}\\[2em]
Paper: [URL or QR placeholder]\\
Code: [URL or QR placeholder]
\end{frame}
\end{document}Symlink figures:
bash
ln -sf ../paper/figures/*.pdf slides/figures/ 2>/dev/null
ln -sf ../paper/figures/*.png slides/figures/ 2>/dev/nullKey formatting rules:
- Title font: ≥28pt, venue primary color
- Body font: ≥20pt
- Footnotes: ≥14pt
- No navigation symbols
- Frame numbers in bottom-right
- Clean white background (no gradients, no decorative elements)
创建文件,使用beamer格式。
slides/main.tex模板结构:
latex
\documentclass[aspectratio=169]{beamer}
% 会议主题配色
\usepackage{xcolor}
\definecolor{primary}{HTML}{VENUE_PRIMARY}
\definecolor{accent}{HTML}{VENUE_ACCENT}
% 简洁主题
\usetheme{default}
\usecolortheme{default}
\setbeamercolor{frametitle}{fg=primary}
\setbeamercolor{title}{fg=primary}
\setbeamercolor{structure}{fg=accent}
\setbeamercolor{itemize item}{fg=primary}
\setbeamercolor{itemize subitem}{fg=accent}
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{footline}{
\hfill\insertframenumber/\inserttotalframenumber\hspace{2mm}\vspace{2mm}
}
% 加载必要包
\usepackage{graphicx,amsmath,booktabs}
\graphicspath{{figures/}}
% 演讲者备注(若启用)
% \setbeameroption{show notes on second screen=right}
% 元数据
\title{PAPER TITLE}
\author{Author 1 \and Author 2}
\institute{Affiliation}
\date{VENUE YEAR}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
% 内容幻灯片依次展开...
\begin{frame}{Motivation}
\begin{itemize}
\item Bullet point 1
\item Bullet point 2
\item \textbf{Key insight in bold}
\end{itemize}
\note{Speaker note: explain the motivation...}
\end{frame}
% 图片页示例
\begin{frame}{Method Overview}
\centering
\includegraphics[width=0.85\textwidth]{method_overview.pdf}
\vspace{0.5em}
\begin{itemize}
\item Key annotation about the figure
\end{itemize}
\note{Walk through the figure left to right...}
\end{frame}
% ... 更多幻灯片 ...
\begin{frame}{Thank You}
\centering
{\Large Questions?}\\[2em]
Paper: [URL or QR placeholder]\\
Code: [URL or QR placeholder]
\end{frame}
\end{document}图片软链接:
bash
ln -sf ../paper/figures/*.pdf slides/figures/ 2>/dev/null
ln -sf ../paper/figures/*.png slides/figures/ 2>/dev/null关键格式规则:
- 标题字体:≥28pt,使用会议主色调
- 正文字体:≥20pt
- 脚注字体:≥14pt
- 隐藏导航符号
- 幻灯片编号位于右下角
- 简洁白色背景(无渐变、无装饰元素)
Phase 4: Compile Slides
阶段4:编译幻灯片
bash
cd slides && latexmk -$ENGINE -interaction=nonstopmode main.texError handling loop (max 3 attempts):
- Parse error log
- Fix: missing package, undefined command, file not found, overfull boxes
- Recompile
Verification:
bash
undefinedbash
cd slides && latexmk -$ENGINE -interaction=nonstopmode main.tex错误处理循环(最多3次尝试):
- 解析错误日志
- 修复问题:缺失包、未定义命令、文件未找到、内容溢出
- 重新编译
验证步骤:
bash
undefinedCheck slide count matches outline
检查幻灯片数量是否与大纲一致
pdfinfo slides/main.pdf | grep Pages
If page count differs significantly from outline (>2 slides off), investigate.
**State**: Write `SLIDES_STATE.json` with `phase: 4`.pdfinfo slides/main.pdf | grep Pages
若实际页数与大纲差异较大(超过2张),需排查原因。
**状态保存**:写入`SLIDES_STATE.json`,标记`phase: 4`。Phase 5: Codex MCP Review
阶段5:Codex MCP审核
Send the slide outline + selected LaTeX frames to GPT-5.4 xhigh:
mcp__codex__codex:
config: {"model_reasoning_effort": "xhigh"}
prompt: |
Review this [TALK_TYPE] presentation ([TALK_MINUTES] min) for [VENUE].
Evaluate using these criteria (score 1-5 each):
1. **Story arc** — Does the talk build a compelling narrative? (Problem → insight → method → evidence → takeaway)
2. **Slide density** — Any slides with too much text? (Max 6 lines, 8 words/line)
3. **Time budget** — Is [N] slides realistic for [TALK_MINUTES] minutes?
4. **Figure visibility** — Will figures be readable on a projector?
5. **Opening hook** — Do slides 2-3 grab attention? (Not "In this paper, we...")
6. **Takeaway** — Is the final message clear and memorable?
7. **Progressive build** — Are complex ideas revealed gradually?
Slide outline:
[PASTE SLIDE_OUTLINE.md]
Selected frames (LaTeX):
[PASTE KEY FRAMES]
Provide:
- Score for each criterion
- Top 3 actionable fixes
- Overall: Ready to present? (Yes / Needs revision / Major issues)Apply fixes. Recompile if LaTeX was changed.
⚠️ Ifis not available (no OpenAI API key), skip external review and proceed to Phase 6. Note the skip inmcp__codex__codex.SLIDES_STATE.json
Save review to .
slides/SLIDES_REVIEW.mdState: Write with .
SLIDES_STATE.jsonphase: 5将幻灯片大纲+选中的LaTeX帧发送给GPT-5.4 xhigh模型:
mcp__codex__codex:
config: {"model_reasoning_effort": "xhigh"}
prompt: |
请审核这份面向[VENUE]会议的[TALK_TYPE]报告幻灯片(时长[TALK_MINUTES]分钟)。
请根据以下标准评分(1-5分):
1. **叙事逻辑** — 报告是否构建了引人入胜的完整叙事?(问题→创新点→方法→证据→核心收获)
2. **幻灯片密度** — 是否存在文字过多的幻灯片?(最多6行,每行8个单词)
3. **时间匹配度** — [N]张幻灯片是否适配[TALK_MINUTES]分钟的时长?
4. **图片可读性** — 图片在投影仪上是否清晰可见?
5. **开场吸引力** — 第2-3张幻灯片是否能抓住听众注意力?(避免以“在本文中,我们...”开头)
6. **核心传递** — 最终结论是否清晰且令人印象深刻?
7. **内容递进** — 复杂观点是否逐步揭示?
幻灯片大纲:
[粘贴SLIDE_OUTLINE.md内容]
选中的LaTeX帧:
[粘贴关键帧内容]
请提供:
- 各标准的评分
- 最需改进的3个可执行建议
- 整体结论:是否可直接用于报告?(是/需修改/存在重大问题)根据建议修改内容,若LaTeX代码有变更则重新编译。
⚠️ 若不可用(无OpenAI API密钥),跳过外部审核直接进入阶段6,并在mcp__codex__codex中标记跳过原因。SLIDES_STATE.json
将审核结果保存到。
slides/SLIDES_REVIEW.md状态保存:写入,标记。
SLIDES_STATE.jsonphase: 5Phase 6: Speaker Notes
阶段6:演讲者备注完善
For each slide, ensure a block exists with:
\note{}- What to say (2-3 complete sentences, conversational tone)
- Timing hint (e.g., "spend 1 minute here", "quick — 20 seconds")
- Transition phrase to the next slide (e.g., "So how do we actually implement this? Let me show you...")
Also generate as a standalone backup:
slides/speaker_notes.mdmarkdown
undefined确保每张幻灯片都有块,包含:
\note{}- 演讲内容提示(2-3句完整句子,口语化表达)
- 时间提示(例如:“此处花费1分钟”、“快速带过 — 20秒”)
- 转场语(例如:“那么我们具体如何实现呢?接下来为您展示...”)
同时生成独立备份文件:
slides/speaker_notes.mdmarkdown
undefinedSpeaker Notes
演讲者备注
Slide 1: Title
第1张:标题页
[No speaking — wait for introduction]
[无需发言 — 等待主持人介绍]
Slide 2: Motivation
第2张:动机
"Thank you. So let me start with the problem we're trying to solve..."
[Time: 1.5 min]
“感谢主持人。接下来我将从我们要解决的问题开始讲起...”
[时长:1.5分钟]
Slide 3: Problem Statement
第3张:问题陈述
"Specifically, the challenge is..."
→ Transition: "To address this, our key insight is..."
[Time: 1 min]
...
**State**: Write `SLIDES_STATE.json` with `phase: 6`.“具体来说,我们面临的挑战是...”
→ 转场语:“针对这一问题,我们的核心创新点是...”
[时长:1分钟]
...
**状态保存**:写入`SLIDES_STATE.json`,标记`phase: 6`。Phase 7: PowerPoint Export
阶段7:PPTX格式导出
Generate an editable PPTX using :
python-pptxbash
python3 -c "import pptx" 2>/dev/null || pip install python-pptxWrite that:
slides/generate_pptx.py- Creates a PPTX with correct aspect ratio (16:9 → 13.33" x 7.5"; 4:3 → 10" x 7.5")
- For each beamer frame:
- Creates a slide with matching layout
- Title in venue primary color, bold
- Bullet points with venue accent color markers
- Figures embedded as images (from slides/figures/)
- Speaker notes transferred to PPTX notes field
- Title slide with special formatting (centered, larger title)
- Thank You slide with centered text
- Applies venue color scheme throughout
bash
cd slides && python3 generate_pptx.py使用生成可编辑的PPTX文件:
python-pptxbash
python3 -c "import pptx" 2>/dev/null || pip install python-pptx编写脚本,实现以下功能:
slides/generate_pptx.py- 创建符合宽高比的PPTX文件(16:9 → 13.33" x 7.5"; 4:3 → 10" x 7.5")
- 对每个beamer帧:
- 创建匹配布局的幻灯片
- 标题使用会议主色调、加粗
- 要点使用会议强调色标记
- 嵌入slides/figures/目录中的图片
- 将演讲者备注同步到PPTX的备注栏
- 标题页使用特殊格式(居中、大字体)
- 致谢页使用居中文字
- 全程应用会议配色方案
bash
cd slides && python3 generate_pptx.pyOutput: slides/presentation.pptx
输出文件:slides/presentation.pptx
> ⚠️ If `python-pptx` is not installed, skip with a note: "Install `pip install python-pptx` to enable PowerPoint export."
**State**: Write `SLIDES_STATE.json` with `phase: 7`.
> ⚠️ 若未安装`python-pptx`,则跳过此步骤并提示:“请安装`pip install python-pptx`以启用PowerPoint导出功能。”
**状态保存**:写入`SLIDES_STATE.json`,标记`phase: 7`。Phase 8: Full Talk Script
阶段8:完整演讲稿生成
Generate — a complete, word-for-word script for the talk.
slides/TALK_SCRIPT.mdThis is different from speaker notes (brief reminders). The talk script is a full manuscript that can be read aloud or used for practice.
markdown
undefined生成 — 报告的完整逐字稿。
slides/TALK_SCRIPT.md逐字稿与演讲者备注(简短提示)不同,它是完整的文稿,可直接朗读或用于练习。
markdown
undefinedTalk Script: [Paper Title]
演讲稿:[论文标题]
Venue: [VENUE] [YEAR]
Talk type: [TALK_TYPE] ([TALK_MINUTES] min)
Total slides: [N]
会议:[VENUE] [年份]
报告类型:[TALK_TYPE]([TALK_MINUTES]分钟)
总幻灯片数:[N]
Slide 1: Title [0:00 - 0:15]
第1张:标题页 [0:00 - 0:15]
[Wait for chair introduction]
"Thank you [chair name]. I'm [author] from [affiliation], and today I'll be talking about [short title]."
[等待主持人介绍]
“感谢[主持人姓名]。我是来自[机构]的[作者姓名],今天我将介绍的研究是[简短标题]。”
Slide 2: Motivation [0:15 - 1:30]
第2张:动机 [0:15 - 1:30]
"Let me start with the problem. [Describe the real-world motivation in accessible terms]. This matters because [impact statement].
The current state of the art approaches this with [brief existing approach]. But there's a fundamental limitation: [gap statement]."
→ Transition: "So what's our key insight?"
“首先我想从我们要解决的问题讲起。[用通俗易懂的语言描述现实场景中的动机]。这项研究之所以重要,是因为[阐述影响]。
当前的主流方法通常是[简要介绍现有方法]。但它存在一个根本性的局限:[指出研究空白]。”
→ 转场语:“那么我们的核心创新点是什么呢?”
Slide 3: Key Insight [1:30 - 2:30]
第3张:核心创新点 [1:30 - 2:30]
"Our key observation is that [core insight in one sentence].
This leads us to propose [method name], which [one-sentence description]."
→ Transition: "Let me walk you through how this works."
“我们的核心发现是[用一句话概括核心创新]。
基于此,我们提出了[方法名称],它[一句话描述方法]。”
→ 转场语:“接下来我将为您详细介绍它的工作原理。”
Slide 4-N: [Continue for each slide...]
第4-N张:[按每张幻灯片依次展开...]
...
...
Slide [N]: Thank You [TALK_MINUTES:00]
第[N]张:致谢 [TALK_MINUTES:00]
"To summarize: we've shown that [main result]. The key takeaway is [memorable final message].
The paper and code are available at the QR code on screen. I'm happy to take questions."
“总结一下:我们的研究证明了[核心结果]。最关键的收获是[令人印象深刻的最终结论]。
论文和代码的链接已展示在屏幕的二维码中,欢迎大家提问。”
Time Budget Summary
时间分配汇总
| Slide | Topic | Duration | Cumulative |
|---|---|---|---|
| 1 | Title | 0:15 | 0:15 |
| 2 | Motivation | 1:15 | 1:30 |
| 3 | Key Insight | 1:00 | 2:30 |
| ... | ... | ... | ... |
| N | Thank You | 0:15 | [TALK_MINUTES]:00 |
Total: [sum] min (target: [TALK_MINUTES] min)
| 幻灯片序号 | 主题 | 时长 | 累计时长 |
|---|---|---|---|
| 1 | 标题页 | 0:15 | 0:15 |
| 2 | 动机 | 1:15 | 1:30 |
| 3 | 核心创新点 | 1:00 | 2:30 |
| ... | ... | ... | ... |
| N | 致谢 | 0:15 | [TALK_MINUTES]:00 |
总时长:[sum]分钟(目标:[TALK_MINUTES]分钟)
Anticipated Q&A
预期问答环节
Q1: How does this compare to [strongest baseline]?
Q1:这项研究与[最强基线方法]相比如何?
A: "[Specific comparison with numbers]. Our advantage is particularly clear in [specific scenario], where we see [X%] improvement."
A:“[结合具体数据进行对比]。我们的方法在[特定场景]下优势尤为明显,性能提升了[X%]。”
Q2: What are the main limitations?
Q2:研究的主要局限性是什么?
A: "[Honest answer]. We see this as [future work direction]."
A:“[诚实回答局限性]。我们将此视为未来的研究方向:[阐述未来工作]。”
Q3: How computationally expensive is this?
Q3:该方法的计算成本如何?
A: "[Training/inference cost]. Compared to [baseline], our method requires [comparison]."
A:“[说明训练/推理成本]。与[基线方法]相比,我们的方法[成本对比]。”
Q4: Does this generalize to [related domain]?
Q4:该方法是否能推广到[相关领域]?
A: "[Answer based on paper's discussion section]."
A:“[基于论文讨论部分回答]。”
Q5: What's the most surprising finding?
Q5:研究中最令人惊讶的发现是什么?
A: "[Interesting insight from the experiments]."
A:“[分享实验中的有趣发现]。”
Q6: How sensitive is the method to [hyperparameter/design choice]?
Q6:方法对[超参数/设计选择]的敏感度如何?
A: "[Reference ablation study if available]."
A:“[参考消融实验结果回答]。”
Q7: What's the next step for this research?
Q7:这项研究的下一步计划是什么?
A: "[Future work from conclusion]."
A:“[基于结论中的未来工作回答]。”
Q8: [Domain-specific question]
Q8:[领域特定问题]
A: "[Answer]."
undefinedA:“[对应回答]。”
undefinedFinal Output Summary
最终输出汇总
📊 Slide generation complete:
- Talk type: [TALK_TYPE] ([TALK_MINUTES] min) for [VENUE]
- Files:
slides/
├── main.tex # Beamer LaTeX source
├── main.pdf # Compiled slides (primary output)
├── presentation.pptx # Editable PowerPoint
├── SLIDE_OUTLINE.md # Slide-by-slide outline
├── SLIDES_REVIEW.md # GPT-5.4 review feedback
├── speaker_notes.md # Per-slide speaker notes
├── TALK_SCRIPT.md # Full word-for-word talk script + Q&A
├── SLIDES_STATE.json # State persistence
├── generate_pptx.py # PPTX generation script
└── figures/ # Symlinked from paper/figures/
Next steps:
1. Practice with TALK_SCRIPT.md (read aloud, time yourself)
2. Edit presentation.pptx for visual tweaks (animations, custom graphics)
3. Review Anticipated Q&A section before the talk
4. Do a dry run with a colleagueState: Write with .
SLIDES_STATE.jsonphase: 8, status: "completed"📊 幻灯片生成完成:
- 报告类型:[TALK_TYPE]([TALK_MINUTES]分钟),面向[VENUE]会议
- 生成文件:
slides/
├── main.tex # Beamer LaTeX源码
├── main.pdf # 编译后的幻灯片(主要输出)
├── presentation.pptx # 可编辑PowerPoint文件
├── SLIDE_OUTLINE.md # 逐张幻灯片大纲
├── SLIDES_REVIEW.md # GPT-5.4审核反馈
├── speaker_notes.md # 逐张演讲者备注
├── TALK_SCRIPT.md # 完整逐字演讲稿+问答预案
├── SLIDES_STATE.json # 状态持久化文件
├── generate_pptx.py # PPTX生成脚本
└── figures/ # 从paper/figures/软链接的图片
后续建议:
1. 使用TALK_SCRIPT.md进行练习(大声朗读,计时)
2. 编辑presentation.pptx进行视觉优化(动画、自定义图形)
3. 报告前熟悉预期问答环节的内容
4. 与同事进行模拟报告演练状态保存:写入,标记。
SLIDES_STATE.jsonphase: 8, status: "completed"Key Rules
核心规则
- Large file handling: If the Write tool fails due to file size, immediately retry using Bash () to write in chunks. Do NOT ask the user for permission — just do it silently.
cat << 'EOF' > file - One message per slide. If a slide has two ideas, split it into two slides.
- Do NOT fabricate data. All numbers must come from .
paper/sections/*.tex - Bullet points only — never full sentences on slides. Sentence fragments are fine.
- Figure slides: figure ≥60% of slide area. The figure IS the content.
- Progressive disclosure: Use or
\pausefor complex method slides.\onslide - De-AI polish: Remove watch words from all slide text and talk script.
- Do NOT hallucinate citations. Reference only papers cited in the paper.
- Opening hook matters: Never start with "In this paper, we..." — start with the problem or a provocative question.
- Font size minimums: Title ≥28pt, body ≥20pt, footnotes ≥14pt.
- Feishu notifications are optional. If exists, send notifications. If absent, skip.
~/.claude/feishu.json
- 大文件处理:若写入工具因文件大小失败,立即使用Bash命令()分块写入,无需询问用户,静默执行。
cat << 'EOF' > file - 每张幻灯片仅传递一个核心信息:若一张幻灯片包含两个独立观点,必须拆分为两张。
- 不得编造数据:所有数据必须来自。
paper/sections/*.tex - 仅使用要点:幻灯片上禁止出现完整句子,短语即可。
- 图片页:图片占比≥60%:图片是内容的核心。
- 逐步揭示复杂内容:对复杂方法页使用或
\pause命令。\onslide - 去AI化润色:从所有幻灯片文本和演讲稿中移除AI生成痕迹明显的词汇。
- 不得虚构引用:仅引用论文中已有的文献。
- 开场要有吸引力:绝不能以“在本文中,我们...”开头,需从问题或场景切入。
- 字体大小下限:标题≥28pt,正文≥20pt,脚注≥14pt。
- 飞书通知可选:若存在则发送通知,否则跳过。
~/.claude/feishu.json
Parameter Pass-Through
参数传递示例
/paper-slides "paper/" — talk_type: oral, venue: ICML, minutes: 20, aspect: 4:3, notes: false| Parameter | Default | Description |
|---|---|---|
| NeurIPS | Conference for color scheme |
| spotlight | oral/spotlight/poster-talk/invited |
| 15 | Talk duration |
| 16:9 | Aspect ratio (16:9 / 4:3) |
| true | Generate speaker notes |
| pdflatex | LaTeX engine |
| false | Skip checkpoints |
/paper-slides "paper/" — talk_type: oral, venue: ICML, minutes: 20, aspect: 4:3, notes: false| 参数名 | 默认值 | 说明 |
|---|---|---|
| NeurIPS | 会议名称,决定配色方案 |
| spotlight | 报告类型 |
| 15 | 报告时长(分钟) |
| 16:9 | 幻灯片宽高比 |
| true | 是否生成演讲者备注 |
| pdflatex | LaTeX引擎 |
| false | 是否跳过检查点直接执行 |