Począwszy od dzisiaj, mam problemy z renderowaniem czcionek w rxvt-unicode. W szczególności z wieloma czcionkami dostaję mnóstwo dodatkowej przestrzeni między znakami. W innych czcionkach rxvt odmawia zmiany rozmiarów.
Oto przykład problemu z odstępami między urxvt i xterm.
Zasoby czcionek:
URxvt*font: xft:Terminus:medium:size=10
xterm*faceName: xft:Terminus:medium:size=10
I renderingi
- urxvt
- xterm
Próbowałem wszystkich permutacji podpowiedzi i antyaliasingu. Zmiana rozmiaru lub rozmiaru pikseli powoduje zmianę rozmiaru czcionki w urxvt, ale zwiększa to również dodatkowe odstępy.
Czy ktoś ma pomysły, które mogę spróbować naprawić?
xterm
używa tej samej czcionki.J
I0
są wyraźnie różne. Możesz to potwierdzić, używając nieistniejącej czcionki w pliku zasobów (xterm*faceName: xft:Nosuchfont:medium:size=10
). Jeśli nadal wygląda tak samo, to oczywiście nie jest Terminus.gvim
użyciem w / mojej konfiguracji w systemie, w którym pożądana czcionka nie została zainstalowana.xft
lub coś spada na czcionkę inną niż monospace i tak właśnie wyglądają.Odpowiedzi:
Urxvt posiada opcję dla podstawowego kerningu:
letterSpace
. Zobaczman urxvt
:Możesz więc dostosować odstępy, dodając do swojego wiersza
~/.Xresources
:Uwaga: trudno jest stwierdzić na podstawie pierwszego zrzutu ekranu, ale wygląda na to, że Urxvt wraca do domyślnej czcionki, ponieważ nie może znaleźć ani załadować Terminusa, stąd szerokie odstępy. Terminus jest czcionką bitmapową (która prawdopodobnie jest domyślnie wyłączona), więc powinieneś użyć,
xfontsel
aby skopiować prawidłowy ciąg czcionek do definicji.Zobacz stronę Arch Wiki na X Logical Font Description, aby uzyskać szczegółowy opis działania tego systemu.
źródło
urxvt -letsp -2
jest to dla mnie konieczne. Używanie-1
było lepsze, ale początkowo nie zdawałem sobie z tego sprawy, ponieważ to nie wystarczyło.fc-match <font-name>
zamiast zamiast,xfontsel
jeśli nie jest zainstalowany ( nazwa-czcionki to wyrażenie podane wURxvt*font
nazwie czcionki twojej linii). Jeśli wyświetli się wartość zgodna z wyrażeniem, czcionka zostanie poprawnie załadowana. np. jeślifc-match "Noto Mono"
dajeDejaVuSans.ttf: "DejaVu Sans" "Book"
, można uznać, że jest to niepoprawne wyrażenie czcionki.Okazuje się, że w moim systemie została włączona reguła blokująca czcionki bitmapowe, takie jak Terminus.
Ta reguła (w moim systemie) była
/etc/fonts/conf.d/70-no-bitmap-fonts
i zawierała:Usunąłem to z
conf.d
katalogu, a moje czcionki ponownie renderują się poprawnieurxvt
.źródło
Pamiętaj, że istnieje raport o błędzie dotyczący odstępów między literami.
Miałem podobne problemy. Zgodnie z zaleceniami dyskusji bug, ustawić
Xft.rgba: none
iXft.hintstyle: hintfull
w~/.Xdefaults
(zamiastXft.rgba: rgb
aXft.hintstyle: hintslight
). Naprawiłem to dla mnie - użyłem Ubuntu Mono jako czcionki.źródło
Moje rozwiązanie było proste:
Teraz działa idealnie.
źródło
Może to wynikać z rzeczywistego pliku czcionek (w moim przypadku Monospace), bardziej niż z czegokolwiek w urxvt. Jeśli czcionka (błędnie) zadeklaruje, że niektóre glify są zbyt szerokie, urxvt jest zmuszane również do zwiększenia szerokości siatki.
W moim przypadku czcionką „OK”, którą znalazłem, był Bitstream Vera Sans Mono.
źródło