关于 paper-slides
paper-slides 将编译完成的研究论文转为会议演示文稿,适用于口头报告、spotlight、海报短讲或特邀报告。它围绕论文叙事生成大纲和 Beamer 幻灯片,并涵盖会场配色、讲者备注、编译与审阅流程。
主要功能
- 01从论文生成幻灯片大纲
- 02按报告类型规划页数
- 03会议会场配色方案
- 04生成 Beamer LaTeX
- 05讲者备注与 PDF 输出
- 06审阅与状态续作
适用场景
- 01根据编译论文准备报告
- 02按报告时长调整幻灯片内容
- 03创建符合会场配色的 Beamer 文稿
- 04恢复中断的幻灯片工作流
MCP 相关
该技能包含通过 Codex MCP 审阅演示文稿的步骤;审阅路由也可选择其他已配置的审阅方式。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ wanshuiyin/ auto-claude-code-research-in-sleep --skill paper-slides安装后在 Claude Code 中输入/paper-slides确认已加载。
详细介绍
Paper Slides:从论文到会议报告
每次审稿人时段开始前,请遵循 Selectable Reviewers: 通过规范的辅助解析器使用
reviewer_route.py,按顺序解析调用 →.aris/reviewer.json→ Claude Code 默认值(Codex MCP),并保留 此时段的层级、全新上下文、源文件/图像输入和确定性门槛。 下方的 Codex 示例/固定配置仅适用于backend=codex;其他路由使用各自的首次调用/回复约定。保存路由和实际返回的身份; 不可用的选择记为REVIEW_UNAVAILABLE。根据实际系列/完成情况/范围进行分类。 将调用中的审稿人/模型/effort 覆盖项传递给带有审稿人的子任务。生成工作进程保持不变。
根据以下内容生成会议演示幻灯片:$ARGUMENTS
上下文
此技能在工作流 3(/paper-writing)之后运行。它将编译好的论文转换为幻灯片,用于会议口头报告、Spotlight 演讲或海报闪电演讲。
与海报(单页、视觉优先)不同,幻灯片讲述的是一个随时间展开的故事:每张幻灯片都在前一张的基础上推进,逐步展开研究叙事。好的报告会先让听众理解为什么这很重要,再展示做了什么。
常量
- VENUE =
NeurIPS— 目标会议,决定配色方案。支持:NeurIPS、ICML、ICLR、AAAI、ACL、EMNLP、CVPR、ECCV、GENERIC。可通过参数覆盖。 - TALK_TYPE =
spotlight— 报告形式。选项:oral(15-20 分钟)、spotlight(5-8 分钟)、poster-talk(3-5 分钟)、invited(30-45 分钟)。决定幻灯片数量和内容深度。 - TALK_MINUTES = 15 — 报告时长,单位为分钟。自动调整幻灯片数量(oral 约每分钟 1 张,spotlight 约每分钟 1.5 张)。如有需要,可明确覆盖。
- ASPECT_RATIO =
16:9— 幻灯片宽高比。选项:16:9(默认,现代投影仪)、4:3(传统格式)。 - SPEAKER_NOTES = true — 在 beamer 中生成
\note{}块,并生成对应的 PPTX 备注。设为false可生成不带备注的简洁幻灯片。 - PAPER_DIR =
paper/— 存放编译后论文的目录。 - OUTPUT_DIR =
slides/— 所有幻灯片文件的输出目录。 - REVIEWER_MODEL =
gpt-6-astra— 通过 Codex MCP 用于幻灯片审查的模型。 - AUTO_PROCEED = false — 在每个检查点,始终等待用户明确确认。
- COMPILER =
latexmk— LaTeX 构建工具。 - ENGINE =
pdflatex— LaTeX 引擎。处理 CJK 文本时使用xelatex。
💡 覆盖示例:
/paper-slides "paper/" — talk_type: oral, venue: ICML, minutes: 20, aspect: 4:3
可选:风格参考(— style-ref: <source>,选择启用)
用户可借助参考论文,引导报告的结构节奏(故事节拍、定理密度、沿用源论文的图表密度)。默认关闭——用户未传入 — style-ref 时,不做任何改变。
只有当 $ARGUMENTS 中出现 — style-ref: <source> 时,才先运行此辅助工具:
# Resolve $STYLE_HELPER via the canonical strict-safe chain (see
# shared-references/integration-contract.md §2). Policy A — gate:
# unresolved helper means --style-ref cannot be satisfied, so abort.
cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" || exit 1
if [ -z "${ARIS_REPO:-}" ] && [ -f .aris/installed-skills.txt ]; then
ARIS_REPO=$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills.txt 2>/dev/null) || true
fi
if [ -z "${ARIS_REPO:-}" ] && [ -f "$HOME/.aris/repo" ]; then
ARIS_REPO=$(cat "$HOME/.aris/repo" 2>/dev/null) || true
fi
STYLE_HELPER=".aris/tools/extract_paper_style.py"
[ -f "$STYLE_HELPER" ] || STYLE_HELPER="tools/extract_paper_style.py"
[ -f "$STYLE_HELPER" ] || { [ -n "${ARIS_REPO:-}" ] && STYLE_HELPER="$ARIS_REPO/tools/extract_paper_style.py"; }
[ -f "$STYLE_HELPER" ] || {
echo "ERROR: extract_paper_style.py not resolved at .aris/tools/, tools/, \$ARIS_REPO/tools/, or via ~/.aris/repo." >&2
echo " Fix: rerun bash tools/install_aris.sh or smart_update.sh (refreshes ~/.aris/repo), export ARIS_REPO, or copy the helper to tools/." >&2
echo " --style-ref cannot be satisfied; aborting." >&2
exit 1
}
STYLE_STATUS=0
CACHE=$(python3 "$STYLE_HELPER" --source "<source>") || STYLE_STATUS=$?
case "$STYLE_STATUS" in
0) ;; # use $CACHE/style_profile.md as structural guidance
2) echo "warning: style-ref skipped (missing optional dep)" >&2 ;;
3) echo "error: --style-ref source failed; aborting slides" >&2 ; exit 1 ;;
*) echo "error: helper failed unexpectedly; aborting slides" >&2 ; exit 1 ;;
esac
支持的来源:本地 TeX 目录/文件、本地 PDF、arXiv ID、http(s) URL。不接受 Overleaf URL/ID——请先通过 /overleaf-sync setup <id> 克隆,再传入本地克隆路径。
严格规则(完整约定见 tools/extract_paper_style.py 文档字符串):
- 使用
style_profile.md对齐章节预算倾向和定理环境密度。报告类型对应的幻灯片数量仍优先。 - 绝不从缓存可访问的任何内容中复制演讲者备注文本、幻灯片标题或示例。报告内容应来自用户的论文,而非参考资料。
- 绝不将
— style-ref(或缓存内容)传给 GPT-6-Astra 审查子 Agent——审查者必须根据报告本身的优劣判断其清晰度。
演讲类型 → 幻灯片数量
| 演讲类型 | 时长 | 幻灯片数量 | 内容深度 |
|---|---|---|---|
poster-talk | 3-5 分钟 | 5-8 | 问题 + 1 张方法幻灯片 + 1 张结果幻灯片 + 结论 |
spotlight | 5-8 分钟 | 8-12 | 问题 + 2 张方法幻灯片 + 2 张结果幻灯片 + 结论 |
oral | 15-20 分钟 | 15-22 | 完整故事,包括动机、方法细节、实验和分析 |
invited | 30-45 分钟 | 25-40 | 全面介绍:背景、相关工作、深入的方法、详尽的结果和讨论 |
会场配色方案
与 /paper-poster-html 相同:
| 会场 | 主色 | 强调色 | 背景 | 文本 |
|---|---|---|---|---|
| NeurIPS | #8B5CF6 | #2563EB | #FFFFFF | #1E1E1E |
| ICML | #DC2626 | #1D4ED8 | #FFFFFF | #1E1E1E |
| ICLR | #059669 | #0284C7 | #FFFFFF | #1E1E1E |
| CVPR | #2563EB | #7C3AED | #FFFFFF | #1E1E1E |
| GENERIC | #334155 | #2563EB | #FFFFFF | #1E1E1E |
状态持久化(紧凑恢复)
每个阶段结束后,将状态保存到 slides/SLIDES_STATE.json:
{
"phase": 3,
"venue": "NeurIPS",
"talk_type": "spotlight",
"slide_count": 10,
"codex_thread_id": "019cfcf4-...",
"status": "in_progress",
"timestamp": "2026-03-18T15:00:00"
}
启动时:如果 SLIDES_STATE.json 存在,且其中 "status": "in_progress" 并且时间在 24 小时以内 → 恢复进度。否则 → 全新开始。
工作流
阶段 0:输入验证与设置
-
检查先决条件:
which pdflatex && which latexmk -
验证论文是否存在:
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 -
检测 CJK:如果论文包含中文/日文/韩文,则将 ENGINE 设为
xelatex -
确定幻灯片数量:根据上表中的 TALK_TYPE 和 TALK_MINUTES 确定
-
检查是否恢复进度:如果
slides/SLIDES_STATE.json存在,则读取
状态:将 SLIDES_STATE.json 写入 phase: 0。
阶段 1:内容提取与幻灯片大纲
读取 paper/sections/*.tex,并逐张构建幻灯片大纲。
按演讲类型划分的幻灯片模板:
口头报告(15-22 张幻灯片)
| 幻灯片 | 用途 | 内容来源 | 是否需要图表? |
|---|---|---|---|
| 1 | 标题 | 论文元数据 | 否 |
| 2 | 大纲 | 章节标题 | 否 |
| 3-4 | 动机与问题 | 引言 | 可选 |
| 5 | 核心见解 | 引言(贡献) | 否 |
| 6-9 | 方法 | 方法章节 | 是(主图) |
| 10-14 | 结果 | 实验 | 是(每张幻灯片一张) |
| 15-16 | 分析/消融实验 | 实验 | 是 |
| 17 | 局限性 | 结论 | 否 |
| 18 | 结论/要点 | 结论 | 否 |
| 19 | 致谢 + QR 码 | — | QR 码 |
Spotlight 报告(8-12 张幻灯片)
| 幻灯片 | 用途 | 内容来源 | 是否需要图表? |
|---|---|---|---|
| 1 | 标题 | 论文元数据 | 否 |
| 2-3 | 问题 + 重要性 | 引言 | 可选 |
| 4 | 核心见解 | 贡献 | 否 |
| 5-6 | 方法 | 方法(精简版) | 是(主图) |
| 7-9 | 结果 | 仅关键结果 | 是 |
| 10 | 要点 | 结论 | 否 |
| 11 | 致谢 + QR 码 | — | QR 码 |
Poster 报告(5-8 张幻灯片)
| 幻灯片 | 用途 | 内容来源 | 是否需要图表? |
|---|---|---|---|
| 1 | 标题 | 论文元数据 | 否 |
| 2 | 问题 | 引言(1 张幻灯片) | 否 |
| 3 | 方法 | 方法(1 张幻灯片) | 是 |
| 4-5 | 结果 | 仅关键结果 | 是 |
| 6 | 要点 + QR 码 | 结论 | QR 码 |
为每张幻灯片指定:
- 标题(最多 8 个词)
- 3-5 个项目符号(每项最多 8 个词)
- 图表引用(如有),取自 paper/figures/
- 演讲者备注(2-3 句讲稿)
- 时间分配(秒)
输出:slides/SLIDE_OUTLINE.md
🚦 检查点:
📊 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?
⛔ 在此停止并等待用户回复。 这是最关键的检查点——大纲决定了整个演讲的流程。
选项:
- "go" → 继续阶段 2
- 调整(例如:"合并幻灯片 3-4"、"添加演示幻灯片"、"删去消融实验")→ 修改
- "stop" → 保存到
slides/SLIDE_OUTLINE.md
状态:将 SLIDES_STATE.json 写入 phase: 1。
阶段 2:逐页撰写内容草稿
为大纲中的每张幻灯片撰写实际内容。
演示规则(严格执行):
| 规则 | 理由 |
|---|---|
| 每张幻灯片只传达一个信息 | 如果一张幻灯片包含两个观点,就拆分 |
| 每张幻灯片最多 6 行 | 超过 6 行就会变成文字墙 |
| 每行最多 8 个词 | 文字太长时,观众会阅读而非聆听 |
| 使用句子片段,而非完整句子 | “F1 提升 3.2%”,而非“我们的方法将 F1 分数提升了 3.2 个百分点” |
| 图表幻灯片:图表占比 ≥60% | 图表就是内容;项目符号只是注释 |
| 关键数字加粗 | “准确率达到 94.3%” |
| 渐进式呈现 | 对复杂幻灯片使用 \pause 或 \onslide |
| 不设相关工作幻灯片 | 邀请报告(30 分钟以上)除外 |
对于每张幻灯片,生成:
\frametitle{}- 内容(itemize 或图表 + 说明文字)
\note{},包含演讲者文本(如果 SPEAKER_NOTES=true)
阶段 3:生成幻灯片 LaTeX
使用 beamer 创建 slides/main.tex。
模板结构:
\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}
创建图表符号链接:
ln -sf ../paper/figures/*.pdf slides/figures/ 2>/dev/null
ln -sf ../paper/figures/*.png slides/figures/ 2>/dev/null
关键格式规则:
- 标题字体:≥28pt,使用会议主色
- 正文字体:≥20pt
- 脚注:≥14pt
- 不显示导航符号
- 页码位于右下角
- 简洁的白色背景(无渐变或装饰元素)
阶段 4:编译幻灯片
cd slides && latexmk -$ENGINE -interaction=nonstopmode main.tex
错误处理循环(最多 3 次尝试):
- 解析错误日志
- 修复:缺失的包、未定义的命令、文件未找到、溢出边框
- 重新编译
验证:
# Check slide count matches outline
pdfinfo slides/main.pdf | grep Pages
如果页数与大纲相差较大(超过 2 张幻灯片),请调查原因。
状态: 将 SLIDES_STATE.json 写入 phase: 4。
阶段 5:Codex MCP 审核
将幻灯片大纲和选定的 LaTeX 幻灯片帧发送给 GPT-6-Astra xhigh:
请先处理此审核步骤;以下是
backend=codex示例。
mcp__codex__codex:
model: gpt-6-astra
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)
应用修复。如果 LaTeX 有更改,请重新编译。
如果选定的审核器不可用,请在
SLIDES_STATE.json中记录REVIEW_UNAVAILABLE。保留现有仅草稿的流程并继续执行阶段 6;不要标记为已审核,也不要更换提供方。
将审核结果保存到 slides/SLIDES_REVIEW.md。
状态: 将 SLIDES_STATE.json 写入 phase: 5。
阶段 6:演讲者备注
确保每张幻灯片都包含一个 \note{} 块,其中包括:
- 要说的内容(2-3 个完整句子,采用对话式语气)
- 时间提示(例如:“这里讲 1 分钟”“简短带过 — 20 秒”)
- 过渡到下一张幻灯片的语句(例如:“那么,我们究竟该如何实现?我来展示一下……”)
另外,生成独立备份文件 slides/speaker_notes.md:
# Speaker Notes
## Slide 1: Title
[No speaking — wait for introduction]
## Slide 2: Motivation
"Thank you. So let me start with the problem we're trying to solve..."
[Time: 1.5 min]
## Slide 3: Problem Statement
"Specifically, the challenge is..."
→ Transition: "To address this, our key insight is..."
[Time: 1 min]
...
状态: 将 SLIDES_STATE.json 写入 phase: 6。
阶段 7:导出 PowerPoint
使用 python-pptx 生成可编辑的 PPTX:
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 备注栏
- 标题幻灯片使用特殊格式(居中,标题字号更大)
- “谢谢”幻灯片的文字居中
- 全程应用会议配色方案
cd slides && python3 generate_pptx.py
# Output: slides/presentation.pptx
⚠️ 如果未安装
python-pptx,请跳过并添加备注:“安装pip install python-pptx以启用 PowerPoint 导出。”
状态: 将 SLIDES_STATE.json 写入 phase: 7。
阶段 8:完整演讲稿
生成 slides/TALK_SCRIPT.md,作为完整的逐字演讲稿。
这与演讲者备注(简短提示)不同。演讲稿是完整的讲稿,可以朗读或用于练习。
# Talk Script: [Paper Title]
**Venue**: [VENUE] [YEAR]
**Talk type**: [TALK_TYPE] ([TALK_MINUTES] min)
**Total slides**: [N]
---
## Slide 1: Title [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]
"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]
"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...]
...
---
## Slide [N]: Thank You [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)
---
## Anticipated Q&A
### Q1: How does this compare to [strongest baseline]?
**A**: "[Specific comparison with numbers]. Our advantage is particularly clear in [specific scenario], where we see [X%] improvement."
### Q2: What are the main limitations?
**A**: "[Honest answer]. We see this as [future work direction]."
### Q3: How computationally expensive is this?
**A**: "[Training/inference cost]. Compared to [baseline], our method requires [comparison]."
### Q4: Does this generalize to [related domain]?
**A**: "[Answer based on paper's discussion section]."
### Q5: What's the most surprising finding?
**A**: "[Interesting insight from the experiments]."
### Q6: How sensitive is the method to [hyperparameter/design choice]?
**A**: "[Reference ablation study if available]."
### Q7: What's the next step for this research?
**A**: "[Future work from conclusion]."
### Q8: [Domain-specific question]
**A**: "[Answer]."
最终输出摘要
📊 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-6-Astra 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 colleague
状态: 将 SLIDES_STATE.json 写入 phase: 8, status: "completed"。
推荐的后续步骤:/slides-polish
此技能生成初版 Beamer + PPTX 后,常见的偏差在于
字体比例 + 单页布局,而非内容。运行
/slides-polish,将其作为专门的生成后润色阶段:它会根据参考视觉效果(例如,先前的学术报告)逐页进行 Codex 审查,将 PPTX 字体调大到适合投影仪阅读的字号,修复文本框溢出,并应用修复模式目录(斜体样式泄漏、破折号间距、图像宽高比、中文字体提示、匿名占位符)。
/slides-polish 只读内容(不修改论点/数字/引文),并逐字保留演讲者备注。调用方式:
/slides-polish slides/ — reference: <ref-pdf> [— style: generic | why-rf | <venue>]
对于较短的演示文稿(少于 5 张幻灯片),或需要彻底重新设计时,请跳过此步骤(改为重新运行 /paper-slides)。
关键规则
- 大文件处理:如果 Write 工具因文件过大而失败,请立即改用 Bash(
cat << 'EOF' > file)分块写入。不要征求用户许可——直接静默处理。 - 每张幻灯片只讲一个要点。 如果一张幻灯片包含两个想法,请拆成两张。
- 不要编造数据。 所有数字都必须来自
paper/sections/*.tex。 - 只使用项目符号——幻灯片上不要出现完整句子。可以使用句子片段。
- 图表幻灯片:图表面积 ≥60%。 图表就是内容。
- 渐进式呈现:复杂的方法幻灯片使用
\pause或\onslide。 - 去 AI 化润色:从所有幻灯片文本和演讲稿中删除禁用词。
- 不要臆造引文。 只引用论文中引用的文献。
- 开场钩子很重要:不要以“In this paper, we...”开头——从问题或引人深思的问题开始。
- 最小字号:标题 ≥28pt,正文 ≥20pt,脚注 ≥14pt。
- 飞书通知为可选项。 如果存在
~/.claude/feishu.json,则发送通知;如果不存在,则跳过。
参数透传
/paper-slides "paper/" — talk_type: oral, venue: ICML, minutes: 20, aspect: 4:3, notes: false
| 参数 | 默认值 | 说明 |
|---|---|---|
venue | NeurIPS | 配色方案对应的会议 |
talk_type | spotlight | oral/spotlight/poster-talk/invited |
minutes | 15 | 报告时长 |
aspect | 16:9 | 宽高比(16:9/4:3) |
notes | true | 生成演讲者备注 |
engine | pdflatex | LaTeX 引擎 |
auto proceed | false | 跳过检查点 |