配置 fontconfig 以忽略可缩放字体中的位图

Pau*_*her 13 fonts fontconfig

我安装了 Microsoft C-Fonts,它们很棒。但是,Calibri 以它出现的许多大小显示为位图字体。我如何告诉 fontconfig 禁止从嵌入的位图呈现 Calibri(和 Cambria 等)?70-no-bitmaps.conf我的/etc/fonts/conf.d/目录中已经有了。

可以从 PowerPoint Viewer 中提取有问题的字体。

syo*_*kit 20

/etc/fonts/conf.d/70-no-bitmaps.conf只拒绝位图字体,他们不禁用嵌入位图,这里就是这种情况。我不知道为什么他们没有将禁用嵌入位图的设置放在同一个 conf 文件中。无论如何,将以下内容放入您的~/.config/fontconfig/conf.d/20-no-embedded.conf(或者,对于旧版本的 Ubuntu,放入~/.fonts.conf.d/20-no-embedded.conf):

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <match target="font">
    <edit name="embeddedbitmap" mode="assign">
      <bool>false</bool>
    </edit>
  </match>
</fontconfig>
Run Code Online (Sandbox Code Playgroud)

这将禁用所有字体的嵌入位图。如果您只想禁用所选字体,请添加<test>元素:

<test name="family" compare="contains">
  <string>Calibri</string>
  <string>Cambria</string>
</test>
Run Code Online (Sandbox Code Playgroud)

之前<edit ...

  • 对于当前版本的 fontconfig,文件名必须是 `~/.fonts.conf.d/20-no-embedded.conf` 如果它没有以数字为前缀,则不会被加载。运行例如`FC_DEBUG=1024 gedit` 以查看您的配置是否已加载,如果它似乎没有任何效果。 (3认同)