IPAK

文章 · 阶段 4 · 工作字体

为什么不从零开始

工作字体 Ipak Davlat 从开放的 Overpass 生长而来:我们如何挑选基础字体,又为乌兹别克语补建了什么。

除了特色字体——巴纳伊、甘奇、地铁、卡拉姆——标牌、指示牌和表格还需要一款沉稳的工作字体:严谨、官方、略带制图风格。这样的字体没有必要从零画起。

因此 Ipak 是一个由两部分组成的字体库。特色字体我们自己画:它们带有别人都没有的本地母题。工作字体——用于标牌、指示牌、表格——建立在开放的基础字体之上,再往上面加乌兹别克层。第一个这样的字体是 Ipak Davlat。

塔什干机场屋顶上的 Ipak Davlat Bold,效果图
塔什干机场屋顶上的 Ipak Davlat Bold。效果图:照片上的旧铭文已被替换。 照片:Alpasli, Wikimedia Commons;效果图——Ipak · CC BY-SA 4.0(照片:Alpasli;效果图——Ipak)

为什么工作字体不值得从零画

一款好的工作无衬线体是成千上万个字形。字形是字体里一个字符的图形:字母、数字、箭头。每个都要在两种字重里画出、对齐边距、核对上百个字对。专业的开放字体已经走过这条路:它们做了多年,被成千上万用户检验过。

我们自己加的只是基础字体的空缺处。对乌兹别克语来说这样的地方不多,但都在最显眼的位置:符号 ʻ 和 ʼ、与它们的字对、西里尔字母 Ў Қ Ғ Ҳ 和与它的字对。工作在这里,而不是在字母 H 上。

我们找什么

对基础字体的要求我们提前拟好:

  1. 开放许可,允许修改字体并分发修改后的版本。
  2. 完整的西里尔字母,包括乌兹别克的 Ў Қ Ғ Ҳ。乌兹别克语既用拉丁字母也用西里尔字母书写,标牌上两种都会遇到。
  3. 2026年法律的字母——Ö Ğ Ş Ç。法律已经议会批准,但截至2026年10月19日尚未签署;字体应该提前备好。
  4. 性格:严谨、“官方”,带工程式的干脆。

要求清单里没有符号 ʻ。我们知道它无论如何都要自己画:研究中我们没有找到任何一款字体,其中 ʻ 是作为字母的一部分设计的,而不是一个倒置的引号。

怎么检验

我们取了 Google Fonts 的开放字体,核对两个问题。字体里有没有所需的字符——这看文件的字符表就知道。它们排出来什么样——为此用 HarfBuzz 程序排了一行字,就是浏览器里给文本排版的那一个。

检验用的字符串:OʻZBEKISTON ЎЗБЕКИСТОН ҚҒҲ ÖĞŞÇ。其中有带符号 ʻ 的乌兹别克拉丁字母、西里尔字母和改革后的字母。

同一行字在六款字体中:Overpass、Fira Sans、IBM Plex Sans、Onest、Barlow、Ipak Davlat
同一行字在六款字体中:乌兹别克拉丁字母、带 Ў Қ Ғ Ҳ 的西里尔字母和2026年法律的字母。 Ipak;用 HarfBuzz(hb-view)以 Overpass、Fira Sans、IBM Plex Sans、Onest、Barlow 和 Ipak Davlat 排出;字体——SIL OFL 1.1 · CC BY 4.0 · Ipak

结果:

字体 ʻ(U+02BB) 带 Ў Қ Ғ Ҳ 的西里尔字母 Ö Ğ Ş Ç
Overpass 没有 有 有
Fira Sans 有 有 有
IBM Plex Sans 有,但间隙很大 有 有
Onest 有 有 有
Barlow, Public Sans 有 无西里尔字母 有
Archivo 没有 无西里尔字母 有

Barlow、Public Sans 和 Archivo 立刻出局:它们连一个西里尔字母都没有,连 Ж 都没有。补画一整套文字,那正是“从零开始”。

IBM Plex 的陷阱

IBM Plex Sans 乍看合适:它有符号 ʻ。但排出来(我们的测量:文件取自 Google Fonts,2026年10月,符号宽度从文件中读出)词会散开:“O ʻ zbekiston”。这款字体里的符号非常宽——1000单位中占600,超过字号的一半。字号是字体的大小,一个名义上的行高。窄窄的笔画两旁留下两片空白。

IBM Plex Sans、Fira Sans 和 Ipak Davlat 中的 Oʻzbekiston
放大看 Oʻzbekiston 一词:IBM Plex Sans、Fira Sans 和 Ipak Davlat 中 O 后面的空隙。 Ipak;用 HarfBuzz(hb-view)排出;字体——SIL OFL 1.1 · CC BY 4.0 · Ipak

type.today 那篇乌兹别克文字综述警告的正是这个错误:O 或 G 与符号 ʻ 之间的距离不能太大,否则排出来的字里会出现窟窿。在一米大的招牌上,这样的窟窿从广场另一头都看得见。

Fira Sans 和 Onest 排得更匀。但它们的 ʻ 同样是那个倒置引号,有自己的侧边距,而且 O+ʻ 和 G+ʻ 不做紧排。紧排是针对具体字母对的间距修正,比如让 A 和 V 不要离得太远。

为什么是 Overpass

Overpass 没有符号 ʻ——图上它的位置是一个占位方块。但其余一切都符合要求。

**性格。**Overpass 出自 Highway Gothic——美国道路标志字体。那个字体系列是1940年代在美国公路部门研制的,该部门后来成为联邦公路管理局(FHWA)。那款字体的任务是让人从远处、在高速下都能读清。Overpass 并不复制它:这是一款独立的多文字、多字重排版字体。干脆的平直收笔、开放的字形、均匀的节奏——这正是我们为工作字体寻找的“略带制图风格”。

**作者与来历。**Overpass 由 Delve Fonts 工作室绘制:Делв Уитрингтон、Дэйв Бэйли、Томас Джокин。项目得到 Red Hat 和 Google Fonts 的支持。这是一份专业开源作品。

**西里尔字母。**完整,含 Ў Қ Ғ Ҳ,且 Қ 和 Ҳ 有正确的下伸小尾巴。下伸部是字母伸到行线以下的部分,比如 Қ 的小尾巴。

**改革后的字母。**Ö Ğ Ş Ç 已在原位。

没有 ʻ 我们不当作缺点。自己的符号反正要画:用 Overpass 就不必与别人的符号作斗争。

OFL 许可简介

Overpass 按 SIL Open Font License 1.1 分发(Google Fonts 中的版本)。OFL 允许修改字体并分发修改后的版本,包括随程序一起分发。条件很简单:衍生字体保持同一许可,基础字体作者的版权保留,而字体本身不能单独出售、就它自身卖钱。

所以每个 Ipak Davlat 文件里有两行版权:Overpass 作者的和乌兹别克层作者的。字体旁边放着带这两行的许可文本。Ipak Davlat 以 SIL OFL 1.1 发布,Overpass 作者的版权保留。Overpass 的许可里没有保留字体名称(Reserved Font Name);衍生字体反正有自己的名字——Ipak Davlat。权利方面的问题——请写信:avenex@xronocode.com。

什么是“乌兹别克层”

我们把加在 Overpass 之上的一切称为层。每个部分在板块的单独文章里详述。

  • **自己的符号 ʻ 和 ʼ。**带平直切口的楔形。ʻ 的重端在下,ʼ 的在上。这样即使在小字号下也容易区分。
  • 带符号的紧排。“符号条带”方法:空白只在符号所在的位置测量。详见《符号条带》一文。
  • **西里尔字母的紧排。**基础字体几乎没有 ГЛ、ТЛ、УА 的修正,Қ Ғ Ҳ 则一处都没有。我们对照了五款专业开放字体:Fira Sans、Inter、Noto Sans、Onest、IBM Plex Sans。从它们那里取的不是数值,而是每对排得有多紧。结果:Regular 里784对,Bold 里802对。
  • **输入引号的替换。**人用普通键盘打出 o'zbek——字体显示 oʻzbek。详见《o' → oʻ》一文。
  • **标牌的细节:**带尾巴的 l、带斜线的零、图形化箭头、修正过的中点。详见《远看的招牌》一文。

结果如何

基础字体省下了几个月。但“乌兹别克层”并不是小事:检验 Ipak Davlat 时,几乎所有意见都恰好针对添加的部分——符号、字对、替换。基础字体的字母 H 一次都没有引起问题。

给做乌兹别克语字体的人的结论:不一定要什么都画。重要的是找到一款西里尔字母好、性格合适的基础,而把力气花在让乌兹别克排版不同于其他任何排版的地方。

来源

  • Overpass 仓库:出自 Highway Gothic 的来历、作者、Red Hat 与 Google Fonts 的支持——github.com/RedHatOfficial/Overpass。
  • Highway Gothic 及衍生字体清单(含 Overpass)——Wikipedia。
  • Google Fonts 中 Overpass 的版权与许可——OFL.txt 文件。
  • SIL OFL 1.1 条件——openfontlicense.org。
  • 关于 O/G 与 ʻ 之间空隙的建议——А. Шайдуллина,type.today,04.12.2023。
  • U+02BB、U+02BC 的名称与编号——Unicode 表。
  • 覆盖与排版的检验——我们的测量:字体文件来自 github.com/google/fonts(2026年10月18日),字符表经 fontTools 读取,测试字符串经 HarfBuzz 排出。

链接: