Fonts
urxvt 中的字型渲染問題——字元之間的空間太大
從今天早些時候開始,我遇到了 rxvt-unicode 的字型渲染問題。特別是對於許多字型,我在字元之間獲得了大量額外的空間。在其他字型中,rxvt 拒絕更改大小。
這是 urxvt 和 xterm 之間的間距問題的範例。
字型資源:
URxvt*font: xft:Terminus:medium:size=10 xterm*faceName: xft:Terminus:medium:size=10
還有效果圖
- urxvt
- xterm
我已經嘗試了提示和抗鋸齒的所有排列。更改大小或像素大小確實會調整 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 number
編譯裝飾:調整計算的字元寬度以控制整體字母間距的量。負值會使字母間距變窄,正值會使字母間距更大。有助於解決奇怪的字型度量;資源字母空間。
因此,您可以通過在 中添加一條線來調整間距
~/.Xresources
,如下所示:URxvt.letterSpace: -1
注意:很難從您的第一個螢幕截圖中看出,但看起來 Urxvt 正在回退到預設字型,因為它無法找到或載入 Terminus,因此間距很大。Terminus 是一種點陣圖字型(預設情況下可能禁用),因此您應該使用
xfontsel
將正確的字型字元串複製到您的定義中。有關該系統如何工作的詳細描述,請參閱X 邏輯字型描述上的 Arch Wiki 頁面。