今日の初めから、rxvt-unicodeでフォントレンダリングの問題が発生しています。特に、多くのフォントでは、文字間に余分なスペースがたくさんあります。他のフォントでは、rxvtはサイズの変更を拒否します。
次に、urxvtとxtermの間の間隔の問題の例を示します。
フォントリソース:
URxvt*font: xft:Terminus:medium:size=10
xterm*faceName: xft:Terminus:medium:size=10
そしてレンダリング
ヒントとアンチエイリアスのすべての組み合わせを試しました。サイズまたはピクセルサイズを変更すると、urxvtのフォントのサイズが変更されますが、これにより、余分なスペースも増加します。
誰かが私がこれを修正しようとすることができるアイデアを持っていますか?
私のシステムでは、Terminusなどのビットマップフォントをブロックするルールが有効になっていることがわかりました。
このルール(私のシステム上)は/etc/fonts/conf.d/70-no-bitmap-fonts
にあり、以下が含まれています。
<?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>
これをconf.d
ディレクトリから削除すると、フォントがurxvt
で再び適切にレンダリングされます。
Urxvtには基本的なカーニングのオプションがあります:letterSpace
。 man urxvt
をご覧ください:
-letsp番号
フリルのコンパイル:全体的な文字間隔を制御するために計算された文字幅を調整する量。負の値は文字の間隔を狭め、正の値は文字の間隔を広げます。奇妙なフォントメトリックを回避するのに役立ちます。リソースletterSpace。
したがって、次のように~/.Xresources
に行を追加して、間隔を調整できます。
URxvt.letterSpace: -1
注:最初のスクリーンショットから判断するのは困難ですが、Urmvtは、Terminusを検出またはロードできないため、間隔が広いため、デフォルトのフォントにフォールバックしているようです。 Terminusはビットマップフォント(デフォルトでは無効になっている可能性が高い)なので、xfontsel
を使用して正しいフォント文字列を定義にコピーする必要があります。
このシステムがどのように機能するかについての詳細な説明は、 X論理フォントの説明 のArch Wikiページを参照してください。
文字間隔に関しては バグレポート があることに注意してください。
同様の問題がありました。バグディスカッションの推奨事項に従って、Xft.rgba: none
およびXft.hintstyle: hintfull
~/.Xdefaults
(の代わりに Xft.rgba: rgb
およびXft.hintstyle: hintslight
)。これで修正されました。ただし、フォントとしてUbuntu Monoを使用しました。
私の解決策は簡単でした:
URxvt*font: xft:mono:medium:size=10
xterm*faceName: xft:mono:medium:size=10
今では完全に動作します。
これは、urxvtの何よりも実際のフォントファイル(私の場合はモノスペース)から発生する可能性があります。フォントが(誤って)いくつかのグリフが広すぎると宣言した場合、urxvtはグリッドも広くするように強制されます。
私の場合、見つけた "OK"フォントはBitstream Vera Sans Monoでした。