Combinando diacríticos que não combinam visualmente

7

Os dois primeiros caracteres no buffer esquerdo são LATIN SMALL LETTER Ae COMBINING CIRCUMFLEX ACCENT. Juntos, eles devem exibir como , como LATIN SMALL LETTER A WITH CIRCUMFLEX, â.

No entanto, como você pode ver, o circunflexo está aparecendo próximo ao a, não acima dele.

A captura de tela é do GNU Emacs 26.1, emacs -Qno Ubuntu 18.04. Os caracteres são exibidos corretamente em outros aplicativos. O que está acontecendo de errado e como posso corrigi-lo?

insira a descrição da imagem aqui

Hatshepsut
fonte
Esses outros aplicativos apenas alteram a aparência visual ou também compõem os dois caracteres no único caractere?
Rpluim
@RobertPluim Não sei como diagnosticar entre as duas opções sugeridas. Se eu colar no gedit, o chapéu está no topo. Se eu copiá-lo do gedit e colá-lo novamente no emacs, o chapéu se move para a direita.
24618 Hatshepsut
Obrigado, isso responde à pergunta: o gedit está visualmente compondo os personagens, mas não os combinando no único caractere LETRA PEQUENA LATINA A COM CIRCUMFLEX.
rpluim
4
Eu perguntei ao emacs-devel sobre isso, e Eli Zaretskii apontou que o emacs só fará isso combinando se você estiver usando uma fonte que suporta tanto o 'a' como o COMBINING CIRCUMFLEX ACCENT. No seu caso, as duas fontes são diferentes. Você saberia qual fonte o gedit está usando? (Eu apenas tentei o gedit aqui com "Droid Sans Mono" e ele exibe os dois caracteres separadamente).
rpluim
@RobertPluim Ah, parece que o gedit estava usando o DejaVu. Então eu tentei (set-frame-font "-PfEd-DejaVu Sans Mono for Powerline-normal-normal-normal-*-42-*-*-*-m-0-iso10646-1")e funcionou. Obrigado!
24618 Hatshepsut

Respostas:

6

Para que o emacs consiga combinar caracteres sucessivos, você precisa usar uma fonte que seja compatível com os dois caracteres. De acordo com os comentários, no seu caso, era 'DejaVu Sans Mono'.

rpluim
fonte