为什么 Ubuntu 的字体渲染效果比 Debian 好?

Tux*_*Tux 3 ubuntu gnome debian fonts

由于 Ubuntu 从 Debian 存储库获取其软件包,我想知道 Ubuntu 开发人员是否对原始 Debian 软件包进行了一些修改以改进字体渲染。

我问这个是因为我刚刚安装了 Debian 10 并且字体渲染比 Ubuntu 差,即使在下载 Ubuntu 字体并配置 Gnome Tweaks 以使用它与 Ubuntu 相同的值(包括 Subpixel 和 Hinting 值)之后也是如此。

谢谢!

Ste*_*itt 8

是的,Debian 和 Ubuntu 版本的软件包之间存在许多差异fontconfig,这是处理字体渲染的软件包:

  • DejaVu 优于 BitStream Vera;
  • lcdlegacy过滤器被应用到幻觉记忆国界单多达12个像素;
  • 在引擎中启用抗锯齿。

您可以在 Debian 系统上复制所有这些:

  • 编辑/etc/fonts/conf.d/60-latin.conf和交换 DejaVu 和 BitStream Vera 条目;
  • 添加/etc/fonts/conf.d/53-monospace-lcd-filter.conf以下内容:

    <?xml version="1.0"?>
    <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
    <!-- conf.d/monospace-lcd-filter.conf -->
    <fontconfig>
    <!--  Use legacy LCD filter on smaller Monospace fonts -->
      <match target="pattern">
        <test name="family">
          <string>DejaVu Sans Mono</string>
        </test>
        <test name="pixelsize" compare="less_eq">
          <double>12.0</double>
        </test>
    
        <edit name="lcd_filter" mode="append">
          <const>lcdlegacy</const>
        </edit>
        <edit name="hintstyle" mode="append">
          <const>hintfull</const>
        </edit>
      </match>
      <match target="pattern">
        <test name="family">
          <string>Bitstream Vera Sans Mono</string>
        </test>
        <test name="pixelsize" compare="less_eq">
          <double>12.0</double>
        </test>
    
        <edit name="lcd_filter" mode="append">
          <const>lcdlegacy</const>
        </edit>
        <edit name="hintstyle" mode="append">
          <const>hintfull</const>
        </edit>
      </match>
    </fontconfig>
    
    Run Code Online (Sandbox Code Playgroud)
  • 添加/etc/fonts/conf.d/10-antialias.conf以下内容:

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