ppt-diagramlisted
Install: claude install-skill 2675149875/ppt-diagram
# PPT 示意图工作流
**核心思路**:用代码生成骨架(精确对齐)→ 你在 PowerPoint 里拖拽微调 → 程序导出成图。
为什么用 PPT 而不是直接画?因为你**能改**。代码生成的位置不一定完全合你意,PPT 让你直接用鼠标调,调完再导。
---
## 三步工作流
```
① 我生成 PPTX ──→ ② 你在 PowerPoint 里微调 ──→ ③ 我导出成图
(代码,精确对齐) (拖拽、改字、换色) (600 DPI PNG / 矢量 SVG)
```
第 ③ 步你不能自己跑的话,把调好的 pptx 路径告诉我,我来导。
---
## ⚠️ 铁律:不要生成图注
**默认不调用 `caption()`,也不用 `title()`,画布上不出现「图 5-2 元学习器架构」这类编号+标题。**
原因:图注只要写进画布,导出时就会被一起烤进 PNG/SVG。插进论文后跟 Word 自己的题注段落**重复**,还得手动裁掉或重导 —— 白干一轮。
- 图的**编号和标题归 Word 题注管**(引用 → 插入题注),不归本 skill 管
- 需要说明这张图画的是什么,写在**给用户的回复正文**里,别写进画布
- `caption()` / `title()` 方法保留不删,但只在**用户明确要求「图注画进图里」**时才用
- 想在画布底部留白、让用户在 PPT 里自己加,是可以的 —— 留白 ≠ 写文字
---
## 画布尺寸:按最终印刷尺寸画
**画布宽度必须等于这张图在论文里的最终宽度(版心宽),不能拍脑袋用 10 英寸。**
理由:10 英寸的画布插进 Word 会被缩到 0.577 倍,图里的 11pt 落到纸面只剩 **6.3pt**,
低于所有期刊的下限(7-9pt,最小 6pt)。**画布 = 版心,字号才所见即所得。**
量论文版心(需要 `python-docx`):
```python
import docx
s = docx.Document(r"论文.docx").sections[0]
tw = s.page_width - s.left_margin - s.right_margin
print(tw / 914400, "英寸") # A4 + 3.17cm 边距 → 5.77
```
| 纸张 | 左右页边距 | 版心宽 |
|---|---|---|
| A4 | 3.17cm(西北工大模板) | **5.77 英寸** |
| A4 | 2.5cm | 6.30 英寸 |
| Letter | 1 英寸 | 6.50 英寸 |
用户没给论文时,默认按 **5.77** 画,并在回复里说明这个假设。
画完必须自查:导出 PNG 的像素宽 ÷ DPI 应等于画布宽度。
---
## 依赖与安装
| 组件 | 用途 | 怎么装 |
|---|---|---|
| **Python 3.9+** + `python-pptx` | 生成 PPTX | `pip install python-pptx`(见 `requirements.txt`) |
| **LibreOffice** | PPTX → 矢量 PDF | Windows `winget install TheDocumentFoundation.LibreOffice` · macOS `brew install --cask libreo