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

Ola*_*sky 9 fonts antialiasing

目的:

我正在尝试通过~/.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>
Run Code Online (Sandbox Code Playgroud)

中的相关文件/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>
   ...
Run Code Online (Sandbox Code Playgroud)

这就是 fc-match 返回的内容:

~>fc-match -v 'DejaVu Sans Mono' family antialias
Pattern has 2 elts (size 16)
        family: "DejaVu Sans Mono"(s)
        antialias: FcTrue(w)
Run Code Online (Sandbox Code Playgroud)

请注意,抗锯齿是 FcTrue!

小智 2

[我知道这个问题已经有 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>
Run Code Online (Sandbox Code Playgroud)

我将其放入要点中,加上一些附加文档以防万一: https: //gist.github.com/gonzalocesar/7ef41572a2627b65da976001a29ba7ee


phi*_*294 0

你所做的似乎是正确的。但由于您的fc-match输出仍然报告活动抗锯齿,您可能犯了与我相同的错误并使用 sudo 创建文件:它需要对所有用户具有读取权限。所以,

sudo chmod 644 /etc/fonts/conf.d/your-conf-file.conf 
Run Code Online (Sandbox Code Playgroud)