web-dev-qa-db-ja.com

アレフの後にゼロをつけることは不可能ですか?

私と友人はアレフについて冗談を言っていました。 א0を入力しようとすると(それらの2文字を切り替える)、彼らは自分自身を切り替えました!一連の記号がこの効果を止めることはありません。どうしてこれなの!??

0とאを反転してこれらを入力してみてください(אの場合はc&p)。

א0

א - 0

\\\ 0

א - 。/ 0

言葉はしかしそれらを分離する

אfoobar 0

私はArch Linuxを使っていますが、他のどのOSでもこれをテストしていません。

編集:数値はゼロである必要はありません。数字では機能しますが、文字では機能しません。

144
Gman Smith

'א'、 'HEBREW LETTER ALEF'(U + 05D0) のクラスは "Right-to-Left [R]"です。 「ヘブライ語は伝統的に右から左に書かれているからです。一方、数字には特定の方向性が割り当てられていないため、アレフとゼロのチャンク全体は右から左に解釈されます。この場合、Unicodeのかなり複雑な双方向の規則が要求するように、次の文字が必ずしも前の文字の右側にあるとは限りません。

この問題を回避するにはいくつかの選択肢があります。

  1. あなたは 'ℵ'、 'ALEF SYMBOL'(U + 2135) を使うことができます。これはシンボルであり、左から右への性質を持ちます。

  2. 通常の数字0の代わりに、 '〇'、 'IDEOGRAPHIC NUMBER ZERO'(U + 3007)のように、左から右への方向性を持つゼロのような文字を使用できます .

  3. 最も明確な方法は、 '左から右へのマーク'(U + 200E) を使用することです( Wikipedia )アレフの後: "א0"。これは、左から右への方向性を持つように定義されている目に見えないゼロ幅の文字です。したがって、双方向のテキストレイアウトアルゴリズムでは、אの後に左から右へのラテン文字を挿入するのと同じ効果があります。ただし、目に見える文字は表示されません。

111
IllidanS4

Aleph( U + 05D0 )はヘブライ語の文字で、ヘブライ語は右から左に書かれるので、Unicodeはそれを "右から左への"双方向クラスに割り当てます。(詳細については、 Unicode TR9:双方向アルゴリズム を参照してください。)

ラテン文字はもちろん「左から右」です。しかし、ゼロ( U + 0030 )は "European Number"双方向クラスにあります。これは、weakclass - の一方、LtRです。デフォルトでは、その前に "強い"右から左への文字がある場合はRtLに切り替えることができます。双方向文字型 および TR9の弱い型の解決 を参照してください。)

結果として、beforeの前との方向がの後で入れ替わります。 「前」には、右に表示されます。あなたが 'アフター'アレフを書くと、それは左側に現れるでしょう。

198
grawity

おそらく、これを達成するためのより良い方法は以下のようになります。

echo -e "\u200F0א"

そして必須のxkcdリファレンス https://xkcd.com/1137/

‮LTR

20
wvxvw

ヘブライ語は右から左に書かれます - これはアレフ文字に次の文字が印刷されるべきであるという情報を伝えるようにしますその左

文書を16進数でチェックする(または適切なエディタで矢印キーを使用してカーソルをテキスト上に移動する)と、最初にアルペスに移動し、次に数字に移動します。

例:「次の文字==右の文字」という仮定は成り立たない。

14
Eugen Rieck

Notepad ++で作成された次の例に示すように、先頭にゼロを付けることは完全に可能です。

Alef with 0

あなたが見ていること、そしてあなたが質問の中の文字をマークしようとしたときに明らかになることは、ヘブライ語は右から左に書かれ、(0は直接接続されるので)正しい方法).

2番目の例では、Firefoxが(私の側では)明確な選択をしていることによる問題について説明しています。

Firefox selecting a right to left text

14
Seth

問題はあなたがこれをするところと実装です。ヘブライ数の振る舞いallを得るためには、文字は右から左の方向になっていなければなりません。 HTML/CSSでは、

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

オペレーティングシステムでは、ヘブライ語と双方向性を有効にする必要があります。

代替として他の文字の使用を提案することによる回避策は、Unicodeの目的を打ち消します。数学演算子としてのアレフは、いくつかの文字セットでは同じに見えるかもしれませんが、文脈とそれがどのように解析されるかの両方において、ヘブライ語のアレフとはまったく異なる文字です。たとえば、ヘブライ語ネイティブのスピーカー/コンピューターは、ヘブライ語と組み合わせて使用​​すると正しく処理されません。数字とアルファベット以外の文字は、アルファベットと同じ方向のエンコーディングが割り当てられていない場合に問題になります。したがって、皮肉なことに、数字自体は一見して文字セット/方向性とは無関係であるべきだが、先行する文字の任意のUnicodeの方向性を帯びる。したがって、ヘブライ語の文書では、数字は「ヘブライ語」、つまりヘブライ語のように方向的になります。英語 - ラテン語の文書ではあるが、ヘブライ語の文字は段落に起因する方向性の欠如のために混同してめちゃくちゃにすることができる。

3
Danny F

それが可能だ:

א0

א - 0

\\ 0

א - 。/ 0

אfoobar 0

(他の人がすでに答えているので、この答えは「これはなぜなのか」と答えていませんでした。しかし、それはタイトルにある質問に答えています、「不可能です…?

2
user23013