解读太斯米

Hacker News Top 新闻

摘要

本文探讨了阿拉伯文字编排在历史和技术上的挑战,重点论述了连字对太斯米短语的重要性,以及Unicode在解决这一问题中的作用。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/06/29 02:00

# 解读巴斯马拉(Basmala) 来源:https://blog.plover.com/lang/bismillah.html 2026年6月23日,星期二 上周广为流传的是一篇关于阿拉伯语排版复杂性的精彩文章:《交互式导览:阿拉伯字体渲染及其技术债务的奇妙体验》(https://lr0.org/blog/p/arabic/)。作者 Saleh 承诺: > 回复和工单关闭花了大约半小时。而背后的原因则沉淀了五百年,涉及一位遭受两次毁容的维齐尔、一部消失四个世纪的《古兰经》、一个赶稿的贝鲁特报人,以及一位为了乐趣(或者是我对他的想象)自学字体工程的埃及医生。梳理这些过程,成了我在这份工作中最愉快的几周,我也想在此与大家分享。 然后,哇,文章确实不负众望。别读我的文章了,先去读 Saleh 的吧,至少先读他的。 --- 还在这儿?那我得先声明:我不懂阿拉伯语,连字母都没认全。我尽力在这篇文章中把细节写对,但估计会有拼写错误、事实错误等等,先在此致歉。 在他文章中最喜欢的部分之一,Saleh 讨论了阿拉伯文总是连笔书写,因此字母之间的连接方式至关重要。现代拉丁字母只有少量连字,即使省略也不明显: 但在阿拉伯文中,连字非常重要。如果没有正确的连字,文本看起来会非常离谱。 早期的字体引擎无法正确渲染阿拉伯连字,屏幕上的阿拉伯文本总是看起来很滑稽,字母像拉丁字母一样分开,这对阿拉伯文来说是完全错误的。Saleh 给出了这个例子,意思是“你好,世界,这是阿拉伯文本”。它本应看起来像这样: مرحبا بالعالم، هذا نص عربي 但早期字体渲染器渲染成了这样: مرحبا بالعالم، هذا نص عربي 糟糕的渲染很不幸,只能勉强容忍,比没有好一点。即使你不懂阿拉伯语(我也不懂),也能看出差别。例如,注意优雅对称的"لعا"是如何被糟蹋成"لعا"的。或者只看第一个(最右边)字母。它是阿拉伯字母“m”,称为*mīm*。它本应与下一个字母相连,而不该有那个悬垂的尾巴,那只有在*mīm*单独出现或在词尾时才显现。 对于极端重要的短语 بِسْمِ ٱللهِ ٱلرَّحْمَٰنِ ٱلرَّحِيْمِ 糟糕的渲染是*不可容忍*的。这个短语是“bismillah al-raḥman al-raḥim”。意为“以真主之名,至仁至慈”,出现在《古兰经》114个苏拉(章节)的开头(第九章除外,原因不明)。几个世纪以来,一直有以最完美方式书写此短语的书法传统。 [](https://pic.blog.plover.com/lang/bismillah/Khalili-leaf.jpg) 《哈利利收藏伊斯兰艺术 cal 0154》,奥斯曼土耳其,19世纪。公共领域,通过Wikimedia Commons (https://commons.wikimedia.org/wiki/File:Khalili_Collection_Islamic_Art_cal_0154.jpg)。 将这个称为“basmala”的短语——这个表达对真主尊荣的关键表述——渲染成一堆字母,无异于亵渎。想象一下,如果《出埃及记》第20章中,上帝在颁布十诫时说: 扭曲的海绵宝宝说:“i AMtHel ORdThyg 0d” 针对这一问题的绝妙解决方案,是在Unicode中包含一个特殊码位 U+FDFD `ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM`。作为一个单一码位,basmala可以被赋予一个单一字形,而该字形可以正确设计,从而避免看起来像垃圾。就是这个。记住,这是一个*单一*字符: ﷽在我的Firefox中,使用我的字体,这个字形渲染成长条形: 但在我的安卓手机上,有一个非常不同的字形。这是放大后的样子: 这到底是怎么回事?探究起来很有意思。 basmala 实际上包含四个词(“bismillah”是缩写): 1. Bismi (بسم, “以……之名”) 2. Allah (اللّٰه, “真主”) 3. al-raḥman (الرحمن, “至仁的”) 4. al-raḥim (الرحيم, “至慈的”) (我该顺便提一下,当“al-”(意为“这个”)出现在 /r/ 音之前时,它的 /l/ 会发生同化,读作 /ar-/。这类似于英语前缀“in-”附加到像“relevant”这样的词上的情况。“Inrelevant”很难说,所以 /n/ 被同化,这个词被拼写和发音为“irrelevant”。) 以下是四个词用不同颜色标出。对于懂阿拉伯语的人来说,这大概很明显,但我发现有点挑战性。 “Allah” الله 在顶部。(据说这是传统做法。)我把它涂成绿色,因为据说绿色是穆罕默德最喜欢的颜色。 它上面的两个符号——W形符号和它上方的竖线——是变音符号(一个叫shaddah(https://en.wikipedia.org/wiki/shaddah),另一个表示元音)。我不确定它们是否可省略,但在我写这篇文章的初稿时,我试图详细解释它们,结果陷入关于“Allah”一词形态学的几段离题话中,所以我就此打住,不再评论。 在“Allah”下方,红色的是“bismi”。在阿拉伯语中,它有三个字母,/b/ + /s/ + /m/,因为元音被省略了。右边是بس,即 /b/ + /s/;这两个字母分别叫*bā'*和*sīn*。然后在“Allah”下方有一条水平线,叫kashida(https://en.wikipedia.org/wiki/kashida),这仅仅用于排版,类似于空白,不发音。最后是左边的م(/m/,叫*mīm*)。*Mīm*م在词尾(如这里)时会有一个长尾巴,设计师决定将这条尾巴连接到 al-raḥma**n** 末尾的ن(/n/,*nūn*)。你可以在紫色词 al-raḥi**m** 的末尾看到同样的词尾م*mīm*及其尾巴,而在蓝色词 al-raḥ**m**an 的中间则没有尾巴。 (广泛使用的Amiri字体(https://en.wikipedia.org/wiki/Amiri_%28typeface%29)的设计师Khaled Hosny(https://khaledhosny.com/)告诉我,安卓的 basmala 字形设计非常糟糕(https://typo.social/@khaled/116752857475379426)。他的批评之一是“字母的怪异融合”,我想م和ن的连接就是他所说的其中之一。他还反对将“Allah”插入到“bismi”中间。) 第三个词,蓝色的是 al-raḥman الرحمن,你可以看到它以与 al-raḥim الرحيم 相同的字母开头。你还可以在“Allah”الله的开头看到同样的前两个字母。正如我之前提到的,“al-”意为“这个”,所以它在许多阿拉伯语单词开头出现。它也保留在许多源自阿拉伯语的英语单词中,如 alcohol、alcove、algebra、algorithms 和 alchemy。 (不过不包括“alligator”,这里的“al-”是西班牙语中“the”的意思。) al-raḥman 和 al-raḥim 中的 /r/ 音由字母*rā'*表示,它被写成挂在ال左侧的钩形,如这里:الر。设计师将蓝色*rā'*的钩与紫色字母*ḥā'*的上部连接了起来。(我猜 Hosny 也不喜欢这个。)*ḥā*单独书写时看起来像这样:ح,但它在单词中间时会失去它那花哨的尾巴。*ḥā*当然是 al-ra**ḥ**man 和 al-ra**ḥ**im 中共同的*ḥ*。 让我想想,还有什么?我唯一没提到的字母是 al-raḥim الرحيم 中的第五个字母,就在*mīm*及其尾巴之前,称为*yā'*。单独书写时是ي,但在 al-raḥim 这样的单词中间,它是一个向上的尖刺,下面有两个点。 阿拉伯文字非常优美,不是吗?上次我试着学习字母表时卡住了,因为我同时想学习发音,而阿拉伯语的发音与英语的非常不同。阿拉伯语有三个听起来像英语 /h/ 的音。一个非常轻柔,一个非常粗糙,一个介于两者之间。*Ḥā'*ح 是介于中间的那个,英语中用“ḥ”表示。轻柔的那个*hā'*是اللهAllah的最后一个字母。阿拉伯语也有一个喉塞音,这个音在英语中很少使用,但我会说一些,因为它是“Hawai'i”中的撇号。 维基共享资源有一个 basmala 画廊(https://commons.wikimedia.org/wiki/Category:Basmala_in_Arabic_calligraphy),网络搜索还能找到数千个。我期待能更多地理解它们。 *\[其他文章归类于 /lang (https://blog.plover.com/lang)\]\ 永久链接 (https://blog.plover.com/lang/bismillah.html)*

相似文章

从右到左装饰字符的陷阱

Hacker News Top

摩尼教花饰Unicode字符具有从右到左的方向类型,可能导致网页布局中出现意外的文本重排。本文解释了该问题,并提供了使用HTML的<bdi>标签或CSS的unicode-bidi属性进行修复的方法。

终端文本渲染的各种缺陷(2024)

Lobsters Hottest

本文探讨了终端模拟器中文本渲染的各种根本性问题,包括字符定义歧义、Unicode处理问题、有缺陷的二维网格假设以及光标不同步,凸显了支持复杂脚本和字体的困难。