Начиная с сегодняшнего дня, у меня возникают проблемы с рендерингом шрифтов с помощью rxvt-unicode. В частности, со многими шрифтами я получаю изобилие дополнительного пространства между символами. В других шрифтах rxvt отказывается менять размеры.
Вот пример проблемы пробелов между urxvt и xterm.
Ресурсы шрифтов:
URxvt*font: xft:Terminus:medium:size=10
xterm*faceName: xft:Terminus:medium:size=10
И визуализации
- urxvt
- Xterm
Я перепробовал все варианты намеков и сглаживания. Изменение размера или размера пикселя приводит к изменению размера шрифта в urxvt, но это также увеличивает дополнительный интервал.
У кого-нибудь есть идеи, которые я могу попробовать исправить?
xterm
на самом деле использует тот же шрифт.J
И0
явно отличаются. Вы можете подтвердить это, используя несуществующий шрифт в файле ресурсов (xterm*faceName: xft:Nosuchfont:medium:size=10
). Если это все еще выглядит так же, это, очевидно, не Terminus.gvim
при использовании моей конфигурации в системе, где нужный шрифт не был установлен.xft
или что-то возвращается на немонокальный шрифт, и вот как они появляются.Ответы:
Urxvt имеет возможность для основного кернинга:
letterSpace
. Смотритеman urxvt
:Таким образом, вы можете настроить интервал, добавив строку к вашему
~/.Xresources
, например так:Примечание: по первому скриншоту это трудно определить, но похоже, что Urxvt возвращается к шрифту по умолчанию, так как не может найти или загрузить Terminus, отсюда и большой интервал. Terminus - это растровый шрифт (который, вероятно, по умолчанию отключен), поэтому вы должны использовать
xfontsel
для копирования правильную строку шрифта в ваше определение.См. Страницу Arch Wiki на X Logical Font Description для подробного описания того, как работает эта система.
источник
urxvt -letsp -2
это необходимо для меня. Использование-1
было лучше, но я изначально не осознавал этого, так как этого было недостаточно.fc-match <font-name>
вместо,xfontsel
если он не установлен ( font-name - это выражение, указанное вURxvt*font
имени шрифта вашей строки). Если это обнаруживается со значением, соответствующим выражению, шрифт будет загружен правильно. например, еслиfc-match "Noto Mono"
дает,DejaVuSans.ttf: "DejaVu Sans" "Book"
то это можно считать неправильным выражением шрифта.Оказывается, в моей системе было включено правило, которое блокировало растровые шрифты, такие как Terminus.
Это правило (в моей системе)
/etc/fonts/conf.d/70-no-bitmap-fonts
содержало и содержало:Я удалил это из
conf.d
каталога, и мои шрифты снова отображаются правильноurxvt
.источник
Пожалуйста, обратите внимание, что есть сообщение об ошибке относительно расстояния между буквами.
У меня были похожие проблемы. Следуя рекомендациям обсуждения ошибки, я установил
Xft.rgba: none
иXft.hintstyle: hintfull
в~/.Xdefaults
(вместоXft.rgba: rgb
иXft.hintstyle: hintslight
). Это исправило это для меня - я использовал Ubuntu Mono в качестве шрифта.источник
Мое решение было простым:
Теперь это работает отлично.
источник
Это может произойти из-за фактического файла шрифта (в моем случае Monospace) с большей вероятностью, чем из чего-либо в urxvt. Если шрифт (по ошибке) объявляет некоторые символы слишком широкими, urxvt также вынужден расширять сетку.
В моем случае, «OK» шрифт, который я нашел, был Bitstream Vera Sans Mono.
источник