对于编程,我喜欢关闭字体抗锯齿功能(即选择单色选项),因为它使终端文本在字体较小时看起来更清晰。但这样一来,Web 浏览器中的所有内容看起来都会更糟。
有没有一种方法可以兼具两全其美的优势,既拥有非抗锯齿的终端字体,又拥有抗锯齿的 Web 浏览器字体?
答案1
您可以在 中控制字体的抗锯齿~/.fonts.conf
。不过,在单个程序上执行此操作需要一些技巧。
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<dir>~/.fonts</dir>
<alias>
<family>XTerm</family>
<prefer><family>Envy Code R</family></prefer>
<default><family>monospace</family></default>
</alias>
<match target="pattern">
<test name="family">
<string>XTerm</string>
</test>
<edit mode="assign" name="family">
<string>Envy Code R</string>
</edit>
<edit mode="assign" name="antialias">
<bool>false</bool>
</edit>
</match>
</fontconfig>
这将创建一个名为的字体别名,XTerm
该别名映射到Envy Code R
但禁用抗锯齿功能。运行fc-cache ~/.fonts
,然后您应该能够在终端中选择该字体。
如果您不介意(甚至喜欢)终端中使用的字体在任何程序中始终不具有抗锯齿效果,则它会更简单一些:
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<dir>~/.fonts</dir>
<match target="pattern">
<test name="family">
<string>Envy Code R</string>
</test>
<edit mode="assign" name="antialias">
<bool>false</bool>
</edit>
</match>
</fontconfig>
它不需要任何其他字体黑客技术并确保Envy Code R
始终具有抗锯齿效果。
您还可以限制可以执行抗锯齿的字体大小:
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<dir>~/.fonts</dir>
<match target="pattern">
<test name="family">
<string>Envy Code R</string>
</test>
<test name="size" qual="any" compare="less">
<double>8</double>
</test>
<edit mode="assign" name="antialias">
<bool>false</bool>
</edit>
</match>
</fontconfig>
Envy Code R
当小于 8 点时,防止出现抗锯齿。
本文Arch Wiki 上展示了如何更详细地调整字体。 man fonts.conf
是对配置语言的参考,但没有太多实际的例子。
答案2
我花了很多时间研究字体和系统配置,以便在 Ubuntu 终端中获得不错的非抗锯齿字体。一种解决方案是安装专用的非抗锯齿 TrueType 字体,例如 Terminus。将终端首选项设置为使用 Terminus 8 字体,或使用 Ubuntu 高级设置工具将全局控制台字体设置为 Terminus 8。
sudo apt-get install xfonts-terminus console-terminus
我还没有找到一个可以让我在终端中使用我最喜欢的字体(X11 6x13)的解决方案。与此同时,我一直在使用 pterm 和 Putty 而不是终端。唯一的缺点是 pterm 和 Putty 不支持制表符。