linux 安装x11 font,在X11中使用字体

本文介绍了如何在Linux系统中安装和配置X11的Type1和TrueType字体,包括URW字体集合和Freefont。通过修改X11的字体路径和配置文件,使X11支持TrueType字体,以及启用字体反走样,提高显示质量。此外,还提供了针对LCD屏幕的子像素取样设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Type1字体

X11 使用的默认字体不是很理想。 大型的字体显得参差不齐,看起来很不专业, 并且, 在 Netscape? 中,中的小字体简直难以看懂。 有好几种免费、 高质量的字体可以很方便地用在 X11 中。

例如,URW字体集合 (x11-fonts/urwfonts) 就包括了高质量的 标准 type1 字体 (Times Roman?, Helvetica?, Palatino? 和其他一些).在 Freefont 集合中 (x11-fonts/freefonts) 也包括更多的字体,但它们中的绝大部分使用在图形软件中,如 Gimp,在屏幕字体中使用并不完美。另外, 只要花很少的功夫,可以将 XFree86? 配置成能使用 TrueType? 字体。要安装上面的Type1字体,您只需要运行下面的命令:

# cd /usr/ports/x11-fonts/urwfonts

# make install clean

freefont 或其他的字库和上面所说的大体类似。 为了让 X 服务器能够检测到这些字体, 需要在 X 服务器的配置文件 /etc/X11/ (Xorg 是 xorg.conf 而 XFree86 则是 XF86Config) 中增加下面的配置: FontPath "/usr/X11R6/lib/X11/fonts/URW/" 或者,也可以在命令行运行:

% xset fp+ /usr/X11R6/lib/X11/fonts/URW

% xset fp rehash

这样会起作用,但是当 X 会话结束后就会丢失, 除非它被添加到启动文件 (~/.xinitrc 中, 针对一个寻常的 startx 会话,或者当您通过一个类似 XDM 的图形登陆管理器登陆时添加到 ~/.xsession 中)。 第三种方法是使用新的 /usr/X11R6/etc/fonts/local.conf 文件。

TrueType? 字体

XFree86 4.X 和 Xorg 都已经内建了对 TrueType 字体的支持。有两个不同的模块能够启用这个功能。 在这个例子中使用 freetype 这个模块,因为它与其他的字体描绘后端 是兼容的。要启用 freetype 模块,只需要将下面这行添加到 /etc/X11/XF86Config 文件的 "Module" 部分。 Load "freetype" 对于 XFree86 3.3.X,需要额外的 TrueType 字体服务器。 Xfstt 通常被用于这个目的。 要安装 Xfstt, 只要简单的安装 port x11-servers/Xfstt. 现在,为 TrueType 字体创建一个目录 (比如, /usr/X11R6/lib/X11/fonts/TrueType) 然后把所有的 TrueType 字体拷贝到这个目录。记住您不能直接从 Macintosh? 计算机中提取 TrueType 字体; 能被 X11 使用的必须是 UNIX?/MS-DOS?/Windows? 格式的。 一旦您已经拷贝了这些文件到这个目录,使用 ttmkfdir 来创建一个 fonts.dir 文件,以便让X字体引擎知道 您已经安装了这些新文件。 ttmkfdir 可以在 FreeBSD Ports Collection x11-fonts/ttmkfdir 中找到。

# cd /usr/X11R6/lib/X11/fonts/TrueType

# ttmkfdir > fonts.dir

现在把 TrueType 字体目录添加到字体路径中。

这和上面 Type1 字体的步骤是一样的, 那就是,使用

% xset fp+ /usr/X11R6/lib/X11/fonts/TrueType

% xset fp rehash

或者把 FontPath 这行加到 xorg.conf (或 XF86Config) 文件中。 就是这样。现在 Netscape, Gimp, StarOffice? 和其他所有的 X 应用程序 应该可以认出安装的 TrueType 字体。一些很小的字体(如在 Web 页面上高分辨率显示的文本) 和一些很大的字体(在 StarOffice 下) 现在看起来已经很好了。

Anti-Aliased字体

X11 从 XFree86 4.0.2 开始支持字体的反走样。 但是, 字体配置在 XFree86 4.3.0 之前是非常繁琐的。 从 XFree86 4.3.0 开始, 对于所有支持 Xft 的应用程序, 所有放到 X11 /usr/X11R6/lib/X11/fonts/ 和 ~/.fonts/ 中的字体都自动地被加入反走样支持。并不是所有的应用程序都支持 Xft, 但已经有相当多的程序提供 Xft 支持了。 支持 Xft 的应用程序包括 Qt 2.3 以及更高版本 (用以开发 KDE 桌面的工具包)、 GTK+ 2.0 和更高版本 (用于开发 GNOME 桌面的工具包), 以及 Mozilla 1.2 和更高版本。 要控制哪些字体是 anti-aliased,或者配置 anti-aliased 特性,创建(或者编辑,如果文件已经存在的话)文件 /usr/X11R6/etc/fonts/local.conf。Xft 字体系统的几个高级特性都可以使用这个文件来调节;这一部分只描述几种最简单的情况。要了解更多的细节,请查看 fonts-conf(5). 这个文件一定是 XML 格式的。注意确保所有的标签都完全的关闭掉。 这个文件以一个很普通的 XML 头开始, 后跟一个 DOCTYPE 定义, 接下来是 标签:

像前面所做的那样,在 /usr/X11R6/lib/X11/fonts/ 和 ~/.fonts/ 目录下的所有字体已经可以被支持 Xft 的应用程序使用了。如果您想添加这两个目录以外的其他路径, 简单的添加下面这行到 /usr/X11R6/etc/fonts/local.conf文件中:

添加了新的字体,尤其是添加了新的字体目录后, 您应该运行下面的命令重建字体缓存:

# fc-cache -f

Anti-aliasing 会让字体边缘有些模糊,这样增加了非常小的文本的可读性,并从大文本字体中删除 “锯齿”。 但如果使用普通的文本, 则可能引起眼疲劳。 要禁止 14磅以下字体的反走样, 需要增加如下配置:

14

false

14

false

用 anti-aliasing 来间隔一些等宽字体也是不适当的。 这似乎是 KDE 的一个问题。要修复这个问题需要确保每个字体之间的间距保持在100。 加入下面这些行:

fixed

mono

console

mono

(这里把其他普通的修复的字体作为 "mono"),然后加入:

mono

100

某些字体,比如 Helvetica,当 anti-aliased 的时候可能存在问题。通常的表现为字体本身似乎被垂直的切成两半。 糟糕的时候,还可能导致应用程序比如 Mozilla 崩溃。 为了避免这样的现象,考虑添加下面几行到 local.conf文件里面:

Helvetica

sans-serif

一旦您完成对 local.conf 文件的编辑,确保您使用了 标签来结束文件。不这样做将会导致您的更改被忽略。

X11 默认的字库当使用反走样时会比较难看。 更好的字库可以在 x11-fonts/bitstream-vera port 中找到。 这个 port 会创建一个 /usr/X11R6/etc/fonts/local.conf 文件, 如果这个文件不存在的话。反之, port 将创建 /usr/X11R6/etc/fonts/local.conf-vera 文件。将其内容合并到 /usr/X11R6/etc/fonts/local.conf 中, 则 Bitstream 字体将自动地代替默认的 X11 Serif, Sans Serif, 以及单倍距字体。 最后,用户可以通过他们个人的 .fonts.conf 文件来添加自己的设定。 要完成此项工作, 用户只需简单地创建 ~/.fonts.conf 并添加相关配置。 此文件也必须是 XML 格式的。 最后:对于LCD屏幕, 可能希望使用子像素的取样。 简单而言, 这是通过分别控制 (水平方向分开的) 红、绿、蓝 像素, 来改善水平分辨率; 这样做的效果一般会非常明显。要启用它, 只需在 local.conf 文件的某个地方加入:

unknown

rgb

Note: 依赖于显示器的种类, rgb 可能需要被更改为 bgr, vrgb 或 vbgr:实验一下 看看那个更好。 Anti-aliasing 在您下次启动系统时就能用了。然而,注意您的程序必须知道如何使用它。现在,Qt 工具包做到了, 所以整个 KDE 环境能够使用 anti-aliased 字体 。 通过 “Font” capplet , GTK+ 和 GNOME 也可以使用 anti-aliasing。 默认情况下, Mozilla 1.2 以及更高版本都会自动的使用 anti-aliasing。要禁用它,使用 -DWITHOUT_XFT 选项 重新编译 Mozilla。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值