不可能在字母后加零吗?


144

我和一个朋友开玩笑说aleph。尝试键入א0(切换这两个字符)时,他们自己切换了!任何符号序列都不能阻止这种效果。为什么是这样!??

尝试使用0和相反的来键入以下内容(c&p表示א):

א0

א-0

א\\\ 0

א-。/ 0

话却分开了

אfoobar 0

我使用的是Arch Linux,尚未在其他任何操作系统上对此进行测试

编辑:数字不必为零。它适用于数字,但不适用于字母。


14
乍一看,我以为你疯了。原来,这只是使用不同语言方向的人工制品。好问题!

6
对于编写希伯来语文本,此顺序很有意义。否则,ב-5 דקות在5分钟内输入类似的内容会很烦人。
ugoren '17

7
@jamesqf:有一个,请参阅IllidanS4的帖子。
grawity '17

28
@ jamesqf,Unicode中存在希伯来字母,用于编写希伯来语。而且我敢说,与写固定基数的人相比,写希伯来语的人更多(约700万)。
ugoren

27
@ugoren可以说有130k数学家,但实际上,数学是通用语言,所以确实有ℵ₀。
尼克T

Answers:


111

“א”,“ HEBREW LETTER ALEF”(U + 05D0)具有BIDI(双向)类“从右向左[R]”,因为希伯来语传统上是从右到左书写的。另一方面,没有为数字分配特定的方向性,因此整个aleph和0块都被解释为从右到左。在这种情况下,由于Unicode相当复杂的双向规则要求,后继字符不一定必须位于前一字符的右边。

您可以通过多种方法来解决此问题。

  1. 您可以使用'ℵ','ALEF SYMBOL'(U + 2135)。它是一个符号,具有从左到右的属性:: 0。

  2. 0可以使用具有从左到右方向性的类零字符来代替通常的数字,例如'〇','IDEOGRAPHIC NUMBER ZERO'(U + 3007)

  3. 最干净的方法是在字母后缀“א0”后使用“ LEFT-TO-RIGHT MARK”(U + 200E)字符(维基百科)。这是一个不可见的零宽度字符,定义为具有从左到右的方向性。因此,它对双向文本布局算法的影响与在א之后插入从左到右的拉丁字母相同,只是在该位置不会出现可见的字母。


69
在数学上下文中(我希望是这样),U + 2135是要使用的正确字符。
cmbuckley

10
您必须谨慎使用覆盖-将它们放置在文本中时,重要的是,U+202C当您希望对其进行操作的顶点完成操作时,将它们删除(使用“ pop定向格式”字符)。
J ...

4
同样,“ override”字符有点过大,对于该用例,“ embedded”就足够了。还有一个称为“隔离”的新类,不确定这种情况下的区别。
Random832 '17

4
我建议将2和3
互换。– wizzwizz4

10
@ Random832所有这些都是矫kill过正。您真正需要的只是Alef和零之间的从左到右的标记(U + 200E)。这样,您也不需要任何额外的“流行”字符。
Ilmari Karonen

199

Aleph(U + 05D0)是希伯来语字母,并且希伯来语是从右向左书写的,因此Unicode将其分配为“从右向左”双向类。(有关更多详细信息,请参见Unicode TR9:双向算法。)

拉丁字母当然是“从左到右”。但是,“ European Number”双向类中为零(U + 0030),这是一个类-尽管LtR默认情况下,如果前面有“强”从右到左字符,则可以切换到RtL。(请参阅TR9中的双向字符类型解决弱类型。)

结果,之前之后的方向被整个单词互换了–如果将零放在“之前”,它将显示在右边;如果您输入零个“之后”字母,它将显示在左侧。


14
在希伯来语中键入文本时,这在许多文本编辑器和网站中都是一个极为普遍的问题-我想其他从右到左的语言也是如此。随着时间的流逝,它肯定会变得更好,但是请想象一下尝试写一个单词问题-反复在希伯来语单词(例如aleph字符)和数字(例如0字符)之间来回切换...
Jake

3
@Walt我见过的大多数教科书都是“沉浸式”类型,它使用非常简单的希伯来语,但几乎完全使用希伯来语。用语言教语言似乎违反直觉,但它允许语言技能更有机地建立。您可能会看到音译或翻译内联(例如lh4.ggpht.com/-_Vc8TUDwznQ/UlhaLFjnrGI/AAAAAAAAzQQ/_zm4BMC0aLw/…- “ Shalom Kita Aleph” =“ Hello First Grade”)
Jake

1
@杰克啊,这是有道理的。我真正接受的唯一外语是拉丁语。我们的教科书大多以英语为主,只有一小部分拉丁文来解释每一章,直到整个课堂形式从“学习拉丁文”转变为“翻译这整篇史诗,在整个过程中一次学年”。
Tin Man

5
@沃尔特:我认为可能会有误会。如果我键入一个拉丁(LTR)单词,然后键入一个希伯来语(RTL)单词,然后键入另一个拉丁语单词,则我可以自由地将它们全部放在一个句子中,只有希伯来语单词会呈现RTL。所有这些都旨在轻松放入同一句子中。问题在于0LTR和RTL语言都使用该数字,因此该软件仅使其与前一个字母的方向相同。如果跟随LTR字符,则为LTR。如果它跟随RTL字母,则为RTL。也有替换它的替代。fileformat.info/info/unicode/char/202d/index.htm
Mooing Duck's

4
零不会成为RTL-它仍然是LTR,即使希伯来语在周围,数字序列也会从左到右显示,但是嵌入级别的交互方式是零会出现在RTL的左侧。希伯来语字符按存储顺序位于其前面。(Unicode双向性很复杂。)
user2357112 '17


14

希伯来语是从右到左书写的-这使aleph字符带有以下信息,即下一个字符应打印在该字符的左边

如果您对文档进行十六进制检查(或在适当的编辑器中使用箭头键在文本中移动光标),您会注意到,首先到达Alpeh,然后到达数字。

即:假设“下一个字符==右边的字符”不成立。


14

如下面的示例(用记事本++制作)所示,完全有可能在前面加零。

Alef 0

您所看到的,并且如果您尝试标记问题中的字符也会变得很明显,即希伯来语是从右向左书写的,并且(因为直接连接0,所以文本是从右向左(而不是从左向左)处理的)右)的方式。

请参阅第二个示例,以了解Firefox(对我而言)选择明确的问题。

Firefox选择从右到左的文本


17
这是一个糟糕的建议,因为它会按照实际的角色顺序进行游戏,以便获得特定的视觉顺序。其他答案解释了为什么会发生这种情况,其中一些答案包括正确的处理方式(覆盖和明确的方向标记)。
德兰农'17

8
您能否指出我在哪里提供某种形式的建议?我只是在说明发生的情况,确实可以有一个后缀数字,并提供有关其发生原因的信息。
塞斯,

3
א0 0א0-אא-0

问题是您在哪里执行和执行。要获得希伯来语数字行为,所有字符必须具有从右到左的方向性。在HTML / CSS中是:

<p style="direction:rtl"> א0 0א 0-א א-0 </p>

在操作系统中,必须启用希伯来语和双向功能。

建议使用其他字符作为替代方法的变通办法无法达到Unicode的目的。作为数学运算符的aleph在某些字符集中看起来可能相同,但是在上下文和如何解析方面,它与希伯来语aleph完全不同。例如,如果希伯来语母语者/计算机与希伯来语单词结合使用,将无法正确处理它。如果数字和非字母字符本身没有与字母字符相同的方向编码,则是一个问题。因此,具有讽刺意味的是,数字本身虽然看起来应该独立于字符集/方向性,但仍具有前一个字母的unicode方向性。因此,在希伯来语文档中,数字被“希伯来语化”,即像希伯来语一样定向。鉴于英语-拉丁语文件,


该OP 试图用阿列夫作为数值运算符,不是吗?
grawity '17

好吧,在帖子中根本不清楚。无论如何,方向性都不重要。Aleph用在集合符号中,并具有一个无限的,无限的系列名称。它应该方向从左到右,因为所有数学都从左到右,无论您使用哪种语言。但是,在希伯来语中将aleph用作字符是从右向左设置的。
Danny F

2

这是可能的:

0א0

‭א-0

\א\\ 0

‭א-。/ 0

‭אfoobar 0

(此答案并未回答“这是为什么”,因为其他人已经回答了。但是它确实回答了标题“不可能……”的问题。)


7
但是它也不能解决问题,因此几乎没有用。
NH。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.