Iosevka 是一款开源的无衬线和 slab-serif 等宽字体

Iosevka 是一款开源等宽字体,以极高的可定制性、紧凑字宽带来的高代码密度、丰富的字重与样式变体,以及广泛的 Unicode 和中日韩字符覆盖而受到许多人的青睐,成为不少人用于编码和终端的首选字体。评论者强调它通过自定义 DSL 从代码构建、可生成个性化变体和商业字体相似款,并已被 GNOME 等环境采用;但也有人觉得默认字宽让人疲劳,或更偏爱 Berkeley Mono、Commit Mono、JetBrains Mono 等替代品。讨论中还反复出现了代码连字、浏览器字体加载策略、文件大小权衡,以及什么才算真正“可读”且对底层文本“诚实”的编程字体等争论。

字体示例站点与 font-display: swap

  • 一些评论者困惑于网站最初显示的是 Courier 或类似字体,因为 font-display: swap 会在 Iosevka 加载前先显示回退文本。
  • 他们认为这对于字体示例页面来说是个糟糕的选择,大概是为了满足自动化性能工具而加入的。
  • 也有人指出,现代浏览器的行为让 font-display: block 更接近 swap,使问题更加复杂。

采用、可用性与个人偏好

  • 许多人表示,自己多年来一直把 Iosevka 作为终端、编辑器,甚至 UI 中的主要等宽字体,称赞它的清晰度以及窄字宽带来的额外代码密度。
  • 也有人非常不喜欢这种窄度,觉得难以阅读、伤眼,甚至“不可读”,尤其是在较小或低分辨率屏幕上。
  • 一个反复出现的模式是:起初会感到不适甚至恶心,但使用几天后就会消失,随后其他字体反而显得“太宽”。
  • 一些用户最终更偏爱更宽或更传统的字体,例如 Fira Code、JetBrains Mono、IBM Plex、DejaVu Sans Mono、Consolas、Droid Sans Mono。

自定义、变体与工具链

  • 它的一大吸引力在于深度自定义:字宽(默认、扩展、半扩展、以及诸如 548/576 这类用户调校值)、字形变体、字重、衬线/ slab 选项、准比例字体家族,以及不同“家族”(例如 Aile、Etoile、Fixed)。
  • 该字体通过自定义 DSL 以程序方式定义,并可从配置文件构建;用户会分享自己的自定义配置和派生字体。
  • 有人称赞 TTC 打包方式能把许多变体捆绑在一起;也有人抱怨下载体积很大(单个字体几十 MB,全套甚至达到 GB 级)。
  • 一些人希望 Web 自定义器能直接生成可下载字体,而不必依赖本地 npm/构建环境;也有人描述了借助 CI 的替代方案。

连字(“code ligations”)争论

  • 这款字体支持大量编程连字,并将其称为“code ligations”。
  • 一部分人不喜欢代码中的连字,认为它们会掩盖实际字符(== 与 ===、->、>=)、破坏一致性,并且是“为不存在的问题提供的解决方案”。
  • 另一些人则在审美和认知上都喜欢连字,尤其是当它们符合自己对运算符的心理解析方式,或与数学记号相呼应时。
  • 一些变体和其他字体会明确移除或限制连字;还有一些环境不允许关闭它们,这让反对者感到沮丧。

替代品与衍生字体

  • 讨论中提到了许多替代品和衍生字体:Berkeley Mono、Pragmata Pro、Commit Mono、Maple Mono、Victor Mono、Monaspace、JuliaMono、Aporetic、Pragmasevka、IoskeleyMono、Sarasa Gothic 等。
  • 有些人认为基于 Iosevka 的克隆字体是以较低成本逼近昂贵商业字体的一种方式;另一些人则强烈主张应当直接支持原始设计者。
  • Iosevka 对 Unicode 的广泛支持以及开源许可(SIL OFL)被反复强调为相较某些商业方案的重要优势。