it-swarm.com.de

Problem beim Rendern von Schriftarten in urxvt - zu viel Platz zwischen den Zeichen

Ab heute bekomme ich Probleme beim Rendern von Schriftarten mit rxvt-unicode. Insbesondere bei vielen Schriftarten bekomme ich viel zusätzlichen Platz zwischen den Zeichen. In anderen Schriftarten weigert sich rxvt, die Größe zu ändern.

Hier ist ein Beispiel für das Abstandsproblem zwischen urxvt und xterm.

Die Schriftartenressourcen:

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

Und die Renderings

  • urxvt bad fonts
  • xterm good fonts

Ich habe alle Permutationen von Andeutungen und Antialiasing ausprobiert. Durch Ändern der Größe oder Pixelgröße wird die Schriftgröße in urxvt geändert, dies erhöht jedoch auch den zusätzlichen Abstand.

Hat jemand Ideen, mit denen ich versuchen kann, dies zu beheben?

32
casey

Es stellte sich heraus, dass auf meinem System eine Regel aktiviert war, die Bitmap-Schriftarten wie Terminus blockierte.

Diese Regel (auf meinem System) war in /etc/fonts/conf.d/70-no-bitmap-fonts Und enthielt:

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

Ich habe dies aus dem Verzeichnis conf.d Entfernt und meine Schriftarten werden in urxvt wieder richtig gerendert.

6
casey

Urxvt hat eine Option für das grundlegende Kerning: letterSpace. Siehe man urxvt:

-letsp Nummer
Rüschen kompilieren: Betrag zum Anpassen der berechneten Zeichenbreite, um den gesamten Buchstabenabstand zu steuern. Negative Werte vergrößern den Buchstabenabstand, positive Werte platzieren Buchstaben mehr. Nützlich, um ungerade Schriftmetriken zu umgehen. Ressource letterSpace.

Sie können den Abstand also anpassen, indem Sie Ihrem ~/.Xresources Eine Linie hinzufügen, wie folgt:

URxvt.letterSpace: -1

Hinweis: Es ist schwierig, dies anhand Ihres ersten Screenshots zu erkennen, aber es sieht so aus, als würde Urxvt auf die Standardschrift zurückgreifen, da Terminus nicht gefunden oder geladen werden kann, daher der große Abstand. Terminus ist eine Bitmap-Schriftart (die wahrscheinlich standardmäßig deaktiviert ist). Verwenden Sie daher xfontsel, um die richtige Schriftzeichenfolge in Ihre Definition zu kopieren.

Auf der Arch Wiki-Seite unter X Logical Font Description finden Sie eine detaillierte Beschreibung der Funktionsweise dieses Systems.

16
jasonwryan

Bitte beachten Sie, dass es einen Fehlerbericht bezüglich des Buchstabenabstands gibt.

Ich hatte ähnliche Probleme. Den Empfehlungen der Fehlerdiskussion folgend, setze ich Xft.rgba: none und Xft.hintstyle: hintfull im ~/.Xdefaults (Anstatt von Xft.rgba: rgb und Xft.hintstyle: hintslight). Dies hat das Problem für mich behoben - ich habe jedoch Ubuntu Mono als Schriftart verwendet.

4
balu

Meine Lösung war einfach:

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

Jetzt funktioniert es perfekt.

3
b3h3m0th

Dies kann eher aus der tatsächlichen Schriftartdatei (in meinem Fall Monospace) als aus irgendetwas im urxvt resultieren. Wenn die Schriftart (fälschlicherweise) einige Glyphen als zu breit deklariert, muss urxvt das Raster ebenfalls breit machen.

In meinem Fall war die "OK" -Schrift, die ich gefunden habe, Bitstream Vera Sans Mono.

2
exa