如果您只想快速修复桌面字体,请跳转到第 3 节。如果您对如何以及为什么这样做感兴趣,请阅读本节。
字体用于屏幕显示和打印。这些媒介在 DPI 分辨率上差异很大:屏幕的分辨率为 72 到 96 DPI,而现代打印机通常为 300 DPI。因此,屏幕等低分辨率媒介需要更好的字体渲染算法来克服媒介的限制。
为了在屏幕上获得最佳字体,您需要
专为低分辨率媒介设计的优秀字体。
True Type 字体技术发展成为当今最好的选择。但为了获得最佳的屏幕美观度,您还需要为此目的设计的字体。我们发现 Tahoma 和 Verdana 是您能获得的最佳屏幕字体。
一个优秀的字体渲染器。
当前的 Linux 发行版包含了出色且非常成熟的 FreeType 字体渲染器库。
一个.ttf文件包含在任何尺寸下绘制字符的信息,因此您最终可以使用 OpenOffice.org 或 CorelDraw 等工具将文本转换为可缩放的轮廓图(由线段和二次贝塞尔弧构建)。
字体绘制算法极其复杂,因为它们必须根据.ttf文件中的数学方程式来决定要突出显示哪些像素。当您需要 48 或 60 等大尺寸的文本时,这些算法“忘记”突出显示一两个像素不会有太大区别,但当您需要 8pt 或 11px 尺寸的文本时,每个像素都很重要。而这些通常是 KDE 和 Gnome 小部件、网页浏览文本以及我们在屏幕上看到几乎所有内容的文本大小。
为了更有效地解决这个问题,除了.ttf文件中的数学方程式之外,字体设计师(使用字体创建软件的人)还会放入一些额外的信息,以帮助字体渲染器为这种小尺寸文本做出正确的决策。这个过程称为网格拟合或 hinting(微调)。
关键是:解释这种 hinting 信息的技术已由 Apple 获得专利,它们通常被称为 True Type 字节码解释器(在本文档中,从现在开始简称为 BCI)。
通过逆向工程,Freetype 项目实现了一个字节码解释器,但由于某些国家的法律问题,一些 Linux 发行版在编译和打包时禁用了它。以下是已知启用或禁用 BCI 的发行版列表。请向我们发送更新。
FreeType 尝试通过开发自动 hinting 算法来解决这些法律问题,但在我们的测试中,BCI 算法在屏幕上提供了更好的字体渲染效果。
目前,X.org 和 XFree86 使用两个字体子系统,每个子系统都有不同的特点
最初的(15 年以上)子系统被称为“核心 X 字体子系统”。由此子系统渲染的字体不是抗锯齿的,由 X 服务器处理,并且具有如下名称
-misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-1
较新的字体子系统被称为“fontconfig”,它允许应用程序直接访问字体文件。Fontconfig 通常与 Xft 库一起使用,该库允许应用程序使用抗锯齿将 fontconfig 字体渲染到屏幕上。Fontconfig 使用更人性化的名称,例如
Luxi Sans-10
随着时间的推移,fontconfig/Xft 将取代核心 X 字体子系统。目前,使用 Qt 3 或 GTK 2 工具包的应用程序(包括 KDE 和 GNOME 应用程序)使用 fontconfig 和 Xft 字体子系统;大多数其他应用程序使用核心 X 字体。
未来,Linux 发行版可能仅支持 fontconfig/Xft 来代替 XFS 字体服务器作为默认的本地字体访问方法。
![]() | 上述字体子系统使用情况的一个例外是 OpenOffice.org(它使用自己的字体渲染技术)。 |