各位有没有遇到过发现了一款心仪的编程字体,但是它和常用中文字体的字符宽度比不是恰好 1:2,不得不忍痛放弃它或者放弃中英文对齐的情况呢?在许多编辑器已经良好支持字体 fallback 的现在,为想用的等宽字体生成一份中文 fallback 字体不失为一种简单灵活的解决方案。
相较于成品整合型字体,这种方案:
- 可以自由选择使用的字体。
- 主字体的全部特性一定能被完整保留,并且可以随时更新版本。
- 不需要相关字体“再发行”级别的授权许可。
但是:
- 需要使用环境支持字体 fallback。
- 只适配了字符宽度,中英文整体视觉效果与人工精调相比存在差距。
另外,英文字体较为美观的宽高比大概在 6:5 左右,而汉字通常是 1:1 的正方形,要让它们严格对齐有一方做出取舍不可避免(或者两方各取舍一点),本方案是一个只牺牲中文部分观感(字间距偏大)的方案,适合用于程序代码这种大段英文夹杂零星中文的场景,不太适合中英文混排为主的场景。当然你也可以选择 fallback 到比较扁的中文字体。 总之,这并非一个能够提供完美观感的解决方案,但是它可以让你在使用任意编程字体的同时保持中英文对齐。
从 PyPI 安装(需要 Python 3.7+):
pip install monoback
或者从发布页面下载独立可执行版本。(仅限 Windows)
monoback <等宽字体文件> <fallback字体文件> [<输出文件>]
然后安装生成的字体并在你的编辑器设置里指定它为 fallback 字体,例如:
- 在 VSCode 中,设置
Editor: Font Family
为字符串'主等宽字体名', '生成的字体名'
。 - 在 JetBrains 产品中, 设置
编辑器 > 字体 > 版式设置 > 回滚字体
为生成的字体。
monoback is licensed under the MIT license.