O Unicode tem uma maneira unificada de inserir todos os diacríticos, especialmente no MS word2010?

3

Eu pesquiso e descubro que na palavra 2010, a única maneira que pode inserir todos os tipos de caracteres UNICODE é usar a "tabela de símbolos", que é um açougueiro para encontrar o caractere de que preciso, porque a seleção está restrita a a seção da fonte não é baseada nas características morfológicas ou gráficas subdivididas de todo o mapa UNICODE.

Pergunto-me se todos os caracteres UNICODE (excluindo o kanji ou coisas semelhantes) podem ser sub-divididos em vários conponentes num significado de método de entrada (baseado apenas no teclado sem usar qualquer tabela de caracteres), assim como ᾧ pode ser subdividido em ῀ + ῾ + ω + ι essas quatro partes, e eu quero usar alguns atalhos como \ slideOV + \ roughOV + \ omega + \ iotaUD, ou \ ~ + \ '+ \ omega + \ iotaUD, em que "OV" significa over e "UD" significa em?

O MS Word 2010 deu o passo mas não é muito completo; além disso, a AutoCorreção não é editável em um grupo. Eu não sei sobre o método de entrada Latex para o Unicode, mas acho que o comando é realmente muito longo para lembrar e usar.

PS: Eu realmente espero que haja algum método de entrada incluindo todos os caracteres UNICODE baseados no latim e as variantes sem quaisquer configurações de tabela de caracteres, ou o número inimaginável de números de código (o tempo para memorizar \ uNNNNs e a chance de esquecê-los esse tipo de método de entrada é muito primitivo, e o NAME do UNICODE é muito longo (deve ser mais curto para um nível de abreviação), mesmo que funcione ...)

Por exemplo, Aqui é um wiki sobre todo o caractere de forma "a" em UNICODE.

    
por archenoo 13.10.2013 / 17:15

2 respostas

1

Estou postando isso como uma resposta, mesmo que seja estritamente um Comentário sobre a parte do MS Word 2010 da sua pergunta. É muito longo para caber em um comentário. Eu também adicionei algumas notas em outra abordagem (no final do post).

Eu experimentaria um pouco com o uso do VBA para criar / modificar seus atalhos, usando um subconjunto dos possíveis caracteres (por exemplo, letras gregas e diacríticos relevantes).

O que você estaria mirando (usando sua notação) seria ter o único texto de autocorreção \ ~ \ '\ omega \ iotaUD inserir o caractere U + 1FA7 único, e assim por diante.

O VBA básico é simples -

Autocorrect.Entries.Add Name:="\~\'\omega\iotaUD", Value:=&H1FA7

(você precisaria de um pouco mais para lidar com o caso em que você queria substituir as definições). Eu suponho que eu optaria por colocar o personagem em primeiro lugar e os diacríticos depois, por exemplo \ omega \ ~ \ '\ iotaUD, mas cabe a você definir um conjunto de convenções com as quais você poderia trabalhar.

Usando o loop VBA e algumas informações das tabelas Unicode, seria bastante fácil criar correções automáticas para todas as combinações possíveis, por exemplo,

"greek letter (both cases)"
"greek letter (both cases)" + \~
"greek letter (both cases)" + \'
"greek letter (both cases)" + \iotaUD
"greek letter (both cases)" + \~ + \'
"greek letter (both cases)" + \~ + \iotaUD
"greek letter (both cases)" + \' + \iotaUD
"greek letter (both cases)" + \~ + \' + \iotaUD

Ou talvez você possa restringir isso apenas para as letras às quais esses sotaques são aplicáveis.

Mas isso imediatamente levanta várias questões / pontos, incluindo

  • Existe um limite para o número de correções automáticas permitidas pelo Word? define?
  • Existe um limite prático para o número de correções automáticas que o Word deixa você definir? (por exemplo, talvez tudo desacelere quando você tem 1000 ou 10000)
  • O número de combinações de caracteres + diacríticos é potencialmente enorme. Qual você realmente precisa?

e talvez uma maneira de reduzir o problema e reduzir o número:

  • Você só deseja autocorreções para os caracteres em que um composto existe nas tabelas Unicode (problema menor) ou
  • você deseja que as correções automáticas insiram o composto onde existe, e o conjunto relevante de caracteres decompostos, onde um faz não? (problema potencialmente vasto)

Não presuma do que foi dito acima que criar uma parte adequada do VBA seria fácil. Qualquer um que escrever tal código teria que decidir quais combinações poderiam ser configuradas usando padrões que existem nas tabelas Unicode e quais teriam que ser feitas usando a enumeração de "força bruta". É por isso que eu começaria tentando definir um subconjunto do problema.

Outra abordagem seria definir as cadeias de caracteres "autocorreção", mas não como autocorreções. A ideia seria digitar as correções automáticas, depois pressionar uma tecla que executaria uma macro que analisaria o texto digitado e descobriria qual (is) caractere (s) você desejava usar. Com um pouco de cuidado, você poderia inserir as strings correspondentes a vários caracteres, de modo que você só precisasse pressionar uma tecla especial uma vez, em vez de cada caractere "completo". Você ainda precisa considerar alguns dos pontos / perguntas que listei acima.

    
por 14.10.2013 / 12:22
6

O Unicode define um código de caractere: um conjunto de caracteres, suas representações codificadas (números e nomes Unicode) e outras propriedades. Não define métodos de entrada. Unicode, como tal, não define qualquer maneira de inserir nada.

A "tabela de símbolos" no Word não permite inserir nenhum caractere - apenas os caracteres que possuem glifos na fonte selecionada no momento. No entanto, existe uma maneira universal no Word: o método Alt X: insira “u +” seguido do número Unicode de um caractere, depois digite Alt X e a string magicamente se volta para o personagem. A parte “u +” pode ser omitida se o caractere anterior não for um dígito, letra a – f ou x.

Uma subdivisão, ou decomposição, semelhante à que você descreve é possível em Unicode, mas o padrão Unicode a descreve apenas no nível do código de caractere. É chamado decomposição canônica e significa que, por exemplo, “ᾯ” U + 1FA7 LETRA PEQUENA AGRADÁVEL OMEGA COM DASIA E PERISPOMENI E YPOGEGRAMMENI pode ser decomposta em um ômega simples seguido por três caracteres de combinação: U + 03C9 U + 0314 U + 0342 U + 0345. Observe que, em Unicode, uma marca de combinação aparece após o caractere base. (Isso difere dos métodos comuns de entrada , onde uma tecla morta é pressionada frequentemente antes de um caractere base.)

Isso significa que você poderia produzir o caractere, em certo sentido, digitando os quatro caracteres dessa sequência, possivelmente usando macros ou atalhos ou atribuições de teclas que você definiu para eles. Mas o resultado ainda não seria idêntico ao “ᾧ”. Pode parecer o mesmo e, pelos princípios do Unicode, espera-se que pareça o mesmo, mas ainda assim é diferente da forma codificada como caractere ine, U + 1FA7. E, na prática, pode parecer diferente, possivelmente perturbadoramente diferente.

No meu teste no Word 2007, digitando U + 03C9 U + 0314 U + 0342 U + 0345 obtém a mesma aparência visual de U + 1FA7. Esta é uma boa notícia. Versões mais antigas do Word tiveram sérias dificuldades em tais questões. Mas ainda são quatro caracteres (quatro pontos de código). Um processador de texto poderia converter tal sequência em um caractere equivalente canonicamente correspondente, mas isso não acontece. Isso é relevante quando você processa os dados programaticamente ou os converte em outro formato (por exemplo, para um formato de programa de publicação). E a aparência é OK somente quando a fonte usada tiver essas marcas de combinação.

Seria possel, e n particularmente difil, criar um layout de teclado (driver de teclado) que faz, e. um trabalho de teclado comum nos EUA para o grego politônico, de modo que as letras produzam letras gregas de maneira natural (A produz α etc.), embora você precise de alguma convenção especial para letras como ω e algumas chaves de pontuação produzam sinais diacríticos. O principal problema é que você produziria letras em formato decomposto (como U + 03C9 U + 0314 U + 0342 U + 0345). Mas esse formato pode ser aceitável ou você pode programaticamente convertê-lo (normalizar) para um formato que usa caracteres pré-compostos (como U + 1FA7).

    
por 13.10.2013 / 20:17