关于 paper-slide-deck
paper-slide-deck 可将学术论文或提供的内容制作成幻灯片图像及演示文件。它支持从 PDF 检测并提取图表,也可配置风格、受众、语言、页数或仅生成大纲。
主要功能
- 01从 PDF 或文本生成幻灯片
- 02检测并提取论文图表
- 03选择视觉风格和受众
- 04设置语言和幻灯片数量
- 05导出为 PowerPoint 或 PDF
适用场景
- 01为学术会议论文准备幻灯片
- 02将报告整理为高管演示文稿
- 03在生成图像前创建幻灯片大纲
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ leonchaox/ qinyan-academic-skills --skill paper-slide-deck安装后在 Claude Code 中输入/paper-slide-deck确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/analysis-framework.mdbase-prompt.mdcontent-rules.mdfigure-container-template.mdmodification-guide.mdoutline-template.mdreferences/styles/academic-paper.mdblueprint.mdbold-editorial.mdchalkboard.mdcorporate.mddark-atmospheric.mdeditorial-infographic.mdfantasy-animation.mdintuition-machine.mdminimal.mdnotion.mdpixel-art.mdscientific.mdsketch-notes.mdvector-illustration.mdvintage.mdwatercolor.mdscripts/apply-template.tsdetect-figures.tsextract-figure.tsgenerate-slides.pymerge-to-pdf.tsmerge-to-pptx.tspackage-lock.json详细介绍
论文幻灯片生成器
将学术论文和内容转换为专业的幻灯片图像,并自动提取图表。
用法
/paper-slide-deck path/to/paper.pdf
/paper-slide-deck path/to/paper.pdf --style academic-paper
/paper-slide-deck path/to/content.md --style sketch-notes
/paper-slide-deck path/to/content.md --audience executives
/paper-slide-deck path/to/content.md --lang zh
/paper-slide-deck path/to/content.md --slides 10
/paper-slide-deck path/to/content.md --outline-only
/paper-slide-deck # Then paste content
脚本目录
重要:所有脚本均位于此技能的 scripts/ 子目录中。
Agent 执行说明:
- 将此 SKILL.md 文件所在目录路径确定为
SKILL_DIR - 脚本路径 =
${SKILL_DIR}/scripts/<script-name>.ts - 将本文档中所有
${SKILL_DIR}替换为实际路径
脚本参考:
| 脚本 | 用途 |
|---|---|
scripts/generate-slides.py | 通过 Gemini API 生成 AI 幻灯片(Python) |
scripts/merge-to-pptx.ts | 将幻灯片合并为 PowerPoint |
scripts/merge-to-pdf.ts | 将幻灯片合并为 PDF |
scripts/detect-figures.ts | 自动检测 PDF 中的图表/表格 |
scripts/extract-figure.ts | 从 PDF 页面提取图表(使用 PyMuPDF 作为后备方案) |
scripts/apply-template.ts | 应用图表容器模板 |
选项
| 选项 | 说明 |
|---|---|
--style <name> | 视觉风格(参见风格库) |
--audience <type> | 目标受众:初学者、中级用户、专家、高管、普通受众 |
--lang <code> | 输出语言(en、zh、ja 等) |
--slides <number> | 目标幻灯片数量 |
--outline-only | 仅生成大纲,跳过图像生成 |
风格库
| 风格 | 说明 | 最适合 |
|---|---|---|
academic-paper | 简洁专业、图表精准 | 学术会议演讲、论文答辩 |
blueprint(默认) | 技术示意图、网格纹理 | 架构、系统设计 |
chalkboard | 黑色黑板、彩色粉笔 | 教育、教程、课堂 |
notion | SaaS 仪表板、卡片式布局 | 产品演示、SaaS、B2B |
bold-editorial | 杂志封面、醒目字体、深色风格 | 产品发布、主题演讲 |
corporate | 海军蓝/金色、结构化布局 | 投资者演示文稿、提案 |
dark-atmospheric | 电影感深色模式、发光点缀 | 娱乐、游戏 |
editorial-infographic | 杂志式解说、扁平插画 | 技术解说、研究 |
fantasy-animation | 吉卜力/迪士尼风格、手绘 | 教育、故事讲述 |
intuition-machine | 技术简报、双语标签 | 技术文档、学术内容 |
minimal | 极简风格、最大限度留白 | 高管简报、高端内容 |
pixel-art | 复古 8 位风格、粗颗粒像素 | 游戏、开发者演讲 |
scientific | 学术图示、精准标注 | 生物、化学、医学 |
sketch-notes | 手绘、温暖友好 | 教育、教程 |
vector-illustration | 扁平矢量、复古可爱 | 创意内容、儿童内容 |
vintage | 做旧纸张、历史风格 | 历史、传承、传记 |
watercolor | 手绘纹理、自然温暖 | 生活方式、健康、旅行 |
自动样式选择
| 内容信号 | 选定样式 |
|---|---|
| 论文、学位论文、答辩、会议、ieee、acm、icml、neurips、cvpr、acl、aaai、iclr | academic-paper |
| 教程、学习、教育、指南、入门、初学者 | sketch-notes |
| 教室、教学、学校、粉笔板、黑板 | chalkboard |
| 架构、系统、数据、分析、技术 | blueprint |
| 创意、儿童、孩子、可爱、插画 | vector-illustration |
| 简报、双语、信息图、概念 | intuition-machine |
| 高管、极简、整洁、简单、优雅 | minimal |
| SaaS、产品、仪表板、指标、生产力 | notion |
| 投资者、季度、商业、企业、提案 | corporate |
| 发布、营销、主题演讲、大胆、影响力、杂志 | bold-editorial |
| 娱乐、音乐、游戏、创意、氛围感 | dark-atmospheric |
| 解释、新闻、科学传播 | editorial-infographic |
| 故事、奇幻、动画、魔法、奇妙 | fantasy-animation |
| 游戏、复古、像素、开发者、怀旧 | pixel-art |
| 生物学、化学、医学、路径、科学 | scientific |
| 历史、遗产、复古、探险、历史性 | vintage |
| 生活方式、健康、旅行、艺术、自然 | watercolor |
| 默认 | blueprint |
布局图库
可选的单页布局提示。请在大纲的 // LAYOUT 部分指定。
单页专属布局
| 布局 | 描述 | 适用场景 |
|---|---|---|
title-hero | 居中显示大标题和副标题 | 封面页、章节分隔页 |
quote-callout | 突出显示引言及出处 | 用户评价、关键见解 |
key-stat | 以一个醒目的大数字为焦点 | 影响力统计、指标 |
split-screen | 一半图片、一半文字 | 功能亮点、比较 |
icon-grid | 带标签的图标网格 | 功能、能力、优势 |
two-columns | 内容分布于均衡的两列 | 配对信息、两项要点 |
three-columns | 内容分布于三列 | 三方比较、分类 |
image-caption | 全幅图片加文字叠层 | 视觉叙事、情感表达 |
agenda | 带重点标记的编号列表 | 会议概览、路线图 |
bullet-list | 结构化项目符号列表 | 简单内容、列表 |
信息图衍生布局
| 布局 | 描述 | 适用场景 |
|---|---|---|
linear-progression | 从左到右的顺序流程 | 时间线、分步流程 |
binary-comparison | 并排比较 A 与 B | 前后对比、优缺点 |
comparison-matrix | 多因素网格 | 功能比较 |
hierarchical-layers | 金字塔或堆叠层级 | 优先级、重要性 |
hub-spoke | 中心节点向外辐射多个项目 | 概念图、生态系统 |
bento-grid | 大小不一的卡片 | 概览、摘要 |
funnel | 逐步收窄的阶段 | 转化、筛选 |
dashboard | 带图表和数字的指标 | KPI、数据展示 |
venn-diagram | 相互重叠的圆 | 关系、交集 |
circular-flow | 持续循环的周期 | 循环流程 |
winding-roadmap | 带里程碑的弯曲路径 | 旅程、时间线 |
tree-branching | 父子层级结构 | 组织结构图、分类体系 |
iceberg | 可见层与隐藏层 | 表象与深层内容 |
bridge | 展示带有连接的鸿沟 | 问题与解决方案 |
学术专用布局
| 布局 | 描述 | 适用场景 |
|---|---|---|
paper-title | 标题、作者、所属机构、会议 | 会议论文封面 |
outline-agenda | 带重点标注的编号章节列表 | 演讲结构概览 |
methods-diagram | 居中的架构/流程图 | 方法、系统设计 |
results-chart | 图表区域 + 数据注释 | 定量结果 |
equation-focus | 居中的公式 + 变量定义 | 数学推导 |
qualitative-grid | 2x2 或 3x2 图片对比网格 | 视觉结果、消融实验 |
references-list | 编号引用列表 | 重要参考文献页 |
contributions | 编号贡献点 | 贡献总结 |
用法:在幻灯片的 // LAYOUT 部分添加 Layout: <name>,以引导视觉排版。
设计理念
此演示文稿面向阅读与分享,而非现场演示:
- 每张幻灯片都必须无需口头讲解即可自明
- 滚动浏览时,内容应按逻辑顺序组织
- 在每张幻灯片中包含所有必要背景信息
- 针对社交媒体分享和离线阅读进行优化
文件管理
输出目录
每个会话都会创建一个以内容 slug 命名的独立目录:
slide-deck/{topic-slug}/
├── source-{slug}.{ext} # Source files (text, images, etc.)
├── outline.md
├── outline-{style}.md # Style variant outlines
├── prompts/
│ └── 01-slide-cover.md, 02-slide-{slug}.md, ...
├── 01-slide-cover.png, 02-slide-{slug}.png, ...
├── {topic-slug}.pptx
└── {topic-slug}.pdf
Slug 生成:
- 从内容中提取主要主题(2-4 个词,使用 kebab-case)
- 示例:"Introduction to Machine Learning" →
intro-machine-learning
冲突解决
如果 slide-deck/{topic-slug}/ 已存在:
- 追加时间戳:
{topic-slug}-YYYYMMDD-HHMMSS - 示例:
intro-ml已存在 →intro-ml-20260118-143052
源文件
将所有源文件复制并命名为 source-{slug}.{ext}:
source-article.md(主要文本内容)source-diagram.png(对话中的图片)source-data.xlsx(其他文件)
支持多种来源:文本、图片以及对话中的文件。
工作流
第 1 步:分析内容
- 保存源内容(如果是粘贴的内容,则保存为
source.md) - 按照
references/analysis-framework.md进行深入内容分析 - 确定风格(使用
--style或根据特征自动选择) - 检测语言(源语言与用户偏好)
- 规划幻灯片数量(
--slides或动态确定) - 对于学术论文(含图片的 PDF):运行自动图片检测:
这会输出一个 JSON 文件,其中包含所有检测到的图片/表格、页码和说明文字。npx -y bun ${SKILL_DIR}/scripts/detect-figures.ts --pdf source-paper.pdf --output figures.json
第 2 步:生成大纲变体
- 根据内容分析生成 3 种风格的大纲变体
- 按照
references/outline-template.md组织结构 - 为学术论文自动填充 IMAGE_SOURCE:
- 读取第 1 步生成的
figures.json - 使用
references/analysis-framework.md第 8 节中的规则,将图片映射到幻灯片 - 自动将
// IMAGE_SOURCE块添加到适当的幻灯片:- 架构/流程图 → 方法类幻灯片(
Source: extract) - 结果表格 → 定量结果类幻灯片(
Source: extract) - 对比图片 → 定性结果类幻灯片(
Source: extract) - 概念图/简单图表 → 交由 AI 生成(
Source: generate或省略)
- 架构/流程图 → 方法类幻灯片(
- 读取第 1 步生成的
- 为每种变体保存为
outline-{style}.md
第 3 步:用户确认
通过一次 AskUserQuestion 提出所有适用选项:
| 问题 | 询问时机 |
|---|---|
| 风格变体 | 始终询问(3 个选项 + 自定义) |
| 语言 | 仅当源语言 ≠ 用户语言时询问 |
选择后:
- 将选定的
outline-{style}.md复制为outline.md - 如果用户提出要求,则以不同语言重新生成
- 用户可以编辑
outline.md进行微调
如果指定了 --outline-only,则在此处停止。
步骤 4:生成提示词
- 阅读
references/base-prompt.md - 与大纲中的风格说明结合
- 添加幻灯片专属内容
- 如果大纲中指定了
Layout:,在提示词中加入布局指导:- 参考布局特征来安排图像构图
- 示例:
Layout: hub-spoke→ “将核心概念置于中央,相关元素向外辐射”
- 保存到
prompts/目录
步骤 5:选择图像生成方式
生成图像前,请用户选择生成方式:
使用 AskUserQuestion,提供以下选项:
| 选项 | 标签 | 描述 |
|---|---|---|
| 1 | Gemini API(推荐) | 通过 Python 使用 Google 官方 API。需要设置 GOOGLE_API_KEY 环境变量。 |
| 2 | Gemini Web(基于浏览器) | ⚠️ 使用逆向工程得到的 Web API。无需 API 密钥,但可能无法正常工作。 |
根据选择:
选项 1:Gemini API(Python)
- 验证 API 密钥:检查
GOOGLE_API_KEY或GEMINI_API_KEY环境变量 - 运行生成脚本:
python ${SKILL_DIR}/scripts/generate-slides.py <slide-deck-dir> --model gemini-3-pro-image-preview
脚本功能:
- 如果缺少
google-genai包,则自动安装 - 使用指数退避的重试逻辑(重试 3 次)
- 跳过已生成的幻灯片(> 10KB)
- 支持通过
--model标志指定自定义模型 - 输出到
slides/子目录
故障排除:
- 如果出现服务器断开连接错误,脚本会自动重试
- 如果持续失败,请重新运行脚本(已完成的幻灯片会被跳过)
- 如果多次失败,请检查 API 配额
选项 2:Gemini Web 技能
-
同意检查:读取以下位置的同意文件:
- Windows:
$APPDATA/baoyu-skills/gemini-web/consent.json - macOS:
~/Library/Application Support/baoyu-skills/gemini-web/consent.json - Linux:
~/.local/share/baoyu-skills/gemini-web/consent.json
- Windows:
-
如果没有同意记录或版本不匹配,显示免责声明并询问:
⚠️ DISCLAIMER: This uses a reverse-engineered Gemini Web API (NOT official). Risks: May break anytime, no support, possible account risk. -
针对每张幻灯片,运行:
npx -y bun ${GEMINI_WEB_SKILL_DIR}/scripts/main.ts \ --promptfiles prompts/01-slide-cover.md \ --image 01-slide-cover.png \ --sessionId slides-{topic-slug}-{timestamp}其中,
GEMINI_WEB_SKILL_DIR=baoyu-danger-gemini-web技能目录的路径。 -
代理支持:如果用户处于受限网络中,请在前面加上:
HTTP_PROXY=http://127.0.0.1:7890 HTTPS_PROXY=http://127.0.0.1:7890
步骤 5.5:处理 IMAGE_SOURCE(自动提取图表)
对于学术演示文稿,已在步骤 2 中根据步骤 1 的图表检测结果自动填充 IMAGE_SOURCE 元数据。
自动执行:
-
解析大纲,找出包含
Source: extract的幻灯片 -
创建图表目录:
mkdir -p figures -
针对每张需要提取的幻灯片,自动执行:
- 从元数据中读取图表编号、页码和标题
- 运行图表提取脚本:
npx -y bun ${SKILL_DIR}/scripts/extract-figure.ts \ --pdf source-paper.pdf \ --page <page-number> \ --output figures/figure-<N>.png - 运行模板应用脚本:
npx -y bun ${SKILL_DIR}/scripts/apply-template.ts \ --figure figures/figure-<N>.png \ --title "<slide-headline>" \ --caption "Figure <N>: <caption-text>" \ --output <NN>-slide-<slug>.png - 报告:“已提取:图表 N → 幻灯片 NN”
-
对于包含
Source: generate的幻灯片(或未指定 IMAGE_SOURCE 的幻灯片):- 继续执行步骤 6,使用 AI 生成
注意:源 PDF 必须以 source-paper.pdf 为文件名保存在输出目录中。
故障排除:
- 如果图表检测漏掉了图表:手动将
// IMAGE_SOURCE块添加到大纲中 - 如果图表映射错误:编辑大纲中的
Figure:和Page:值 - 如果提取失败:检查 PDF 页码(从 1 开始计数)
使用 PyMuPDF 作为页面提取的备用方案:
如果 extract-figure.ts 因出现 “Image or Canvas expected” 错误而失败(复杂 PDF 中常见),请使用 PyMuPDF:
import fitz
doc = fitz.open("source-paper.pdf")
page = doc[page_num - 1] # 0-indexed
mat = fitz.Matrix(3, 3) # 3x scale for high resolution
pix = page.get_pixmap(matrix=mat)
pix.save(f"extracted/page-{page_num}.png")
然后使用 apply-template.ts 应用模板。
步骤 6:生成图像
- 使用步骤 5 中选定的方法
- 跳过步骤 5.5 中已处理的幻灯片(包含
Source: extract的幻灯片) - 生成会话 ID:
slides-{topic-slug}-{timestamp} - 使用相同的会话 ID 生成其余每张幻灯片
- 报告进度:“已生成 X/N”
- 生成失败时自动重试一次
步骤 7:合并为 PPTX 和 PDF
npx -y bun ${SKILL_DIR}/scripts/merge-to-pptx.ts <slide-deck-dir>
npx -y bun ${SKILL_DIR}/scripts/merge-to-pdf.ts <slide-deck-dir>
步骤 8:输出摘要
Slide Deck Complete!
Topic: [topic]
Style: [style name]
Location: [directory path]
Slides: N total
- 01-slide-cover.png ✓ Cover
- 02-slide-intro.png ✓ Content
- ...
- {NN}-slide-back-cover.png ✓ Back Cover
Outline: outline.md
PPTX: {topic-slug}.pptx
PDF: {topic-slug}.pdf
幻灯片修改
请参阅 references/modification-guide.md,了解:
- 编辑单张幻灯片的工作流
- 添加新幻灯片(并重新编号)
- 删除幻灯片(并重新编号)
- 文件命名约定
图像生成依赖项
Gemini API(选项 1 - 推荐)
需要:
GOOGLE_API_KEY或GEMINI_API_KEY环境变量- Python 3.8+ 和 pip
google-genai软件包(由脚本自动安装)
模型:gemini-3-pro-image-preview(默认)
Gemini Web Skill(选项 2)
需要:
- 安装在
.claude/skills/baoyu-danger-gemini-web的baoyu-danger-gemini-webskill - 已登录 Google 账号的 Google Chrome 浏览器
- 用户同意有关逆向工程 API 的免责声明
PDF 图表提取
需要:
- 主要方式:
pdfjs-distnpm 软件包(Node.js 请使用 legacy 构建) - 备用方式:
pymupdfPython 软件包(处理复杂 PDF 时更可靠) apply-template.ts所需的canvasnpm 软件包
参考资料
| 文件 | 内容 |
|---|---|
references/analysis-framework.md | 演示文稿的深度内容分析 |
references/outline-template.md | 大纲结构和 STYLE_INSTRUCTIONS 格式 |
references/modification-guide.md | 编辑、添加和删除幻灯片的工作流 |
references/content-rules.md | 内容和风格指南 |
references/base-prompt.md | 图像生成的基础提示词 |
references/figure-container-template.md | 提取图表容器的视觉规范 |
references/styles/<style>.md | 完整的风格规范 |
注意事项
图像生成
- Nano Banana Pro API:推荐。稳定、可靠,需要 API 密钥
- Gemini Web:无需 API 密钥,但使用逆向工程 API,存在账号风险
- 生成时间:每张幻灯片 10-30 秒
- 生成失败时自动重试一次
- 通过会话 ID 保持风格一致性
内容指南
- 对敏感公众人物使用风格化替代形象
- 两种方法都使用相同的底层 Gemini 模型生成图像
扩展支持
通过 EXTEND.md 添加自定义风格和配置。
检查路径(按优先级排序):
.paper-skills/paper-slide-deck/EXTEND.md(项目)~/.paper-skills/paper-slide-deck/EXTEND.md(用户)
如果找到,请在步骤 1 之前加载。扩展内容会覆盖默认设置。