开发工具CLI【免费下载链接】nerd-fontsIconic font aggregator, collection, patcher. 3,600 icons, 50 patched fonts: Hack, Source Code Pro, more. Glyph collections: Font Awesome, Material Design Icons, Octicons, more项目地址https://gitcode.com/GitHub_Trending/ne/nerd-fonts点击查看免费下载本文以 Nerd Fonts 仓库内 patched-fonts/iA-Writer/Duo/README.md 为主线系统讲解 iA Writer Duo 字体的来源、命名规则、内置图标集、三种补丁变体的选型逻辑并结合仓库内 font-patcher 源码说明其底层实现。读完本文你将能够判断「下载现成补丁字体」与「自行运行 font-patcher 打补丁」两条路径的适用场景并理解为何 Duo 与 Quattro 只有 Nerd Font 与 Nerd Font Propo 两种变体、而没有 Nerd Font Mono 变体。iA Writer Duo 是什么来自 iA 的准等宽书写字体iA Writer 系列字体来自信息架构公司 iAInformation Architects是其写作应用 iA Writer 配套开发、面向写作场景优化的字族。根据 Duo 目录 README 的自述These are fonts from iA. Duo and Quattro are almost monospaced but allow more room for some letters.也就是说iA Writer 三个子家族中Duo 与 Quattro近似等宽almost monospaced即大多数字符保持等宽节奏但为部分字母留出更宽松的空间兼顾等宽对齐感与书写可读性Mono真正的等宽字体适合严格对齐的终端与代码场景。同时 README 明确说明它是 IBM Plex 字体的派生修改版It is a modification of IBMs Plex font.版本号为Version 2.000Dec 2018。仓库中的原始未打补丁字体位于 src/unpatched-fonts/iA-Writer/其子目录结构 Duo / Mono / Quattro 与打补丁后的目录一一对应。为什么叫 iMWriting 而不是 iA WriterOFL 保留字体名机制这是该 README 花篇幅解释的核心问题之一打补丁后的字体文件被命名为iMWritingDuoNerdFont-Regular.ttf而不是iAWriterNerdFont-*原因是必须遵守SIL Open Font LicenseOFL中的Reserved Font Name保留字体名机制。在 patched-fonts/iA-Writer/Duo/Regular/LICENSE.md 中可以找到两份版权与保留名声明iA Writer TypefaceCopyright © 2018 Information Architects Inc.保留字体名iA WriterBased on IBM Plex TypefaceCopyright © 2017 IBM Corp.保留字体名Plex。OFL 1.1 对保留字体名的约束是README 与 src/readme-rfn-addendum.md 中均引用了原文No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.即未经原版权方书面许可修改版Modified Version不得使用保留字体名作为呈现给用户的主字体名。Nerd Fonts 团队没有向 iA 申请例外而是选择将家族名从 iA Writer 改写成 iMWritingiA 缩写为 iM 后拼接 Writing从而在保留字族可识别性的同时合规。README 还总结了该机制的四大设计目标避免冲突Avoid collisions、保护作者Protect authors、最小化支持成本Minimize support与鼓励衍生作品Encourage derivatives。Nerd Fonts 把这些通用说明抽取成了可复用的模板文件 src/readme-rfn-addendum.md凡涉及保留字体名的字族不止 iA Writer还包括 IBM Plex、Hack 等都会在其 per-directory README 中注入同一段说明。Duo 字体中集成了哪些图标图标集清单与 glyphs 源码目录iA Writer Duo 的补丁字体并非只加几个符号而是将 Nerd Fonts 的整套图标体系合并进字面。README 以表格形式完整列出了当前构建所集成的图标集及其版本与许可全文继承如下图标集上游项目版本许可Codiconsmicrosoft/vscode-codicons0.0.45CC BY 4.0Deviconsdevicons/devicon2.17.0MITextraglyphssource-foundry/Hack-MITFont AwesomeFortAwesome/Font-Awesome6.5.1CC BY 4.0Font Awesome ExtensionAndreLZGava/font-awesome-extension0.0.3MITFont Logoslukas-w/font-logos1.3.0unlicensedMaterialDesignTemplarian/MaterialDesign-FontOct 6, 2022Apache 2.0Octiconsprimer/octicons18.3.0MITSeti and originaljesseweed/seti-ui0.8.1MITPomiconsgabrielelana/pomicons1.001OFL 1.1 RFNPowerline Extraryanoasis/powerline-extra-symbols1.200MITPowerline Symbolspowerline/powerline1.000 (ca 2013)MITPower Symbols IECjloughry/UnicodeFeb 2015MITWeather Iconserikflowers/weather-icons2.0.10 (1.100)OFL 1.1这 14 个图标集并非临时捏合而是与仓库源码一一对应这些图标集的原始符号字体全部存放在 src/glyphs/ 目录下可以看到codicons/、devicons/、font-awesome/、font-awesome-extension.ttf、font-logos.ttf、materialdesign/、octicons/、pomicons/、powerline-extra/、powerline-symbols/、weather-icons/、extraglyphs.sfd以及Unicode_IEC_symbol_font.otf对应 Power Symbols IEC等文件。也就是说表格即构建时打进去的符号源清单而 src/glyphs/ 就是这些符号源的实际载体。三种变体怎么选NFM / NF / NFP 的 TL;DR 与底层原理README 用「TL;DR」一节给出了最实用的选型建议完整保留如下如果你的环境被限制为等宽字体例如终端请选择名称中含Nerd Font Mono缩写NFM的字体如果你希望图标更大通常是普通字母宽度的 1.5 倍左右请选择不含Mono的Nerd Font缩写NF。大多数终端支持这种方案但效果因人而异ymmv如果你工作在比例proportional上下文GUI 元素、演示文稿编辑等请选择Nerd Font Propo缩写NFP。这套「一变三」的命名规则并不是 README 的约定俗成而是 font-patcher 命令行参数的直接产物。从 font-patcher 的参数定义可以看到--single-width-glyphs将新增图标生成为单倍宽而不是默认的双倍宽对应 Nerd Font Mono--mono/-s创建等宽字体已有与新增字形均为单倍宽且隐含--single-width-glyphs--variable-width-glyphs不调整字符推进宽度即不做「overhang」溢出处理对应 Nerd Font Propo不加任何上述参数时默认输出双倍宽图标、带 overhang 的 Nerd FontNF变体。因此NFM 是图标被压成单倍宽以便塞进严格等宽终端NF 是图标保持双倍宽、视觉更大NFP 是不做宽度调整、贴合比例排版。三者共享同一套字形与图标差异集中在推进宽度策略上。仓库根目录还提供 10-nerd-font-symbols.conf可在 Linux 下将 Nerd Font Symbols 字体注册为图标回退字体配合 NF 变体使用。连字Ligatures处理README 明确说明补丁字体会保留原始字体的连字Ligatures are generally preserved in the patched fonts.。需要留意的历史变化是Nerd Fontsv2.0.0时期的Nerd Font Mono字体不带连字这一限制自v2.1.0起被移除即后续版本的 NFM 字体同样保留连字。如果你使用支持连字的终端却不希望看到连字效果通常可以在终端设置里手动关闭连字选项无需更换字体。此外font-patcher 还提供了--removeligs/--removeligatures专家选项可配合配置文件见 src/config.sample.cfg 中[Subtables]的ligatures列表按正则规则删除指定连字子表——这是需要精细化定制时才用得上的进阶手段。获取方式下载现成补丁字体还是自己打补丁README 给出的「Which font?」解答中选型完成后的获取路径有两条二选一即可Option 1直接下载已打补丁的字体稳定版从 Nerd Fonts 的发布页下载iA-Writer.zip或iA-Writer.tar.xz压缩包后者体积更小开发版直接使用本仓库 patched-fonts/iA-Writer/ 目录中按 Duo / Mono / Quattro 分好族、按 Bold / BoldItalic / Italic / Regular 分好字重的现成 ttf 文件。Option 2用 font-patcher 自己打补丁如果你需要 README 中提到的「自定义变体」例如不包含全部符号以控制小字号下的体积可以自行运行仓库根目录的 font-patcher 脚本。它是一个依赖 FontForge 的 Python 脚本在 Debian/Ubuntu 上需先安装fontforge与python3-fontforge基本用法如下# 打满全部 14 个图标集等价于发布版默认行为 ./font-patcher --complete src/unpatched-fonts/iA-Writer/Duo/Regular/iAWriterDuoS-Regular.ttf # 只挑选部分图标集缩小符号规模 ./font-patcher --fontawesome --octicons --powerline iAWriterDuoS-Regular.ttf # 指定输出目录与输出变体 ./font-patcher --outputdir ./out --mono iAWriterDuoS-Regular.ttf # 生成 NFM 变体 ./font-patcher --outputdir ./out --variable-width-glyphs iAWriterDuoS-Regular.ttf # 生成 NFP 变体其中符号选择参数--complete与--codicons、--fontawesome、--fontawesomeext、--fontlogos、--material、--octicons、--pomicons、--powerline、--powerlineextra、--powersymbols、--weather、--braille等与上文图标集表格一一对应--glyphdir可指定符号源目录默认即 src/glyphs/。更多参数说明可直接运行./font-patcher --help查看注意需先装好 FontForge 的 Python 绑定。为什么 Duo 没有 Nerd Font Mono 变体abort-mono-patch 机制细心的读者会发现一个有趣现象在 patched-fonts/iA-Writer/Duo/ 的每个字重目录中只有两个文件例如 Regular 目录下是iMWritingDuoNerdFont-Regular.ttfNF 变体iMWritingDuoNerdFontPropo-Regular.ttfNFP 变体没有iMWritingDuoNerdFontMono-Regular.ttf。对比 patched-fonts/iA-Writer/Mono/ 的同一字重却有三个文件NF / NFM / NFP 齐全差异的根源在打补丁前的配置文件里。查 src/unpatched-fonts/iA-Writer/ 可以看到只有Duo/与Quattro/两个子目录带有config.cfg且内容完全一致[Config] abort-mono-patch: True这正是「准等宽」字体的特殊性Duo与 Quattro并不是严格等宽字体硬把全部字形压成单倍宽反而会破坏其字面设计。因此 Nerd Fonts 通过配置明确禁止对它们执行--mono补丁。对应实现位于 font-patcher脚本在解析到--mono时会先读取配置文件中abort-mono-patch的值若为True则直接打印 No trying --mono as requested by configfile; exiting 并退出从而不产出 NFM 文件。这就是为何 Duo / Quattro 只提供 NF 与 NFP 两种变体、而真正等宽的 Mono 字族可以提供 NFM 的原因——也印证了 README 中「Duo and Quattro are almost monospaced」的定位。该配置项在通用示例 src/config.sample.cfg 中同样存在且配置文件还支持commandline:键注入默认命令行参数说明这是一套可复用的补丁行为控制机制。安装与使用建议拿到 ttf 文件后安装方式与普通字体无异双击安装、放入系统字体目录或在 Linux/macOS 终端里执行仓库根目录提供的 install.sh、在 Windows 下执行 install.ps1。若选择 NFP/NF 变体用于 GUI 或编辑器请确保应用开启字体 fallback若用于终端可结合 10-nerd-font-symbols.conf 让符号字体自动回退。字体家族名在系统中显示为iMWriting Duo Nerd Font与iMWriting Duo Nerd Font Propo而字重目录Bold / BoldItalic / Italic / Regular与字形文件名一一对应可直接按需下载单字重文件。小结iA Writer Duo 补丁字体是「写作向准等宽字体 × 图标字体聚合」的典型代表它以 IBM Plex 为底、以 iMWriting 之名遵守 OFL 保留字体名机制、集成 14 套图标集并通过abort-mono-patch配置在准等宽字体上规避强制等宽化。无论你是终端用户、GUI 排版者还是想用 font-patcher 定制符号子集的进阶玩家都可以从 patched-fonts/iA-Writer/Duo/README.md 与上述源码证据中快速定位到正确变体与操作路径。赞分享开发工具CLI【免费下载链接】nerd-fontsIconic font aggregator, collection, patcher. 3,600 icons, 50 patched fonts: Hack, Source Code Pro, more. Glyph collections: Font Awesome, Material Design Icons, Octicons, more项目地址https://gitcode.com/GitHub_Trending/ne/nerd-fonts点击查看免费下载相关推荐HaskligHasklugNerd Font 实战指南编程连字字体、SIL OFL 保留字体名机制与 NF/NFM/NFP 变体选型HaskligHasklugNerd Font 实战指南编程连字字体、SIL OFL 保留字体名机制与 NF/NFM/NFP 变体选型 Hasklig 是开发工具CLINerd Fonts 中的 iA WriteriMWriting补丁字体半等宽书写字体的获取、选择与定制指南Nerd Fonts 中的 iA WriteriMWriting补丁字体半等宽书写字体的获取、选择与定制指南 导读 iA Writer 是一套为书写场景开发工具CLIiA Writer 字体的 Nerd Fonts 改造iMWriting 的命名由来、图标集成与 NF/NFM/NFP 变体选择实战指南iA Writer 字体的 Nerd Fonts 改造iMWriting 的命名由来、图标集成与 NF/NFM/NFP 变体选择实战指南 本文聚焦 Nerd开发工具CLI上一篇HoRNDIS让Mac通过Android USB网络共享上网的终极方案下一篇GetQzonehistory终极QQ空间数据备份指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考