Como permitir que o gnome-terminal use fontes específicas para exibir pontuações em suas formas de largura total? (· '' “”)

1

Gostaria de usar a fonte SimSun (宋体) para exibir interpunct / middle dot · , aspas simples (curvas) ‘’ , aspas duplas (curvas) “” caracteres em suas formulários de largura total , porque é fácil distingui-los de . (ponto) ' (aspas simples) " (aspas duplas), e essa visibilidade distinta é especialmente útil ao digitar código usando o método de entrada, porque o método de entrada pode '' “” Caracteres facilmente e fez o código não pode ser compilado ( char *str=“will not compile”; ).

No editor gedit e geany e leafpad, a fonte definida para o SimSun fará com que funcione como esperado.

Noentanto,nognome-terminal,afontedefinidaparaSimSunnãoobtémoresultadoesperado.Parecequeognome-terminalusaoutrafonteparaexibirsuasformasdemeialargura,ouparecequeelesestãolotados.

Eu também tentei lxterminal (LXDE) e Terminal (xfce) e ROXTerm, eles foram exibidos da mesma forma que o gnome-terminal.

Como permitir que esses emuladores de terminal exibam pontuações em suas formas de largura total, como Geany faz?

Texto de amostra

1234567890
·“”‘’

Pontos de código Unicode (HEX)

   UTF16  UTF8
· 00B7   C2B7
‘ 2018   E28098
’ 2019   E28099
“ 201C   E2809C
” 201D   E2809D
    
por LiuYan 刘研 28.03.2013 / 19:29

1 resposta

1

Para versões mais antigas do gnome-terminal, você deve exportar uma variável VTE_CJK_WIDTH=wide antes de iniciar a primeira instância do terminal gnome.

Versões mais recentes do gnome-terminal (provavelmente a partir de 3.12 ou 3.14) mudaram isso para uma configuração de interface do usuário: Preferências de perfil - > Compatibilidade - > Caracteres de largura ambígua: estreito (padrão) ou largo (o que você está procurando).

Observe que qualquer aplicativo complexo (por exemplo, editor de texto) em execução no terminal também deve ser notificado sobre essa alteração; caso contrário, ele terá falsas afirmações sobre a localização do cursor e a exibição provavelmente se desintegrará. Eu não estou ciente de um método genérico para isso (poderia / deveria haver uma localidade onde wcwidth () retorna 2 para esses caracteres em vez de 1, mas eu não acho que haja nenhum), então você terá que configurar cada app separadamente (se eles têm essa opção de configuração em tudo). Utilitários simples que não se importam com o cursor, por exemplo um comando cat deve funcionar sem modificações.

    
por 23.04.2015 / 14:21