ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Nerd Fonts 中的 iA Writer 系列字体:iMWriting Quattro Italic 的选型、获取与自定制补丁全指南

Nerd Fonts 中的 iA Writer 系列字体:iMWriting Quattro Italic 的选型、获取与自定制补丁全指南 开发工具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/Quattro/Italic/README.md 为核心系统讲解 iA Writer 字体家族的来源、为何在 Nerd Fonts 中被重命名为 iMWritingSIL OFL 保留字体名机制、注入的图标集清单、NFM/NF/NFP 三种变体的选择原则以及下载现成补丁字体与使用 font-patcher 自行打补丁两条完整实战路径。读完本文你将能够正确挑选适合终端、GUI 与写作场景的 iA Writer 变体并能用仓库内的 font-patcher 工具为任意 iA Writer 源字体定制专属 Nerd Fonts 补丁。一、iA Writer 字体家族与 Quattro Italic 变体iA Writer 是一套由 Information ArchitectsiA发布的写作类字体其设计理念围绕为写作而生的完美字体展开。Nerd Fonts 将其纳入补丁字体集合并在仓库中同时提供了Duo、Mono、Quattro三个子家族。根据文档说明Duo and Quattro are almost monospaced but allow more room for some letters.即Duo 与 Quattro 是几乎等宽的字体——它们保留了等宽字体的排版稳定性同时为部分字母留出更宽的空间兼顾了代码阅读与文章写作的视觉舒适度。而Mono 子家族则是严格的等宽字体。Quattro 家族在仓库中提供四种字重/风格子目录每个子目录内同时包含 Nerd FontNF与 Nerd Font PropoNFP两个变体风格仓库目录补丁后产物示例Regularpatched-fonts/iA-Writer/Quattro/Regular/iMWritingQuatNerdFont-Regular.ttf、iMWritingQuatNerdFontPropo-Regular.ttfItalicpatched-fonts/iA-Writer/Quattro/Italic/iMWritingQuatNerdFont-Italic.ttf、iMWritingQuatNerdFontPropo-Italic.ttfBoldpatched-fonts/iA-Writer/Quattro/Bold/iMWritingQuatNerdFont-Bold.ttf、iMWritingQuatNerdFontPropo-Bold.ttfBoldItalicpatched-fonts/iA-Writer/Quattro/BoldItalic/iMWritingQuatNerdFont-BoldItalic.ttf、iMWritingQuatNerdFontPropo-BoldItalic.ttf本文聚焦的Quattro Italic目录位于 patched-fonts/iA-Writer/Quattro/Italic/其中包含iMWritingQuatNerdFont-Italic.ttf—— Nerd FontNF变体图标采用非等宽约 1.5 个普通字母宽布局iMWritingQuatNerdFontPropo-Italic.ttf—— Nerd Font PropoNFP变体适用于比例proportional排版场景README.md与LICENSE.md—— 说明文档与 SIL Open Font License 1.1 许可证全文。对应的未打补丁源字体位于 src/unpatched-fonts/iA-Writer/Quattro/Italic/iAWriterQuattroS-Italic.ttf原始字体版本为Version 2.0002018 年 12 月且文档明确指出It is a modification of IBMs Plex font.即 iA Writer 是IBM Plex 字体的衍生修改作品这一点在 src/unpatched-fonts/iA-Writer/LICENSE.md 的版权声明中也有对应记录Based on IBM Plex Typeface, Copyright © 2017 IBM Corp. with Reserved Font Name Plex。二、为什么叫 iMWriting 而不是 iA Writer——SIL OFL 保留字体名机制细心的用户会发现仓库中补丁后的字体全部命名为iMWriting*如iMWritingQuatNerdFont-Italic.ttf而不是iAWriter*。这是 Nerd Fonts 为遵守SIL Open Font LicenseOFL1.1的保留字体名Reserved Font NameRFN机制而做的合规性改动。OFL 1.1 第 3 条明确规定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.除非获得相应版权持有人的明确书面许可任何修改版字体软件都不得使用保留字体名。该限制仅适用于呈现给用户的主要字体名称。在 iA Writer 的许可证 LICENSE.md 中可以看到iA Writer 是 Information Architects Inc. 声明的保留字体名同时Plex 是 IBM Corp. 声明的保留字体名。因此Nerd Fonts 在制作补丁字体属于 OFL 意义上的修改版本时不能继续使用 iA Writer 作为主字体名只能通过将 iA 替换为 iM 的方式生成衍生名称以避开保留名冲突。文档还归纳了 RFN 机制的四个主要设计目标Avoid collisions避免命名冲突防止不同衍生版本共享同一名称造成混淆Protect authors保护作者确保作者身份不会被衍生版本冒用Minimize support最小化维护负担避免用户将衍生版本的 bug 反馈到原版项目Encourage derivatives鼓励衍生在合规前提下允许自由修改与再分发。这一合规逻辑在源码层面有直接印证在 font-patcher 的名称清洗映射表中存在明确的替换规则iAWriter : iMWriting, iA Writer : iM Writing, iA-Writer : iM-Writing,对应 font-patcher由此可见命名转换不是人工手动完成的而是由 font-patcher 在打补丁过程中自动执行的内置规则。三、哪些图标集被注入到补丁字体中Nerd Fonts 的补丁字体并非只包含单一图标来源而是聚合了多个上游开源图标项目。文档以表格形式列出了当前版本注入的完整图标集清单现整理如下上游来源以文字描述许可证与版本信息保持不变图标集名称上游来源版本许可证CodiconsMicrosoft VS Code 官方图标集0.0.45CC BY 4.0DeviconsDevicon 项目2.17.0MITextraglyphsHack 项目附加字形-MITFont AwesomeFortAwesome / Font-Awesome6.5.1CC BY 4.0Font Awesome Extensionfont-awesome-extension 项目0.0.3MITFont Logosfont-logos 项目1.3.0unlicensedMaterialDesignTemplarian / MaterialDesign-Font2022-10-06Apache 2.0OcticonsGitHub Primer / octicons18.3.0MITSeti and originalseti-ui 项目0.8.1MITPomiconspomicons 项目1.001OFL 1.1 RFNPowerline Extrapowerline-extra-symbols 项目1.200MITPowerline Symbolspowerline 项目1.000约 2013MITPower Symbols IECUnicode 电源符号项目2015-02MITWeather Iconsweather-icons 项目2.0.101.100OFL 1.1这些图标集的矢量字形源文件存放在仓库的 src/glyphs/ 目录含各图标集的 SVG 源与预编译字体而 font-patcher 则通过命令行开关逐一控制是否注入某个图标集。这也解释了为什么同一款源字体可以打出仅含部分图标或包含全部图标的不同补丁版本。四、如何选择NFM / NF / NFP 三种变体拿到补丁字体后最常见的困惑是同一字体为什么有多个后缀不同的文件。文档给出了明确的 TL;DR 决策规则Nerd Font MonoNFM /--mono当你的使用环境被限制为等宽字体时如终端、代码编辑器等选择带Nerd Font Mono字样的变体Nerd FontNF当你希望图标更大通常是普通字母宽度的 1.5 倍左右时选择不带Mono的Nerd Font变体。大多数终端支持该方案但效果因终端而异文档用 ymmv 提示因人而异Nerd Font PropoNFP /--variable-width-glyphs当你在比例排版上下文中工作时如 GUI 界面元素、演示文稿排版选择带Nerd Font Propo的变体。在 font-patcher 的参数定义中这三种模式分别对应--mono, -s # 创建等宽字体隐含 --single-width-glyphs --single-width-glyphs # 字形按单倍宽生成Nerd Font Mono --variable-width-glyphs # 不调整 advance width无 overhangNerd Font Propo参见 font-patcher一个值得注意的仓库细节在 patched-fonts/iA-Writer/Quattro/Italic/ 中只有 NF 与 NFP 两个变体没有 Mono 变体。这是因为 Quattro以及 Duo本身是几乎等宽而非严格等宽字体为其生成 Mono 变体没有意义。仓库通过配置文件的abort-mono-patch选项显式禁止了这一操作src/unpatched-fonts/iA-Writer/Quattro/config.cfg 内容如下[Config] abort-mono-patch: True从源码结构看font-patcher 在处理--mono/--single-width-glyphs参数时会读取该配置项并直接终止流程if args.forcemono: args.single True if config.getboolean(Config, abort-mono-patch, fallbackFalse): logger.info(No trying --mono as requested by configfile; exiting) sys.exit(0)参见 font-patcher也就是说即使你手动对 Quattro 源字体传入--mono参数只要提供了包含abort-mono-patch: True的配置文件补丁流程就会按配置约定放弃 Mono 生成。五、连字Ligatures处理对于 iA Writer 这类为写作设计的字体连字ligature是排版体验的重要组成部分。文档明确说明补丁字体中一般会保留原有连字Nerd Fontsv2.0.0时代Nerd Font Mono变体不包含连字这一差异自v2.1.0起被移除即新版本不再区分Mono 变体同样保留连字如果你的终端支持连字渲染但你不想要连字通常可以在终端设置中关闭相关选项无需更换字体文件。六、方式一直接下载已打补丁的字体对于绝大多数用户最省事的方式是直接使用仓库预先打好的补丁字体有两条途径稳定版从 Nerd Fonts 的 release 页面下载按字体族打包的发行物其中与本主题对应的是iA-Writer.zip与体积更小的iA-Writer.tar.xz解压后即可获得包含 Duo / Mono / Quattro 全家族补丁字体的文件集开发版仓库内现成文件直接从本仓库的 patched-fonts/iA-Writer/ 目录中按需取用。例如本文主题对应的两个文件即为patched-fonts/iA-Writer/Quattro/Italic/iMWritingQuatNerdFont-Italic.ttfpatched-fonts/iA-Writer/Quattro/Italic/iMWritingQuatNerdFontPropo-Italic.ttf下载后根据第四节的选型规则将对应变体的字体文件安装到系统字体目录Linux 通常为~/.local/share/fonts或/usr/share/fontsWindows 直接右键安装macOS 双击后用字体册安装并在终端、编辑器或 GUI 应用中将其设为字体族即可。七、方式二使用 font-patcher 自行打补丁当内置的补丁变体无法满足需求时例如希望去掉部分图标集以缩小文件体积、调整命名方式、或对 iA Writer 的其他风格做实验性修改可以使用仓库根目录的 font-patcher 脚本自行打补丁。7.1 环境准备font-patcher 是 Python 脚本依赖FontForge 的 Python 绑定以及psMat模块。脚本在启动时会检查这些依赖若缺失会直接报错退出参见 font-patcher并提示安装方式如 Debian/Ubuntu 下sudo apt install fontforge python3-fontforge。7.2 最小可用命令./font-patcher src/unpatched-fonts/iA-Writer/Quattro/Italic/iAWriterQuattroS-Italic.ttf \ --complete \ --outputdir ./output位置参数为待补丁源字体的路径--complete, -c注入全部可用图标集--outputdir, -out指定输出目录默认当前目录。7.3 常用参数速查表参数作用--mono, -s创建等宽字体新增与既有字形均为单倍宽隐含--single-width-glyphs对应 NFM 变体--single-width-glyphs字形按单倍宽生成Nerd Font Mono--variable-width-glyphs不调整 advance width、无 overhangNerd Font Propo--complete, -c注入全部图标集--codicons/--fontawesome/--fontawesomeext/--fontlogos/--material--mdi/--octicons/--pomicons/--powerline/--powerlineextra/--powersymbols/--weather/--braille按需注入第三章节表格中对应的单个图标集--makegroups [N]选择补丁字体的命名方案取值 -1 到 6默认 1见下文--configfile FILE指定 INI 格式配置文件参考 src/config.sample.cfg--removeligs, --removeligatures按配置文件中的 Subtables 规则移除指定连字子表需配合--configfile--cell 0:1000:-200:800调整或查询 cell 尺寸四个冒号分隔整数--name NAME指定命名来源full、postscript、filename或自定义字符串--careful检测到既有字形时不覆盖--dry只检查命名不实际打补丁--has-no-italic字体族没有 Italic 而只有 Oblique/Slanted 时使用--extension ttf/otf转换输出文件格式--adjust-line-height, -l调整行高尝试让 Powerline 分隔符居中参数定义详见 font-patcher7.4 配置文件控制连字与 Mono 补丁行为除了命令行参数font-patcher 还支持 INI 风格的配置文件参考模板为 src/config.sample.cfg[Config] commandline: --removeligatures --makegroups 2 abort-mono-patch: True [Subtables] # 可指定要移除的连字子表名或用 [正则, 子表名] 二元组做条件匹配 ligatures: [ dlig Discretionary Ligatures lookup 12 contextual 0, [!Italic, liga Standard Ligatures in Latin lookup 6 subtable] ]其中abort-mono-patch正是上一节提到的拒绝 Mono 补丁开关——iA Writer 的 Quattro 与 Duo 字体正是通过各自的 config.cfg 声明了abort-mono-patch: True因此在生成产物中看不到 NFM 变体。若你希望用配置文件驱动补丁流程可通过--configfile传入上述文件commandline中的参数会被解析并合并进命令行参见 font-patcher 的配置读取逻辑。7.5 命名方案--makegroups补丁后的字体名由--makegroups的取值决定文档与源码共同说明其规则如下以 Hugo Sans Mono ExtraCondensed Light Italic 为例取值命名结果族缩写风格缩写-1完全不改名保留旧名称与版本--0关闭使用旧命名方案--1HugoSansMono Nerd Font ExtraCondensed Light Italic--2HugoSansMono Nerd Font ExtCn Light Italic缩写族名-3HugoSansMono Nerd Font XCn Lt It缩写族名缩写风格4HugoSansMono NF ExtraCondensed Light Italic使用 NF-5HugoSansMono NF ExtCn Light Italic使用 NF缩写族名6HugoSansMono NF XCn Lt It使用 NF缩写族名与风格规则说明见 font-patcher仓库中 iA-Writer 的补丁产物如iMWritingQuatNerdFont-Italic.ttf即遵循该命名体系原族名iAWriter Quattro经 RFN 合规映射变为iMWritingQuat再拼接NerdFont与风格段。7.6 一次完整的自定制示例# 仅注入 Font Awesome 与 Powerline 图标输出 NFP 比例变体 ./font-patcher src/unpatched-fonts/iA-Writer/Quattro/Italic/iAWriterQuattroS-Italic.ttf \ --fontawesome --powerline \ --variable-width-glyphs \ --outputdir ./my-iawriter八、许可证与合规提醒iA Writer 补丁字体遵循SIL Open Font License 1.1全文见 LICENSE.md与源字体目录下的 src/unpatched-fonts/iA-Writer/LICENSE.md 内容一致。使用时需注意字体可自由使用、研究、修改与再分发但不能单独出售任何衍生版本必须继续以 OFL 许可发布衍生版本不得使用保留字体名iA Writer 与 Plex除非获得授权——这正是仓库统一采用iMWriting命名的原因使用字体排版生成的文档不受 OFL 约束。结语围绕 iA Writer 的 Quattro Italic 变体本文完整覆盖了其字体背景IBM Plex 衍生、命名合规RFN 机制下的 iMWriting、图标集构成、NFM/NF/NFP 选型规则、连字行为以及直接下载补丁字体与用 font-patcher 自定制补丁两条路径。仓库内既提供了开箱即用的 iMWritingQuatNerdFont-Italic.ttf 与 iMWritingQuatNerdFontPropo-Italic.ttf也保留了完整的 未打补丁源字体 供进阶定制读者可根据自身场景在两者间灵活选择。赞分享开发工具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 中的 iA WriteriMWriting补丁字体半等宽书写字体的获取、选择与定制指南Nerd Fonts 中的 iA WriteriMWriting补丁字体半等宽书写字体的获取、选择与定制指南 导读 iA Writer 是一套为书写场景开发工具CLINerd Fonts 中的 iA WriteriMWriting字体族从 iA Fonts 到补丁后字体全解析Nerd Fonts 中的 iA WriteriMWriting字体族从 iA Fonts 到补丁后字体全解析 本指南围绕 Nerd Fonts 仓库中开发工具CLIGatsby 主题Gatsby Themes实战指南可组合、可复用、可升级的配置化插件架构Gatsby 主题Gatsby Themes实战指南可组合、可复用、可升级的配置化插件架构 本文围绕 Gatsby 官方文档《What Are Gatsb开发工具CLI上一篇PVZ Toolkit 植物大战僵尸修改器从安装到进阶玩法的完整教程下一篇Herdr 三种模式速查指南terminal、prefix、navigate 60 秒上手创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表