Files
AOS/skills/design/horizontal-craft/reference/grid-system.md
T
Z User e45b68bb8b feat: IMAP mail sync with thread-to-contact matching (PRD §6.1)
Real IMAP connection via imapflow library:
- Connects to IMAP server (IMAPFlow, TLS on port 993)
- Fetches recent messages (configurable limit, default 20)
- Extracts: from, fromEmail, subject, date, snippet (200 chars)
- Thread-to-contact matching (PRD §6.1):
  1. Match sender email against persons table
  2. If no person match, extract domain and match against company.website
  3. Returns matchedCompany + matchedPerson for each email
- Audit-logged (action: crm.mailsync:imap)
- Zod validated (host, port, user, password, folder, limit)
- 502 on IMAP connection failure with detail
- 400 on validation failure

Tested: invalid creds → 502 'IMAP connection failed', missing host → 400
2026-10-27 22:50:50 +00:00

11 KiB
Executable File
Raw Blame History

汉字网格系统 详解

中文出版物"模数 → 网格 → 版心"方法论的完整展开。

一、核心概念

模数(Modulus / 倍率 / 系数)

一个数值,所有版面元素都是它的整数倍。让页面所有空间要素纳入统一比例。

  • 默认推荐:1.5pt(正文 9pt 体系)
    • 正文 9pt = 6 × 1.5pt
    • 图注 6pt = 4 × 1.5pt
    • 小标题 12pt = 8 × 1.5pt
    • 行距 18pt = 12 × 1.5pt
    • 页边距以 9pt = 1 字 为单位
  • 学术/严谨:1pt(步进更细)
  • 古典精装 / 多体例对齐:0.5pt(极精细)
  • 不要用 1.618pt / φ 比例做模数——汉字定宽方格,小数位会让单元格宽算不齐

模数选择原则:正文字号能被模数整除,且模数能产生足够的字号梯度(不超过 12 级)。

字号体系

一个项目里所有字号都从同一个表里选。典型 9pt 模数 1.5pt 体系:

用途 字号 (pt) 是模数的 ? 倍
主标题 / 章首字 18–24 12–16×
章标题 15 10×
节标题 12 8×
正文 9 6×
引文 / 副文 7.5 5×
注释 / 图注 6 4×
页眉 / 页码 6 4×

字号之间的"跳跃"不应小于 1.5×(小于这个差视觉上分不出来)。

中国传统字号体系(号 / 级 / 点对照)

号 pt mm 用途
初号 42 14.8 章首大字、大标题
一号 27.5–28 9.7–9.9 海报大标题
小一 24 8.5 大标题
二号 21–22 7.4–7.8 标题
小二 18 6.3 中标
三号 15.75–16 5.6 公文正文(GB/T 9704-2012:三号仿宋)
四号 13.75–14 4.9 副标题
小四 12 4.2 副文
五号 10.5 3.7 书籍正文(最常用)
小五 9 3.2 报刊正文 / 新五号
六号 7.875 2.8 图注 / 正文字号下限
七号 5.25 1.9 极小辅助文字

页面与版心

核心公式:开本 = 正文字号 × 整数

  • 例:60 字宽 × 90 字高 × 9pt = 540 × 810pt = 190.5 × 285.75mm
  • 横纵比 = 2:3(费氏数列里的优美比)
  • 印装预留:横宽各 +6pt,纵高上下各 +9pt → 成品 552 × 828pt

其他常用比:1:1 / 2:3 / 3:5 / 5:8 / 8:13(费氏数列)

二、版心标记法

这套记号让任意排版方案能被一行字精确描述。学会这套记号能让你像建筑师一样思考版面。

横排版心

L3 + [ W(9pt × 56) ] + R1 / O2 + { H(9pt × 83) } + U5

含义:

符号 含义 单位
L 订口(内侧)页边距 Left/back margin 9pt 字数
R 切口(外侧)页边距 Right/fore-edge 9pt 字数
O 天头(顶部)页边距 Top margin 9pt 字数
U 地脚(底部)页边距 Bottom margin 9pt 字数
W( ) 版心宽 Width of type area,方括号 [ ] 包裹 pt × 字数
H{ } 版心高 Height of type area,花括号 { } 包裹 pt × 字数

读法:订口空 3 个字、切口空 1 个字、天头空 2 个字、地脚空 5 个字;版心是 9pt × 56 字宽、9pt × 83 行高。

直排版心(标记略有不同)

直排时"宽" = 行数 × 字号、"高" = 每行字数 × 字号;订口在右侧(左页则在左侧)。

O5 + { H(10.5pt × 40) } + U8 / R3 + [ W(10.5pt × 25) ] + L13
                                  ↑                       ↑
                            订口(右页右侧)         切口(左侧)

注意:直排时 L/R 角色调换 —— L 仍指订口(左页的左侧、右页的右侧),R 仍指切口。

典型版心方案(34 例精选)

页面均为 540×810pt(60×90 字)。

例 标记 用途
V_1 L3+[W(9×56)]+R1 / O2+{H(9×83)}+U5 极致填满,工具书/字典
V_12 L2+[W(9×53)]+R5 / O3+{H(9×79)}+U8 文学小说
V_22 L5+[W(9×42)]+R13 / O8+{H(9×61)}+U21 大切口、可批注(教材/笔记书)
V_26 L5+[W(9×50)]+R5 / O13+{H(9×69)}+U8 顶天/对称,画册
V_31 L3+[W(9×54)]+R3 / O5+{H(9×77)}+U8 通用学术,最常用
V_32 L3+[W(9×54)]+R3 / O5+{H(9×77)}+U8 同上,配多体例

规律:

  • 几乎都是 L < R 或 L+R 比 O+U 小(视觉重心略偏上)
  • 边距数值都是费氏数列邻项(1, 2, 3, 5, 8, 13, 21)

三、分栏(Column)

版心内可再分栏。栏宽和栏间距都是模数整数倍。

  • 1 栏:文学、散文
  • 2 栏:杂志、学术论文、教材
  • 3+ 栏:辞书、目录、新闻、数据手册
  • 栏间距:2 字宽(如 9pt × 2 = 18pt)最常用,也可 1 字宽

每栏字数:

  • 1 栏页面:17–40 字(W3C 推荐 17–40,硬上限 48)
  • 2 栏页面:15–22 字
  • 3 栏页面:12–18 字

四、为不同媒介换算模数

屏幕 / 网页

  • 正文 16px → 模数 4px(16/4=4,太粗时取 2px)
  • 字号梯度:12 / 14 / 16 / 20 / 24 / 32 / 48 / 64 px(都是 4 的倍数 + 偶数和谐)
  • max-width:30em ≈ 480px @ 16px
  • line-height:1.5–1.7

PowerPoint / Keynote

  • 4:3 画布 1024×768 → 用 64px 模数,16×12 格
  • 16:9 画布 1920×1080 → 用 60px 模数,32×18 格
  • 标题 40–60pt,正文 24–32pt,注释 14–18pt

H5 / 移动 (375pt 设计稿)

  • 模数 4pt,正文 14–16pt
  • 行长建议 ≤ 18 字(375pt 宽减边距后 ~ 311pt / 18pt 字宽 = 17 字)

印刷书籍

  • 32 开 (140×210mm) → 正文 9–10pt
  • 16 开 (185×260mm) → 正文 9.5–11pt
  • 8 开/画册 → 正文可 10–12pt(视距更远)

五、网格七要点

整套方法论最精炼的归纳:

  1. 从哪里开始? 从一个字开始,更确切是从组成这个字的模数开始。"汉字一字即一格",1:1 是费氏数列黄金比第一项。
  2. 页面尺寸 = 正文字号的整数倍。如 60 字 × 90 字。
  3. 页面尺寸 = 模数字号的整数倍。1.5pt 模数下 540×810pt = 194,400 个单元格。
  4. 由 1 到 ∞:5400 个单元格可以选 1 字、2 字、N 字组合出页边距和版心;天头/订口/地脚/切口可按费氏比例(1:2:3:5)任选。
  5. 感觉是设计的核心:网格作为工具不能在感觉上提供帮助。"美比严格按网格排列重要"。
  6. 用相同模数设计不同字号:不同字号之间的比例关系来自共同模数。
  7. 用模数设计行间距:行间距必须是模数整数倍。同模数下,不同字号、不同行距的文本能行对齐(多语种对照、多体例对照)。

六、网格的实操规则(中文特有)

中文网格不只是"框文本",必须细到行内字格;用 em/rem 表达一切尺寸,不用 px/mm。

6.1 工作流:先字号定版心,再余出边距

中文工作流是"先版心、后边距",不是西式"先边距、再版心":

1. 定字号(如 9pt)
2. 定每行字数(如 30 字)
3. 行长 = 字号 × 字数(9 × 30 = 270pt)
4. 定每页行数(如 28 行)
5. 定行距(如 18pt)
6. 版心高 = (28-1) × 18 + 9 = 495pt
7. 开本尺寸 - 版心 = 余白
8. 按 3:5:8:13 分配 L/R/O/U(左/右/外/内)

6.2 一切以"占字/占行"度量

元素 度量方式
首行缩进(书籍/公文/古典长文) text-indent: 2em
网页/卡片/UI 段落 通常不用首行缩进,顶格
栏间距 占 2 个字宽
一级标题占行 4–5 行(正文行高倍数)
二级标题占行 2–3 行
三级标题占行 1–2 行
双行题目占行 3 行
人名/花名册 每名占 3 格,2 字名后补 1 格空

所有标题占行必须是正文行高的整数倍——这是"对行"的基本要求。

6.3 行内字格也要管

奇数个对开(半宽)标点产生半格余量时,两种做法(无绝对对错,但要清楚妥协方向):

  • 活字做法:把半格余量加给那个标点 → 标点变全宽,行仍对齐网格
  • 数码常用:把半格均摊到全行字距 → 标点不变但整行偏离网格

6.4 严格网格之外允许"破格"

在网格内偶尔破格能让作品有上限突破,但先有下限再谈上限:

  • 一张大图越出版心
  • 一行标题挑出栏
  • 段落里有意留出局部空白
  • 用同字号的空行/缩进区分体例(不靠加粗或换字体)

6.5 优先级:先功能,再形式对齐

"全标点全宽 + 不避头尾 + 数字字母全角"虽能纵横绝对对齐,但牺牲易读性。先做完下面这些,再考虑形式对齐:

  • 标点宽度调整(见 punctuation.md)
  • 避头尾(见 punctuation.md § 四)
  • 换行控制(见 title-and-breaking.md)
  • 正字法选择(汉字数字 vs 阿拉伯数字、中西混排策略)

"为形式牺牲功能"是错。

七、W3C CLReq 关键数值速查表

把 W3C《中文排版需求》里散落的硬数值集中在一起,方便查。

字号 / 行长 / 行距

项目 最小 推荐 最大
正文字号 6 号 (7.875pt ≈ 2.8mm) 五号 10.5pt / 小五 9pt —
行长(每行字数) ≥ 10 字 17–40 字 横排 ≤ 48 字 / 直排 ≤ 55 字
行距(字号比例) 50% 字号 50–100% 字号 100% 字号(超出不增易读性)
行高(含字本身) 1.5 × 字号 1.5–2 × 字号 2 × 字号
段首缩进 — 仅在书籍/公文/古典长文等模板指定时使用;常见 2em,短栏可 1em —
直排带注音行距 ≥ 1.5 × 基字 — —
行间标点单面装行距 ≥ 1/2 字号 — —
行间标点双面装行距 ≥ 5/8 字号 — —

中西混排间距

间距 最小 默认 最大
中西文之间 1/8 em 1/4 em 1/2 em
西文词距 1/4 em 1/3 em 1/2 em
行末标点 半字宽 半字宽 半字宽(固定)

注音与拼音字号比例

注法 注文字号 行距加成
注音符号(Bopomofo) 基字的 30% 行距 ≥ 1.5 × 基字
汉语拼音 基字的 50% 同上
轻声符(注音) 基字的 1/15 —

标题占行

标题层级 占行 字号(正文 9pt 时)
大标题(章首) 4–5 行 18–24pt
中标题(节首) 2–3 行 12–15pt
小标题 1–2 行 10–12pt
双行标题 3 行 主 12pt + 副 9pt
同行标题 1 行(接续正文) 9pt 加粗

连续标点宽度

状态 宽度
任意两个相邻标点共 2 字(未挤压)
应缩到 1.5 字宽
可进一步缩到 1 字宽

八、横排 / 直排版心的方向差异

不同方向下版心的"行 / 列"含义对调:

概念 横排 直排
一行 水平一行字 垂直一行字
行长 水平宽度 垂直高度
每页行数 垂直堆叠多少行 水平排列多少行
行间距 上下两行之间 左右两行之间
版心宽 W 横向尺寸 横向尺寸(= 行数 × 字号)
版心高 H 纵向尺寸 纵向尺寸(= 每行字数 × 字号)
订口 L 左侧(右页)/ 右侧(左页) 右侧(右页)/ 左侧(左页)
切口 R 右侧(右页)/ 左侧(左页) 左侧(右页)/ 右侧(左页)

详见 directions.md。