我尝试通过设置将终端模拟器中的所有文本设为粗体:
URxvt*font: xft:FONT_NAME:pixelsize=14:style=bold
在由xrdb
读取的文件中。问题是这仅适用于某些字体(例如:DejaVu Sans Mono、Consolas)。许多字体只会以正常粗细显示(例如 Monaco、Mensch、Andale mono)。
奇怪的是,应该为粗体的文本(如手册页中的ls
输出)仍然显示为粗体。但如果我把
URxvt*font: xft:Monaco:pixelsize=14
URxvt*boldFont: xft:Monaco:pixelsize=14:style=bold
那么没有文本会变成粗体。就好像字体没有称为“粗体”的样式,即使任何字体选择对话框都另有说明。事实上,一些文本以 boldFont
显示为粗体是未指定的,这告诉我 rxvt-unicode
能够显示这些字体的粗体版本。
我尝试在 konsole
和 xfce4-terminal
中使用这些字体。 Konsole 甚至不提供 Monaco 作为可能的字体(它不认为它是等宽字体,但这是一个已知的错误),而 Mensch 仅提供常规和倾斜样式。在 xfce4-terminal 中,Mensch 和 Monaco 均以粗体显示。
注意:我还没有创建新标签的声誉。被拒绝的标签有:xrdb xresources xft urxvt
最佳答案
Andale Mono 没有粗体样式,因此指定“style=bold”无效。摩纳哥也是如此,但我不确定。
关于你问题的第二部分。如果您指定的字体没有粗体版本,终端将自行创建。我不知道确切的算法,但看起来它只是用一个像素位移打印两次相同的字形。但如果您也指定粗体字体,终端将不会尝试使用粗体字体,并且所有文本看起来都一样。
关于fonts - Xresources 中的粗体 xft 字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7127212/