Sarasa Term SC Nerd
字体是以 Sarasa Term
SC字体为基础,修改了Nerd
fonts字体补丁程序,然后用该程序将Nerd fonts
合并入Sarasa Term SC
, 再经过一些后处理,而最后形成的字体。该字体特别适合
简体中文用户在终端或者代码编辑器中使用。
在 laishulu/Sarasa-Term-SC-Nerd 的基础上,更新了上游版本
上游版本:
- Sarasa Term SC:1.0.16
- Nerd Font: 3.2.1
- Font Patcher: 4.13.1
Sarasa Term SC
是极少数做到中文和英文 2:1 严格对齐的字体,特别适合用来写代 码, 以及中英文混合的字符式表格的对齐等。Nerd fonts
提供了很多图标字体,特别适合各种 Zsh/Bash/Vim/NeoVim/Emacs 主题, 例如 zsh 的p10k
,Powerline
等等。- 一些符号进行了纵向拉伸,不会出现
Powerline
条带中高低不一,无法上下对齐的情况。 - 原始
Sarasa Term SC
字体和Sarasa Term SC Nerd
字体可以共存,不会产生冲突。 - 将
OS/2
表中的xAvgCharWidth
属性进行了设置,避免了在 windows 系统下,一些 不支持新版本OS/2
表的软件中字距不正常的问题。 - 加入了
hdmx
表,解决了 windows 系统下的一些情况下无法严格对齐的问题。 - 修正了
OS/2
表中的panose
和post
表中的isFixedPitch
,使得字体被系统认出是等 宽字体。 - 删除了
Material
字符集中的部分字符,避免超出字体字符数量上限
- 手工下载安装:
- 前往 release 下载
sarasa-term-sc-nerd.ttc.tar.gz
。 - 将
sarasa-term-sc-nerd.ttc.tar.gz
解压即可得到字体文件。
- 前往 release 下载
在你的主题配置文件中,使用 Sarasa Term SC Nerd
。
根据我的实践,在原流程基础上做了一些修改,以下流程仅针对 Ubuntu 环境,其他环境可自行调整
-
安装依赖
sudo apt install python3-fontforge fontforge
-
下载并进入
nerd font
源码目录,以下所有操作都在此目录下进行。git clone --filter=blob:none [email protected]:ryanoasis/nerd-fonts.git
-
将本项目
scripts
目录下的文件(不含script
目录自身)拷贝过去。 -
安装
python
环境(建议使用 Miniconda 配置虚拟环境)pip install fonttools
-
建立
sarasa
目录,下载并解压SarasaTermSC-TTF.7z,并解压文件放入该目录中。 -
安装
fontpatcher
wget https://github.com/ryanoasis/nerd-fonts/releases/latest/download/FontPatcher.zip unzip FontPatcher.zip && rm -rvf FontPatcher.zip
-
修改
font-patcher
, 其中第一行改为#!/usr/bin/python3
,这是因为fontforge
相关绑定安装在系统的 Python 中,而不是虚拟环境的 Python 中;找到
# Define the character ranges
一行,这里定义了一系列附加字符集,由于数量较多,直接和 Sarasa 字体合并 会导致字符数量超出 65535 上限从而失败,因此需要根据需要删减一部分,删减方式为修改需要删减部分的SymStart
或者SymEnd
。本库中 release 的字体将Material
的SymEnd
改为了0xF1708
。 -
运行脚本
./build
,在sarasa-nerd
目录下将生成.ttf
字体文件。同时,所有的.ttf
也被打包成一个.ttc
字体合集文件。