Deciphering Basmala
AI 深度解读
解读 Basmala:阿拉伯排版中的技术债务与美学妥协
背景
上周,一篇题为《交互式介绍阿拉伯排版的绝佳体验及其技术债务》(An interactive introduction to the terrific experience of rendering Arabic typography and its technical debt)的文章在网络上广泛流传。作者 Saleh 在文中承诺,将通过回顾一个工单的处理过程,揭示阿拉伯文字渲染背后长达五百年的技术积累与历史纠葛。
这篇文章不仅涉及技术细节,还穿插了历史轶事:从一位两次遭致残的宰相,到失踪四个世纪的《古兰经》,再到一位赶截稿日期的贝鲁特报人,以及一位出于娱乐自学字体工程的埃及医生。对于 Saleh 而言,梳理这些历史脉络是他工作中最为愉快的几周经历。
本文作者 Mark Dominus(陶敏修)在推荐阅读 Saleh 原文的同时,也撰写了这篇解读。需要声明的是,Mark Dominus 并不懂阿拉伯语,甚至尚未掌握所有字母。他尽力确保细节准确,但难免存在拼写错误或事实陈述偏差,并为此提前致歉。
核心内容
阿拉伯连字的技术困境
阿拉伯文字是连续书写的(cursive),字母之间的连接方式至关重要。与现代拉丁字母仅有少量连字(ligatures)且忽略它们几乎不可察觉不同,阿拉伯语中的连字缺失会导致文本看起来完全错误且难以接受。
早期的字体引擎无法正确渲染阿拉伯连字,导致屏幕上的阿拉伯文本看起来像分离的拉丁字母。例如,意为“你好,世界,这是阿拉伯文本”的句子:
- 正确渲染:مرحبا بالعالم، هذا نص عربي
- 早期错误渲染:مرحبا بالعالم، هذا نص عربي
在错误渲染中,原本优雅对称的字符簇 لعا 被破坏成 لعا。首字母 mīm(م)本应与后续字母连接,但在错误渲染中却保留了仅当字母单独出现或位于词尾时才有的“悬挂尾巴”。这种糟糕的渲染效果虽然勉强可容忍,但显然远非完美。
“Basmala”的特殊地位与 Unicode 解决方案
对于伊斯兰教中极其重要的短语——Basmala(بِسْمِ ٱللهِ ٱلرَّحْمَٰنِ ٱلرَّحِيْمِ),即“奉至仁至慈的真主之名”,上述糟糕的渲染是绝对不可接受的。
该短语出现在《古兰经》114章中的113章开头(第9章除外),拥有数百年的书法传统,要求以最完美的形式呈现。将其渲染成一堆杂乱的字母被视为一种亵渎。类比而言,这就像《出埃及记》第20章中,上帝在颁布十诫前,若以杂乱无章的字母形式介绍自己,将是不可想象的。
为了解决这一难题,Unicode 标准中引入了一个特殊的代码点:U+FDFD ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM。作为一个单一代码点,Basmala 可以被分配一个单一的字形(glyph),设计师可以针对这个单一字形进行精心绘制,从而避免其看起来像垃圾文本。
Basmala 的字形结构解析
尽管 Basmala 在 Unicode 中是一个字符,但其内部结构复杂。Mark Dominus 对其进行了拆解分析:
-
词汇构成:
- Bismi (بسم):意为“在...之名”,是缩写。
- Allah (اللّٰه):意为“真主”。
- al-raḥman (الرحمن):意为“至仁的”。
- al-raḥim (الرحيم):意为“至慈的”。
注:当定冠词 "al-" 出现在以 /r/ 音开头的单词前时,其 /l/ 音会被同化,发音变为 /ar-/。这类似于英语中 "in-" 前缀接 "relevant" 变为 "irrelevant" 的现象。
-
字形细节与争议:
- Allah:位于顶部,通常被着色为绿色(据说是穆罕默德最喜欢的颜色)。其上方的 W 形标记和垂直笔画是变音符号(Shaddah 和元音标记)。
- Bismi:位于下方,由三个辅音字母组成(/b/ + /s/ + /m/),元音通常省略。
- Kashida:在 "Allah" 下方有一条水平线,称为 Kashida,仅用于布局(类似于空格),不发音。
- Mīm 的尾巴:词尾的
mīm(م) 有一条长尾巴。在 Basmala 的字形设计中,设计师决定将这条尾巴连接到al-raḥman末尾的nūn(ن) 上。同样的mīm及其尾巴也出现在al-raḥim的末尾,而在al-raḥman中间时则没有尾巴。 - 字体设计师的批评:知名字体设计师 Khaled Hosny(Amiri 字体设计者)指出,Android 上的 Basmala 字形设计非常糟糕。批评点包括“字母之间奇怪的融合”以及
mīm和nūn的不当连接,同时也反对将 "Allah" 插入到 "bismi" 中间。
-
其他字母特征:
- Al- 前缀:意为“the”,广泛存在于阿拉伯语及源自阿拉伯语的英语词汇中(如 alcohol, algebra, algorithm, alchemy),但不包括 "alligator"(源自西班牙语)。
- Rā' (ر):发出 /r/ 音,写作向左下方悬挂的钩状。在 Basmala 中,蓝色
rā'的钩子与紫色ḥā'的上部相连。 - Ḥā' (ح):在单词中间时会失去其华丽的尾巴。它是
al-raḥman和al-raḥim中共有的常见字母。 - Yā' (ي):
al-raḥim中mīm之前的第五个字母。单独书写时为ي,在词中则表现为带有两个点的向上尖刺。
阿拉伯语发音与书写之美
Mark Dominus 提到,阿拉伯语书写非常优美,但学习难度在于其发音与英语差异巨大。例如,阿拉伯语中有三个类似英语 /h/ 的音,分别对应软、粗和中间程度。Ḥā' (ح) 属于中间那个音。此外,阿拉伯语还包含喉塞音(glottal stop),这在英语中很少见,但在夏威夷语 "Hawai'i" 的撇号中可以找到类似发音。
关键要点
- 连字的重要性:阿拉伯语是连续书写脚本,字母间的连字(ligatures)对文本的可读性和美学至关重要,早期字体引擎因无法正确渲染连字而导致文本显示错误。
- Basmala 的特殊性:作为《古兰经》中频繁出现且极具宗教神圣性的短语,其渲染质量不能容忍任何技术瑕疵。
- Unicode 的单一代码点方案:为了解决渲染难题,Unicode 定义了 U+FDFD 代码点,将整句 Basmala 作为一个单一字符处理,允许设计师绘制完美的单一字形,而非依赖动态连接。
- 字形设计的争议:尽管有标准代码点,不同平台(如 Firefox 与 Android)对同一字符的字形渲染差异巨大。知名字体设计师批评某些移动端实现存在“奇怪的字母融合”和布局错误。
- 历史与技术债务:阿拉伯排版的复杂性源于数百年的历史演变、宗教传统以及早期计算机标准制定的滞后,形成了巨大的“技术债务”。
意义与影响
这篇文章不仅是一篇关于字体
