菜单

修补选项

相关源文件

本页介绍 Nerd Fonts 补丁脚本可用的命令行选项。font-patcher 是一个功能强大的工具,允许您将各种图标集添加到字体中,使其成为可在终端应用程序和文本编辑器中显示特殊字形的“Nerd Fonts”。有关补丁过程本身的信息,请参阅字体补丁系统使用字体补丁器

补丁过程概述

在深入了解可用选项之前,了解补丁过程的概况会很有帮助。

来源:font-patcher332-1151

选项类别

font-patcher 选项可分为以下几组

来源:font-patcher334-340 font-patcher425-512 font-patcher525-766

输出控制选项

这些选项控制补丁器的输出行为。

选项描述
--quiet在打补丁期间抑制信息输出
--progressbars显示进度条而不是详细输出文本
--dry-run执行除实际字体生成之外的所有步骤
--outputdir PATH指定生成字体存储的目录
--extension EXT设置输出文件的文件扩展名(默认为 .ttf)
--postprocess COMMAND字体生成完成后执行的命令

来源:font-patcher450-512

字体特性选项

这些选项影响生成补丁字体的特性。

选项描述
--forcemono强制等宽字体字符宽度,使字形具有相同的宽度
--single-s创建等宽(单宽)Nerd Font
--nonmono创建比例(可变宽度)Nerd Font
--adjustLineHeight调整行高,使 Powerline 分隔符更好地居中
--metrics {HHEA,TYPO,WIN}选择用作打补丁字体的基础的字体度量表
--xavgwidth VALUE设置 OS/2 表中的 xAvgCharWidth 字段
--cellopt X:X:Y:Y用自定义值覆盖单元格尺寸
--is-variable指示源字体是可变字体(将显示警告)
--noitalic指定源字体没有斜体样式

来源:font-patcher351-364 font-patcher562-570 font-patcher1153-1161 font-patcher1226-1251 font-patcher1360-1370 font-patcher468-506

补丁行为选项

这些选项控制哪些字形被打补丁以及补丁行为。

选项描述
--careful如果字体中已存在字形,则跳过补丁
--removeligatures删除配置文件中指定的连字
--forcebox强制包含盒绘字符
--glyphdir PATH源字形所在目录的路径
--makegroups VALUE控制字体家族分组,范围从 -1 到 6
--force-name {full,postscript,filename}强制使用特定的字体命名方法

来源:font-patcher376-382 font-patcher783-798 font-patcher576-612

图标集选项

这些选项控制在打补丁字体中包含哪些图标集。

来源:font-patcher1124-1150 font-patcher531-559

选项描述
--complete添加所有可用的图标集
--custom PATH指定要包含的自定义符号字体的路径
--fontawesome添加 Font Awesome 字形
--fontawesomeextension添加 Font Awesome Extension 字形
--octicons添加 Octicons 字形
--powersymbols添加 IEC Power Symbols
--codicons添加 VS Code Codicons
--pomicons添加 Pomicons
--fontlogos添加 Font Logos(原 Font Linux)
--material添加 Material Design Icons
--weather添加 Weather Icons
--powerline添加 Powerline 符号
--powerlineextra添加 Powerline Extra 符号

来源:font-patcher1124-1150 font-patcher531-559

命令语法

font-patcher 的基本命令语法是

./font-patcher [options] PATH-TO-FONT

字体命名

打补丁过程会修改字体名称,以指示添加了什么。命名遵循以下模式:

来源:font-patcher526-577 font-patcher670-744

重命名行为

font-patcher 包含一种通过重命名特定字体来符合字体许可证的机制。例如:

  • "Source" → "Sauce"
  • "Bitstream Vera Sans Mono" → "Bitstrom Wera"
  • "Fira Mono" → "Fura Mono"
  • "Cascadia Code" → "Caskaydia Cove"

此行为确保符合字体许可证中“保留字体名称 (RFN)”条款。

来源:font-patcher670-744

使用示例

以下是一些常见的用法模式:

  1. 包含所有图标集的基本打补丁

    ./font-patcher --complete /path/to/font.ttf
    
  2. 创建具有选定图标集的等宽 Nerd Font

    ./font-patcher --single --fontawesome --octicons /path/to/font.ttf
    
  3. 创建具有 powerline 符号的比例 Nerd Font

    ./font-patcher --nonmono --powerline /path/to/font.ttf
    
  4. 使用自定义输出目录和扩展名进行打补丁

    ./font-patcher --outputdir ~/patched-fonts --extension .otf /path/to/font.ttf
    
  5. 小心打补丁(不覆盖现有字形)

    ./font-patcher --careful --complete /path/to/font.ttf
    

故障排除

  • 等宽问题:如果生成的字体未被识别为等宽字体,请使用--forcemono。如果出现警告,您需要使用两次来强制打补丁。
  • 字体宽度问题--single 选项有助于确保字体正确等宽。
  • 许可证合规性:补丁器会自动重命名字体以符合受限制的字体名称,但您可以使用--makegroups -1禁用此功能。
  • 可变字体:当打补丁可变字体时,补丁器会警告您,因为结果可能不是最佳的。

来源:font-patcher836-843 font-patcher670-744 font-patcher505-506

高级选项

字体度量选项

--metrics 选项决定在打补丁时使用哪组字体度量:

  • HHEA:使用水平头度量(hhea_ascent, hhea_descent, hhea_linegap)
  • TYPO:使用排版度量(os2_typoascent, os2_typodescent, os2_typolinegap)
  • WIN:使用 Windows 度量(os2_winascent, os2_windescent)

补丁器会尝试自动确定正确的度量,但您可以在需要时覆盖此设置。

来源:font-patcher1212-1251

字体家族分组

--makegroups 选项控制字体家族如何分组:

描述
-1完全禁用重命名(可能违反字体许可证)
0使用旧式命名逻辑
1-3启用基于共享家族名称的字体分组
4-6使用 Nerd Font 名称部分的缩写形式

来源:font-patcher579-612 font-patcher748-768

技术细节

font-patcher 脚本使用 FontForge 的 Python 绑定来操作字体文件。它将字形从源符号字体复制到目标字体,适当缩放它们以匹配目标字体的度量,并调整字体元数据。

对于等宽字体,字形会缩放以适应字符单元格宽度;而对于比例字体,字形可以具有可变宽度。对 Powerline 分隔符等多单元格宽字符应用特殊处理。

来源:font-patcher347-415 font-patcher425-512