Questão Impossível colocar um zero depois de um aleph?


Eu e um amigo estávamos brincando sobre o aleph. Ao tentar digitar א 0 (mudar esses 2 caracteres), eles mudaram-se! Qualquer seqüência de símbolos não interrompe esse efeito. Por que é isso!??

Tente digitá-los com 0 e א invertidos (c & p para א):

א 0

א - 0

א \\\ 0

א -. / 0

Palavras, no entanto, separá-los

א foobar 0

Estou no arch linux e não testei isso em nenhum outro sistema operacional ainda

EDIT: o número não precisa ser zero. Trabalha com números, mas não com letras.


143


origem


À primeira vista, pensei que você fosse louco. Acontece que é simplesmente um artefato de como diferentes direções de linguagem são usadas. Ótima pergunta!
Para escrever textos em hebraico, essa ordem faz sentido. Caso contrário, seria muito chato escrever coisas como ב-5 דקות (em 5 minutos). - ugoren
@jamesqf: E tem um, veja o post do IllidanS4. - grawity
@jamesqf, as letras hebraicas existem em Unicode para escrever hebraico. E ouso dizer que há mais de nós que escrevemos hebraico (7 milhões ou mais) do que aqueles que escrevem sobre cardinalidades estabelecidas. - ugoren
@ugoren por algumas contagens existem 130k matemáticos, mas na verdade, a matemática é a língua universal, então é realmente verdade. - Nick T


Respostas:


'א', 'HEBREW LETTER ALEF' (U + 05D0) tem a classe BIDI (bidirecional) "da direita para a esquerda [R]", porque o hebraico é tradicionalmente escrito da direita para a esquerda. Os dígitos, por outro lado, não têm nenhuma direcionalidade específica atribuída a eles, e assim todo o pedaço de aleph e zero é interpretado como sendo da direita para a esquerda. Nesse caso, o caractere a seguir pode não estar necessariamente localizado à direita do caractere precedente, como ditam as regras bidirecionais complexas do Unicode.

Você tem várias opções para contornar esse problema.

  1. Você pode usar 'ℵ', 'ALEF SYMBOL' (U + 2135). É um símbolo e tem a propriedade da esquerda para a direita: ℵ0.

  2. Em vez do dígito habitual 0, você pode usar um caractere zero com direcionalidade da esquerda para a direita, como '〇', 'NÚMERO IDEOGRÁFICO ZERO' (U + 3007).

  3. A maneira mais limpa é usar o MARCA ESQUERDA PARA A DIREITA (U + 200E) personagem (Wikipedia) depois do aleph: "א 0". Esse é um caractere de largura zero invisível que é definido para ter direcionalidade da esquerda para a direita. Assim, tem o mesmo efeito no algoritmo de layout de texto bidirecional do que inserir, digamos, uma letra latina da esquerda para a direita após a letra א, exceto que nenhuma letra visível aparecerá ali.


110



Em um contexto matemático (o que eu espero que seja), U + 2135 é o caractere correto a ser usado. - cmbuckley
Você tem que ter cuidado com as substituições - onde você as coloca no texto, é importante removê-las (usando o caractere "pop direcional formatting") U+202C) quando o contexto no qual você deseja que eles operem seja concluído. - J...
Além disso, os caracteres "override" são um pouco exagerados, "incorporação" é suficiente para este caso de uso. Há também uma nova classe chamada "isolar", não tenho certeza qual é a diferença nessa situação. - Random832
Eu recomendo trocar 2 e 3. - wizzwizz4
@ Random832 Todos esses são um exagero. Tudo o que você realmente precisa é de um marca da esquerda para a direita (U + 200E) entre o alef e o zero. Dessa forma, você não precisa de nenhum caractere "pop" extra. - Ilmari Karonen


Aleph (U + 05D0) é uma letra hebraica e hebraico é escrito da direita para a esquerda, de modo que o Unicode atribui a classe bidirecional "da direita para a esquerda". (Vejo Unicode TR9: Algoritmo Bidirecional para mais detalhes.)

As letras latinas são, naturalmente, "da esquerda para a direita". No entanto, zero (U + 0030) está na classe bidirecional "European Number", que é um fraco class - enquanto LtR por padrão, ele pode mudar para RtL se houver um caracter "Right" da esquerda para a direita antes dele. (Vejo Tipos de caracteres bidirecionais e Resolvendo Tipos Fracos em TR9.)

Como resultado, as direções de antes e depois de são trocados por toda a palavra - se você colocar o zero 'antes', ele aparecerá à direita; se você escrever o zero depois de aleph, ele aparecerá à esquerda.


197



Este é um problema extremamente comum em vários editores de texto e sites ao digitar em hebraico - eu imagino que seja verdade também em outros idiomas da direita para a esquerda. É certamente melhorou ao longo do tempo, mas imagine tentar escrever um problema de palavra - alternando entre palavras hebraicas (como o caractere de aleph) e números (como o caractere 0) repetidamente ... - Jake
@Walt A maioria dos livros didáticos que eu vi são do tipo "imersão", que usam hebraico extremamente simples, mas praticamente inteiramente em hebraico. Pode parecer contra-intuitivo usar uma linguagem para ensinar a língua, mas isso permite um acúmulo mais orgânico de habilidades de linguagem. Você pode ver uma transliteração ou tradução em linha (algo como lh4.ggpht.com/-_Vc8TUDwznQ/UlhaLFjnrGI/AAAAAAAAzQk/_zm4BMC0aLw/… - "Shalom Kita Aleph" = "Olá primeiro grau") - Jake
@Jake Ah, isso faz sentido. A única língua estrangeira que eu realmente tomei foi o latim; nossos livros didáticos tendiam a ser principalmente ingleses com um único pedaço de texto em latim para decifrar cada capítulo, até que todo o formato da turma mudasse de "aprender latim" para "traduzir todo esse poema épico, um pouco de cada vez". o ano escolar". - Walt
@Walt: Eu acho que pode haver um mal-entendido. Se eu digitar uma palavra latina (LTR), uma palavra hebraica (RTL) e outra latina, posso livremente tê-las todas em uma frase e somente a palavra hebraica renderizará RTL. Tudo é projetado para caber facilmente na mesma frase. O problema é que o número 0 é usado pelas linguagens LTR e RTL, e assim o software apenas faz a mesma direção da letra anterior. Se segue os caracteres LTR, é LTR. Se seguir as letras RTL, é RTL. Há também substituições para trocá-lo. fileformat.info/info/unicode/char/202d/index.htm - Mooing Duck
O zero não está se tornando RTL - ainda é LTR, e uma sequência de dígitos aparecerá da esquerda para a direita, mesmo com o hebraico em torno dele, mas os níveis de incorporação interagem de tal forma que o zero aparece à esquerda do Caractere hebraico que o precede em ordem de memória. (Bidirecionalidade Unicode é complicada.) - user2357112


Talvez, uma maneira melhor de conseguir isso seria:

echo -e "\u200F0א"

E a referência xkcd obrigatória https://xkcd.com/1137/

‮LTR


18





O hebraico é escrito da direita para a esquerda - isso faz com que o caractere aleph carregue as informações, que o próximo caractere seja impresso esquerdadisso.

Se você checar seu documento com hexadecimal (ou mover o cursor pelo seu texto com as teclas de seta em um editor adequado), você notará que você chegará ao alpeh primeiro e depois ao dígito.

Ou seja: a suposição "próximo caractere == caractere à direita" não é válida.


14





É perfeitamente possível ter um zero na frente, como mostrado no exemplo a seguir, que foi feito no Notepad ++.

Alef with 0

O que você está vendo e também se torna aparente se você tentar marcar o caractere em sua pergunta, é que o hebraico é escrito da direita para a esquerda e (como o 0 está diretamente conectado) o texto é tratado da direita para a esquerda (em vez da esquerda) para a direita).

Veja o segundo exemplo para o problema que o Firefox (do meu lado) tem com uma seleção clara.

Firefox selecting a right to left text


14



Este é um conselho terrível, porque ele joga jogos com o ordenamento real de personagens, a fim de obter uma ordenação visual específica. As outras respostas explicam porque isso ocorre e algumas incluem o caminho certo para lidar com isso (as marcas de direção de substituição e explícita). - Dranon
Você poderia apontar onde eu estou incluindo alguma forma de conselho? Estou apenas mostrando um exemplo do que acontece, que é realmente possível ter um numeral de sufixo e fornecer informações sobre por que isso acontece como acontece. - Seth


É possível:

א 0

א - 0

א \\ 0

א -. / 0

א foobar 0

(Esta resposta não respondeu "porque é isto", como já foi respondida por outros. Mas responde à pergunta no título, "impossível ...?")


3



Mas também não responde como, e por isso é quase inútil. - NH.


 א 0 0 א 0-א א -0

3



O OP estava tentando usar o aleph como operador numérico, não? - grawity
Bem, não ficou claro no post. Em qualquer caso, a direcionalidade não deve ser relevante. Aleph é usado em notação de conjunto e tem uma designação de série infinita e infinita. Deve direcionalmente da esquerda para a direita, uma vez que toda a matemática é da esquerda para a direita, independentemente da linguagem que você está usando. No entanto, usar aleph como um caractere em hebraico é definido direcionalmente da direita para a esquerda. - Danny F