Monofur Nerd Font 字体使用与自定义修补指南:三种命名变体、连字行为与 font-patcher 实战

原创2026-10-01 19:24:27108 阅读
文章标签:开发工具CLI

Monofur Nerd Font 字体使用与自定义修补指南:三种命名变体、连字行为与 font-patcher 实战

本篇指南聚焦 Nerd Fonts 仓库中 patched-fonts/Monofur 目录下的 Monofur 字体变体,完整解析其字体特性、Nerd Font / Nerd Font Mono / Nerd Font Propo 三种变体的选择逻辑与连字行为,并给出基于 font-patcher 自行修补 Monofur 的可运行命令示例。读完本文,你将能在终端、编辑器和 GUI 场景中正确选型,并掌握用 patcher 生成自定义 Monofur 的完整流程。

Monofur 字体简介

Monofur 是一款等宽、几何圆润的无衬线字体(monospaced geometric rounded sans serif font),由 Tobias B Koehler 设计,其设计灵感基于 eurofurence 字体家族(见 patched-fonts/Monofur/Regular/README.md)。仓库中标注的字体版本为 Version 1。

Nerd Fonts 对 Monofur 进行了修补,将多套编程与开发相关图标合入原字体。当前仓库中 patched-fonts/Monofur 目录提供了三种字重(Bold、Italic、Regular)下各三种命名变体共 9 个修补成品:

变体前缀 文件名示例(Regular 字重) 适用场景
MonofurNerdFont(NF) MonofurNerdFont-Regular.ttf 默认变体,图标较宽(约 1.5 个普通字符宽)
MonofurNerdFontMono(NFM) MonofurNerdFontMono-Regular.ttf 纯等宽场景,图标与字符同宽
MonofurNerdFontPropo(NFP) MonofurNerdFontPropo-Regular.ttf 比例(非等宽)排版场景

未修补的原始字源位于 src/unpatched-fonts/Monofur,内含 Monofur for Powerline.ttf、Monofur Bold for Powerline.ttf、Monofur Italic for Powerline.ttf 三个 Powerline 版本文件,是自行修补时的输入素材。

三种命名变体:NF / NFM / NFP 如何选择

原文档给出的 TL;DR 选择建议非常直白,可概括为三条决策规则:

  1. 受等宽限制的环境(如终端):选择 Nerd Font Mono(缩写 NFM);
  2. 希望图标更大(通常约为普通字符的 1.5 倍宽):选择不带 Mono 的 Nerd Font(缩写 NF)。大多数终端支持这种变体,但效果因人而异(原文标注 ymmv);
  3. 比例上下文(GUI 元素、演示文稿排版等):选择 Nerd Font Propo(缩写 NFP)。

这一命名与文件命名规则并非随意设计,而是与 patcher 的参数一一对应。查看 font-patcher 的参数定义(font-patcher#L2228-L2233):

  • --mono / -s:生成等宽字体,已有与新增字形均为单宽,隐含 --single-width-glyphs(对应 NFM);
  • --single-width-glyphs:默认生成的是双宽字形,该参数显式改为单宽;
  • --variable-width-glyphs:不调整 advance width(无“overhang”悬垂),对应 NFP。

从实现看,默认(不传任何宽度参数)生成的就是双宽图标,即 NF 变体;三种成品正是同一字体源经不同宽度策略处理后的产物。需要说明的是,在 font-patcher#L2383 处实现会对 --variable-width-glyphs 与 --mono / --single-width-glyphs 同时出现的情况给出矛盾警告,并忽略 --variable-width-glyphs,因此选型参数不可混用。

连字(Ligature)行为说明

原文档专门说明了连字在修补字体中的保留策略,这是选择字体前需要注意的兼容性细节:

  • 修补后的字体通常会保留连字(Ligatures are generally preserved in the patched fonts);
  • 历史版本存在差异:Nerd Fonts v2.0.0 的 Nerd Font Mono 字体不含连字,该限制自 v2.1.0 起已移除;
  • 如果你使用支持连字的终端但不想启用连字,通常可以在终端设置中直接关闭连字功能。

也就是说,当前仓库版本的 Monofur NFM 变体与其他变体一样可以保留原字体的连字行为,是否渲染连字取决于终端/编辑器的设置开关。

获取方式一:直接下载已修补字体

如果你只需要开箱即用的成品,两条路径任选其一:

  1. 稳定版:从项目 release 页面下载字体压缩包(仓库 patched-fonts/Monofur 目录的父级 README 中附有 Monofur.zip 与体积更小的 Monofur.tar.xz 两种打包格式的下载入口);
  2. 开发版:直接使用本仓库中 patched-fonts/Monofur 目录下的 .ttf 文件。

仓库内各字重目录(如 patched-fonts/Monofur/Regular)还包含 LICENSE.txt 与 README.md,安装前建议一并查看对应许可声明。

获取方式二:用 font-patcher 自行修补

当你需要自定义变体——例如只合入部分图标集以缩小字体体积——时,可使用仓库根目录的 font-patcher 脚本自行修补 Monofur。以未修补字源 src/unpatched-fonts/Monofur/Monofur for Powerline.ttf 为例,基本调用形式为:

# 生成包含全部图标的等宽 NFM 变体
font-patcher --complete --mono "src/unpatched-fonts/Monofur/Monofur for Powerline.ttf"

# 生成仅含指定图标集、输出到指定目录的 NF 变体
font-patcher --fontawesome --octicons --material --outputdir ./out "src/unpatched-fonts/Monofur/Monofur for Powerline.ttf"

常用参数(均定义于 font-patcher#L2221-L2267):

参数 说明
--complete / -c 合入所有可用字形
--fontawesome 合入 Font Awesome 字形
--fontawesomeext 合入 Font Awesome Extension 字形
--fontlogos 合入 Font Logos 字形
--material / --mdi 合入 Material Design Icons 字形
--octicons 合入 Octicons 字形
--pomicons 合入 Pomicon 字形
--powerline / --powerlineextra 合入 Powerline / Powerline Extra 字形
--codicons 合入 VS Code Codicons 字形
--weather 合入 Weather Icons 字形
--mono / -s 生成等宽(NFM)变体,隐含单宽字形
--variable-width-glyphs 生成 Propo 变体(不调整 advance width)
--outputdir / -out 指定输出目录
--extension / -ext 更改输出文件类型(如 ttf、otf)
--configfile 从配置文件读取参数(模板见 src/config.sample.cfg)

注意:--mono 会隐含单宽字形,而默认状态(不传宽度参数)生成双宽图标,即 NF 变体;两者不可与 --variable-width-glyphs 混用。

已合入的图标集

按 patched-fonts/Monofur/README.md 的说明,仓库中 Monofur 成品字体包含以下图标集:Codicons、Devicons、extraglyphs、Font Awesome(6.5.1)、Font Awesome Extension、Font Logos、Material Design(2022-10 版)、Octicons(18.3.0)、Seti、Pomicons、Powerline Extra、Powerline Symbols、Power Symbols IEC 以及 Weather Icons。各图标集的上游版本与许可信息均可在该 README 的表格中查阅;自行修补时,这些集合可依据上节的参数按需裁剪,这正是原文档强调的“不包含所有符号以缩小字体尺寸”的用途所在。

许可说明

Monofur 原字体版权归 Tobias B Koehler 所有,仓库对应目录附带了 LICENSE.txt(见 patched-fonts/Monofur/LICENSE.txt 与 src/unpatched-fonts/Monofur/LICENSE.txt)。此外,部分字体的名称受 SIL OFL 的 Reserved Font Name 机制保护——未获原作者书面许可,不得在修改版本中使用保留字体名(详见 src/readme-rfn-addendum.md)。在分发自行修补的 Monofur 变体前,请务必核对这两份许可文件的条款。

登录后查看全文
nerd-fonts