如何让 Calibri 字体很好地显示

art*_*bot 17 fonts antialiasing 14.04

我安装了 Calibri,因为它是 M$ Office 的默认字体,而且我的许多客户都使用这种字体向我发送文档。

但它显示时没有抗锯齿,这太可怕了。就像再次在 Windoze 机器上一样:-O

截屏

它似乎只发生在小尺寸上;它在更大的尺寸下抗锯齿。我可以禁用这个吗?

编辑:

我的/etc/fonts/config.avail/10-antialias.conf包含

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!--  Use the Antialiasing -->
  <match target="font">
    <edit name="antialias" mode="assign"><bool>true</bool></edit>
  </match>
</fontconfig>
Run Code Online (Sandbox Code Playgroud)

% fc-match calibri          
calibri.ttf: "Calibri" "Regular"
Run Code Online (Sandbox Code Playgroud)

LAF*_*ica 29

MS-C 字体嵌入位图

根据对此答案的评论,MS C 字体(Cambria、Calibri ...)最常见的问题是它们使用嵌入式位图。要更改此禁用它们。无论是在

  1. ~/.fonts.conf
  2. ~/.config/font-manager/local.conf在 14.04;字体管理器保留管理~/.fonts.conf文件的权利,感谢@Alain)
  3. ~/.config/fontconfig/fonts.conf(根据@SpinUp 和@Glutamine 的评论)您需要添加此 XML 片段:
<!-- disable embedded bitmaps in fonts to fix Calibri, Cambria, etc. -->
<match target="font">
   <edit mode="assign" name="embeddedbitmap"><bool>false</bool></edit>
</match>
Run Code Online (Sandbox Code Playgroud)

抗锯齿切换

如果您在 中切换配置/etc/fonts/conf.avail/,即抗锯齿,则应该可以,而不是自动提示。如何做到这一点:将 更改truefalsein10-antialias.conf或反之亦然,然后您切换抗锯齿,看看它是否有帮助。对于10-autohinting.conf. 这会切换所有字体的设置 AFAIR,所以只要看看它是否对你的情况有帮助,你就会知道问题是否存在。

注意:只读文件需要sudo修改(或在写入之前也需要进行写入),所以无论您的编辑器是什么(我的是vim),请使用sudo:运行它sudo vim /etc/fonts/conf.avail/10-antialias.conf

动画 gif 显示将哪个 true 更改为 false

缓存重建和字体堆栈更改

此外,经常建议的字体解决方案是重建缓存:sudo fc-cache -v -f. 特别是如果您对字体堆栈进行了更改(安装新字体、删除、移动等)。

另外,fc-match calibri显示什么?为什么我问:在我的情况下,为了很好地显示 Calibri,我不得不回退到 DejaVu Sans,否则我有一个缺少连字的问题:在这里查看我的 Calibri 问题。我通过删除 Calibri 常规字体文件 ( .ttf) 来做到这一点。所以,对我来说,fc-match 输出如下:

?  ~  fc-match calibri
DejaVuSans.ttf: "DejaVu Sans" "Book"
Run Code Online (Sandbox Code Playgroud)

  • 在 font-manager 目录中添加配置对我没有影响(14.04)。该文件的正确位置是`~/.config/fontconfig/fonts.conf`,它解决了我的问题。 (3认同)
  • 在 18.04 仿生创建文件 ~/.fonts.conf 仅使用此答案中提供的内容并重新启动电子邮件客户端修复它 (3认同)