Nie można ustawić zera po alefie?

144

Ja i przyjaciel żartowaliśmy z alepha. Próbując wpisać א 0 (zamienić te 2 znaki), zmienili się! Żadna sekwencja symboli nie zatrzymuje tego efektu. Dlaczego to!??

Spróbuj wpisać je z odwrotnością 0 i א (c & p dla א):

א 0

א - 0

0 \\\ 0

א -. / 0

Słowa je jednak rozdzielają

א foobar 0

Jestem na arch. Linuxie i jeszcze nie testowałem tego na żadnym innym systemie operacyjnym

EDYCJA: Liczba nie musi wynosić zero. Działa z cyframi, ale nie z literami.

Gman Smith
źródło
14
Na pierwszy rzut oka myślałem, że zwariowałeś. Okazuje się, że jest to po prostu artefakt wykorzystania różnych kierunków językowych. Świetne pytanie!
6
W przypadku pisania tekstu hebrajskiego ta kolejność ma sens. W przeciwnym razie najbardziej denerwujące byłoby pisanie takich rzeczy ב-5 דקות(za 5 minut).
ugoren
7
@jamesqf: I jest jeden, patrz post IllidanS4.
grawity
28
@ jamesqf, hebrajskie litery istnieją w Unicode do pisania w języku hebrajskim. I śmiem twierdzić, że jest nas więcej, którzy piszą po hebrajsku (około 7 milionów) niż ci, którzy piszą o ustalonych licznościach.
ugoren
27
@ugoren, według niektórych obliczeń, jest 130 tys. matematyków , ale tak naprawdę matematyka jest uniwersalnym językiem, więc naprawdę jest ℵ₀.
Nick T

Odpowiedzi:

111

„א”, „HEBREW LETTER ALEF” (U + 05D0) ma klasę BIDI (dwukierunkową) „Right-to-Left [R]”, ponieważ hebrajski jest tradycyjnie pisany od prawej do lewej. Z drugiej strony cyfry nie mają przypisanej określonej kierunkowości, więc cały fragment aleph i zero jest interpretowany jako od prawej do lewej. W takim przypadku następujący znak niekoniecznie musi znajdować się po prawej stronie poprzedniego znaku, jak nakazują dość złożone dwukierunkowe reguły Unicode.

Masz kilka opcji obejścia tego problemu.

  1. Możesz użyć „ℵ”, „ALEF SYMBOL” (U + 2135) . Jest to symbol i ma właściwość od lewej do prawej: ℵ0.

  2. Zamiast zwykłej cyfry 0można użyć znaku zerowego z kierunkowością od lewej do prawej, na przykład „〇”, „NUMER IDEOGRAFICZNY ZERO” (U + 3007) .

  3. Najczystszym sposobem jest użycie znaku „LEFT-TO-RIGHT MARK” (U + 200E) ( Wikipedia ) po alefie: „א 0”. Jest to niewidoczny znak zerowej szerokości, który jest zdefiniowany tak, aby miał kierunkowość od lewej do prawej. Tak więc ma taki sam wpływ na algorytm dwukierunkowego układu tekstu, jak wstawienie, powiedzmy, litery łacińskiej od lewej do prawej po א, z tym wyjątkiem, że nie pojawi się tam widoczna litera.

IllidanS4
źródło
69
W kontekście matematycznym (którego się spodziewam) U + 2135 jest poprawnym znakiem do użycia.
cmbuckley
10
Musisz zachować ostrożność przy zastępowaniu - tam, gdzie umieszczasz je w tekście, ważne jest, aby je usunąć (używając znaku „pop formatowanie kierunkowe” U+202C), gdy kontekst, na którym chcesz operować, zostanie zakończony.
J ...
4
Ponadto znaki „zastępowania” są rodzajem przesady, „osadzanie” jest wystarczające w tym przypadku użycia. Pojawiła się również nowa klasa o nazwie „izoluj”, nie wiedząc, jaka jest różnica w tej sytuacji.
Random832
4
Polecam zamianę 2 i 3.
wizzwizz4
10
@ Random832 Wszystkie są przesadzone. Wszystko, czego naprawdę potrzebujesz, to znak od lewej do prawej (U + 200E) między alef i zero. W ten sposób nie potrzebujesz też żadnych dodatkowych znaków pop.
Ilmari Karonen,
198

Aleph ( U + 05D0 ) to hebrajska litera, a hebrajski jest pisany od prawej do lewej, więc Unicode przypisuje mu dwukierunkową klasę „od prawej do lewej”. (Aby uzyskać więcej informacji, zobacz Unicode TR9: Dwukierunkowy algorytm ).

Litery łacińskie są oczywiście „od lewej do prawej”. Jednak zero ( U + 0030 ) znajduje się w dwukierunkowej klasie „Numer europejski”, która jest klasą słabą - podczas gdy LtR domyślnie może przełączyć się na RtL, jeśli jest przed nim „silna” postać od prawej do lewej. (Patrz Dwukierunkowe typy znaków i rozwiązywanie słabych typów w TR9.)

W rezultacie kierunki przed i po są zamieniane na całe słowo - jeśli ustawisz zero na „przed”, pojawi się ono po prawej stronie; jeśli napiszesz zero „po” aleph, pojawi się po lewej stronie.

grawitacja
źródło
14
Jest to niezwykle powszechny problem w wielu edytorach tekstu i witrynach internetowych podczas pisania po hebrajsku - wydaje mi się, że dotyczy to również innych języków pisanych od prawej do lewej. Z biegiem czasu z pewnością jest coraz lepiej, ale wyobraź sobie, że próbujesz napisać problem ze słowem - kilkakrotne przełączanie między hebrajskimi słowami (jak znak aleph) i liczbami (jak znak 0) wielokrotnie ...
Jake
3
@Walt Większość podręczników, które widziałem, to „zanurzenie”, w którym używa się bardzo prostego hebrajskiego, ale prawie całkowicie hebrajskiego. Nauczanie języka może wydawać się sprzeczne z intuicją, ale pozwala na bardziej organiczne budowanie umiejętności językowych. Możesz zobaczyć transliterację lub tłumaczenie w tekście (coś takiego jak lh4.ggpht.com / -_Vc8TUDwznQ / UlhaLFjnrGI / AAAAAAAAzQk / _zm4BMC0aLw/... - „Shalom Kita Aleph” = „Hello First Grade”)
Jake
1
@Jake Ah, to ma sens. Jedynym językiem obcym, który naprawdę wybrałem, był łacina; nasze podręczniki były przeważnie angielskie z pojedynczym fragmentem tekstu łacińskiego, aby rozszyfrować każdy rozdział, aż do momentu, gdy cały format zajęć zmienił się z „ucz się łaciny” na „przetłumaczenie całego epickiego wiersza, po trochu, w trakcie rok szkolny".
Tin Man
5
@Walt: Myślę, że może być nieporozumienie. Jeśli wpiszesz słowo łacińskie (LTR), następnie słowo hebrajskie (RTL), a następnie inne słowo łacińskie, będę mógł dowolnie umieścić je wszystkie w zdaniu, a tylko słowo hebrajskie renderuje RTL. Wszystko zostało zaprojektowane tak, aby łatwo mieściło się w tym samym zdaniu. Problem polega na tym, że numer 0jest używany zarówno przez języki LTR, jak i RTL, a więc oprogramowanie po prostu nadaje mu ten sam kierunek co poprzednia litera. Jeśli występuje po znakach LTR, jest to LTR. Jeśli następuje po literach RTL, to RTL. Istnieją również przesłonięcia, aby zamienić. fileformat.info/info/unicode/char/202d/index.htm
Kaczka Mooing
4
Zero nie staje się RTL - wciąż jest LTR, a ciąg cyfr będzie wyświetlany od lewej do prawej, nawet z hebrajskim wokół niego, ale poziomy osadzania oddziałują w taki sposób, że zero pokazuje się po lewej stronie Hebrajski znak poprzedzający go w kolejności pamięci. (Dwukierunkowość Unicode jest skomplikowana.)
user2357112
14

Jest całkowicie możliwe, aby mieć zero z przodu, jak pokazano w poniższym przykładzie, który został wykonany w Notepad ++.

Alef z 0

To, co widzisz, a także staje się oczywiste, gdy spróbujesz oznaczyć znak w pytaniu, to to, że hebrajski jest pisany od prawej do lewej i (ponieważ 0 jest bezpośrednio połączone) tekst jest obsługiwany od prawej do lewej (zamiast lewej) w prawo) sposób.

Zobacz drugi przykład problemów, jakie ma Firefox (z mojej strony) z wyraźnym wyborem.

Firefox wybiera tekst od prawej do lewej

Seth
źródło
17
To okropna rada, ponieważ gra w gry z rzeczywistym uporządkowaniem postaci, aby uzyskać określone uporządkowanie wizualne. Inne odpowiedzi wyjaśniają, dlaczego tak się dzieje, a niektóre zawierają właściwy sposób radzenia sobie z tym (zastąpienie i wyraźne znaki kierunkowe).
Dranon
8
Czy możesz wskazać, gdzie udzielam porady? Po prostu pokazuję przykład tego, co się dzieje, że rzeczywiście można mieć sufiks i podać informacje o tym, dlaczego tak się dzieje.
Seth
13

Hebrajski jest pisany od prawej do lewej - to sprawia, że ​​znak aleph zawiera informację, że następny znak powinien być wydrukowany po lewej stronie .

Jeśli sprawdzasz szesnastkowo dokument (lub przesuwasz kursor po tekście za pomocą klawiszy strzałek w odpowiednim edytorze), zauważysz, że najpierw przejdziesz do alpeh, a potem do cyfry.

Tj .: założenie „następny znak == znak po prawej stronie” nie ma zastosowania.

Eugen Rieck
źródło
3
א 0 0 א 0-א א -0

Problem polega na tym, gdzie to robisz, i na implementacji. Aby uzyskać zachowanie liczby hebrajskiej, wszystkie znaki muszą mieć kierunek od prawej do lewej. W HTML / CSS jest to:

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

W systemie operacyjnym należy włączyć hebrajski i dwukierunkowy.

Obejścia tego problemu, sugerując użycie innych znaków jako zamienników, pokonują cel Unicode. Aleph jako operator matematyczny może wyglądać tak samo w niektórych zestawach znaków, ale jest zupełnie inną postacią niż hebrajski aleph, zarówno w kontekście, jak i w jaki sposób zostanie przeanalizowany. Na przykład język hebrajski mówiący / komputer nie przetworzy go poprawnie, jeśli zostanie użyty w połączeniu ze słowem hebrajskim. Liczby i znaki inne niż alfa stanowią problem, gdy same nie są kodowane w taki sam sposób, jak znaki alfanumeryczne. Tak więc, jak na ironię, same liczby, choć pozornie powinny być niezależne od zestawu znaków / kierunkowości, przyjmują dowolną kierunkowość Unicode poprzedniej litery. Tak więc w hebrajskim dokumencie - liczby stają się „hebrajskie”, tj. Kierunkowo podobne do hebrajskiego. Mając na uwadze, że dokument angielsko-łaciński,

Danny F.
źródło
OP został próbuje użyć Aleph jako operator numerycznej, nie?
grawity
Cóż, w ogóle nie było jasne. W każdym razie kierunkowość nie powinna być istotna. Aleph jest używany w notacji ustawionej i ma nieskończone, nieskończone oznaczenie serii. Powinien być kierowany od lewej do prawej, ponieważ wszystkie matematyki są od lewej do prawej, niezależnie od używanego języka. Jednak używanie aleph jako znaku w języku hebrajskim jest kierunkowo ustawione od prawej do lewej.
Danny F
2

To jest możliwe:

א 0

א - 0

א \\ 0

א -. / 0

א foobar 0

(Ta odpowiedź nie odpowiedziała „dlaczego to jest”, ponieważ jest już udzielona przez innych. Ale odpowiada na pytanie w tytule „niemożliwe do…?”)

użytkownik23013
źródło
7
Ale również nie odpowiada JAK, a więc jest prawie bezużyteczne.
NH.