Ab heute habe ich Probleme beim Rendern von Schriftarten mit rxvt-unicode. Insbesondere mit vielen Schriftarten erhalte ich eine Fülle von zusätzlichen Leerzeichen 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 Schriften-Ressourcen:
URxvt*font: xft:Terminus:medium:size=10
xterm*faceName: xft:Terminus:medium:size=10
Und die Renderings
- urxvt
- xterm
Ich habe alle Permutationen von Andeutungen und Antialiasing ausprobiert. Durch Ändern der Größe oder der Pixelgröße wird die Schriftgröße in urxvt geändert, der zusätzliche Abstand wird jedoch ebenfalls vergrößert.
Hat jemand Ideen, mit denen ich versuchen kann, das zu beheben?
xterm
tatsächlich dieselbe Schriftart verwendet wird. DasJ
und das0
sind deutlich unterschiedlich. Sie können dies bestätigen, indem Sie eine nicht vorhandene Schriftart in der Ressourcendatei verwenden (xterm*faceName: xft:Nosuchfont:medium:size=10
). Wenn es immer noch so aussieht, ist es offensichtlich nicht Terminus.gvim
als ich meine Konfiguration auf einem System verwendete, auf dem die gewünschte Schriftart nicht installiert war.xft
oder etwas greift auf eine Nicht-Monospace- Schrift zurück und so erscheinen sie.Antworten:
Urxvt hat eine Option für die grundlegende Kerning:
letterSpace
. Sieheman urxvt
:So können Sie den Abstand anpassen, indem Sie eine Linie
~/.Xresources
wie folgt zu Ihrer hinzufügen :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. Da Terminus eine Bitmap-Schriftart ist (die wahrscheinlich standardmäßig deaktiviert ist), sollten Sie
xfontsel
die richtige Zeichenfolge in Ihre Definition kopieren.Auf der Arch Wiki-Seite zu X Logical Font Description finden Sie eine detaillierte Beschreibung der Funktionsweise dieses Systems.
quelle
urxvt -letsp -2
es für mich notwendig war. Verwenden-1
war besser, aber das habe ich anfangs nicht gemerkt, da es nicht genug war.fc-match <font-name>
verwenden,xfontsel
wenn es nicht installiert ist ( Schriftname ist der Ausdruck, der imURxvt*font
Schriftnamen Ihrer Zeile angegeben ist). Wenn dies mit einem Wert angezeigt wird, der mit dem Ausdruck übereinstimmt, wird die Schriftart korrekt geladen. Wenn zum Beispielfc-match "Noto Mono"
ergibtDejaVuSans.ttf: "DejaVu Sans" "Book"
, kann dies als falscher Schriftausdruck angesehen werden.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:Ich habe dies aus dem
conf.d
Verzeichnis entfernt und meine Schriften werden in wieder richtig gerenderturxvt
.quelle
Bitte beachten Sie, dass es einen Fehlerbericht bezüglich des Buchstabenabstands gibt.
Ich hatte ähnliche Probleme. Im Anschluss an die Empfehlungen der Bug Diskussion, ich gesetzt
Xft.rgba: none
undXft.hintstyle: hintfull
in~/.Xdefaults
(stattXft.rgba: rgb
undXft.hintstyle: hintslight
). Dies hat es für mich behoben - ich habe allerdings Ubuntu Mono als Schriftart verwendet.quelle
Meine Lösung war einfach:
Jetzt funktioniert es einwandfrei.
quelle
Dies kann eher von der tatsächlichen Schriftartdatei (in meinem Fall von Monospace) als von irgendetwas im urxvt herrühren. 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.
quelle