使用用户的 fonts.conf 禁用特定字体的抗锯齿功能

使用用户的 fonts.conf 禁用特定字体的抗锯齿功能

目的:

我正在尝试通过特定字体禁用抗锯齿功能~/.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 

相关内容