Iosevka Term Slab Nerd Font 使用指南:带 Slab 衬线的终端字体如何获取与自打补丁
Iosevka Term Slab Nerd Font 使用指南:带 Slab 衬线的终端字体如何获取与自打补丁
导读
Iosevka Term Slab 是 Iosevka 家族的终端优化变体,在保留等宽编码能力的同时引入 slab-serif(板状衬线)笔画,适合代码书写、终端会话与技术文档排版。本文以 Nerd Fonts 仓库中 IosevkaTermSlab 未打补丁字体目录 为线索,讲解该字体的特性、仓库内可用的字重与文件布局、三种宽度变体的选择逻辑,并给出下载已打补丁字体与使用 font-patcher 自打补丁两条实操路径。
Iosevka Term Slab 是什么
根据 未打补丁字体说明,Iosevka Term Slab 是一个开源字体家族,其设计定位是:
- sans-serif + slab-serif:常规字形为无衬线,另在端点、笔画收尾处加入 slab 衬线风格;
- monospace + quasi-proportional:同一家族内同时提供严格的等宽字形与准比例字形;
- 面向 编写代码、终端使用、技术文档排版 三类典型场景。
在 Nerd Fonts 的字体清单 fonts.json 中,该字体被登记为:
unpatchedName: Iosevka Term Slab,version: 34.8.0;patchedName: IosevkaTermSlab,对应目录 patched-fonts/IosevkaTermSlab;licenseId:OFL-1.1-no-RFN(SIL Open Font License,无 Reserved Font Name 限制);isMonospaced: true;- 官方描述为 "Nice as Iosevka but with slab serifs"(与 Iosevka 同样出色,但带有 slab 衬线)。
项目总表 readme.md 中该字体对应条目同样标注版本 34.8.0 且不支持连字(Ligatures 列为 NO)。
仓库内字体文件与构建配置
未打补丁的源字体
上游发布后由仓库脚本拉取的原始字体存放在 src/unpatched-fonts/IosevkaTermSlab,包含 15 个 TTF 文件,字重覆盖:
- Regular / Italic / Oblique
- Light / Medium / Bold / ExtraBold(以及各斜体、倾斜变体)
即 regular、italic、oblique、light、medium、bold、extrabold 七档字重 × 常规/斜体/倾斜三向风格,未包含 Thin、Semibold、Heavy 等更高密度字重。
该目录下的 config.cfg 记录了上游构建参数 --makegroups 4。从 font-patcher 的源码可以看出,makegroups 取值影响打补丁后字体族名的生成方式:值为 4 及以上的档位使用 projectNameAbbreviation + variant_abbrev 的短族名命名策略,这与 Iosevka 官方每字重独立命名的习惯一致,也是打补丁时保持字体名可辨识的关键。
更新脚本与版本来源
update.sh 展示了该字体的引入方式:
- 从 Iosevka 上游 release 下载
PkgTTF-IosevkaTermSlab-34.8.0.zip; - 解压后删除
Extended系列宽体变体; - 按
Regular / italic / oblique / light* / medium* / bold* / extrabold*的 glob 匹配把 TTF 拷入目录。
因此仓库内当前文件是去除了 Extended 宽体、保留标准宽度的版本,如果你需要 Extended 变体,应直接前往上游获取。
已打补丁字体与图标集
打补丁后的成品位于 patched-fonts/IosevkaTermSlab(含 README.md)。补丁过程为字体注入的图标集在 README 中以表格列出,主要包括:
| 图标集 | 版本 | 许可 |
|---|---|---|
| Codicons | 0.0.45 | CC BY 4.0 |
| Devicons | 2.17.0 | MIT |
| Font Awesome | 6.5.1 | CC BY 4.0 |
| Font Logos | 1.3.0 | unlicensed |
| Material Design Icons | Oct 6, 2022 | Apache 2.0 |
| Octicons | 18.3.0 | MIT |
| Seti and original | 0.8.1 | MIT |
| Powerline Symbols 等 | — | MIT / OFL 等 |
这些符号正是 Nerd Fonts 项目“聚合图标”能力的体现,也是你选择已打补丁版本而非原版 Iosevka Term Slab 的核心收益。
选择哪种宽度变体:NF / NFM / NFP
打补丁后的成品会按宽度产生三个分支(参见 已打补丁目录说明):
- Nerd Font Mono(NFM):图标一律单字宽,保持严格等宽。若你的终端对等宽有硬性要求(如列对齐、vim 分屏、TUI 布局),选它最稳妥;
- Nerd Font(NF):图标约为 1.5 个字母宽,观感更大更醒目,多数现代终端能正常渲染,但需要终端侧接受非单宽字形;
- Nerd Font Propo(NFP):图标按比例宽度放置,适合 GUI 控件、幻灯片、文档等非等宽排版场景。
三种变体对应 readme.md 中所述“单宽/双宽/比例”三套输出。仓库根目录的 install.sh 也提供了对应选项:--mono 强制安装等宽版本,--use-proportional-glyphs 安装比例字形版本,--otf/--ttf 控制安装的格式。
关于连字的说明
项目总表将 IosevkaTermSlab 标注为连字支持 NO,即打补丁后不保留连字(这与上游 Iosevka 主族不同)。Iosevka Term 与 Iosevka Term Slab 的官方定位是“窄化处理终端常用符号(如箭头、几何符号)”,因此终端内以单字符语义为主。若你依赖 ->、=> 之类的编程连字,需换用支持连字的字体或在终端设置中另作配置。
两条获取路径
路径一:直接下载已打补丁成品
仓库与 release 均发布打包好的字体,已打补丁 README 给出的稳定版下载入口为:
IosevkaTermSlab.zip(通用包)IosevkaTermSlab.tar.xz(体积更小)
下载后解压,按 install.sh 的用法安装到用户或系统字体目录:
# 安装全部字体到用户目录(默认行为)
./install.sh
# 只安装 IosevkaTermSlab 相关字体,且使用等宽(Mono)变体
./install.sh --mono IosevkaTermSlab
# 安装到系统目录并同时安装比例字形变体
./install.sh --install-to-system-path --use-proportional-glyphs IosevkaTermSlab
若只想针对单个目录安装,可直接把 patched-fonts/IosevkaTermSlab 下的 TTF 拷贝到系统字体目录(Linux 通常为 ~/.local/share/fonts 或 /usr/share/fonts),再刷新字体缓存。
路径二:用 font-patcher 自打补丁
需要自定义(如只注入部分图标以减小体积、修改字体名)时,可使用仓库根目录的 font-patcher 对 源字体 自行打补丁:
# 基本用法:为单个 TTF 注入全部默认图标集
./font-patcher src/unpatched-fonts/IosevkaTermSlab/IosevkaTermSlab-Regular.ttf
# 等宽变体(图标单宽,适合终端)
./font-patcher -s src/unpatched-fonts/IosevkaTermSlab/IosevkaTermSlab-Regular.ttf
# 比例字形变体
./font-patcher --use-proportional-glyphs src/unpatched-fonts/IosevkaTermSlab/IosevkaTermSlab-Regular.ttf
# 静默输出,避免冗长日志
./font-patcher -q src/unpatched-fonts/IosevkaTermSlab/IosevkaTermSlab-Regular.ttf
-s/--mono 的参数说明可在 font-patcher 处查看(“Create monospaced font, existing and added glyphs are single-width”)。若只需更小的字体文件,可通过 --custom(见 font-patcher)指定自定义符号字体,只复制你需要的符号;--careful(见 font-patcher)则可避免覆盖源字体已有字形。
注意:font-patcher 依赖 fontforge Python 模块;仓库源码还显示,当 --makegroups > 0 时依赖 bin/scripts/name_parser/Fontname* 解析模块(见 font-patcher),若缺模块会提示改用 --makegroups 0。源字体目录的 config.cfg 指定了 --makegroups 4,自打补丁时可据此保持一致命名。
常见问题速查
- 该字体是否等宽? 是。
fonts.json中isMonospaced: true;打补丁后选 NFM 变体可保持严格单宽图标。 - 有没有连字? 仓库条目明确标注 NO,终端连字需依赖终端自身渲染或换用其他字体。
- 需要更宽的字形(Extended)? 仓库内版本已移除 Extended 变体,请直接使用上游 release 自行打补丁。
- 如何验证安装成功? 在终端执行
fc-list | grep -i "IosevkaTermSlab"(Linux),或在编辑器字体列表中选择 “IosevkaTermSlab Nerd Font” 系列。
延伸阅读
- 字体总览与完整字体清单:readme.md
- 字体元数据(版本、许可、发布方式):bin/scripts/lib/fonts.json
- 打补丁脚本全部参数: font-patcher
- 已打补丁成品目录:patched-fonts/IosevkaTermSlab
- 源字体与构建配置:src/unpatched-fonts/IosevkaTermSlab