目的:
我正在尝试通过特定字体禁用抗锯齿功能~/.config/fontconfig/fonts.conf
,但目前还没有成功。如果我的理解正确,那么原因是系统范围的配置优先于我自己的配置。
问题:
如何禁用特定字体的抗锯齿功能fonts.conf
,并使之优先于系统范围的配置?
附注:我更喜欢在不触及系统配置的情况下执行此操作,并且我更喜欢不在应用程序级别执行此操作。
细节:
系统是 Ubuntu Raring Ringtail 13.04。这是我的~/.config/fontconfig/fonts.conf
:
<?xml version="1.0"?><!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="pattern">
<test name="family">
<string>DejaVu Sans Mono</string>
</test>
<edit name="antialias" mode="assign">
<bool>false</bool>
</edit>
</match>
</fontconfig>
相关文件/etc/fonts/conf.d
如下
10-antialias.conf
50-user.conf
内容如下:
/etc/fonts/conf.d>cat 10-antialias.conf 50-user.conf
...
<match target="font">
<edit name="antialias" mode="assign"><bool>true</bool></edit>
</match>
...
<include ignore_missing="yes" prefix="xdg">fontconfig/fonts.conf</include>
...
以下是 fc-match 返回的内容:
~>fc-match -v 'DejaVu Sans Mono' family antialias
Pattern has 2 elts (size 16)
family: "DejaVu Sans Mono"(s)
antialias: FcTrue(w)
请注意,抗锯齿是 FcTrue!
答案1
[我知道这个问题已经有 5 年了,但它仍然出现在搜索引擎中。]
我刚刚.fonts.conf
在主目录中创建了一个文件。它在 Ubuntu 18.04 LTS 中立即生效。
(相应地替换字体名称!)
<!--
~/.fonts.conf
Remember to run "fc-cache" after you modify this file.
-->
<fontconfig>
<match target="font">
<test name="family" qual="any">
<string>Ubuntu Mono</string>
<string>Free Pixel</string>
</test>
<edit name="antialias" mode="assign">
<bool>false</bool>
</edit>
</match>
</fontconfig>
我将其放入要点中,并附加了一些附加文档以防万一: https://gist.github.com/gonzalocesar/7ef41572a2627b65da976001a29ba7ee
答案2
你所做的似乎是正确的。但由于你的fc-match
输出仍然报告了活动的抗锯齿,你可能犯了和我一样的错误,用 sudo 创建了文件:它需要所有用户都具有读取权限。所以,
sudo chmod 644 /etc/fonts/conf.d/your-conf-file.conf