- 开发工具
- 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
Monoid 是一款高度可定制的编程字体,以可区分的字形、简洁的连字(ligatures)和上下文定位(contextual positioning)著称,在 12px/9pt 小字号下依然清晰锐利。本篇指南以 patched-fonts/Monoid/Italic/README.md 为骨架,结合 nerd-fonts 仓库的 fonts.json 字体元数据与 font-patcher 打补丁脚本源码,为你完整讲解:如何在 Nerd Font Mono / Nerd Font / Nerd Font Propo 三种家族间做选择、补丁后连字行为的变化,以及「下载现成补丁字体」与「自行用 font-patcher 定制」两条获取路径,帮助你在终端、编辑器与 GUI 场景中正确选用 Monoid。
Monoid 与 Nerd Fonts:字体概况
Monoid 是 Andreas Larsen 设计的一款开源编程字体,其定位是「可定制(customisable)的编码字体,包含 alternates(变体字形)、连字与上下文定位」,官方介绍强调其「Crazy crisp at 12px/9pt」——即在小字号下仍保持极高的可读性。在 nerd-fonts 仓库中,Monoid 属于已打补丁(patched)字体家族之一,仓库的 fonts.json 对其描述为:拥有连字、可通过短上行/下行部(ascenders/descenders)区分的字形,以及放大的运算符与标点。
从仓库元数据可以确认以下事实:
- 上游版本号:0.61(见 patched-fonts/Monoid/Italic/README.md 第 9 行,以及 fonts.json 中的
"version": "0.61"); - 许可协议:MIT OR OFL-1.1-no-RFN双许可(见 fonts.json 的
licenseId字段),对应文件为 patched-fonts/Monoid/Italic/LICENSE 与 patched-fonts/Monoid/LICENSE; - 属于等宽字体(fonts.json 中
"isMonospaced": true),并标记repoRelease: true,即随仓库发布包分发; - 未使用保留字体名机制(
"RFN": false),因此补丁后的派生字体命名自由度更高,无需额外授权即可使用新的字体名。
仓库中 Monoid 的补丁字体位于 patched-fonts/Monoid/,按字重拆分为Bold、Italic、Regular、Retina四个子目录(每个子目录内各含一份 README 与 LICENSE),并在目录根部提供全部 12 个.ttf文件;对应的未补丁上游字体则存放于 src/unpatched-fonts/Monoid/,包含Monoid-Bold.ttf、Monoid-Italic.ttf、Monoid-Regular.ttf、Monoid-Retina.ttf四个原始文件,供自行打补丁使用。
Which font?三步快速选型(TL;DR)
原文档给出的选型逻辑非常直白,按使用场景分三类:
- 受限等宽场景(终端等):选择名称带
Nerd Font Mono(缩写NFM)的字体。此类变体保证所有字形——包括后补的图标——都是单宽度(single-width),不会破坏终端行列对齐; - 希望图标更大(通常约为普通字母宽度的 1.5 倍):选择不带
Mono后缀的Nerd Font(缩写NF)。大多数终端都支持这种可变宽度图标,但效果因人而异(文档原文为 ymmv,your mileage may vary); - 比例/等比上下文(GUI 组件、演示文稿编辑等):选择名称带
Nerd Font Propo(缩写NFP)的变体,图标按比例宽度排布,与正文混排更自然。
在 patched-fonts/Monoid/ 目录中可以直观对照这三种后缀的产物,例如:
MonoidNerdFont-Italic.ttf(NF 版,图标可超宽);MonoidNerdFontMono-Italic.ttf(NFM 版,全部单宽);MonoidNerdFontPropo-Italic.ttf(NFP 版,比例宽度)。
每种家族都覆盖Bold、Italic、Regular、Retina四个字重,共 12 个补丁文件,外加Bold/、Italic/、Regular/、Retina/四个子目录中的分开发布副本。
三种后缀的源码级含义
从 font-patcher 的参数定义(第 2228 行与第 2233 行附近)可以看出三种后缀并非随意命名,而是对应脚本的实际行为:
--mono(短参数-s):创建等宽字体,使既有字形与新增字形全部单宽(Create monospaced font, existing and added glyphs are single-width (implies --single-width-glyphs)),该选项可以重复传入以覆盖其他冲突设置;--variable-width-glyphs:不调整字符前进步宽(advance width),即不产生「悬挂/超宽」字形,产出对应Nerd Font Propo变体(脚本注释明确标注(Nerd Font Propo));- 当
--mono或--single-width-glyphs与--variable-width-glyphs同时指定时,脚本会在第 2383 行给出矛盾警告并忽略后者(Ignoring --variable-width-glyphs)。
也就是说,你最终拿到的NFM、NF、NFP三个版本的差异,本质上是 font-patcher 在「是否强制单宽」「是否保留超宽图标」两个维度上的不同输出组合。
连字(Ligatures):补丁后的保留与行为变化
原文档专门用一节说明连字在补丁流程中的命运,要点如下:
- 连字通常会被保留:Monoid 本身以连字为卖点,Nerd Fonts 的打补丁流程不会破坏这些连字特性;
- 历史版本差异:Nerd Fonts
v2.0.0时代,Nerd Font Mono系列字体不含连字;该限制从v2.1.0起被取消,因此当前版本的NFM变体同样保留连字; - 如何关闭连字:如果你使用的终端支持连字渲染,而又不希望看到连字效果,通常可以在终端设置中直接关闭(ligature-aware 终端一般提供对应开关)。
需要说明的是:本仓库当前使用的补丁逻辑基于v2.1.0之后的机制,因此无论是Nerd Font Mono还是Nerd Font、Nerd Font Propo版本,Monoid 的连字都不会因为打补丁而丢失。若你的终端不支持连字或希望获得「无连字」体验,请优先在终端配置层面处理,而不是退回旧版字体。
获取补丁字体的两条路径
选定家族与字重之后,原文档给出两种获取方式。
Option 1:直接下载已打补丁的字体
- 稳定版:从项目的 release 页面下载对应字体压缩包(官方发布包中 Monoid 提供
.zip与更小的.tar.xz两种格式); - 开发版:直接使用仓库内
patched-fonts目录下的文件,即本仓库 patched-fonts/Monoid/ 中的 12 个.ttf(或按字重进入Bold/、Italic/、Regular/、Retina/子目录获取独立副本)。每个子目录内均附带一份 README.md 与 LICENSE,便于分发时一并携带。
安装方式与仓库其他补丁字体一致:将.ttf复制到系统字体目录(如 Linux 的~/.local/share/fonts或 Windows 的字体文件夹)后刷新字体缓存即可;仓库根目录同时提供了 install.sh 与 install.ps1 脚本,可批量安装指定的补丁字体家族。
Option 2:使用 font-patcher 自行打补丁
如果你需要「不是全部符号都打进去、以减小字体体积」之类的定制需求,可以使用仓库根目录的 font-patcher 脚本对上游字体自行处理:
- 上游原始字体位于 src/unpatched-fonts/Monoid/,其中
Monoid-Italic.ttf正是本目录(Italic)补丁的输入; - 打补丁前的示例命令(以生成等宽版为例):
./font-patcher --mono src/unpatched-fonts/Monoid/Monoid-Italic.ttf- 常用参数速览:
--mono, -s:强制等宽(对应Nerd Font Mono变体,可重复传入以覆盖冲突设置);--variable-width-glyphs:保持比例宽度(对应Nerd Font Propo变体);- 其余参数(如
--complete全量图标集、--careful等)可运行./font-patcher --help查看完整列表。
也可以先通过 src/config.sample.cfg 了解配置文件驱动的打补丁方式(脚本在检测到配置请求时会打印No trying --mono as requested by configfile; exiting之类的提示,详见 font-patcher 第 2380 行附近的逻辑)。关于「选哪种字体」的更多故障排查信息,原文档指向项目 FAQ 的 Which font 小节,本仓库的 src/readme-per-directory-addendum.md 亦汇总了与「Which font」相关的通用说明。
许可与分发注意事项
Monoid 采用MIT 与 SIL OFL 1.1 双许可(选择其一即可),详见 patched-fonts/Monoid/Italic/LICENSE:
- 按 MIT 条款:可自由使用、复制、修改、合并、发布、再分发;
- 按 OFL 1.1 条款:字体软件本身不得单独出售,派生作品必须沿用 OFL,且不得使用保留字体名(Reserved Font Name)。
由于 Monoid 在仓库元数据中标记RFN: false(未声明保留字体名),Nerd Fonts 对其进行改名打补丁不涉及 RFN 授权问题;而 src/readme-rfn-addendum.md 中关于 Reserved Font Name 机制的说明,主要适用于其他存在 RFN 约束的字体家族(例如 Mononoki 在 fonts.json 中即标记为RFN: true并附有例外说明)。分发补丁字体时,建议连同对应子目录中的 LICENSE 文件一起发布,以满足 OFL「副本须包含版权声明与许可」的要求。
小结
对于 Monoid 用户,一次完整的选型决策可以归结为:终端等宽场景选Nerd Font Mono,追求大图标视觉选Nerd Font,GUI/演示文稿等比例场景选Nerd Font Propo;连字在所有当前补丁变体中均被保留,如需关闭请在终端设置中操作;版本方面以仓库标注的上游 0.61 为准,稳定发布走 release 包、需要定制时用 font-patcher 配合 src/unpatched-fonts/Monoid/ 原始字体自行生成,并留意 MIT/OFL 双许可下的分发要求。
- 开发工具
- 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
相关推荐
Nerd Fonts 中的 JetBrains Mono(Medium 变体):家族选择、连字保留与自行打补丁全指南
Nerd Fonts 中的 JetBrains Mono(Medium 变体):家族选择、连字保留与自行打补丁全指南 导读 本指南以 Nerd Fonts 仓库
开发工具CLIJetBrains Mono 补丁字体实战指南:Nerd Fonts 变体选择、连字保留与自打补丁
JetBrains Mono 补丁字体实战指南:Nerd Fonts 变体选择、连字保留与自打补丁 本文以 patched fonts/JetBrainsMon
开发工具CLIMonoid Nerd Font 实战指南:字族选型、连字保留与 font-patcher 自行打补丁
Monoid Nerd Font 实战指南:字族选型、连字保留与 font patcher 自行打补丁 Monoid 是一款以“可定制、连字、上下文定位”著称的
开发工具CLI
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考