- 开发工具
- CLI
【免费下载链接】nerd-fonts
Iconic font aggregator, collection, & patcher. 3,600+ icons, 50+ patched fonts: Hack, Source Code Pro, more. Glyph collections: Font Awesome, Material Design Icons, Octicons, & more
Iosevka Term 是 Nerd Fonts 项目中为终端场景专门优化的 Iosevka 窄体变种,本文以 patched-fonts/IosevkaTerm/README.md 为骨架,结合仓库源码与配置文件,完整讲解其三种命名变体(Nerd Font / Nerd Font Mono / Nerd Font Propo)的选型逻辑、连字行为、内置图标集,以及"直接下载已补丁字体"和"用 font-patcher 自行补丁"两条实战路径。读完本文,你可以准确判断自己的终端、编辑器或 GUI 场景该选哪个变体,并掌握用仓库脚本定制专属 Iosevka Term 字体的完整命令与参数。
一、Iosevka Term 是什么
根据 patched-fonts/IosevkaTerm/README.md,Iosevka Term是一款**开源、无衬线(sans-serif)字族(上游还包含 slab-serif 变体),整体为等宽(monospace)设计,同时兼顾准比例(quasi-proportional)**场景,面向写代码、终端使用和技术文档排版三类用途。该目录当前对应上游版本34.8.0。
仓库的字体元数据文件 fonts.json 对它的描述更加精确:
A narrower variant focusing terminal uses: Arrows and geometric symbols will be narrow to follow typical terminal usages
即 Iosevka Term 是 Iosevka 的更窄变体,专注于终端使用:箭头和几何符号都会被设计得更窄,以贴合典型终端字符网格的显示习惯。同一份元数据还标注了它的许可证为OFL-1.1-no-RFN(即无保留字体名限制的 SIL OFL 1.1,见下文"许可与 Reserved Font Name"一节),isMonospaced: true,Homebrew cask 名为iosevka-term。在 fonts.json 中,它与 Iosevka、IosevkaTermSlab(带 slab 衬线的 Term 变体)同属一个系列,三者共享版本号 34.8.0。
二、仓库中的实际形态:三种命名变体与完整字重矩阵
进入 patched-fonts/IosevkaTerm/ 目录可以看到,每个 Iosevka Term 成品字体在文件名上带有三种后缀,分别对应三种布局策略:
| 文件名后缀 | 含义 | 典型终端适用性 |
|---|---|---|
IosevkaTermNerdFont-* | 标准 Nerd Font(NF),图标约 1.5 个普通字符宽 | 多数终端可用,但存在个体差异 |
IosevkaTermNerdFontMono-* | Nerd Font Mono(NFM),图标单倍宽,严格等宽 | 只允许等宽字体的终端 |
IosevkaTermNerdFontPropo-* | Nerd Font Propo(NFP),图标按比例宽度处理 | GUI 元素、演示文稿等比例排版场景 |
每个变体都完整覆盖了从Thin、ExtraLight、Light、Regular、Medium、SemiBold、Bold、ExtraBold、Heavy的 9 级字重,并且每个字重同时提供正体(Regular)、斜体(Italic)和伪斜体(Oblique)三种字形。以 Regular 为例,仓库中实际存在三个文件:
- patched-fonts/IosevkaTerm/IosevkaTermNerdFont-Regular.ttf
- patched-fonts/IosevkaTerm/IosevkaTermNerdFontMono-Regular.ttf
- patched-fonts/IosevkaTerm/IosevkaTermNerdFontPropo-Regular.ttf
如果你只需要在代码或终端中使用,通常选其中一两个文件即可;命名上Nerd Font、NF、Nerd Font Mono、NFM、Nerd Font Propo、NFP是同一含义的简写,配置字体族名时可以直接使用这些后缀。
三、字体选型:TL;DR 快速决策
原文档给出的选择逻辑非常直接,适用于本仓库所有补丁字体,Iosevka Term 同样适用:
- 如果被等宽字体限制(例如你的终端强制等宽),请选择名字里带
Nerd Font Mono(或NFM)的字体; - 如果想要更大的图标(通常约为 1.5 个普通字符宽),选择不带
Mono的Nerd Font(或NF)。多数终端支持这种方案,但不同终端表现可能不同(ymmv); - 如果工作在比例排版环境(GUI 元素、幻灯片演示等),选择带
Nerd Font Propo(或NFP)的字体。
结合第二节的文件矩阵可以进一步细化:先按字族(Iosevka Term)和字重/风格(Bold、Italic 等)锁定文件,再按上述三条规则决定取 NF、NFM 还是 NFP 版本。
四、连字(Ligatures)行为
Iosevka 系列以丰富的编程连字著称,补丁后的 Iosevka Term 同样默认保留连字。原文档特别指出一段版本历史:
- Nerd Fonts
v2.0.0时代的Nerd Font Mono字体中没有连字; - 从
v2.1.0起,这一限制被移除,Mono 字体也保留连字。
因此,如果你使用的是支持连字的终端但不想看到连字效果,通常可以直接在终端设置中关闭 ligature 选项,而无需更换字体文件。这一行为对 Iosevka Term 的 NF / NFM / NFP 三个变体一致,因为连字信息来自上游字体的 GSUB 特性,补丁过程不会剥离它。
五、内置图标集(Icon sets)
与原文档一致,Iosevka Term 的补丁字体内嵌了 14 套上游图标集合,以下表格完整继承了原文档的信息(上游名称、版本号、许可证),可据此核对各图标集的归属与授权:
| Icon set 名称 | 版本 | 许可证 |
|---|---|---|
| Codicons | 0.0.45 | CC BY 4.0 |
| Devicons | 2.17.0 | MIT |
| extraglyphs | - | MIT |
| Font Awesome | 6.5.1 | CC BY 4.0 |
| Font Awesome Extension | 0.0.3 | MIT |
| Font Logos | 1.3.0 | unlicensed |
| MaterialDesign | Oct 6, 2022 | Apache 2.0 |
| Octicons | 18.3.0 | MIT |
| Seti and original | 0.8.1 | MIT |
| Pomicons | 1.001 | OFL 1.1 RFN |
| Powerline Extra | 1.200 | MIT |
| Powerline Symbols | 1.000 (ca 2013) | MIT |
| Power Symbols IEC | Feb 2015 | MIT |
| Weather Icons | 2.0.10 (1.100) | OFL 1.1 |
这套图标集的来源定义在 src/glyphs/ 与 src/svgs/ 目录中;使用 font-patcher 自行补丁时,也可以通过命令行参数(见第七节)精确控制最终要打包哪些图标集合,从而控制字体文件体积。
六、获取方式一:直接下载已补丁字体
对于绝大多数用户,直接使用仓库已经补丁好的成品是最稳妥的路径:
- 稳定版:从项目的 release 页面下载字体系列压缩包,Iosevka Term 对应
IosevkaTerm.zip;如需更小的体积,可下载IosevkaTerm.tar.xz; - 开发版:直接使用 patched-fonts/IosevkaTerm/ 目录下的字体文件(即第二节列出的
.ttf文件)。
下载后即可安装使用。仓库根目录提供了两个安装脚本:
- Linux / macOS 使用 install.sh,全量安装直接执行
./install.sh,只装 Iosevka Term 则执行./install.sh IosevkaTerm; - Windows 使用 install.ps1,单字体安装为
./install.ps1 IosevkaTerm,多个字体用逗号分隔,如./install.ps1 FiraCode, Hack,并支持-WhatIf预演参数。
在字体回退场景,还可以用 10-nerd-font-symbols.conf(fontconfig 体系)配合SymbolsOnly字体,让系统在其他字体缺失符号时自动回退到 Nerd Fonts 符号。脚本的具体选项说明见 readme.md 的 "Options" 章节。
七、获取方式二:用 font-patcher 自行补丁
如果你需要 Iosevka Term 之外的定制形态(例如不包含全部符号以缩小字体体积、调整命名或输出格式),可以走 font-patcher 自行补丁路线。它是仓库根目录下的 FontForge Python 脚本(脚本版本 4.27.2,对应 Nerd Fonts 3.5.0),入口即 font-patcher,离线归档为根目录的FontPatcher.zip(注意:仅下载脚本本身不够,需连同其辅助文件一起获取)。
运行前提(readme.md 有明确说明):
- FontForge(可作系统包安装,或 macOS 上
brew install fontforge,或使用 AppImage); - Python 3;
python-fontforge与argparse包。
基本用法(推荐):
fontforge -script font-patcher PATH_TO_FONT如果你的环境能直接执行脚本(如已安装 python-fontforge),也可用:
./font-patcher PATH_TO_FONT使用 FontForge AppImage 时,所有路径必须是绝对路径且必须显式指定输出目录:
./FontForge.AppImage -script $PWD/font-patcher $PWD/BaseFont.ttf -out /tmp与本文主题直接相关的关键参数(行号基于当前仓库的 font-patcher 脚本):
--mono, -s(font-patcher 定义处):生成严格等宽字体,新旧字形统一单倍宽,等价于成品中的Nerd Font Mono(NFM)形态;该参数隐含单倍宽字形处理。若给定了--mono但字体被判定为不适合强制等宽,脚本会输出警告,需要连续两次指定-s才能强制补丁;--variable-width-glyphs(font-patcher 定义处):不调整字形推进宽度(即不做"overhang"处理),对应成品中的Nerd Font Propo(NFP)形态;与--mono或单倍宽选项冲突时会被忽略;--powerline与--powerlineextra(font-patcher 定义处):决定是否附加 Powerline 符号与 Powerline Extra 符号,对应上表 Icon sets 中的最后两行;--custom <路径>(font-patcher 定义处):指定自定义符号字体,其全部字形会被复制进成品,建议使用绝对路径;--extension, -ext <ttf|otf>(font-patcher 定义处):改变输出文件格式,例如把 Iosevka Term 输出为 OTF;--makegroups N(font-patcher 定义处):选用不同的补丁字体命名方法(默认 1,取值 -1 到 6),当FontnameParser辅助模块缺失时需指定--makegroups 0才能继续;--dry(font-patcher 定义处):只检查命名、既不补丁也不落盘,适合在正式生成前验证参数组合。
典型自定义示例——只想保留 Powerline 符号并输出 OTF 格式的等宽版本:
./font-patcher src/unpatched-fonts/IosevkaTerm/IosevkaTerm-Regular.ttf \ --mono --powerline --extension otf --out /tmp/my-fonts补丁完成后,仍需把生成的字体文件复制到系统字体目录并刷新字体缓存才能使用(readme.md 的 "Option 10" 有说明)。
八、许可与 Reserved Font Name(RFN)说明
Iosevka Term 补丁字体的许可证为OFL-1.1-no-RFN(见 fonts.json),意味着 SIL Open Font License 1.1 下不涉及保留字体名(RFN)限制。仓库在 src/readme-rfn-addendum.md 中摘录了 RFN 机制的核心规则:未经版权持有人书面许可,修改版字体不得使用保留字体名,该限制仅作用于展示给用户的主字体名;其设计意图是避免命名冲突、保护原作者、减少支持负担并鼓励衍生作品。由于 Iosevka Term 属于no-RFN,使用方在修改后重命名时受到的约束更少。Iosevka Term 目录下的补丁字体命名采用 Nerd Fonts 的标准改名(IosevkaTerm Nerd Font系列),与上游原字体名明确区分。
九、小结
Iosevka Term 在 Nerd Fonts 仓库中的定位非常清晰:一个为终端窄排布优化的 Iosevka 变体,通过 NF / NFM / NFP 三种命名变体适配等宽终端、宽图标终端与比例 GUI 三种场景,同时完整保留上游连字特性并内嵌 14 套常用图标集。日常使用只需从 patched-fonts/IosevkaTerm/ 按字重与变体取文件,或通过 release 归档安装;需要深度定制时,则可基于 font-patcher 配合--mono、--variable-width-glyphs、--powerline、--custom等参数从 src/unpatched-fonts/ 中的原始字体重新补丁,兼顾等宽性、图标集体积与输出格式。
- 开发工具
- CLI
【免费下载链接】nerd-fonts
Iconic font aggregator, collection, & patcher. 3,600+ icons, 50+ patched fonts: Hack, Source Code Pro, more. Glyph collections: Font Awesome, Material Design Icons, Octicons, & more
相关推荐
Fira Code Nerd Font SemiBold 实战指南:NF/NFM/NFP 变体选择、连字保留与 font-patcher 定制打补丁
Fira Code Nerd Font SemiBold 实战指南:NF/NFM/NFP 变体选择、连字保留与 font patcher 定制打补丁 本篇技术指
开发工具CLIRoboto Mono Italic Nerd Font 完整指南:NF / NFM / NFP 变体选型、连字机制与字体打补丁
Roboto Mono Italic Nerd Font 完整指南:NF / NFM / NFP 变体选型、连字机制与字体打补丁 本篇技术指南以仓库内 patc
开发工具CLINerd Fonts 中的 Victor Mono 集成指南:NF / NFM / NFP 变体选择、连字保留与字体打补丁实战
Nerd Fonts 中的 Victor Mono 集成指南:NF / NFM / NFP 变体选择、连字保留与字体打补丁实战 本指南以 Nerd Fonts
开发工具CLI
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考