本页介绍 Nerd Fonts 补丁脚本可用的命令行选项。font-patcher 是一个功能强大的工具,允许您将各种图标集添加到字体中,使其成为可在终端应用程序和文本编辑器中显示特殊字形的“Nerd Fonts”。有关补丁过程本身的信息,请参阅字体补丁系统和使用字体补丁器。
在深入了解可用选项之前,了解补丁过程的概况会很有帮助。
font-patcher 选项可分为以下几组
来源:font-patcher334-340 font-patcher425-512 font-patcher525-766
这些选项控制补丁器的输出行为。
| 选项 | 描述 |
|---|---|
--quiet | 在打补丁期间抑制信息输出 |
--progressbars | 显示进度条而不是详细输出文本 |
--dry-run | 执行除实际字体生成之外的所有步骤 |
--outputdir PATH | 指定生成字体存储的目录 |
--extension EXT | 设置输出文件的文件扩展名(默认为 .ttf) |
--postprocess COMMAND | 字体生成完成后执行的命令 |
这些选项影响生成补丁字体的特性。
| 选项 | 描述 |
|---|---|
--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 包含一种通过重命名特定字体来符合字体许可证的机制。例如:
此行为确保符合字体许可证中“保留字体名称 (RFN)”条款。
以下是一些常见的用法模式:
包含所有图标集的基本打补丁
./font-patcher --complete /path/to/font.ttf
创建具有选定图标集的等宽 Nerd Font
./font-patcher --single --fontawesome --octicons /path/to/font.ttf
创建具有 powerline 符号的比例 Nerd Font
./font-patcher --nonmono --powerline /path/to/font.ttf
使用自定义输出目录和扩展名进行打补丁
./font-patcher --outputdir ~/patched-fonts --extension .otf /path/to/font.ttf
小心打补丁(不覆盖现有字形)
./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)补丁器会尝试自动确定正确的度量,但您可以在需要时覆盖此设置。
--makegroups 选项控制字体家族如何分组:
| 值 | 描述 |
|---|---|
| -1 | 完全禁用重命名(可能违反字体许可证) |
| 0 | 使用旧式命名逻辑 |
| 1-3 | 启用基于共享家族名称的字体分组 |
| 4-6 | 使用 Nerd Font 名称部分的缩写形式 |
来源:font-patcher579-612 font-patcher748-768
font-patcher 脚本使用 FontForge 的 Python 绑定来操作字体文件。它将字形从源符号字体复制到目标字体,适当缩放它们以匹配目标字体的度量,并调整字体元数据。
对于等宽字体,字形会缩放以适应字符单元格宽度;而对于比例字体,字形可以具有可变宽度。对 Powerline 分隔符等多单元格宽字符应用特殊处理。