远看的招牌 · Ipak

> I 与 l、O 与 0、中点和箭头：这些小细节决定人们能否从大厅另一头读出标牌。

[Oʻzbekcha](https://ipak.xronocode.com/jarayon/signs-at-distance/index.md) · [English](https://ipak.xronocode.com/en/jarayon/signs-at-distance/index.md) · [Русский](https://ipak.xronocode.com/ru/jarayon/signs-at-distance/index.md) · [Español](https://ipak.xronocode.com/es/jarayon/signs-at-distance/index.md) · [Português](https://ipak.xronocode.com/pt/jarayon/signs-at-distance/index.md) · [中文](https://ipak.xronocode.com/zh/jarayon/signs-at-distance/index.md)

[制作过程]

# 远看的招牌

I 与 l、O 与 0、中点和箭头：这些小细节决定人们能否从大厅另一头读出标牌。

工作字体 Ipak Davlat 首先是为铭文做的：标牌、指示牌、出口编号。上面的文字很短，人们边走边读、隔着距离读、常常斜着读。在这里，字体的小毛病会变成误读：人看到的是另一个字母或另一个数字。

字体的底子 Overpass 出身于道路。它出自 Highway Gothic——美国道路标志字体，那是为远距离、高速阅读设计的。但即便是它，专门对标牌也有要修的地方。

![用 Ipak Davlat 排出的指示牌效果图](https://ipak.xronocode.com/images/p/signs-at-distance/mockup-davlat-wayfinding.png)

*用 Ipak Davlat 排出的机场指示牌效果图：拉丁字母、西里尔字母、箭头、带斜线零的出口编号。 Ipak；字体——SIL OFL 1.1 · CC BY 4.0 · Ipak*

## I 与 l

在大多数无衬线体里，大写 I 和小写 l 是同一根竖棒。普通文本里这不妨事：词会提示。标牌上的词可能陌生，而字母可能排第一。乌兹别克语里这样的词很多：Ilm（科学）、Islom、Ilmiy。读者不知道那里是 I 还是 l。

解决办法是**带尾巴的 l**：竖笔下端向右弯。这样即使在陌生的词里，I 和 l 也不会混淆。Ipak Davlat 里这样的 l **默认启用**：字体是为铭文做的，可分辨性比习惯的样子重要。

![基础字体与 Ipak Davlat 中的 I 与 l、O 与 0](https://ipak.xronocode.com/images/p/signs-at-distance/il-o0.png)

*I 与 l、O 与 0：基础字体 Overpass、默认状态的 Ipak Davlat、开启 ss02 与 ss03 的 Ipak Davlat。 Ipak；用 HarfBuzz（hb-view）以 Overpass 和 Ipak Davlat Regular 排出；字体——SIL OFL 1.1 · CC BY 4.0 · Ipak*

需要普通 l 的人，有 **ss03“Plain l”样式集**。

**说明.** 样式集（ss01–ss20）是 OpenType 字体内部的开关。它把一些字母形换成另一些：比如把普通零换成带斜线的零。在排版和网站上用一个设置就能打开；CSS 里是 font-feature-settings: "ss02"。

带尾的 l 比看上去费了更多功夫。

**右侧的窟窿。**带尾 l 之后，ln、lo 组合比 nn 宽了13—25%。尾巴在下方，那里本来就空。右边距减去0.45个笔画粗——现在差距在±6%以内。

**连累别的字母。**起初尾巴直接加在了 l 的字形上。但 ĺ ļ ľ ŀ 和连字 fl（两个字母合成一个字符）都由它组装，它们与邻居粘住了。字形是字体里一个字符的图形。修法：带尾 l 成为同一码位上的独立字形，基础字体原来的 l 保持原样。

**加泰罗尼亚语的 l·l。**加泰罗尼亚语里有中带点的 l·l 组合。基础字体的规则等的是普通 l。带尾 l 被加进了所有这类规则。

## O 与 0

第二对经典的混淆是字母 O 和数字 0。标牌上的“出口 20”和“出口 2O”若不预先知道就无法区分。航班号、座位号、诊室号尤其麻烦，那里字母和数字混排。

解决办法是**带斜线的零**，样式集 **ss02**。指示牌、编号、代码都开启它。表格零——数字列用的等宽数字——也带斜线。所以在按列对齐的时刻表里，零同样与 O 不同。

为什么不默认开启？普通文本里带斜线的零显得技术腔。“2026年”里的零不需要与字母区分——语境很清楚。

## 会消失的中点

中点 ·（U+00B7）在标牌上分隔条目：“Metro · Taksi”。基础字体里它带着一个我们很久没发现的错误。

![基础字体与 Ipak Davlat 中的中点](https://ipak.xronocode.com/images/p/signs-at-distance/middle-dot.png)

*基础字体与 Ipak Davlat 中的中点。 Ipak；用 HarfBuzz（hb-view）以 Overpass 和 Ipak Davlat Regular 排出；字体——SIL OFL 1.1 · CC BY 4.0 · Ipak*

在 Overpass 里，这个点被标记为上标附加符——像字母上方的点，而不是独立字符。这样的符号不占位置：它们落到前一个字母上。“5·10”被读成“510”，而在“KIRISH·CHIQISH”（入口 · 出口）里，点落进了 H 的内部。

**说明.** OpenType 字体里每个字形都有类别：普通字符、连字、上标附加符等等。类别存在 GDEF 表里。按另一张表 GPOS（它负责字符的位置）的规则，上标附加符“贴”到它前面的字母上。如果一个独立字符被错误地标成上标，它就失去了自己在行里的位置。

错误是在检验时发现的。我们改了 GDEF 里的类别——以为完事了。下一次检验再次发现同一个缺陷：点仍然落进 H 里。原来它还写进了 GPOS 的“把符号放到字母上”规则里。第一次修复不完整。直到第二次、把点从这些规则里去掉之后，“5·10”才真正成为“5·10”。

我们得到的教训：要检验的是排版结果，而不是自己改过的那张表。

## 箭头

基础字体的箭头各不相同。← → ↑ 的杆向尾部收窄，↓ 却不。宽度也有差别：1004和976单位。同一行里的“← →”能看出来。

![基础字体的箭头与 Ipak Davlat 的箭头](https://ipak.xronocode.com/images/p/signs-at-distance/arrows.png)

*基础字体的箭头与 Ipak Davlat 的图形化箭头在 Regular 和 Bold 中。 Ipak；用 HarfBuzz（hb-view）排出；字体——SIL OFL 1.1 · CC BY 4.0 · Ipak*

我们用同一轮廓画了自己的箭头：右箭头画一次，其余由旋转和镜像得到。匀称的杆、三角形头部、一致的留白。箭头经历了三次迭代。

**统一的形状。**检验时注意到基础字体箭头的差异。我们画了自己的。

**是图形，不是字母。**随后发现箭头太小——Regular 的箭头只有大写高度的一半，而且 Regular 与 Bold 的比例不一致。我们认定标牌上的箭头是图形符号。现在它在两个字款里一致：粗细同 Bold，长度为大写高度的1.2倍，头部0.85。

**共同的中心。**后来查明 ↑ 和 ↓ 高度不一，“↑↓”看起来像台阶。四个箭头有了共同的中心——大写高度的中点。现在它们向行线上下探出的距离相等。

## 9—16像素下的检验

远处的标牌在眼睛里是很小的。所以我们看了字体在屏幕上小字号（即字体大小）下的样子——9、12和16像素。

![Ipak Davlat 在9、12和16像素下](https://ipak.xronocode.com/images/p/signs-at-distance/small-sizes.png)

*Ipak Davlat Regular 在9、12和16像素下的样子，放大四倍，无抗锯齿。 Ipak；用 HarfBuzz（hb-view）以 ss02 和 --language=uz 排出；字体——SIL OFL 1.1 · CC BY 4.0 · Ipak*

检验时在9像素下查看了控制词。全部可读。Қ Ғ Ҳ Ў、I、l 和 1、开了 ss02 的 O 和 0、5 和 S、8 和 B 都能区分。箭头立在大写高度的中心。

符号 ʻ 和 ʼ 单独查过。第一版里两者都像“/”，只有两端粗细不同。小字号下这不起作用。现在 ʻ 的重心在下，ʼ 的在上，两个剪影朝向相反的方向。

## 我们对标牌的建议

从检验中得出一份简短的使用规则清单：

**Bold**——标牌的主要字款。

屏幕指示牌上的大写高度**不小于约12像素**。

编号用**ss02**；编号列表用**ss02 加 tnum**（等宽的表格数字）。

分隔符“·”**两边留空格**：“Metro · Taksi”。

技术方面也查过了。Font Bakery——一套字体自动检查：剩下的意见属于基础字体 Overpass，而不属于乌兹别克层。OTS——Chrome 和 Firefox 浏览器加载网页字体前所用的检查——没有发现任何问题。

## 结语

这些修改没有一项在普通文本里显眼。l 的小尾巴、带斜线的零、归位的中点、齐整的箭头——只有在它们缺席时你才会看见。但正是它们决定一个人能否一眼找到自己的出口。

## 来源

Highway Gothic 及其用途——Wikipedia。

U+00B7 MIDDLE DOT、箭头 U+2190–U+2193——Unicode 表。

样式集与表格数字（tnum）——OpenType 规范，Microsoft Typography；字形类别——同处的 GDEF 表说明。

带斜线的零——Wikipedia，“Slashed zero”。

Font Bakery 与 OTS——项目仓库。

修改与测量是我们的：基于 Ipak Davlat v0.1 构建，2026年10月。

链接：

Highway Gothic — Wikipedia. [https://en.wikipedia.org/wiki/Highway_Gothic](https://en.wikipedia.org/wiki/Highway_Gothic)

Unicode: Latin-1 Supplement (U+00B7 MIDDLE DOT). [https://www.unicode.org/charts/PDF/U0080.pdf](https://www.unicode.org/charts/PDF/U0080.pdf)

Unicode: Arrows (U+2190–U+21FF). [https://www.unicode.org/charts/PDF/U2190.pdf](https://www.unicode.org/charts/PDF/U2190.pdf)

OpenType：样式集 ss01–ss20 与 tnum（Microsoft Typography）。 [https://learn.microsoft.com/en-us/typography/opentype/spec/features_pt](https://learn.microsoft.com/en-us/typography/opentype/spec/features_pt)

OpenType：GDEF 表（字形类别）。 [https://learn.microsoft.com/en-us/typography/opentype/spec/gdef](https://learn.microsoft.com/en-us/typography/opentype/spec/gdef)

Slashed zero — Wikipedia. [https://en.wikipedia.org/wiki/Slashed_zero](https://en.wikipedia.org/wiki/Slashed_zero)

Font Bakery. [https://github.com/fonttools/fontbakery](https://github.com/fonttools/fontbakery)

OpenType Sanitizer (OTS). [https://github.com/khaledhosny/ots](https://github.com/khaledhosny/ots)

---
页面: https://ipak.xronocode.com/zh/jarayon/signs-at-distance/ · SIL Open Font License 1.1 · avenex@xronocode.com
