不同类型的 XWindows 字体的用途是什么?

Gee*_*eeb 5 xorg fonts x11

在我的目录中/usr/share/fonts/,我有四个子目录,对字体类型进行分类:

  1. cmap
  2. truetype
  3. type1
  4. X11

该命令fc-list会生成它们的列表。

这些不同的类别是出于特定目的,还是仅仅是字体设计不同趋势演变的结果?

Gil*_*il' 5

它们是不同的字体数据库,由不同的软件使用并以不同的格式使用,尽管有重叠。

\n\n

X11包含X Window System使用的字体,特别是在服务器上呈现的字体。这是在 X 上呈现字体的传统方式。您将主要找到PCF格式的位图字体,以及一些Type 1TrueType格式的矢量字体。

\n\n

Type 1 是PostScript字体的格式。PostScript 曾是印刷行业的标准,直到被 PDF 取代。Type 1 适合打印,但以典型屏幕分辨率提供的小尺寸渲染矢量字体往往会产生比精心设计的位图字体更差的结果。

\n\n

TrueType 是一种矢量格式,具有附加渲染提示,指定如何在小分辨率下选取像素。因此,TrueType 字体是可缩放的(与位图字体不同,您可以以任何尺寸使用它们),但即使在小尺寸下也能给出良好的结果。TrueType 由 Apple 开发并用于 Microsoft Windows。

\n\n

X11 的服务器端字体渲染有一些优势,主要是在运行大多数程序的计算机是某个机房中的大型计算机的设置中,并且用户在运行 X 服务器的X 终端前,几乎没有其他东西。通过服务器端渲染,程序会发送类似 \xe2\x80\x9cdisplay this text\xe2\x80\x9d 的命令,而不是 \xe2\x80\x9cdisplay this image\xe2\x80\x9d ,这需要更多的带宽。

\n\n

X11 服务器端字体的字体搜索路径是通过配置的xset fp

\n\n

如今,X 终端已经很少见,网络带宽也增加了很多,所以这不再是一个普遍的担忧。客户端字体渲染变得流行主要是因为它允许抗锯齿。抗锯齿使用灰度级来表示部分像素,这可以提高低分辨率图像(尤其是文本)的整洁度。LCD显示器使子像素抗锯齿成为可能,渲染器利用像素的位置来微调抗锯齿。传统的X服务器只能将矢量字体渲染成单色位图(由于X11的内部架构,文本渲染器不知道背景颜色,因此无法执行抗锯齿)。FreeTypeXft库的组合成为渲染抗锯齿字体的事实上的标准。

\n\n

现代 X 服务器实现了Render 扩展,该扩展使用Alpha 通道执行服务器端图像合成。这允许客户端渲染具有抗锯齿功能的字体,并将结果发送到服务器进行合成和显示。

\n\n

FreeType 支持 TrueType 和 Type1 字体,以及TrueType 的OpenType扩展。Cmap文件是附加映射表,指定角色的图像(或更准确地说是渲染指令)的存储位置。它的字体搜索路径是通过Fontconfig配置的。该命令fc-list是 Fontconfig 的一部分。Fontconfig 通常使下面的所有字体都/usr/share/fonts可用。FreeType 和 Fontconfig 可由 X11 以外的应用程序使用,例如用于打印。

\n