Skip to main content

sysu-ppt

中山大学学术汇报 PPT 制作技能。基于 officer R 包和官方模板生成可直接上台汇报的精美完整 PPT,覆盖组会汇报与开题/答辩/正式研究汇报两类体裁。触发场景:(1) 用户要求制作组会汇报/开题报告/答辩/学术报告 PPT;(2) 用户提供汇报主题/方向并需要生成演示文稿;(3) 用户要求创建新的汇报文件夹。组会默认 13-15 页;开题/答辩/正式汇报 20-40 页,按内容定。

Zur Installation springen

Quellinformationen

Repository
KangWang42/EpiClaude
Letzte Quellaktivität
14. Juni 2026 um 05:17
Erkannte Sprache von SKILL.md
Chinesisch
Sterne
7
Forks
1

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
8 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
sysu-ppt
description
中山大学学术汇报 PPT 制作技能。基于 officer R 包和官方模板生成可直接上台汇报的精美完整 PPT,覆盖组会汇报与开题/答辩/正式研究汇报两类体裁。触发场景:(1) 用户要求制作组会汇报/开题报告/答辩/学术报告 PPT;(2) 用户提供汇报主题/方向并需要生成演示文稿;(3) 用户要求创建新的汇报文件夹。组会默认 13-15 页;开题/答辩/正式汇报 20-40 页,按内容定。
# SYSU PPT Skill 用 R `officer` + 官方模板,代码化生成**可直接上台、精美完整**的学术汇报 PPT。**给定主题/内容/要求,按本文件流程即可产出合规 PPT。** ## 总原则(奥卡姆剃刀) **精确实现每一条要求,不堆字、不过度设计。** 文字写到说清楚为止即可;版面"充实"靠**布局与元素尺寸**实现,不靠注水。允许留白——宁可干净留白,也不要为凑满而啰嗦。 ## 体裁与结构蓝图(先认体裁再开写) 先判断属于哪类,套对应骨架——**两类的结构、篇幅、是否用章节分隔页都不同**: | 体裁 | 篇幅 | 章节分隔页 | 骨架 | 蓝本 | |---|---|---|---|---| | 组会汇报 / 文献分享 / 方法讲解 | 13-15 页 | **不用** | 背景 → 概念 → 方法 → 对比 → 决策 → 收束 | `references/deck_skeleton.R` | | 开题 / 中期 / 答辩 / 正式研究汇报 | 20-40 页 | **用**(每个一级章节前一张) | 封面 → 目录 → 立题依据 → 研究目的与内容 → 研究方法(主体)→ 技术路线图 → 创新点与可行性 → 进度安排 →(参考文献)→ 致谢 | `references/defense_blueprint.R` | 开题/答辩体裁的规范结构、规范用词库(章节名 / 段落标签 / 方法对比表头 / 封面署名 / 结尾语)、设计基调,全部在 `references/defense_blueprint.R` 顶部注释里——写这类 PPT 前先读它,按里面的顺序与措辞填内容,不要自创结构或口语化标签。 **设计基调(两类通用)**:主色中大深绿 `#014924`(章节号 / 标题竖条 / 表头);强调用克制的红 `#C00000`,全篇仅 1-2 处关键结论,不滥用;每页优先用图(机制图 / 流程图 / 技术路线图)表达,研究方法页尽量配示意图。 ## 工作流(复制即用) ```r Sys.setlocale("LC_ALL", "Chinese (Simplified)_China.utf8") source(file.path(Sys.getenv("USERPROFILE"), ".claude/skills/sysu-ppt/scripts/sysu_toolkit.R")) ppt <- sysu_init("default") # 默认模板;说"模板2"则用 sysu_init("模板2") ppt <- sysu_add_cover(ppt, "主标题", "English Subtitle", "汇报人:姓名", "2026 组会") ppt <- sysu_add_text(ppt, "1 背景", block_list( prose(bd("定义 "), tx("……")) )) # ……更多内容页(见 API)…… sysu_save(ppt, "输出.pptx") # 用 sysu_save 而非 print(修正文本框顶端对齐) ``` 完整骨架见 `references/deck_skeleton.R`;配图函数见 `references/figure_snippets.R`。 ## 模板选择 - **未指明** → `sysu_init("default")` = `assets/template.pptx`(公卫学院绿色封面 + 标题绿竖条)。 - **用户说"模板2/模板二/medical"** → `sysu_init("模板2")` = `assets/template-中大医学演示.pptx`(中大医学:棕榈实景封面 + 校徽 + 城市水印)。 - 也可传 `.pptx` 完整路径。两套模板内容页 API 完全一致,只改 `sysu_init` 参数。 ## 硬性规范(每次必须满足) 1. **字体**:中文宋体、英文 Times New Roman,同段自动分流(`.fp()` 内置,无需手动切)。已在 slide XML 层校验 `<a:ea>=宋体`、`<a:latin>=Times New Roman`。 2. **字号**:正文 16pt、标题 24pt(默认值,勿改)。 3. **版式多样**:一份 PPT 混用 ≥4 种版式,不要整份纯文字。优先用图(流程图/示意图)表达结构与机制。 4. **充实靠布局,不靠堆字**:每页大致占满版面、不空半屏;做法是**选对版式 + 调元素尺寸**,文字保持精炼。卡片/图片留白可接受。 - **正文有字数预算(officer 文本框不自动缩字,超出即溢到页脚/被截)**:左右图文 / 左文右表的**左栏 ≤ 5 个段落块、合计 ≤ ~12 行 / ~230 中文字**(每块 = 标签 + 1–2 句);纯文字全宽页 ≤ 7 块 / ~340 字。**超了就删次要句或拆成两页,绝不靠缩小字号硬塞**。长英文全称放进正文句中、不要塞进 `num_item` 加粗小标题(标题一行写不下会换行挤占两行)。生成后必看每页最后一行是否压到底部横线/页码——压到即超,回去精简。 5. **编号体现层次(两级,编号只在标题)**:**同主题的多页共用一个一级序号、用二级区分**——背景三页 = `1.1 / 1.2 / 1.3`,核心方法多页 = `2.1 … 2.8`,结语 = `4.1 / 4.2`。**不要每页各占一个一级序号平铺成 1,2,3…16**(那样毫无层次,正是最常见的错)。规划时先按主题分 3–5 个一级组,每组 ≥2 页(仅一页的"组"应并入相邻组,避免单页独占一级号)。只用两级 `X.Y`,正文不写 `1.1.1`,**不做**单独目录页/过渡页。 6. **章节分隔页看体裁**:组会汇报**不加**过渡页(封面后直接进内容);**开题/答辩/正式研究汇报要加**——每个一级章节前插一张 `sysu_add_section("一、立题依据")`,并配目录页与"请各位老师批评指正!"致谢页(见 `defense_blueprint.R`)。 7. **强调**:关键术语/结论用 `bd()`(加粗+主色)。 7bis. **数字单源取数**:汇报里的统计数字(估计值/CI/P/百分比/样本量)若项目有 `07_paper/results.yaml`,一律 `val("07_paper/results.yaml", "key")` 取已渲染串(toolkit 已内置 `val()`),**禁止手敲**;改数字回 results.yaml 改再重生成。 8. **编号与圆点二选一**:用了 ①②③/123 就别再加 ●(用 `num_item`,不要 `bullet`)。 9. **学术书面、不口语(每页都查)**: - **标题用规范名词短语**,不用反问/口语标题。✗"一个高 AUC 的模型就是好模型吗"/"判别和校准是两回事"/"概率准不准" ✓"仅凭 AUC 能否判定模型优劣"/"判别和校准的区别"/"校准(Calibration)"。 - **段落小标签用规范词**:解决问题 / 指标计算 / 检验 / 局限性 / 定义 / 说明 / 注意事项 / 方法 / 重要性 等。**禁用敷衍或口语标签**:✗"一句话""坑""怎么读""怎么办""通俗讲""回答"。 - **英文缩写首次出现给全称**:首次写 `AUC(Area Under the Curve)`、`IDI(Integrated Discrimination Improvement)`、`NRI(Net Reclassification Improvement)`、`DCA(Decision Curve Analysis)` 等,后文再用缩写。 - **删空话/敷衍句**:没有信息量的 `intro`/`note`(如"这几乎覆盖了最常见的误用""核心:…")直接删,不靠它凑版面。 - **不用网络口语**:✗ 净赚、听得懂、一验就掉、学过头、乱筛、当万能、迷信、纹丝不动、虚高… → 改书面表达(净获益、可理解、外部验证性能下降、过度拟合、随意筛选、过度依赖、偏高…)。 ## API 速查 | 函数 | 版式 | 关键参数 | |---|---|---| | `sysu_init(tpl)` | 初始化、清空演示页 | "default"/"模板2"/路径 | | `sysu_add_cover(ppt,title,subtitle,author,date)` | 封面 | subtitle 用一行短副标题 | | `sysu_add_text(ppt,title,blocks)` | 纯文字(全宽) | blocks=block_list(...) | | `sysu_add_two_text(ppt,title,left,right)` | 双栏文字 | 两个 block_list | | `sysu_add_text_image(ppt,title,blocks,img,img_w,img_h,side,caption)` | 左右图文 | side="right"/"left" | | `sysu_add_image_caption(ppt,title,img,img_w,img_h,blocks,img_pos,caption)` | 上下图文 | img_pos="top"/"bottom";caption="图N …" | | `sysu_add_image(ppt,title,img,img_w,img_h,caption)` | 整图居中 | | | `sysu_add_table(ppt,title,ft,left,top,note)` | 表格 | ft 用 `sysu_flextable()` | | `sysu_add_text_table(ppt,title,blocks,ft)` | 左文右表 | | | `sysu_add_code(ppt,title,code_lines,intro)` | 代码/示例 | code_lines=字符向量 | | `sysu_add_cards(ppt,title,cards,cols,intro)` | 卡片网格(淡灰) | cards=list(list(tag,head,body)…) | | `sysu_add_section(ppt,title,subtitle)` | 章节页 | 默认不用 | | `sysu_save(ppt,path)` | 保存(顶端对齐修正) | 代替 print | **文本助手**:`tx()` 正文 / `bd()` 加粗主色 / `cd()` 等宽 / `prose(...)` 成段(优先,避免满屏列表)/ `num_item(num,head,body)` 编号条目(自带语义,不加圆点)/ `bullet()`+`sub_bullet()` 圆点列表(无编号时才用)/ `sp(h)` 间距。 **表格**:`sysu_flextable(df, widths, fsize, align)` — 绿表头 + 斑马行 + 三线表。 ## 卡片约束 - 统一**淡灰底(#F4F5F7) + 绿色细左条 + 绿色标题**,**禁止彩色方块**(`color` 参数已忽略)。 - 卡片**贴合内容高度、紧跟 intro 顶端对齐**,**不拉满整页**——底部留白优于高卡内部空洞。 - **全篇克制:最多 2-3 页卡片**;用于真正并列的 3-4 项。其余并列点用 `prose`/`num_item`。 ## 配图(结构/机制优先画图) - 用 ggplot 画流程图/示意图/谱系图,存 PNG,再 `sysu_add_image*` 嵌入。模板见 `references/figure_snippets.R`。 - **图内不写标题、不写解释性句子**(最常被打回):删掉 `labs(title=...)`、删掉像"偏离对角线 = 概率不准""模型净获益最高的阈值区间"这类**讲道理的 `annotate("text")`**。图里只保留坐标轴、图例、必要的**数据标签**(如曲线旁的"病例/非病例"、参考线旁的阈值数值)。解释一律写到 PPT 正文或题注。 - **每张图必须配"图N ……"题注**:黑色、小字号(13pt)、居中、置于图**下方**。用各 `sysu_add_image*` 的 `caption=` 参数(`sysu_add_text_image`/`sysu_add_image_caption`/`sysu_add_image` 都支持;toolkit 已把题注色设为近黑 `SYSU$col$text`)。图号 `图1/图2…`**按出现顺序连续**。 - **图例要短**:不要把整句解释当图例标签(如"过度极端 slope<1(概率太极端)");缩成"slope<1 概率太极端"这类短词,解释移正文。图例条目过长 + `coord_equal` 常导致图例与面板间出现大块空白——用 `coord_cartesian(expand=FALSE)` + 短标签修复。 - **图内字要够大(最常被打回的问题)**:按"接近嵌入尺寸"渲染(`ggsave` 的 width/height ≈ 嵌入英寸数),字号放大(坐标轴 base_size≈20、标题≈16-19、注释 `size`≈5.5-7、流程框/卡片文字 `size`≈7-9、大标题 `size`≈10)。**流程图/框架图的框内文字宁可偏大**——嵌入缩小后会显小,自检发现字小一律调大重渲染,不要将就。 - **图不能有多余留白/空边**:`ggsave` 的画布长宽比要贴合内容,否则四周留白。**ROC/校准等用 `coord_cartesian(expand=FALSE)` 让面板填满画布;少用 `coord_equal`**(它强制方形面板,常在另一维留出大块空白)。注释/图例尽量收紧,`plot.margin` 适当压小。自检发现某图上下/左右有空条 → 调画布比例或换 coord 重渲染。 - 中文用 `showtext` + SimHei:`font_add("simhei","C:/Windows/Fonts/simhei.ttf"); showtext_auto()`。 - 嵌入 `img_w/img_h` 只是**最大边界框**,`.fit()` 自动按 PNG 真实比例等比缩放,**不会变形**;给的比例不必精确。 ## 自检(生成后必跑) ```powershell $pp = New-Object -ComObject PowerPoint.Application $pres = $pp.Presentations.Open("绝对路径.pptx", $true, $false, $false) $pres.Export("png输出目录", "PNG", 1280, 720) $pres.Close(); try { $pp.Quit() } catch {} ``` 逐页读 PNG 检查(**每一项不合格都要改了重生成,不许将就**): ① 字体对(宋体/Times);② 不空半屏、不溢出(表格列不被截断);③ **图内文字够大**——流程图/框架图框内字、坐标轴、注释在缩略图上仍清晰可读,偏小立即调大重渲染;④ **图无多余空边**——图四周没有明显空白条(`coord_equal` 常见病),有则调画布比例重渲染;⑤ **表格上下居中**——表格块在内容区垂直居中而非贴顶(`sysu_add_table`/`sysu_add_text_table` 已默认按表高自动居中);⑥ 图居中不变形;⑦ 重点已加粗;⑧ 标题竖条+横线对齐;⑨ **图内无标题、无解释性句子**(只剩坐标轴/图例/数据标签),讲道理的文字都在正文或题注;⑩ **每张图都有"图N ……"题注**(黑色小字、图下方居中),图号按出现顺序连续;⑪ **图例简短**,无整句解释当标签、无图例-面板间大块空白;⑫ **学术书面**——标题为规范名词短语(无反问/口语)、段落标签规范(无"一句话/坑/怎么读/通俗讲/回答")、英文缩写首次给全称、无网络口语、无空洞 intro/note(见硬性规范 9)。 > 图件大于 ~2000px 时图像读取工具可能报错,可先缩放到 ≤1280px 再读;或直接读 1280×720 的逐页导出 PNG。 > COM 偶发 `Quit()` 报错可忽略(导出已完成);重跑前先 `Stop-Process -Name POWERPNT`,避免文件占用。 ## 易踩的坑(已修复,勿回退) - **标题对齐**:默认模板标题走 `Title and Content` 版式的绿竖条;标题框 x=0.92/y=0.50/h=0.575,底部横线与竖条齐平。**勿把标题放进 Blank 版式**(段落边框不渲染、竖条消失)。 - **模板2 设计在 layout 不在 master**:medical 的封面/校徽/水印在**带设计的版式**里——`cover="1_空白"`、`content="3_空白"`。误用朴素 `标题和内容`/`空白` 会得到纯白页。排查:用 python-pptx 遍历 `slide_layout.shapes` 看哪个版式带品牌图形。 - **模板2 标题无竖条**:故 `.add_title` 对 medical 改用 flextable 横线(段落边框在该版式不渲染)。 - **正文偏下**:部分版式文本框默认垂直居中;`sysu_save()` 按字节把空 `<a:bodyPr/>` 设 `anchor="t"`,故**用 `sysu_save` 而非 `print`**。 - **表格垂直居中**:`sysu_add_table` / `sysu_add_text_table` 的 `top` 默认 `NULL` = 按表实际高度在内容区(1.58~7.0)自动垂直居中(行数少的表不再贴顶)。需固定位置时显式传 `top=` 数值。单元格内文字已由 `sysu_flextable` 设 `valign="center"`。 ## 参考文件 - `scripts/sysu_toolkit.R` — 核心工具库。 - `scripts/example_ppt.R` — 覆盖全部版式的可运行演示。 - `references/deck_skeleton.R` — 组会汇报骨架模板(13-15 页,无章节页)。 - `references/defense_blueprint.R` — 开题/答辩/正式研究汇报骨架(20-40 页,含章节页、目录、技术路线、进度表、致谢页 + 顶部规范用词库与设计基调)。 - `references/figure_snippets.R` — 流程图/示意图/谱系图的可复用画图函数。 - `assets/template.pptx`、`assets/template-中大医学演示.pptx` — 两套模板。
Auf GitHub ansehen