某些 GTK 应用程序中的 Monaco 字体未进行抗锯齿处理

某些 GTK 应用程序中的 Monaco 字体未进行抗锯齿处理

我在 Ubuntu Karmic 上使用 Monaco 字体时遇到了一个奇怪的问题。我最近安装了 Monaco 字体,只是想看看它到底有什么用。

我现在面临的问题是,在某些 GTK 应用程序(即 Firefox 和 Eclipse)中没有抗锯齿,但在 KDE 应用程序(konsole)和 Chromium 中却有抗锯齿。我已将提示设置为轻微。

任何帮助都将受到赞赏。

答案1

使用较旧的摩纳哥字体代替最新的为我解决了这个问题。

答案2

字体具有针对特定字体大小的嵌入位图版本。字体配置

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>

    <!-- ...other settings can be here... -->

    <match target="font">
        <test name="family">
            <string>Monaco</string>
        </test>
        <edit name="embeddedbitmap">
            <bool>false</bool>
        </edit>
    </match>

</fontconfig>

如果你有字体配置2.10 或更新版本,请将其放入~/.config/fontconfig/fonts.conf。对于旧版本,请编辑~/.fonts.conf

要在整个系统范围内更改此设置,请编辑/etc/fonts/conf.d/fix-monaco.conf


您还可以禁用嵌入的位图全部字体,通过删除<test ...>线条。根据我的经验,嵌入的位图从来都没有什么用处;它们总是让字体变得丑陋。

答案3

在GTK应用程序中,系统字体由~/.Xresources控制。但在Firefox中,页面显示由fontconfig系统控制,因此必须在~/.fonts.conf中进行设置。

在 Mac 上,Monaco 的效果确实更好。OS X 的抗锯齿功能非常强大,在其他系统上很难复制这种效果。在 Linux 上,最接近的效果是进行以下设置:

sub-pixel antialiasing = on
hint strength = slight
lcdfilter = lcddefault

要使用 lcdfilter 功能,您需要 libcairo2 1.10+。即使这样,它在 Firefox 中也不会起作用,因为它不使用该系统来呈现页面。

相关内容