225 lines
12 KiB
Markdown
225 lines
12 KiB
Markdown
# PPT 设计硬规则
|
||
|
||
> 出稿前过一遍。**这些不是建议,是工程约束** —— 模型生成 PPT 最常见的失败模式都是违反这些规则。
|
||
|
||
## 信息设计纪律 (比视觉更重要 —— 先把这条吃透)
|
||
|
||
> "好看"七成靠**信息设计**、三成靠视觉。同样的红色卡片,标题写"行业背景"还是"渗透率破 60%,行业进入深水区",观感差一个档次。模型最容易堆视觉、忘内功 —— 这一节是把 deck 从"AI 味模板"拉到"咨询级"的关键。
|
||
|
||
### 1. 论断式标题 (Assertion title) —— 标题写结论,不写主题
|
||
|
||
每页标题是**一句可带走的结论**,不是话题名。
|
||
|
||
| 类型 | ❌ 主题式(避免) | ✅ 论断式(推荐) |
|
||
|---|---|---|
|
||
| 背景 | "行业背景" | "数字渗透率破 60%,行业进入深水区" |
|
||
| 现状 | "什么是大模型" | "大模型靠规模涌现出通用智能" |
|
||
| 历程 | "发展历程" | "六年从 GPT-1 到推理模型,能力指数跃迁" |
|
||
| 竞争 | "竞品分析" | "三家主要对手在渠道覆盖上明显薄弱" |
|
||
|
||
### 2. Takeaway 结论框 —— 每页标题下一句话结论
|
||
|
||
内容页标题下加 `P.add_takeaway(slide, "<一句话结论>")`(浅主色底 + 左主色条)。把"这页要讲什么"压成一句。**金字塔原则**:结论先行,再展开 3 条论据。
|
||
|
||
### 3. 数据语境化 —— 数字不要孤立出现
|
||
|
||
每个关键数字配三件:**数值本身(大)+ 对比基准(行业均值/上期/竞品)+ 含义("所以呢")**。
|
||
用 `P.add_kpi(..., baseline="行业均值 82%", delta="+11pt")`(升=绿/降=红,业界约定);含数据的页用 `P.add_source(slide, "<来源>")` 标来源。
|
||
> 例:"97.3%" 下面跟 "行业均值 82% | 领先 15 个点",而不是光一个 "97.3%"。
|
||
|
||
### 4. page_rhythm 节奏 —— 相邻页不许同版式
|
||
|
||
逐页大纲给每页标密度,**breathing 页强制打破卡片网格**(否则每页都退化成卡片网格 = AI 味):
|
||
|
||
| 标签 | 版式纪律 |
|
||
|---|---|
|
||
| `anchor` | 结构页(封面/章节/目录/尾页),走固定品牌版式 |
|
||
| `dense` | 信息密集(默认):卡片网格 / KPI / 图表 / 时间轴 / 表格都行 |
|
||
| `breathing` | 低密度冲击页:**禁止多卡网格**,用大字 + 留白 + 整图 + 金句。典型:单个大数字 + 一句语境、整图 + 浮层标题、金句 |
|
||
|
||
内容→版式映射:历程→时间轴(`add_timeline`)、循环→闭环/流程(`add_cycle`)、2-4 数字→KPI 卡(`add_kpi`)、并列概念→均衡网格(`add_card_grid`,全 deck ≤2 次)、单个震撼数字→breathing 大字页。
|
||
|
||
## 0. 画布 (默认 16:9)
|
||
|
||
| 用途 | 比例 | 宽×高 (英寸) | python-pptx |
|
||
|-----|------|------------|------------|
|
||
| **现代商务汇报** ⭐ 默认 | 16:9 | 13.33 × 7.5 | `Inches(13.33), Inches(7.5)` |
|
||
| 老投影 / 教学 | 4:3 | 10 × 7.5 | `Inches(10), Inches(7.5)` |
|
||
| 手机 / 视频号 | 9:16 | 7.5 × 13.33 | `Inches(7.5), Inches(13.33)` |
|
||
| 小红书 | 3:4 | 7.5 × 10 | `Inches(7.5), Inches(10)` |
|
||
| A4 横 / 竖 | √2:1 | 11.69 × 8.27 / 反 | 同左 |
|
||
|
||
不知道选哪个 → **16:9**。安全边距统一:左右 0.7 in,上下 0.5 in。**画布定了不要中途改**,后续坐标全按这个尺寸算。画布超 16:9 默认尺寸时所有字号 × `(实际宽 / 13.33)`。
|
||
|
||
## 1. 字号 (16:9 标准)
|
||
|
||
| 元素 | 字号 (Pt) | 备注 |
|
||
|-----|----------|------|
|
||
| 主标题 (封面) | 44-54 | 单行不换行 |
|
||
| 标题 (内页) | 28-36 | 中文常用 32 |
|
||
| 副标题 / 章节小标题 | 20-24 | |
|
||
| 正文 / bullet | 18-22 | 低于 18 投影看不清 |
|
||
| 注释 / 数据来源 | 12-14 | 灰色,弱化 |
|
||
| 页脚页码 | 10-12 | 弱化处理 |
|
||
|
||
**底线**: 投影到 100 寸大屏,后排看得清最小字号是 18pt。**绝不能小于 14pt**,除非是数据来源等弱化信息。
|
||
|
||
## 2. 配色
|
||
|
||
### 三色制
|
||
- **主色 (Primary)** —— 标题、强调、关键数据。占视觉权重 60%
|
||
- **辅色 (Secondary)** —— 副标题、次要图形元素。占 30%
|
||
- **强调色 (Accent)** —— 关键数据点、CTA、警告。占 10%,不要泛滥
|
||
- 其他全部用灰阶 (#1F1F1F / #555 / #888 / #CCC / #F5F5F5)
|
||
|
||
### 推荐配色对照 (红色主题为默认)
|
||
| 风格 | 主色 | 辅色 | 强调色 | 备注 |
|
||
|-----|------|------|-------|------|
|
||
| **商务红** ⭐ 默认 | #C00000 | #E15554 | #FFC107 | 党政/年终/路演通用 |
|
||
| 中国红 | #8B0000 | #B22222 | #FFD700 | 民族/国货/红色文化主题 |
|
||
| 现代红 | #B91C1C | #DC2626 | #F59E0B | 新消费/科技产品发布 |
|
||
| 暖朱红 | #C73E1D | #E76F51 | #F4A261 | 学术汇报/行业会议 |
|
||
| 商务蓝 | #1F4E79 | #2E75B6 | #FFC000 | 金融/保险/政企 |
|
||
| 学术灰 | #2F2F2F | #595959 | #C00000 | 严肃论文/答辩 |
|
||
| 现代简约 | #2D3748 | #4A5568 | #38B2AC | 互联网/SaaS |
|
||
| 科技深色 | #0A192F | #112240 | #64FFDA | 黑客松/技术大会 |
|
||
|
||
### 派生色阶(卡片式视觉的层次来源)
|
||
`set_palette` 从主/辅/强调自动派生明暗阶,**这些不算"新色"**(quality_check 按色相归桶,同色系深浅收敛成一个):
|
||
- `PRIMARY_WASH`(主色兑 92% 白)—— 整页/大区域浅底(尾页、L13 论据卡)
|
||
- `PRIMARY_SOFT`(兑 80% 白)—— 卡片/图标底块/标签浅底
|
||
- `PRIMARY_DARK`(主色压暗)—— 封面/章节渐变深端
|
||
- `ACCENT_SOFT`(强调兑 78% 白)—— 渐变深底上的弱化文字
|
||
> 白底之上靠卡片(`add_card` 圆角+投影)+ 浅色阶分层,才有"现代咨询风"的层次;纯白底裸贴元素 = 扁平办公模板。
|
||
|
||
### 语义状态色 (例外)
|
||
趋势/状态用业界约定:**绿 `P.GOOD` = 增长/正向,红 `P.BAD` = 下降/风险,灰 = 持平**。这套语义色**不计入三色制**(quality_check 把绿色当语义色豁免)。只用在 KPI 趋势、表格升降这类语义场景,别拿来当装饰。
|
||
|
||
### 禁忌
|
||
- 红配绿、紫配黄等高对比互补色不要直接用(语义升降色除外)
|
||
- **渐变只用在大色块**(封面右块 / 章节整页,`apply_brand` 已内置);正文/标题/小图形不要渐变
|
||
- 一份 deck 主色不要换。封面是 A 色、内页变 B 色 —— 这是大忌
|
||
- 渐变深底上文字一律用**白 / `ACCENT_SOFT`**,别用深灰 `INK`(看不清)
|
||
|
||
## 视觉深度:投影是克制,不是默认
|
||
|
||
> 抄自 pptmaster shared-standards §6 —— "设计感来自'没有',不是'到处都有'"。模型最爱给每张卡都加投影,这恰恰是模板味的来源。
|
||
|
||
- **平卡是常态**:`add_card` 默认平卡(白底描发丝边)。**平铺网格里的对等卡一律平**,不投影。
|
||
- **投影只给真悬浮的**:照片/色块上的卡、被挑出的"推荐"项、浮层/标注。`add_card(..., shadow=True)` 手动开。
|
||
- **每页 ≤2-3 个投影元素**。够第 4 个了,先撤一个。
|
||
- **一个容器只用一种视觉手段**:投影 / 描边 / 渐变底 / 强主色底 —— **四选一,不叠加**(叠加 = 瞬间模板味)。
|
||
- **单一光源**:同页所有投影同方向(默认光从上方,`dy>0`)。
|
||
- 渐变深底上投影会消失,改用 1px 低透明白描边或外发光。
|
||
|
||
## 3. 留白
|
||
|
||
- 标题与上边距 ≥ 0.4 英寸
|
||
- bullet 之间行距 1.3-1.5 倍
|
||
- 一页内容占满 70% 即可,**不要塞到边缘**
|
||
- 边距统一 (左右 0.7 寸,上下 0.5 寸常用值)
|
||
|
||
## 4. 信息密度
|
||
|
||
| 页类型 | 字数上限 | 图表 |
|
||
|-------|---------|-----|
|
||
| 封面 | 30 字 | 可选装饰图 |
|
||
| 目录 | 每条 ≤ 15 字 | 不要图 |
|
||
| 分章页 | ≤ 20 字 | 大号数字 + 章节名 |
|
||
| 要点页 | bullet ≤ 5 条,每条 ≤ 25 字 | 可选小图标 |
|
||
| 数据页 | 标题 + 一句结论 | **必须有图表**;2-4 个数字优先 KPI 卡(L10)而非柱图 |
|
||
| 概念页 | 卡片标题 ≤6 字 + 说明 ≤2 行 | 图标底块 + 卡片网格(L11),别裸圆点 |
|
||
| 图片页 | ≤ 15 字标题 + 1-2 行说明 | 主体是图 |
|
||
|
||
## 4.1 字数预算 (避免溢出)
|
||
|
||
> 这是**布局超界的根因表**。bullet 写超了会顶到下一页元素;标题写超了会换行顶下来。开写前查这张表,而不是写完看 quality_check 报错。
|
||
|
||
公式: `每行字数 ≈ 框宽(in) × 72 / 字号(pt)`
|
||
|
||
| 字号 | 框宽 11.93 in (整宽) | 框宽 5.5 in (双栏单边) | 框宽 4.6 in (图片页文字区) |
|
||
|-----|--------------------|----------------------|--------------------------|
|
||
| 44 pt (主标题) | ≤ 19 字 | — | — |
|
||
| 36 pt (大标题) | ≤ 23 字 | — | — |
|
||
| 32 pt (内页标题) | ≤ 26 字 | — | — |
|
||
| 22 pt (要点) | ≤ 39 字 | ≤ 18 字 | ≤ 15 字 |
|
||
| 18 pt (正文) | ≤ 47 字 | ≤ 22 字 | ≤ 18 字 |
|
||
| 14 pt (注释) | ≤ 61 字 | ≤ 28 字 | ≤ 23 字 |
|
||
|
||
**英文字符按中文 0.5 个换算** (即英文每行约 2× 中文字数)。
|
||
|
||
### 行高估算
|
||
|
||
每行高度 ≈ `字号 × 1.4 / 72` (英寸)
|
||
|
||
| 字号 | 单行高 | 1 行框高 | 2 行框高 | 3 行框高 |
|
||
|-----|-------|---------|---------|---------|
|
||
| 32 pt | 0.62 in | 0.7 in | 1.3 in | 1.9 in |
|
||
| 22 pt | 0.43 in | 0.5 in | 0.9 in | 1.3 in |
|
||
| 18 pt | 0.35 in | 0.4 in | 0.8 in | 1.1 in |
|
||
| 14 pt | 0.27 in | 0.3 in | 0.6 in | 0.9 in |
|
||
|
||
**用法**: bullet 字数预计超表上限就拆条,不要试图靠 `auto_size` 收缩字号兜底 —— 会出现一页里字号大小不一,反而难看。
|
||
|
||
## 5. 文字层级
|
||
|
||
- 一页最多 3 级层级 (标题 / 正文 / 子项)
|
||
- 子项缩进 0.3-0.5 英寸
|
||
- 子项字号比父级小 2-4pt
|
||
- 不要四级以上嵌套
|
||
|
||
## 6. 图片规则
|
||
|
||
- **分辨率**: 投影建议 150 dpi 以上,印刷 300 dpi
|
||
- **占位**: 图片占满指定区域,不要拉伸变形 —— 用 `width=` 或 `height=` 单一参数让 python-pptx 等比缩放
|
||
- **背景**: 透明 PNG 优先;白底 JPG 在深色页上要做底色匹配
|
||
- **数量**: 一页最多 2 张图,3 张以上是网格图,按九宫格摆
|
||
|
||
## 7. 图表规则 (matplotlib)
|
||
|
||
> **先问要不要图表**:只有 2-4 个数字 → 用 KPI 卡(layouts L10),别画柱图;真有趋势/分布/多系列才上 matplotlib。图表 png 嵌进 `add_card` 白卡片里(L6)比裸图精致。
|
||
|
||
- 颜色用 spec 里定的主/辅/强调三色,**不要用 matplotlib 默认色板**
|
||
- 字号: 标题 16,坐标轴 12,刻度 10
|
||
- **去四边框**,只留极淡横向网格 (`ax.spines[*].set_visible(False)` + `ax.grid(axis='y', color='#EEEEEE', lw=0.8)`)—— 比全框 + 默认网格干净,跟卡片观感一致
|
||
- 数据标签直接标在柱子/点上,优先于看坐标
|
||
- 透明底:`fig.savefig(..., transparent=True)`,嵌白卡片上无白边
|
||
- 中文字体: `plt.rcParams['font.sans-serif'] = ['Microsoft YaHei', 'SimHei']`
|
||
- 负号: `plt.rcParams['axes.unicode_minus'] = False`
|
||
|
||
```python
|
||
# 示例:符合规则的柱状图 (默认红色主题)
|
||
import matplotlib.pyplot as plt
|
||
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei', 'SimHei']
|
||
plt.rcParams['axes.unicode_minus'] = False
|
||
fig, ax = plt.subplots(figsize=(10, 5), dpi=150)
|
||
bars = ax.bar(["Q1","Q2","Q3","Q4"], [12,18,25,31],
|
||
color=["#C00000","#C00000","#C00000","#FFC107"]) # 末尾突出
|
||
for bar, v in zip(bars, [12,18,25,31]):
|
||
ax.text(bar.get_x()+bar.get_width()/2, v+0.5, str(v),
|
||
ha='center', fontsize=11)
|
||
ax.set_title("季度营收 (亿元)", fontsize=16)
|
||
ax.spines['top'].set_visible(False)
|
||
ax.spines['right'].set_visible(False)
|
||
fig.savefig("chart.png", bbox_inches="tight", dpi=150)
|
||
```
|
||
|
||
## 8. 一致性 (跨页)
|
||
|
||
- 标题位置不要跳来跳去 —— 所有内页标题都在同一像素位置
|
||
- 页脚 (页码 / logo / 标题) 在所有内页位置一致
|
||
- 字体在同 deck 内不要换 —— 中文一种字体,英文一种,够了
|
||
- 配色不变,字号梯度不变
|
||
|
||
## 9. 反模式速查
|
||
|
||
| 症状 | 原因 | 修法 |
|
||
|-----|------|-----|
|
||
| 一页字密密麻麻 | 没拆页 | 拆 2-3 页或转图表 |
|
||
| 投影看不清 | 字号 < 18 | 加大字号或拆页 |
|
||
| 颜色花 | 用了超过 5 种色 | 退回三色制 |
|
||
| bullet 是完整段落 | 把演讲稿当 bullet 写 | 提炼关键词,完整句留给口述 |
|
||
| 图表默认配色 | 没改 matplotlib 色板 | 用 spec 主色 |
|
||
| 图标/图片随意找的 | 没统一风格 | 同一来源 / 同一风格 |
|
||
| 标题在每页位置都不一样 | 没用统一版式 | 见 layouts.md,固定模板 |
|