chinese-typography · git:20260812.8dc2f6e · 2026-08-12 · sha256 4921354464bf33e5

chinese-typography git:20260812.8dc2f6eA

Immutable. This exact content is served forever at /api/v1/blob/4921354464bf33e5.

---
name: chinese-typography
description: 中文排版规范助手。当用户要"排版""中文网页样式""文章排版""公众号排版""PDF/Word 排版""字体怎么选""中英混排""为什么我的中文网页很丑"时使用。处理中英间距、标点、行高、字体栈、CJK 断行等中文特有问题,输出可直接用的 CSS 或排版建议。
metadata:
  author: sanhuang520-ship-it
  category: design
  tags: design, chinese, standards, ui
---

# 中文排版助手

**中文网页丑,八成不是设计问题,是排版问题。**

大部分模板是按西文设计的,直接拿来放中文,会同时踩到十几个坑:行高不够、中英挤在一起、标点占位不对、断行断在不该断的地方。

## 什么时候用

网页/文章/公众号/PDF/Word/PPT 的中文排版,选字体,中英混排,修"说不上哪里丑"的中文页面。

## 第一步:确认载体

不同载体规则差别大:

| 载体 | 关键差异 |
|------|---------|
| **网页** | 可用 CSS 控制,字体要考虑加载 |
| **公众号** | 内联样式,字体受限,宽度固定 |
| **Word/PDF** | 首行缩进传统,字号用磅 |
| **PPT** | 字号大、行数少、对比强 |

## 中文排版的 10 条核心规则

### 1. 中英文之间加空格(盘古之白)

```
❌ 我用Python写了一个爬虫
✅ 我用 Python 写了一个爬虫
```

**数字同理**:`3 个苹果`、`iPhone 15 Pro`

例外:**标点旁边不加**——`使用 Python,然后……`(逗号前不加)

### 2. 行高要比西文大

中文字符方正饱满,行高不够会挤成一团。

```css
line-height: 1.75;   /* 正文,1.6-1.8 都可以 */
line-height: 1.35;   /* 大标题可以紧一些 */
```

> 西文常用的 1.4-1.5 放中文会显得压抑。

### 3. 字体栈要写对

```css
font-family:
  -apple-system, BlinkMacSystemFont,   /* 苹方 / SF */
  "Segoe UI", Roboto,                   /* 西文优先 */
  "PingFang SC", "Hiragino Sans GB",    /* 苹果中文 */
  "Microsoft YaHei", "微软雅黑",         /* Windows */
  "Source Han Sans SC", "Noto Sans CJK SC",  /* 思源 */
  sans-serif;
```

**顺序原则**:西文字体放前面,中文字体放后面。这样英文用西文字体渲染,中文自动 fallback,混排更好看。

**衬线(正文长阅读 / 文艺感)**:
```css
font-family: "Songti SC", "SimSun", "Noto Serif SC", Georgia, serif;
```

### 4. 标点:全角还是半角

| 场景 | 用法 |
|------|------|
| 中文句子 | **全角**:,。?!:;""'' |
| 英文句子 | **半角**:, . ? ! : ; " ' |
| 中文句中的英文 | 英文内部用半角,句子结束用全角句号 |

**括号**:中文内容用全角(),英文内容用半角 ()

**省略号**:中文用 `……`(六点),不是 `...`

**破折号**:中文用 `——`(两个),不是 `--`

### 5. 引号

- 简体大陆规范:`""` 和 `''`
- 港台 / 文艺排版:`「」` 和 `『』`

**统一即可,不要混用。**

### 6. CJK 断行控制

```css
word-break: normal;        /* 不要用 break-all,会把英文单词拦腰截断 */
overflow-wrap: anywhere;   /* 超长 URL 才需要 */
line-break: strict;        /* 严格避头尾(标点不出现在行首)*/
```

**避头尾规则**:`。,、;:?!)》」` 不能出现在行首;`(《「` 不能出现在行尾。

### 7. 段落:缩进还是间距

| 载体 | 推荐 |
|------|------|
| 网页 | **段间距**(`margin-bottom: 1.5em`),不缩进 |
| 印刷 / Word / PDF | **首行缩进 2 字符**(`text-indent: 2em`) |

⚠️ **不要同时用**——又缩进又空行是排版新手最常见的错误。

### 8. 着重强调

中文**不用下划线**,也慎用斜体(中文没有真正的斜体,会被拉斜变形)。

```css
/* 着重号(中文传统做法)*/
em {
  font-style: normal;
  text-emphasis: dot;
  text-emphasis-position: under right;
}
```

或直接用**加粗**。

### 9. 字号与行宽

```css
font-size: 16px;      /* 网页正文最小值,17-18px 更舒适 */
max-width: 38em;      /* 中文一行 30-40 字最舒服 */
```

> 一行超过 45 个汉字,眼睛回扫会累。

### 10. 数字与单位

- 数字用**半角**:`2026 年`不是`2026年`
- 数字与单位间加空格:`5 GB`、`30 分钟`(中文单位可不加:`5个`→`5 个`更清晰)
- 表格里的数字用等宽对齐:`font-variant-numeric: tabular-nums;`

## 可直接用的基础样式

```css
:root {
  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI",
               "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
  --font-serif: "Songti SC", "Noto Serif SC", Georgia, serif;
}

body {
  font-family: var(--font-sans);
  font-size: 17px;
  line-height: 1.75;
  letter-spacing: 0.01em;      /* 中文微调,别超过 0.05em */
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

article {
  max-width: 38em;
  margin: 0 auto;
}

p { margin-bottom: 1.5em; }

h1, h2, h3 {
  line-height: 1.35;
  letter-spacing: 0;           /* 大字号不需要额外字距 */
  margin: 2em 0 0.8em;
}

/* 中英混排自动间距(现代浏览器)*/
body { text-spacing-trim: normal; }

/* 着重号 */
em {
  font-style: normal;
  text-emphasis: dot;
  text-emphasis-position: under right;
}

/* 表格数字对齐 */
td.num { font-variant-numeric: tabular-nums; text-align: right; }
```

## 常见问题速查

| 症状 | 原因 | 解法 |
|------|------|------|
| 中文网页"说不上哪里丑" | 行高太小 | `line-height: 1.75` |
| 中英文挤在一起 | 缺盘古之白 | 手动加空格或用 `text-spacing-trim` |
| 英文单词被截断 | `word-break: break-all` | 改成 `normal` |
| 标点出现在行首 | 没设避头尾 | `line-break: strict` |
| 加粗中文变模糊 | 字体没有真 Bold,被伪粗 | 用思源黑体等有多字重的字体 |
| 一行字太长看着累 | 没限宽 | `max-width: 38em` |
| 斜体中文很难看 | 中文无真斜体 | 改用加粗或着重号 |

## 公众号排版特殊规则

- 正文字号 **15-16px**(微信默认 17px 偏大)
- 行高 **1.75**
- 段间距 **1em**,不要首行缩进
- 两端不留白边(微信已有边距)
- **不要用系统外字体**,会失效
- 图片宽度 100%,圆角 4-8px

## 边界

1. **不替用户决定品牌字体**。商用字体有授权问题(如方正、汉仪部分字体商用需付费),涉及商业项目时提醒核实授权。
2. **不确定的规范要说明**。大陆/港台/新马排版规范有差异,涉及具体出版规范时建议查对应标准(如 GB/T 15834 标点符号用法)。
3. **免费可商用中文字体**推荐:思源黑体/宋体(SIL OFL)、阿里巴巴普惠体、HarmonyOS Sans、霞鹜文楷。用之前仍建议核对最新授权条款。