題 在aleph之後不可能把零?


我和一個朋友在開玩笑說是關於aleph的。在嘗試輸入א0(切換那兩個字符)時,他們自己切換了!任何符號序列都不會阻止此效果。為什麼是這樣!??

嘗試用0和א反轉鍵入這些(c&p為א):

א0

א - 0

א\\\ 0

א - ./ 0

然而,話語將它們分開

אfoobar 0

我在使用arch linux並且還沒有在任何其他操作系統上測試過它

編輯:數字不必為零。它適用於數字,但不適用於字母。


143
2017-07-31 06:18


起源


乍一看,我以為你瘋了。事實證明,它只是一個關於如何使用不同語言方向的人工製品。好問題!
為了寫希伯來文,這個順序是有道理的。否則輸入類似的東西會很煩人 ב-5 דקות (在5分鐘內)。 - ugoren
@jamesqf:還有一個,請看IllidanS4的帖子。 - grawity
@jamesqf,希伯來語字母存在於Unicode中,用於編寫希伯來語。而且我敢說我們中有更多的人寫希伯來語(7百萬左右)而不是那些寫有關基數的人。 - ugoren
@ugoren 有些人認為有130k數學家但實際上,數學是通用語言,所以確實存在。 - Nick T


答案:


'א','HEBREW LETTER ALEF'(U + 05D0) 有BIDI(雙向)類“從右到左[R]”,因為希伯來語傳統上是從右到左書寫的。另一方面,數字沒有賦予它們特定的方向性,因此整個aleph和零塊被解釋為從右到左。在這種情況下,以下字符可能不一定位於前一個字符的右側,因為Unicode的相當複雜的雙向規則要求。

您有幾種方法可以解決此問題。

  1. 您可以使用 'ℵ','ALEF SYMBOL'(U + 2135)。它是一個符號,具有從左到右的屬性:ℵ0。

  2. 而不是通常的數字 0,你可以使用從左到右的方向性的類似零的字符,例如 '〇','IDEOGRAPHIC NUMBER ZERO'(U + 3007)

  3. 最乾淨的方法是使用 'LEFT-TO-RIGHT MARK'(U + 200E) 人物(維基百科在aleph之後:“א0”。這是一個不可見的零寬度字符,定義為具有從左到右的方向性。因此,它對雙向文本佈局算法的影響與在א之後插入一個從左到右的拉丁字母相同,除了那裡不會出現可見的字母。


111
2017-07-31 10:48



在數學上下文中(我預期這是),U + 2135是正確使用的字符。 - cmbuckley
你必須小心覆蓋 - 你把它們放在文本中,刪除它們很重要(使用“pop direction formatting”字符 U+202C當你希望他們操作的上下文完成時。 - J...
此外,“覆蓋”字符有點矯枉過正,“嵌入”對於此用例就足夠了。還有一個名為“isolate”的新類,不確定在這種情況下有什麼區別。 - Random832
我建議交換2和3。 - wizzwizz4
@ Random832所有這些都是矯枉過正的。你真正需要的只是一個 從左到右的標記 (U + 200E)在alef和零之間。這樣你也不需要任何額外的“pop”字符。 - Ilmari Karonen


Aleph(U + 05D0)是希伯來文字母,希伯來文是從右到左書寫的,因此Unicode為其指定了“從右到左”的雙向類。 (看到 Unicode TR9:雙向算法 更多細節。)

拉丁字母當然是“從左到右”。但是,零(U + 0030)是在“歐洲數字”雙向類中,這是一個  class - 默認情況下為LtR,如果在它之前有一個“強”的從右到左的字符,它可以切換到RtL。 (看到 雙向字符類型 和 解決弱類型 在TR9。)

結果,方向 之前 和  換成整個單詞 - 如果你把'之前'置零,它會顯示在右邊;如果你在'aleph'之後寫'零',它將顯示在左邊。


198
2017-07-31 06:39



在希伯來語輸入時,這是許多文本編輯和網站中非常常見的問題 - 我想其他從右到左的語言也是如此。隨著時間的推移它肯定會變得更好,但想像一下試圖寫一個單詞問題 - 在希伯來語單詞(如aleph字符)和數字(如0字符)之間來回切換...... - Jake
@Walt我見過的大多數教科書都是“沉浸式”,它使用極其簡單的希伯來語,但幾乎完全是希伯來語。使用語言教授語言可能看起來違反直覺,但它允許更有機的語言技能積累。您可能會看到內聯的音譯或翻譯(類似於 lh4.ggpht.com/-_Vc8TUDwznQ/UlhaLFjnrGI/AAAAAAAAzQk/_zm4BMC0aLw/...  - “Shalom Kita Aleph”=“Hello First Grade”) - Jake
@Jake啊,這很有道理。我真正採取的唯一外語是拉丁語;我們的教科書往往大部分是英語,只有一大塊拉丁文本來解讀每一章,直到整個班級格式從“學習拉丁語”轉換為“翻譯這整首史詩,一次一點,通過學年“。 - Walt
@Walt:我認為可能存在誤解。如果我輸入一個拉丁語(LTR)單詞,然後是一個希伯來語(RTL)單詞,然後是另一個拉丁單詞,我可以自由地將它們全部放在一個句子中,只有希伯來語單詞呈現RTL。它的設計都很容易適合同一個句子。問題是這個數字 0 LTR和RTL語言都使用它,因此軟件只能使它與前一個字母的方向相同。如果它跟隨LTR字符,則它是LTR。如果它遵循RTL字母,那就是RTL。交換它也有覆蓋。 fileformat.info/info/unicode/char/202d/index.htm - Mooing Duck
零不會變成RTL - 它仍然是LTR,並且即使希伯來語圍繞它,一系列數字也將從左到右顯示,但嵌入級別以這樣的方式相互作用,即零點出現在左側在記憶順序中它前面的希伯來字符。 (Unicode雙向性很複雜。) - user2357112


也許,實現這一目標的更好方法是:

echo -e "\u200F0א"

和強制性的xkcd參考 https://xkcd.com/1137/

‮LTR


20
2017-08-02 11:27





希伯來語從右到左書寫 - 這使得aleph角色攜帶信息,下一個角色應該打印出來 剩下

如果您對文檔進行十六進制檢查(或者在合適的編輯器中使用箭頭鍵將光標移動到文本中),您會注意到,首先是alpeh,然後是數字。

即:假設“下一個字符==右邊的字符”不成立。


14
2017-07-31 06:36





完全可能在前面有一個零,如下面的例子所示,它是在Notepad ++中製作的。

Alef with 0

如果您嘗試在問題中標記字符,那麼您所看到的也是顯而易見的是希伯來語是從右到左書寫的(因為0是直接連接的),文本是從右到左(而不是左)處理的方式。

請參閱第二個示例,了解Firefox(在我的最後)具有明確選擇的問題。

Firefox selecting a right to left text


14
2017-07-31 06:43



這是一個糟糕的建議,因為它使用實際的字符排序來玩遊戲,以獲得特定的視覺排序。其他答案解釋了為什麼會發生這種情況,其中一些包括處理它的正確方法(覆蓋和顯式方向標記)。 - Dranon
你能指出我在哪裡提供某種形式的建議嗎?我只是展示了一個發生了什麼的例子,它確實可以有一個後綴數字,並提供有關它發生的原因的信息。 - Seth


 א0 0א0-א-0

3
2017-08-06 17:00



OP 是 試圖使用aleph作為數字運算符,不是嗎? - grawity
嗯,在帖子中根本不清楚。無論如何,方向性不應該是相關的。 Aleph用於集合表示法,具有無限的無限系列名稱。它應該從左到右定向,因為無論您使用什麼語言,所有數學都是從左到右。然而,使用aleph作為希伯來語中的角色是從右到左的方向設置。 - Danny F


這是可能的:

א0

א - 0

א\\ 0

א - ./ 0

אfoobar 0

(這個答案沒有回答“為什麼會這樣”,因為它已經被其他人回答了。但它確實回答了標題中的問題,“不可能......?”)


2
2017-08-02 09:44



但它也沒有回答如何,因此幾乎沒用。 - NH.