skills/ppt-station-skill/reference/layout-quote.md
wangyitong a65adcc2e5 Initial commit: merged, deduplicated, and vetted skill collection
Sources: extracted from two upstream archives (skill-repo, skills-main),
merged with the following policy:

- 15 broken symlinks (pointing to /Users/jameslee/.cc-switch/skills or
  ../../.agents/skills on a foreign machine) discarded
- 3 real name collisions with identical content (ai-pair, ifind-http-api,
  zhipu-websearch) kept as one copy
- Functional overlaps deduped keeping the strongest variant:
  - docx family: kept docx (official, full toolchain) + docx-cn
    (GB/T 9704 Chinese official-document constants),
    dropped docx_writer (no scripts, name collided with docx)
  - humanizer family: kept humanizer-zh (6 zh reference docs),
    dropped humanizer (en, redundant for CN workflow)
- Skills that only ran in a foreign environment removed:
  ablemind-ops, app-publish, hlb-design-system, openclaw-adj-skill,
  claude-driver
- alphapai excluded from this public repo because its SKILL.md hard-coded
  live credentials

Result: 25 skills, 572 files, ~7.5 MB.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-13 14:47:12 +08:00

9.9 KiB
Raw Permalink Blame History

Layout: quote — 引用/金句页

幻灯片尺寸: 13.333 × 7.5 英寸 | 边距: 0.6 英寸 | 内容宽: 12.133 英寸


用途

管理层观点、投资建议语录、风险提示声明、年报核心金句。


ASCII 线框图

┌─────────────────────────────────────────────────────────────┐
│                                                              │
│   ❝                                                         │
│                                                              │
│       在波动的市场中,坚守长期投资原则,                      │
│       比追求短期收益更能实现财富的稳健增长。                  │
│                                                              │
│                                          ❞                  │
│                                                              │
│              ─────────────────                               │
│              王明远  |  首席投资官                            │
│                                                              │
│   [可选:小字来源说明]                                        │
└─────────────────────────────────────────────────────────────┘

变体

变体 A深色背景bg_dark 款,强调感强)

┌─────────────────────────────────────────────────────────────┐
│  [bg_dark 背景]                                              │
│                                                              │
│   ❝ accent 色大引号)                                      │
│                                                              │
│       [quote 文字text_light居中大字]                   │
│                                                              │
│                                          ❞                  │
│              ─── accent 色横线 ───                           │
│              [author]  |  [title]  text_light较小     │
│                                                              │
└─────────────────────────────────────────────────────────────┘

变体 B浅色背景bg_light 款,报告内页用)

┌─────────────────────────────────────────────────────────────┐
│  [bg_light 背景]                                             │
│  ┌──────────────────────────────────────────────────────┐   │
│  │  card_bg 卡片(圆角矩形,带 border 边框)             │   │
│  │                                                      │   │
│  │  ❝ primary 色引号)                                │   │
│  │                                                      │   │
│  │       [quote 文字text_dark居中]                  │   │
│  │                                                      │   │
│  │                                    ❞                │   │
│  │       ─── secondary 色横线 ───                       │   │
│  │       [author]  |  [title]                          │   │
│  │                                                      │   │
│  └──────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────┘

精确坐标标注

变体 A深色背景

元素 x y w h 字号 颜色 对齐 备注
背景 0 0 13.333 7.5 bg_dark 全页背景
左引号 ❝ 0.60 1.00 1.50 1.50 96pt accent 装饰引号
右引号 ❞ 11.40 4.20 1.30 1.20 96pt accent 装饰引号
引文正文 1.80 2.00 9.733 2.80 28pt text_light 行高 1.5x
分隔线 5.167 5.00 3.00 0.04 accent 居中于页面
作者名 1.80 5.15 9.733 0.50 body_size+2 text_light 粗体
职衔 1.80 5.65 9.733 0.40 body_size text_light 细体muted
来源说明 0.60 6.90 12.133 0.35 caption_size text_muted 可选

引号字号说明: 96pt 装饰引号实际使用 Unicode 字符U+275D / U+275E 或用中文弯引号 " " 加大字号模拟。

变体 B浅色卡片

元素 x y w h 字号 颜色 对齐 备注
背景 0 0 13.333 7.5 bg_light 全页背景
卡片 0.60 0.80 12.133 6.20 card_bg 圆角 0.12", border
左引号 0.90 1.00 1.20 1.20 72pt primary
右引号 11.20 4.40 1.10 1.10 72pt primary
引文正文 1.60 2.00 10.133 2.60 24pt text_dark 行高 1.5x
分隔线 5.417 4.80 2.50 0.04 secondary
作者名 1.60 5.00 10.133 0.45 body_size+2 primary 粗体
职衔 1.60 5.50 10.133 0.40 body_size text_muted

数据接口

data = {
    "quote": str,              # 引文内容(建议 50-120 字,过长则字号自动缩小)
    "author": str,             # 作者姓名
    "title": str,              # 职衔/身份(如 "首席投资官" 或 "投行研报, 2024Q4"
    "source": str,             # 可选,来源说明(显示在左下角)
    "variant": "dark" | "light",  # 背景变体,默认 "dark"
    "quote_font_size": int,    # 可选,强制引文字号(默认根据文字长度自动)
}

字号自适应规则

引文字数 <= 40 字:  quote_font_size = 32pt
引文字数 41-80 字:  quote_font_size = 26pt
引文字数 81-120 字: quote_font_size = 22pt
引文字数 > 120 字:  quote_font_size = 18pt或换用文字较多的布局

实现伪代码

def layout_quote(slide, data, theme):
    sw, sh = 13.333, 7.5
    m = theme["margin"]
    cw = sw - 2 * m

    variant = data.get("variant", "dark")
    bg = theme["bg_dark"] if variant == "dark" else theme["bg_light"]
    qt_color = theme["accent"] if variant == "dark" else theme["primary"]
    text_color = theme["text_light"] if variant == "dark" else theme["text_dark"]
    line_color = theme["accent"] if variant == "dark" else theme["secondary"]

    set_slide_bg(slide, bg)

    if variant == "light":
        add_rounded_rect(slide, m, 0.80, cw, 6.20,
                         fill=theme["card_bg"], border=theme["border"],
                         radius=0.12)

    # 自适应字号
    q_len = len(data["quote"])
    if q_len <= 40: qfont = 32
    elif q_len <= 80: qfont = 26
    elif q_len <= 120: qfont = 22
    else: qfont = 18
    qfont = data.get("quote_font_size", qfont)

    # 装饰引号
    add_text(slide, "\u275d",  # ❝
             x=m, y=1.00, w=1.50, h=1.50,
             font_size=96, color=qt_color, bold=True,
             font_name=theme["header_font"])
    add_text(slide, "\u275e",  # ❞
             x=11.40, y=4.20, w=1.30, h=1.20,
             font_size=96, color=qt_color, bold=True,
             font_name=theme["header_font"])

    # 引文
    add_text(slide, data["quote"],
             x=1.80, y=2.00, w=sw-3.60, h=2.80,
             font_size=qfont, color=text_color,
             align="center", font_name=theme["body_font"])

    # 分隔线(居中)
    line_w = 3.00
    add_rect(slide, (sw-line_w)/2, 5.00, line_w, 0.04, fill=line_color)

    # 作者 + 职衔
    add_text(slide, data["author"],
             x=1.80, y=5.15, w=sw-3.60, h=0.50,
             font_size=theme["body_size"]+2, color=text_color,
             bold=True, align="center", font_name=theme["header_font"])
    add_text(slide, data["title"],
             x=1.80, y=5.65, w=sw-3.60, h=0.40,
             font_size=theme["body_size"], color=theme["text_muted"],
             align="center", font_name=theme["body_font"])

    if data.get("source"):
        add_text(slide, f"来源:{data['source']}",
                 x=m, y=6.90, w=cw, h=0.35,
                 font_size=theme["caption_size"], color=theme["text_muted"],
                 font_name=theme["body_font"])

设计要点

  1. 装饰引号 用 Unicode ❝❞"" 超大字号72-96pt纯作装饰不参与文字排版
  2. 分隔线 宽 2.5-3.0 英寸,水平居中,比内容区窄,营造"浮雕"感
  3. 引文字体 建议用 body_font(更易读),不用 header_font(太方正)
  4. 深色变体 适合章节封面、结论页之前的观点陈述页
  5. 浅色变体 适合内容页中间插入的专家观点

测试数据示例

data = {
    "quote": "长期投资的核心不是预测市场的每一次波动,而是在确定性的复利中耐心等待价值的回归。",
    "author": "李明华",
    "title": "首席投资策略师 | 国投养老基金",
    "source": "2024年度投资策略报告",
    "variant": "dark",
}