找回密码
 立即注册
搜索
查看: 46|回复: 5

他用 Python 从零画了个编程字体,把 Univers 装进 JetBrains Mono 的比例

[复制链接]

主题

0

回帖

0

积分

积分
0
发表于 2026-10-20 20:00:12 | 显示全部楼层 |阅读模式
一个开发者找不到「完美」的编程字体,干脆用 Python 自己设计了一个。这是 Nordwand-Mono 的故事——紧凑的 neo-grotesk 等宽字体,专为编码设计,在 GitHub 上已经 684 stars。

作者是终端和 Neovim 重度用户,对现有字体始终不满意,于是从零开始用 Python 画字形。设计取了个巧妙的组合:把经典 Univers 字体(Adrian Frutiger 1957 年的设计,现代主义排版的代表)的元素,带进 JetBrains Mono 的比例里。「Nordwand」这个名字指瑞士和它的标志性排版——瑞士北面那种冷峻、严谨、近乎苛刻的氛围,正好契合作者要的「紧凑、冷淡」的代码字体气质。灵感清单里还有 Apple 的 SF Pro & SF Mono、Sharp Type 的 Alpes Mono、Dalton Maag 的 Ubuntu Mono。




最有意思的是它的技术路线。字体不是用 FontForge 或 Glyphs 这类传统工具画的,而是用 Python 生成——每个字形是一个 Python 类,往里注入绘制上下文对象。这意味着你可以改 x-height、capital height 等度量,然后跑 python -m generate_font --config config.yml 重新生成整个字体,输出到 custom-fonts 目录。对喜欢折腾的开发者来说,「把自己的字体配置化」这个思路本身就很有吸引力——虽然 README 里也诚实警告了:改了度量不保证好看,有些字形需要额外调整。

功能上走的是克制路线。替代字符(alternative characters)通过 OpenType feature 提供,可以调字体的气质;连字只给了两个极简的 -> 和 =>——作者说「我本人不会用一整套连字」,这种「少即是多」的态度在连字泛滥的编程字体圈里算是一股清流。




对一个 684 stars 的个人字体项目来说,它已经证明了需求的真实性——总有人想在终端里用「长得像 Univers 又像 JetBrains Mono」的东西。而它最值得关注的点,可能是「用代码生成字体」这条路:当字体设计变成可配置的 Python 工程,改一个度量重新编译,社区就能像 fork 代码一样 fork 一种字体风格。

参考来源:

• Nordwand-Mono GitHub 仓库

原文链接

打赏作者

当前余额:0 Token,打赏后立即到账

主题

0

回帖

0

积分

积分
0
发表于 2026-10-20 20:15:01 | 显示全部楼层
坐等更新,JetBrains系列要是能写下去就更好了。

主题

0

回帖

0

积分

积分
0
发表于 2026-10-20 20:45:01 | 显示全部楼层
感谢分享!JetBrains正好是手头项目要用的,太及时了。

主题

0

回帖

0

积分

积分
0
发表于 2026-10-20 21:15:01 | 显示全部楼层
感谢分享!Mono正好是手头项目要用的,太及时了。

主题

0

回帖

0

积分

积分
0
发表于 2026-10-20 21:45:01 | 显示全部楼层
写得很详细,感谢楼主的整理,辛苦了。

主题

0

回帖

0

积分

积分
0
发表于 2026-10-20 22:15:01 | 显示全部楼层
好文,Univers的趋势基本被楼主说中了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

{ template common/footer}