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


12

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

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


AFAIK那些字体不能自由分发吗?(因此我无法对其进行测试。)但是您确定它们使用位图,并且不只是禁用抗锯齿吗?
2011年

@JanC字体确实确实使用了预渲染的位图。
保罗·费舍尔

Answers:


19

/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>

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

<test name="family" compare="contains">
  <string>Calibri</string>
  <string>Cambria</string>
</test>

之前<edit ...


应该将它放在/etc/fonts/conf.d中,还是放在/etc/fonts/conf.avail中,并像其他所有配置文件一样符号链接到conf.d?这是为ubuntu发行版提供的配置文件保留的吗?有关系吗?
knb 2012年

1
@knb默认为ubuntu / debian设置,fontconfig也将加载任何内容~/.fonts.conf.d/。因此,我建议您将其放在此处,以免破坏系统配置。除非您希望将其提供给所有用户使用,否则您可以将其放在中/etc/fonts/conf.d,或将其放在avail符号链接中conf.d以在需要时使用它(可以在需要打开符号链接时将其删除,反之亦然)
syockit

3
在最新版本的fontconfig中,如果文件名~/.fonts.conf.d/20-no-embedded.conf没有前缀,则必须为不会加载的文件名。例如FC_DEBUG=1024 gedit,运行以查看您的配置是否似乎没有任何作用,是否已完全加载它。
pascal,2012年

@pascal +1表示FC_DEBUG。不,在10.04 LTS上不需要名字前的数字,只需命名.fonts.config就足够了。您指的是哪个版本的fontconfig?
LAFK说恢复莫妮卡

1

在示例中,您给了“ <test>”节中两次提到的“ <string>”属性。这会在Ubuntu 13.10和14.04上发出警告。为了消除警告,文件中的节应如下所示:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <match target="font">
    <test name="family" compare="contains">
       <string>Calibri</string>
    </test>
    <test name="family" compare="contains">
       <string>Cambria</string>
    </test>
    <edit name="embeddedbitmap" mode="assign">
      <bool>false</bool>
    </edit>
  </match>
</fontconfig>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.