Problema de representación de fuentes en urxvt: demasiado espacio entre caracteres

27

A partir de hoy, tengo problemas de representación de fuentes con rxvt-unicode. Específicamente con muchas fuentes obtengo una gran cantidad de espacio adicional entre los caracteres. En otras fuentes, rxvt se niega a cambiar los tamaños.

Aquí hay un ejemplo del problema de espacio entre urxvt y xterm.

Los recursos de fuentes:

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

Y las representaciones

  • urxvt malas fuentes
  • xterm buenas fuentes

He intentado todas las permutaciones de insinuación y antialiasing. Cambiar el tamaño o el tamaño del píxel cambia el tamaño de la fuente en urxvt, pero esto también aumenta el espacio adicional.

¿Alguien tiene ideas que pueda intentar solucionar esto?

casey
fuente
1
No creo que xtermesté usando la misma fuente. El Jy el 0son claramente diferentes. Puede confirmar esto utilizando una fuente inexistente en el archivo de recursos ( xterm*faceName: xft:Nosuchfont:medium:size=10). Si todavía se ve igual, obviamente no es Terminus.
Ricitos
@goldilocks Parece que tienes razón. Urxvt está eligiendo la fuente incorrecta y la está haciendo terriblemente.
Casey
1
He notado esto antes gvimcuando uso mi configuración en un sistema donde la fuente que quería no estaba instalada. xfto algo vuelve a caer en una fuente no monoespacial y así es como aparecen.
Ricitos
2
@goldilocks Resulta que una regla de configuración de fuente incorrecta se introdujo durante una actualización y estaba bloqueando la disponibilidad de todas las fuentes de mapa de bits. Lo bombardeé y volví a la normalidad.
Casey

Respuestas:

15

Urxvt tiene una opción para el ajuste entre caracteres básicos: letterSpace. Ver man urxvt:

-letsp number
Compilar volantes: Cantidad para ajustar el ancho de caracteres calculado para controlar el espaciado general de letras. Los valores negativos tensarán el espacio entre letras, los valores positivos espaciarán más las letras. Útil para evitar métricas de fuentes extrañas; recurso letraSpace.

Para que pueda ajustar el espacio agregando una línea a su ~/.Xresources, así:

URxvt.letterSpace: -1

Nota: es difícil saberlo desde su primera captura de pantalla, pero parece que Urxvt está volviendo a la fuente predeterminada ya que no puede encontrar o cargar Terminus, de ahí el amplio espacio. Terminus es una fuente de mapa de bits (que probablemente esté deshabilitada de manera predeterminada), por lo que debe usar xfontselpara copiar la cadena de fuente correcta en su definición.

Consulte la página Arch Wiki en X Logical Font Description para obtener una descripción detallada de cómo funciona este sistema.

jasonwryan
fuente
3
También tuve este problema y descubrí que urxvt -letsp -2era necesario para mí. Usar -1era mejor, pero inicialmente no me di cuenta porque no era suficiente.
Adam Katz
También puede usar el en fc-match <font-name>lugar de xfontselsi no está instalado ( font-name es la expresión dada en el URxvt*fontnombre de la fuente de su línea). Si esto aparece con un valor que coincide con la expresión, la fuente se cargará correctamente. por ejemplo, si fc-match "Noto Mono"da, DejaVuSans.ttf: "DejaVu Sans" "Book"entonces puede considerarse que es una expresión de fuente incorrecta.
Avinash R
6

Resulta que una regla estaba habilitada en mi sistema que bloqueaba las fuentes de mapa de bits como Terminus.

Esta regla (en mi sistema) estaba /etc/fonts/conf.d/70-no-bitmap-fontsy contenía:

<?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>

Eliminé esto del conf.ddirectorio y mis fuentes nuevamente se muestran correctamente urxvt.

casey
fuente
3

Tenga en cuenta que hay un informe de error con respecto al espacio entre letras.

Tuve problemas similares. Siguiendo las recomendaciones de la discusión del error, configuro Xft.rgba: noney Xft.hintstyle: hintfullen ~/.Xdefaults( en lugar de Xft.rgba: rgby Xft.hintstyle: hintslight). Esto me lo solucionó, aunque usé Ubuntu Mono como fuente.

balu
fuente
3

Mi solución fue simple:

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

Ahora funciona a la perfección.

b3h3m0th
fuente
0

Esto podría surgir del archivo de fuente real (Monospace en mi caso) más probable que de cualquier cosa en el urxvt. Si la fuente (por error) declara que algunos glifos son demasiado anchos, urxvt también se ve obligado a ampliar la cuadrícula.

En mi caso, la fuente "OK" que encontré fue Bitstream Vera Sans Mono.

exa
fuente