# 电脑字体使用指南

在 Windows、macOS、Linux、设计软件和网页里安装、管理和使用字体的通用教程，适用于任何字体。

# 字体文件格式怎么选：TTF、OTF、TTC、WOFF2 和可变字体

电脑上装的字体和网页上用的字体，常见的就下面几种。先看扩展名，再决定怎么用。

## 装在电脑上用的格式

| 格式 | 扩展名 | 说明 |
|---|---|---|
| TrueType | `.ttf` | 最常见，Windows、macOS、Linux 都能直接安装。 |
| OpenType | `.otf`、`.ttf` | 在 TrueType 基础上扩展而来，能放更多字符和排版功能（如连字、竖排、各地区字形）。轮廓可以是 TrueType 曲线，也可以是 PostScript（CFF）曲线，后者通常存成 `.otf`。 |
| 字体集合 | `.ttc`、`.otc` | 一个文件里装了多款字体。例如思源黑体的完整版就是一个集合文件，里面有简体、繁体、日文、韩文等多个版本。三个系统都能安装。 |
| 可变字体 | `.ttf`、`.otf` | 一个文件里包含连续的粗细（有的还有宽窄）变化，不必为每个字重单独装一个文件。思源黑体、思源宋体都有可变字体版本。新版系统和设计软件都支持，很老的软件可能只显示默认字重。 |

日常使用，**选 `.otf` 或 `.ttf` 都可以**，两者在使用上几乎没有区别。同一款字体不要把 `.otf` 和 `.ttf` 两个版本同时装上，否则软件里会出现重名，容易用错。

## 只在网页上用的格式

| 格式 | 扩展名 | 说明 |
|---|---|---|
| WOFF2 | `.woff2` | 网页字体的首选，压缩率最高，所有主流浏览器都支持。 |
| WOFF | `.woff` | WOFF2 的上一代，现在一般只作备用。 |

WOFF 和 WOFF2 是给浏览器用的，不能当作电脑字体安装。网页里怎么写，见[《在网页里使用字体：@font-face 的现代写法》](https://docs.cocobook.com/link/133)。

## 已经过时的格式

- **PostScript Type 1**（`.pfb`、`.pfm`、`.afm`，Mac 上的 LWFN）：Adobe 的设计软件从 2023 年起已不再支持，macOS 也不推荐使用，很多 Linux 软件同样不再支持。请换用同一字体的 OpenType 版本。
- **Mac 老格式**（`.dfont`、手提箱 suitcase 字体）：只在 Mac 上能用，在 Windows 上会提示不是有效的字体文件。
- **EOT、SVG 字体**：早年为老浏览器准备的网页字体格式，现在的浏览器已经用不上，不必再提供。

## 怎么选

- 在电脑上排版、做设计：装 `.otf`/`.ttf`，有可变字体版本且软件支持的，可以优先用可变字体。
- 做网页：用 `.woff2`。
- 中文字体文件很大，做网页时还要按字符拆分，见[《中文网页字体为什么要拆分子集》](https://docs.cocobook.com/link/598)。

<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-guide-01" style="color:inherit;text-decoration:none;border-bottom:1px dotted #bbb">参考资料</a></p>

# 在 Windows 10 和 11 上安装和删除字体

本文适用于 Windows 10 和 Windows 11。更早的 Windows 版本已经停止支持，不再单独说明。

## 安装字体

1. 下载字体文件。如果是 `.zip` 压缩包，先右键选择「全部解压缩」，得到 `.ttf`、`.otf` 或 `.ttc` 文件。
2. 右键单击字体文件，选择「安装」。
   - 这样装的字体**只对当前登录的账户有效**。
   - 要让电脑上所有账户都能用，选择「为所有用户安装」，需要管理员确认。Windows 11 的右键菜单里如果找不到这一项，先点「显示更多选项」。
3. 也可以打开「设置」→「个性化」→「字体」，把字体文件直接拖进页面上方的「添加字体」区域。

装好以后一般不需要重启电脑，但正在运行的软件要**关掉再打开**才能看到新字体。

### 两种安装方式的区别

| 方式 | 字体放在哪 | 谁能用 | 需要管理员 |
|---|---|---|---|
| 安装 | `%LOCALAPPDATA%\Microsoft\Windows\Fonts` | 只有当前账户 | 否 |
| 为所有用户安装 | `C:\Windows\Fonts` | 所有账户 | 是 |

有些较老的软件（包括部分老版本设计软件）只读取 `C:\Windows\Fonts`，用「安装」装的字体在里面找不到。遇到这种情况，先删掉这款字体，再用「为所有用户安装」重新装一次。

## 查看已安装的字体

打开「设置」→「个性化」→「字体」，在「可用字体」里可以搜索、预览，点进某款字体能看到它的全名、版本、文件位置等信息。

## 删除字体

1. 打开「设置」→「个性化」→「字体」。
2. 找到并点开要删除的字体，点击「卸载」。

注意：

- 为所有用户安装的字体，卸载时需要管理员确认。
- 字体正在被软件使用时可能删不掉，先关闭相关软件再试。
- **不要删除系统自带字体**（如微软雅黑、宋体、Segoe UI），否则界面文字可能显示异常。只想让列表清爽一点，可以在字体详情里选择「隐藏」。

## 常见问题

- **提示“不是有效的字体文件”**：见[《字体装不上：提示“不是有效的字体文件”怎么办》](https://docs.cocobook.com/link/128)。
- **装好了但设计软件里找不到**：见[《装好的字体在设计软件里找不到怎么办》](https://docs.cocobook.com/link/129)。

<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-guide-02" style="color:inherit;text-decoration:none;border-bottom:1px dotted #bbb">参考资料</a></p>

# 在 macOS 上安装、删除和恢复字体

本文适用于近几年的 macOS 版本，所用的都是系统自带的「字体册」（Font Book）。

## 安装字体

任选一种方法：

- 在访达里双击字体文件，在弹出的窗口中点「安装」。
- 打开「字体册」，把字体文件拖进窗口。
- 在「字体册」菜单栏选「文件」→「将字体添加到当前用户」，选中字体文件。
- 把字体文件拖到程序坞里的「字体册」图标上，再点「安装」。

安装时「字体册」会自动检查字体是否有错误、是否和已装字体重复。装好后不需要重启电脑，正在运行的软件关掉再打开即可。

### 装给自己，还是装给所有用户

在「字体册」→「设置」里可以改「默认安装位置」：

| 选项 | 字体放在哪 | 说明 |
|---|---|---|
| 当前用户（默认） | `~/Library/Fonts` | 只有你自己能用。 |
| 所有用户 | `/Library/Fonts` | 这台 Mac 上所有账户都能用，需要输入管理员密码。 |

**不要**把字体手动复制到 `/System/Library/Fonts`。那是系统字体所在的位置，新版 macOS 的系统区域是只读的，也不应该改动。

## 删除字体

1. 打开「字体册」，选中要删除的一款或多款字体。
2. 按 Delete 键，再点「移除字体」确认。字体文件会被移到废纸篓。

不想删除、只是暂时不用，可以选择「编辑」→「取消激活」，以后再用「编辑」→「激活」打开。取消激活的字体在列表里会变暗。

系统自带字体不能移除，也不能取消激活。

## 恢复系统自带字体

如果字体显示异常、系统字体被误停用，或装了太多字体想回到初始状态：

1. 打开「字体册」，选择「字体册」→「设置」→「高级」。
2. 点击「还原字体」，点「继续」确认，按要求输入密码或使用触控 ID。（较早的 macOS 版本在「文件」菜单里，叫「恢复标准字体」。）

还原**不会直接删除**你装的字体，而是把它们移到 `~/Library/Fonts (Removed)` 或 `/Library/Fonts (Removed)` 文件夹，之后在软件里就用不了了。还要用哪款，从这两个文件夹里重新安装即可。

<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-guide-03" style="color:inherit;text-decoration:none;border-bottom:1px dotted #bbb">参考资料</a></p>

# 在 Linux 上安装和删除字体

本文适用于使用 GNOME 或 KDE Plasma 桌面的主流发行版（如 Ubuntu、Debian、Fedora、openSUSE、Arch Linux）。这些系统都用 fontconfig 管理字体，方法基本一致。

## 优先用软件包安装

很多开源字体可以直接从发行版的软件源安装，以后更新、卸载都方便。例如思源黑体（在软件源里叫 Noto Sans CJK，字形与思源黑体相同）：

```bash
# Ubuntu / Debian
sudo apt install fonts-noto-cjk

# Fedora
sudo dnf install google-noto-sans-cjk-fonts
```

不同发行版的包名不一样，可以在软件中心或包管理器里搜索字体名。

## 用桌面工具安装

- **GNOME**：双击字体文件，会用「字体」应用打开，点「安装」。
- **KDE Plasma**：双击字体文件，用字体查看器打开后点「安装」；也可以在「系统设置」里的字体管理页面添加字体。

这两种方式通常把字体装到你自己的用户目录，只对当前用户生效。

## 手动安装（命令行）

只给自己用，放在用户目录，不需要 root 权限：

```bash
mkdir -p ~/.local/share/fonts
cp LXGWWenKai-Regular.ttf ~/.local/share/fonts/
fc-cache -f
```

给这台电脑上所有用户用，放在 `/usr/local/share/fonts`：

```bash
sudo mkdir -p /usr/local/share/fonts
sudo cp LXGWWenKai-Regular.ttf /usr/local/share/fonts/
sudo fc-cache -f
```

说明：

- 可以在这些目录下建子文件夹分类存放，fontconfig 会自动往下查找。
- `/usr/share/fonts` 归软件包管理，不要手动往里放文件。
- 老教程里的 `~/.fonts` 目录已不推荐使用；`mkfontscale`、`mkfontdir` 只给很老的程序用，现在一般不需要。
- 正在运行的软件需要关掉再打开才能看到新字体。

## 检查是否装好

```bash
fc-list | grep -i wenkai          # 按名字查找已安装字体
fc-list :lang=zh family           # 列出支持中文的字体名称
fc-match sans-serif:lang=zh-cn    # 查看中文无衬线默认用的是哪款
```

## 删除字体

- 用软件包装的字体，用包管理器卸载，例如 `sudo apt remove fonts-noto-cjk`。
- 手动装的字体，删掉对应文件，再刷新缓存：

```bash
rm ~/.local/share/fonts/LXGWWenKai-Regular.ttf
fc-cache -f
```

## 关于老格式

`.pfa`、`.pfb`（PostScript Type 1）和老式点阵字体在新版桌面软件里已经不受支持，请换用同一字体的 OpenType 或 TrueType 版本。

<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-guide-04" style="color:inherit;text-decoration:none;border-bottom:1px dotted #bbb">参考资料</a></p>

# 字体装不上：提示“不是有效的字体文件”怎么办

Windows 上常见的提示是「……不是有效的字体文件」，macOS 的「字体册」可能提示字体有错误或无法安装，Linux 上则是装了也在列表里找不到。按下面的顺序排查。

## 1. 看清扩展名

先让系统显示完整扩展名（Windows：文件资源管理器 →「查看」→ 勾选「文件扩展名」；macOS：访达 →「设置」→「高级」→ 勾选「显示所有文件扩展名」）。

| 你拿到的文件 | 原因 | 怎么办 |
|---|---|---|
| `.zip`、`.rar`、`.7z` | 这是压缩包，不是字体 | 先解压，再安装里面的 `.ttf`/`.otf`/`.ttc`。 |
| `.woff`、`.woff2`、`.eot` | 网页字体，只给浏览器用 | 去字体的官方发布页下载桌面版（`.otf`/`.ttf`）。 |
| `.dfont`、没有扩展名的 Mac 手提箱字体 | Mac 老格式 | Windows 和 Linux 用不了，换 OpenType 版本。 |
| `.pfb`、`.pfm`、`.afm` | PostScript Type 1 老格式 | 新版设计软件已不支持，换 OpenType 版本。 |
| `.ttf`/`.otf`，但只有几 KB | 下载不完整，或者其实是一个网页 | 重新下载。 |

## 2. 重新下载，并从正规来源下载

很多“无效字体”其实是下载中断、被下载工具改了内容，或者从转载站下到了被改过的文件。请从字体作者或发布方的官方页面重新下载。开源字体一般在作者的 GitHub 发布页或官网提供，例如思源黑体在 Adobe Fonts 的 GitHub 仓库发布，霞鹜文楷在作者的 GitHub 发布页发布。

## 3. 不要用在线转换网站“修”字体

不建议把字体上传到网上的格式转换站。原因有三：

- 转换后的文件常常丢字、丢字重或排版功能，装上了也不好用。
- 很多商业字体的许可不允许修改或转换格式。
- 字体文件可能被夹带别的东西，来源无法确认。

需要别的格式，请去字体发布方找官方提供的版本。

## 4. 用系统工具检查

- **macOS**：在「字体册」里选中字体，选「文件」→「验证所选字体」，或「文件」→「验证文件」检查还没安装的文件。有严重错误的字体不要安装。
- **Linux**：运行 `fc-query 文件名.ttf`，能正常列出字体名称说明文件本身没问题；如果报错，文件多半已损坏。
- **Windows**：双击字体文件，如果连预览都打不开，基本可以确定文件已损坏或格式不对。

## 5. 文件没问题但还是装不上

- **权限不够**：「为所有用户安装」需要管理员权限；在公司电脑上，可能被管理员禁止安装字体，需要找电脑管理员。
- **已经装过同名字体**：先删掉旧版本，再装新版本。macOS 可以用「文件」→「解决重复字体」处理。
- **安全软件拦截**：有的安全软件会拦截向字体目录写入文件，可以暂时查看安全软件的拦截记录。

<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-guide-05" style="color:inherit;text-decoration:none;border-bottom:1px dotted #bbb">参考资料</a></p>

# 装好的字体在设计软件里找不到怎么办

字体已经装好，在系统字体列表里也能看到，但 Photoshop、Illustrator、InDesign、CorelDRAW、Affinity、Figma 桌面版等软件里找不到。按下面的顺序排查。

## 1. 重启软件

软件一般只在启动时读取字体列表。装完字体后，把软件**完全退出**（macOS 上用 Command+Q，不只是关窗口）再打开。还不行就重启一次电脑。

## 2. 换个名字搜

同一款字体在软件里显示的名字可能和你想的不一样：

- 很多中文字体同时有中文名和英文名。例如思源黑体可能显示为「思源黑体」，也可能显示为「Source Han Sans SC」；霞鹜文楷可能显示为「LXGW WenKai」。两个名字都搜一下。
- Adobe 软件里可以设置字体名是否用英文显示（Photoshop：「首选项」→「文字」→「以英文显示字体名称」），改了以后中文名会变成英文名。
- 部分字体按“字体家族”归组，要先找到家族名，再在旁边的下拉框里选粗细。

## 3. Windows：确认是不是只装给了当前用户

Windows 10/11 默认的「安装」只对当前账户生效，字体放在用户目录里。有些较老的软件只读取 `C:\Windows\Fonts`，就会找不到。解决方法：在「设置」→「个性化」→「字体」里卸载这款字体，然后右键字体文件，选「为所有用户安装」重新安装。

## 4. 格式和版本问题

- **可变字体**：较老的软件不支持可变字体，只会显示一个默认粗细，或者干脆不显示。可以改用同一字体的静态版本（每个粗细一个文件）。
- **PostScript Type 1**（`.pfb`/`.pfm`）：新版 Adobe 软件已不支持，换 OpenType 版本。
- **字体集合**（`.ttc`/`.otc`）：极少数老软件不能读取集合文件，可以改用字体发布方提供的单独文件版本。

## 5. 重名或冲突

同一款字体装了两个版本（比如 `.otf` 和 `.ttf` 都装了，或新旧版本都在），软件里可能只显示一个，或者显示错乱。删掉多余的，只留一个版本，然后重启软件。macOS 可以在「字体册」里用「文件」→「解决重复字体」。

## 6. 软件自己的字体缓存

如果上面都试过还是不行，可能是软件的字体缓存出了问题。可以先在软件官方帮助里搜索“字体缓存”，按官方给出的方法清理。不建议照着来路不明的教程删除系统目录里的文件。

## 7. 浏览器里的在线设计工具

在线设计工具读不到本机字体是常见情况，一般要装它们提供的字体助手程序，或者在浏览器里允许“访问本地字体”。具体请看对应工具的帮助说明。

# 打开设计文件提示缺少字体怎么办

打开别人发来的 PSD、AI、INDD、CDR 或 PDF 文件时，软件提示「缺少字体」或者文字被替换成了别的字体。原因很简单：**文件里只记了字体的名字，你的电脑上没有同名的字体**。

## 1. 弄清楚缺的是哪款字体

软件的缺失字体对话框会列出字体名称，例如 Photoshop、Illustrator 的「解析缺失字体」对话框，InDesign 的「查找/替换字体」。这里显示的往往是字体的 **PostScript 名称**，比如 `SourceHanSansSC-Bold`、`LXGWWenKai-Regular`，和你在字体菜单里看到的中文名不一样。

几个读名字的技巧：

- 横线后面的部分通常是粗细或样式：`Regular`（常规）、`Medium`（中等）、`Bold`（粗体）、`Light`（细体）。
- 一些老的日文、中文 PostScript 字体名后面会带一串编码后缀，比如 `-83pv-RKSJ-H`、`-90ms-RKSJ-H`、`-GBpc-EUC-H`、`-UniGB-UCS2-H`。这表示当年用的字符编码方式，**不是字体名的一部分**。去掉这段后缀，剩下的才是要找的字体。
- 名字末尾的 `-H` 表示横排，`-V` 表示竖排，也不是字体名本身。

## 2. 查看你电脑上字体的 PostScript 名称

想确认自己装的字体是不是文件里要的那一款：

- **macOS**：在「字体册」里选中字体，打开信息面板，能看到 PostScript 名称。
- **Linux**：运行 `fc-list : family postscriptname | grep -i 名字`。
- **Windows**：在「设置」→「个性化」→「字体」里点开字体，能看到全名和文件位置；在 Adobe 软件里把文字设成这款字体，再到缺失字体对话框里对照即可。

## 3. 解决办法

按推荐程度排列：

1. **安装同一款字体**。确认许可允许你使用，从官方渠道下载安装，然后重新打开文件。注意粗细也要装全。
2. **请对方打包发来**。InDesign 的「打包」、Illustrator 的「打包」功能会把文件用到的字体一起收集起来（前提是字体许可允许分发）。
3. **替换成你有的字体**。在缺失字体对话框里选一款相近的字体替换。版式可能会变，替换后要检查换行和对齐。
4. **只需要看或打印，不需要再改文字**：请对方导出嵌入字体的 PDF，或者把文字转成轮廓（曲线）后再发。转曲后文字不能再编辑，记得保留一份原文件。

## 4. 同一款字体，Mac 和 Windows 上名字不一样

有些字体（尤其是早年的系统自带字体）在 Mac 和 Windows 上是两套文件，PostScript 名称不同，跨平台打开文件时就会提示缺少字体，即使两边看起来都装了“同一款”。这种情况：

- 优先改用两个平台上都一样的字体，例如开源的思源黑体、思源宋体、霞鹜文楷，它们在三个系统上用的是同一套文件、同一个名字。
- 团队协作时，约定好使用哪些字体、用哪个版本，并且从同一个来源安装。

**不要**为了让名字对上而去修改字体文件内部的名称，这会违反大多数字体的许可，也可能让文件和其他人的电脑再次对不上。

## 5. PDF 提示缺少字体

PDF 阅读器提示缺字体，或者用了替代字体，一般是导出时没有嵌入字体。请对方重新导出，在导出设置里选择嵌入全部字体（有些字体的许可不允许嵌入，这时导出软件会提示）。

# 在网页里使用字体：@font-face 的现代写法

本文介绍现在推荐的网页字体写法。以前为老浏览器准备的 EOT、SVG 字体格式和各种兼容写法，现在已经不需要了。

## 最简单的写法

把字体文件（`.woff2`）放到你的网站上，然后在 CSS 里声明：

```css
@font-face {
  font-family: "LXGW WenKai";
  src: url("/fonts/LXGWWenKai-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

body {
  font-family: "LXGW WenKai", "PingFang SC", "Microsoft YaHei", sans-serif;
}
```

要点：

- **`font-family`**：你给这款字体起的名字，下面的样式用同一个名字引用。
- **`src`**：只写 WOFF2 就够了，所有主流浏览器都支持。`format("woff2")` 告诉浏览器这是什么格式，不支持的浏览器会直接跳过，不会白白下载。
- **`font-weight`、`font-style`**：说明这个文件是什么粗细和样式。同一字体的常规体和粗体各写一个 `@font-face`，`font-family` 名字相同、`font-weight` 不同。
- **后备字体**：`font-family` 后面跟上系统字体和通用字体族（如 `sans-serif`），网页字体还没下载好或加载失败时就用它们显示。

## 可变字体

可变字体一个文件包含一段连续的粗细，`font-weight` 写成一个范围：

```css
@font-face {
  font-family: "Source Han Sans SC VF";
  src: url("/fonts/SourceHanSansSC-VF.otf.woff2") format("woff2");
  font-weight: 250 900;
  font-display: swap;
}
```

之后在样式里用 `font-weight: 350` 这样的任意数值都可以。

## font-display：字体还没下载好时怎么显示

| 值 | 效果 | 适合 |
|---|---|---|
| `swap` | 先用后备字体显示文字，网页字体下载好后马上换上 | 标题、品牌字等一定要用这款字体的地方 |
| `fallback` | 极短时间内不显示文字，之后用后备字体；只在短时间内下载好才换上 | 正文 |
| `optional` | 极短时间内没下载好就一直用后备字体，不再替换 | 对稳定性要求高、字体只是锦上添花的页面 |
| `block` | 最多隐藏文字一小段时间，等字体下载 | 图标字体等必须用原字体才能看懂的情况 |
| `auto` | 交给浏览器决定 | 不推荐，各浏览器表现不一致 |

中文字体文件大，一般用 `swap` 或 `fallback`，避免页面长时间看不到文字。

## unicode-range：只在需要时下载

`unicode-range` 告诉浏览器这个文件包含哪些字符。页面上没有用到这些字符时，浏览器就**不会下载**这个文件：

```css
/* 英文和数字部分 */
@font-face {
  font-family: "LXGW WenKai";
  src: url("/fonts/wenkai-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+2000-206F;
  font-display: swap;
}

/* 常用汉字部分 */
@font-face {
  font-family: "LXGW WenKai";
  src: url("/fonts/wenkai-cjk-01.woff2") format("woff2");
  unicode-range: U+4E00-4FFF;
  font-display: swap;
}
```

几个 `@font-face` 用同一个 `font-family` 名字，浏览器会根据页面上实际出现的字符，只下载需要的那几个文件。这是中文网页字体的基本做法，详见[《中文网页字体为什么要拆分子集》](https://docs.cocobook.com/link/598)。

## 提前加载最重要的字体

首屏一定会用到的字体文件，可以在 `<head>` 里提前加载：

```html
<link rel="preload" href="/fonts/wenkai-latin.woff2"
      as="font" type="font/woff2" crossorigin>
```

注意必须写 `crossorigin`，否则浏览器会重复下载。只给一两个最关键的文件加，不要给所有分片都加。

## 字体放在别的域名上

字体文件放在另一个域名（比如单独的静态资源域名）上时，那边的服务器需要返回允许跨域的响应头 `Access-Control-Allow-Origin`，否则浏览器会拒绝使用这个字体。

## 使用前先看许可

把字体放到网站上供浏览器下载，属于“网页嵌入”。开源字体一般允许，商业字体通常需要单独的网页字体许可。见[《用字前先看许可：能不能商用、能不能改、能不能嵌入》](https://docs.cocobook.com/link/599)。

<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-guide-08" style="color:inherit;text-decoration:none;border-bottom:1px dotted #bbb">参考资料</a></p>

# 中文网页字体为什么要拆分子集

## 中文字体为什么这么大

一款英文字体通常只有几百个字符，文件几十 KB。一款中文字体要覆盖常用汉字、繁体字和各种符号，动辄几万个字符，一个字重的文件往往就有几 MB 到十几 MB。例如思源黑体的单个简体中文字重就有好几 MB。

如果网页直接引用整个字体文件，访客要先下载完这几 MB，才能看到用这款字体显示的文字。手机网络下，这意味着长时间的空白或字体跳变。

## 拆分子集是什么意思

拆分子集，就是把一个大字体文件按字符切成很多个小文件，每个小文件只包含一部分字符，并用 `unicode-range` 标明自己包含哪些字符：

- 英文、数字和标点一个文件；
- 常用汉字按使用频率或编码范围分成几十到上百个小文件；
- 不常用的字再分若干个文件。

浏览器看到页面上实际出现了哪些字，就只下载包含这些字的那几个小文件。一篇普通文章往往只需要下载总大小的一小部分。

## 两种做法

| 做法 | 说明 | 适合 |
|---|---|---|
| 按页面内容提取 | 只把页面上用到的字打包成一个小文件 | 内容固定的页面，如活动页、海报页 |
| 按字符范围切片 | 把整个字体切成许多小片，配合 `unicode-range` 按需加载 | 内容会变化的网站，如博客、文档站、用户发布内容的网站 |

第一种文件最小，但页面内容一改就得重新生成，否则新出现的字会用后备字体显示。第二种不受内容变化影响，是大多数网站的选择。

## 自己拆还是直接用现成的

自己拆分需要用字体工具处理文件，并为每个分片写 `@font-face`，还要考虑缓存和更新。也可以直接使用已经拆分好的网页字体服务：只需在页面里引用一份 CSS，分片和按需加载都已经处理好了。

文风字体为收录的字体提供了按字重和子集拆好的网页字体，引用方法见 [网页字体引用与 CDN 接入](https://docs.cocobook.com/books/windfonts/page/cdn)。

## 注意事项

- **先确认许可允许**：拆分子集属于对字体文件的处理，并要放到网站上供下载。开源字体（如 SIL 开放字体许可证下的字体）一般允许；商业字体请先确认是否有网页嵌入授权。见[《用字前先看许可：能不能商用、能不能改、能不能嵌入》](https://docs.cocobook.com/link/599)。
- **保留后备字体**：分片加载需要时间，`font-family` 里要写好系统后备字体，并设置合适的 `font-display`。写法见[《在网页里使用字体：@font-face 的现代写法》](https://docs.cocobook.com/link/133)。
- **只用 WOFF2**：每个分片都用 WOFF2 格式，体积最小。

# 用字前先看许可：能不能商用、能不能改、能不能嵌入

字体是有版权的软件。能“免费下载”不等于能随便用。用一款字体之前，先弄清楚下面几个问题。

## 要看哪几件事

| 问题 | 指的是什么 |
|---|---|
| 能不能商用 | 用在商品包装、广告、品牌标识、收费产品、公司宣传物料里。 |
| 能不能改 | 修改字形、增删字符、改字体名称、转换格式、拆分子集。 |
| 能不能嵌入 | 放进网页（网页字体）、App、电子书、游戏，或嵌入 PDF、PPT 等文档。 |
| 能不能再分发 | 把字体文件本身发给别人、放到网盘或网站上提供下载。 |
| 要不要署名 | 是否需要保留版权声明、附上许可文本。 |

## 去哪里看许可

- **字体文件里**：macOS「字体册」的信息面板、Windows「设置」→「字体」的字体详情里，通常能看到版权和许可说明。
- **下载包里**：找 `LICENSE`、`OFL.txt`、`许可协议` 之类的文件。
- **发布方的官方页面**：以官方页面上的最新许可为准。

转载站、网盘里的“免费商用”字样不能作为依据，一定要找到字体作者或发布方的原文。

## 常见的开源字体许可

### SIL 开放字体许可证（OFL）

思源黑体、思源宋体、霞鹜文楷等大量开源中文字体使用这个许可。大致是：

- 可以免费用于个人和商业用途，包括印刷品、网页、App、文档嵌入；
- 可以修改，修改后的版本也必须用 OFL 发布；
- 如果字体声明了“保留字体名称”，修改后的版本**不能再用原来的名字**；
- 可以和软件一起分发，但**不能单独出售字体文件本身**；
- 再分发时要附上版权声明和许可文本。

### 其他

还有一些字体使用 Apache 许可证等其他开源许可，规则略有不同，请以字体附带的许可文本为准。

## 商业字体和“个人免费”字体

- 商业字体通常按用途分别授权：桌面使用、网页嵌入、App 嵌入、广告投放等可能要分别购买。
- 标着“个人免费”“非商用免费”的字体，用于公司宣传、商品、收费内容时一般都需要购买授权。
- 字体文件里有一个“嵌入许可”标记，决定能否嵌入 PDF、PPT 等文档。导出时如果软件提示某字体不允许嵌入，就说明许可不允许。

## 文风字体怎么标注许可

文风字体为收录的每款字体标注了许可档位和标签，能否商用、能否修改、能否用于网页一目了然。说明见 [许可档位与标签](https://docs.cocobook.com/books/windfonts/page/ef575)。

## 提醒

本文只是帮助理解常见许可的大意，不是法律意见。实际使用以字体附带的许可原文为准，涉及重要商业用途时，请向字体发布方确认。