Вопрос: Невозможно поставить ноль после aleph?


Я и друг шутили о алефе. При попытке ввести א 0 (переключите эти 2 символа), они переключились! Любая последовательность символов не останавливает этот эффект. Почему это!??

Попробуйте ввести их с 0 и א в обратном порядке (c & p для א):

א 0

א - 0

א \\\ 0

א -. / 0

Слова, однако, разделяют их

א foobar 0

Я нахожусь в arch linux и еще не тестировал это на любой другой ОС.

EDIT: номер не должен быть равен нулю. Он работает с числами, но не с буквами.


143
2017-07-31 06:18


Источник


На первый взгляд я думал, что ты сумасшедший. Оказывается, это просто артефакт о том, как используются разные языковые направления. Отличный вопрос!
Для написания текста на иврите этот порядок имеет смысл. В противном случае было бы очень неприятно печатать такие вещи, как ב-5 דקות (через 5 минут). - ugoren
@jamesqf: И есть один, см. сообщение IllidanS4. - grawity
@jamesqf, буквы на иврите существуют в Юникоде для написания иврита. И я смею сказать, что нас больше всех, кто пишет иврит (7 миллионов или около того), чем те, кто пишет об установленных мощностях. - ugoren
@ugoren по некоторым подсчетам существует 130 тыс. математиков, но на самом деле математика - это универсальный язык, поэтому существует действительно ℵ₀. - Nick T


Ответы:


'א', 'HEBREW LETTER ALEF' (U + 05D0) имеет BIDI (двунаправленный) класс «Right-to-Left [R]», потому что иврит традиционно написан справа налево. С другой стороны, цифры не имеют специальной направленности, и поэтому весь фрагмент алефа и нуля интерпретируется как справа налево. В этом случае следующий символ может не обязательно располагаться справа от предыдущего символа, как диктует довольно сложные двунаправленные правила Юникода.

У вас есть несколько вариантов решения этой проблемы.

  1. Вы можете использовать 'ℵ', 'ALEF SYMBOL' (U + 2135), Это символ и имеет свойство left-to-right: ℵ0.

  2. Вместо обычной цифры 0, вы можете использовать нулевой символ с направленностью слева направо, например, '〇', 'IDEOGRAPHIC NUMBER ZERO' (U + 3007),

  3. Самый чистый способ - использовать «ЛЕВЫЙ-ПРАВЫЙ МАРК» (U + 200E) персонаж (Википедия) после алефа: «א 0». Это невидимый символ нулевой ширины, который определяется как направленность слева направо. Таким образом, он оказывает такое же влияние на двунаправленный алгоритм компоновки текста, как вставка, скажем, латинской буквы слева направо после א, за исключением того, что там нет видимой буквы.


110
2017-07-31 10:48



В математическом контексте (который я ожидаю, что это так), U + 2135 является правильным символом для использования. - cmbuckley
Вы должны быть осторожны с переопределениями - там, где вы размещаете их в тексте, важно удалить их (используя символ «поп-направленный форматирование» U+202C), когда контекс, который вы хотите, чтобы он работал, завершается. - J...
Кроме того, символы «переопределения» являются излишним, «вложение» является достаточным для этого варианта использования. Существует также новый класс, называемый «изолировать», не уверен, какая разница в этой ситуации. - Random832
Я бы рекомендовал заменить 2 и 3. - wizzwizz4
@ Random832 Все это перебор. Все, что вам действительно нужно, это знак слева направо (U + 200E) между алефом и нулем. Таким образом, вам не нужны никакие лишние символы «поп». - Ilmari Karonen


Алеф (U + 05D0) является еврейским письмом, и иврит написан справа налево, поэтому Юникод присваивает ему «право-левый» двунаправленный класс. (Видеть Unicode TR9: двунаправленный алгоритм Больше подробностей.)

Латинские буквы, конечно, «слева направо». Однако нуль (U + 0030) находится в двунаправленном классе «Европейский номер», который является слабый class - в то время как LtR по умолчанию, он может переключиться на RtL, если перед ним есть «сильный» символ справа налево. (Видеть Двунаправленные типы символов а также Устранение слабых типов в TR9.)

В результате, направления до а также после меняются местами на все слово - если вы поместите нуль «до», он будет отображаться справа; если вы напишете ноль «после» aleph, он появится слева.


197
2017-07-31 06:39



Это очень распространенная проблема в ряде текстовых редакторов и веб-сайтов при вводе на иврите - я думаю, что это справедливо и для других языков с правом налево. Это со временем становится лучше, но представьте, что вы пытаетесь написать проблему с текстом - переключение между ивритскими словами (например, символом aleph) и числами (например, символ 0) несколько раз ... - Jake
@Walt Большинство учебников, которые я видел, являются «иммерсионным» типом, который использует чрезвычайно простой иврит, но в значительной степени полностью иврит. Может показаться противоречивым использование языка для обучения языку, но это позволяет более органично наращивать языковые навыки. Вы можете увидеть транслитерацию или перевод встроенного (что-то вроде lh4.ggpht.com/-_Vc8TUDwznQ/UlhaLFjnrGI/AAAAAAAAzQk/_zm4BMC0aLw/... - «Шалом Кита Алеф» = «Привет первый класс») - 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, и последовательность цифр будет отображаться слева направо даже с ивритом вокруг него, но уровни внедрения будут взаимодействовать таким образом, чтобы нуль отображался слева от Иврит-символ, предшествующий ему в порядке памяти. (Двунаправленность Юникода сложна). - user2357112


Возможно, лучший способ добиться этого - это:

echo -e "\u200F0א"

И обязательная ссылка xkcd https://xkcd.com/1137/

‮LTR


18
2017-08-02 11:27





Иврит написан справа налево - это означает, что символ алефа несет информацию, что следующий символ должен быть напечатан оставилиз этого.

Если вы проверите свой документ (или переместите курсор через текст с помощью клавиш со стрелками в подходящем редакторе), вы заметите, что сначала попадете в альпину, а затем на цифру.

I.e .: Предположение «символ следующего символа == справа» не выполняется.


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

א foobar 0

(Этот ответ не ответил «почему это», так как он уже ответил другими, но он отвечает на вопрос в названии «невозможно ...?»)


3
2017-08-02 09:44



Но он также не отвечает КАК, и поэтому почти бесполезен. - NH.


 א 0 0 א 0-א א -0

3
2017-08-06 17:00



ОП был пытаясь использовать aleph в качестве числового оператора, нет? - grawity
Ну, это было непонятно в почте вообще. В любом случае, направленность не должна быть релевантной. Алеф используется в множестве нотации и имеет бесконечное бесконечное обозначение серии. Это должно быть направлено слева направо, поскольку все математические данные остаются справа, независимо от того, какой язык вы используете. Однако использование алефа как символа на иврите направленно направляется справа налево. - Danny F