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
11 KiB
Executable File
汉字网格系统 详解
中文出版物"模数 → 网格 → 版心"方法论的完整展开。
一、核心概念
模数(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 是费氏数列黄金比第一项。
- 页面尺寸 = 正文字号的整数倍。如 60 字 × 90 字。
- 页面尺寸 = 模数字号的整数倍。1.5pt 模数下 540×810pt = 194,400 个单元格。
- 由 1 到 ∞:5400 个单元格可以选 1 字、2 字、N 字组合出页边距和版心;天头/订口/地脚/切口可按费氏比例(1:2:3:5)任选。
- 感觉是设计的核心:网格作为工具不能在感觉上提供帮助。"美比严格按网格排列重要"。
- 用相同模数设计不同字号:不同字号之间的比例关系来自共同模数。
- 用模数设计行间距:行间距必须是模数整数倍。同模数下,不同字号、不同行距的文本能行对齐(多语种对照、多体例对照)。
六、网格的实操规则(中文特有)
中文网格不只是"框文本",必须细到行内字格;用 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。