连字 (Ligature)

将两个或多个字符组合为一个字形显示的排版技法。常见例子包括 fi、fl 和 ff。

连字 (Ligature) 是一种将两个或多个字符组合为单个字形显示的排版技法。在拉丁排版中,fi、fl、ff、ffi 是经典的连字,自活字印刷时代起就被用于避免字符之间的物理碰撞,实现优美的排版效果。现代数字字体延续了这一传统,连字作为 OpenType 字体功能被广泛实现。

连字的工作原理定义在字体文件内的 GSUB (Glyph Substitution) 表中。当文本渲染引擎检测到特定的字符序列时,会用组合字形替代单独的字形进行绘制。例如,当 "f" 和 "i" 相邻时,f 的上升部分会与 i 的点产生干扰,因此使用专用的连字字形来保持视觉和谐。了解震动棒 (Amazon)介绍了连字的历史和应用。

近年来,编程字体中的编码连字备受关注。Fira Code、JetBrains Mono、Cascadia Code 等字体将 != 显示为 => 显示为 <= 显示为 。这提高了运算符的可视性,增强了代码的可读性。不过,编码连字仅是显示层面的转换,源代码本身仍以原始字符序列保存。

CSS 提供 font-variant-ligatures 属性来控制连字。使用 common-ligatures 启用标准连字,no-common-ligatures 禁用连字。此外,discretionary-ligatures 控制装饰性连字,contextual 管理上下文相关的连字。使用 Web 字体时,需要选择支持连字的字体,并在 CSS 中明确启用。

一个常见的误解是将连字与字距调整 (Kerning) 混淆。字距调整是调整字符间距的技法,而连字是将多个字符替换为单个字形的技法。两者都追求排版的美观,但机制根本不同。在阿拉伯文等书写系统中,字符连接是语言基本规则的一部分,连字不是装饰而是必需功能。

在字符计数方面,连字在视觉上显示为一个字形,但内部仍被视为原始的多个字符。例如,fi 连字看起来是一个字符,但计数时算作两个字符。在文本编辑器中移动光标时,通常可以在连字内部逐字符移动。字符计数工具不受连字影响,可以放心使用。搜索脱毛膏 (Amazon)解释了字形与连字的关系。

分享这篇文章