Problema de renderização de fonte no urxvt - muito espaço entre os caracteres

25

Começando hoje, estou recebendo problemas de renderização de fonte com rxvt-unicode. Especificamente com muitas fontes, tenho uma abundância de espaço extra entre os caracteres. Em outras fontes, o rxvt se recusa a mudar de tamanho.

Aqui está um exemplo do problema de espaçamento entre o urxvt e o xterm.

Os recursos das fontes:

URxvt*font:     xft:Terminus:medium:size=10
xterm*faceName: xft:Terminus:medium:size=10

E as representações

  • urxvt
  • xterm

Eu tentei todas as permutações de dicas e antialiasing. Alterar tamanho ou pixelsize redimensiona a fonte no urxvt, mas isso também aumenta o espaçamento extra.

Alguém tem idéias que eu possa tentar consertar isso?

    
por casey 07.03.2014 / 22:00

5 respostas

5

Acontece que uma regra foi ativada no meu sistema que bloqueia fontes de bitmap, como o Terminus.

Esta regra (no meu sistema) estava em /etc/fonts/conf.d/70-no-bitmap-fonts e continha:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Reject bitmap fonts -->
 <selectfont>
  <rejectfont>
   <pattern>
     <patelt name="scalable"><bool>false</bool></patelt>
   </pattern>
  </rejectfont>
 </selectfont>
</fontconfig>

Eu removi isso do diretório conf.d e minhas fontes foram renderizadas novamente de novo em urxvt .

    
por 08.03.2014 / 02:49
15

O Urxvt tem uma opção para o kerning básico: letterSpace . Veja man urxvt :

-letsp number
Compile frills: Amount to adjust the computed character width by to control overall letter spacing. Negative values will tighten up the letter spacing, positive values will space letters out more. Useful to work around odd font metrics; resource letterSpace.

Assim, você pode ajustar o espaçamento adicionando uma linha ao seu ~/.Xresources , assim:

URxvt.letterSpace: -1

Nota: é difícil dizer a partir de sua primeira captura de tela, mas parece que o Urxvt está voltando para a fonte padrão, já que não é possível localizar ou carregar o Terminus, daí o grande espaçamento. Terminus é uma fonte de bitmap (que é provavelmente desativada por padrão), portanto, você deve usar xfontsel para copiar a string de fonte correta para sua definição.

Veja a página Wiki do Arch em X Descrição da Fonte Lógica para uma descrição detalhada de como este sistema funciona. / p>     

por 07.03.2014 / 22:36
3

Por favor, note que há um relatório de erros sobre o espaçamento entre letras.

Eu tive problemas semelhantes. Seguindo as recomendações da discussão de bug, defino Xft.rgba: none e Xft.hintstyle: hintfull em ~/.Xdefaults (em vez de Xft.rgba: rgb e Xft.hintstyle: hintslight ). Isso consertou para mim - eu usei o Ubuntu Mono como fonte, no entanto.

    
por 13.03.2015 / 03:51
0

Minha solução foi simples:

URxvt*font:     xft:mono:medium:size=10
xterm*faceName: xft:mono:medium:size=10

Agora funciona perfeitamente.

    
por 04.09.2015 / 12:19
0

Isso pode surgir do arquivo de fonte real (Monoespaço no meu caso) mais provável do que de qualquer coisa no urxvt. Se a fonte (erroneamente) declara alguns glifos muito largos, o urxvt é forçado a tornar a grade ampla também.

No meu caso, a fonte "OK" que encontrei foi Bitstream Vera Sans Mono.

    
por 25.09.2015 / 15:28

Tags