# 字宽、间距和排版功能

> 适合谁看：字形画好了，接下来要处理字宽、字距和 OpenType 功能的人。

## 汉字：全角等宽

汉字一般都是等宽的，字宽就是 1 个 em。间距主要通过字面大小来控制，见[《汉字的骨架：字身框、字面、重心和中宫》](https://docs.cocobook.com/link/1290)。

## 西文：字侧空间和字偶距

西文字母宽度各不相同，需要逐个设定：

- **字侧空间**：每个字形左右两侧的空白。常见方法是先给直线类字母（如 n、H）定好间距，再推到圆形类（o、O）和斜线类（v、A）；
- **字偶距调整**：对特定组合（如 AV、To、LT）单独调整距离，存进字体的 `kern` 功能。先把字侧空间调好，字偶距只用来处理少数特殊组合。

## 常用的 OpenType 功能

OpenType 功能让字体在排版时自动替换字形或调整位置。中文字体常用的：

| 功能 | 作用 |
|---|---|
| `vert` / `vrt2` | 竖排时替换标点等字形 |
| `halt` / `vhal` | 把全角标点变成半宽（横排/竖排） |
| `chws` / `vchw` | 根据上下文自动挤压标点 |
| `locl` | 按语言切换字形，例如简繁或地区字形 |
| `palt` / `vpal` | 比例宽度的字形调整 |
| `kern` | 西文字偶距 |
| `liga` | 西文连字 |
| `tnum` / `pnum` | 等宽数字 / 比例数字 |

功能做好后，要在真实排版环境里测试：网页浏览器、Word、InDesign 对各功能的支持程度不同。网页上如何开启这些功能，见[《在网页上实现中文排版：CSS 速查》](https://docs.cocobook.com/link/1268)。

## 度量信息

字体文件里还要设定行高相关的数值（上升、下降、行间距等）。这些数值不一致，会导致同一款字在不同系统里行高不同。可变字体和多字重家族中，各字重的这些数值要保持一致。

<p style="margin-top:2.5em;padding-top:.6em;border-top:1px solid #e6e6e6;font-size:.85em;color:#8a8a8a"><a href="https://docs.cocobook.com/link/1307#bkmrk-src-g07-spacing" style="color:inherit;text-decoration:none;border-bottom:1px dotted #bbb">参考资料</a></p>