作为 Xorg 服务器的一个模块,freetype 的功能包括读取 Truetype 字体信息,如大小、分辨率、编码等,并以之为依据渲染字体 - freetype2.x 相对于 freetype1.x 增加了抗锯齿等功能 - ( /etc/X11/xorg.conf
的 Module 字段中,可以选择字体渲染模块 )
freetype 只负责渲染字体。而查找字体,则可以由 X服务器、X客户端 或者 字体服务器来 完成。找到字体后,使用 freetype 引擎进行渲染
X服务器根据X客户端的请求(字符编码),查找字体并进行渲染,然后显示
X客户端自行查找字体并进行渲染,X服务器只负责显示。由于 Xft字体 的渲染在客户端完成,所以它可以动态的加载,而不需要随同X服务器一同启动
当客户端请求字体时,X服务器将请求转发到字体服务器,由字体服务器查找字体,并使用 freetype 引擎渲染,将结果传回X服务器,X服务器进行显示
/etc/X11/xorg.conf
中可以配置X核心字体的搜索路径
Section "Files" FontPath "/usr/X11R6/lib/X11/fonts/misc/" FontPath "/usr/X11R6/lib/X11/fonts/Type1/" FontPath "/usr/X11R6/lib/X11/fonts/Speedo/" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/" EndSection
要使安装的字体能够作为X核心字体使用,将字体的安装路径添加到上面的列表中,使用 mkfontscale 、 mkfontdir 扫瞄文件夹中的字体,并生成索引,就可以了(建议使用 ttmkfdir 生成 fonts.scale
,将其复制为 fonts.dir
)
字体的选择及显示风格,可以修改 GTK1 的配置文件,或者在Xresources
文件中对程序单独进行定义
事实上,在我们的日常应用中,X核心字体环境并不常见,使用 GTK1 图形库的程序、某些类型的终端……
Xft字体相关选项在 /etc/fonts/fonts.conf
文件中配置
<dir>/usr/share/X11/fonts</dir> <dir>/usr/share/fonts</dir> <dir>/usr/local/share/fonts</dir> <dir>~/.fonts</dir>
可以使用 fc-cache 命令,递归扫瞄上面目录中的字体(包括子文件夹中的字体),建立字体缓存
多数支持 GTK2 或者 Qt 图形库的X客户端能够使用 Xft字体 渲染技术[33]
安装字体,只要将字体拷贝到以上任意目录, fc-cache -fv 刷新字体缓存即可 (选项: -f 强制刷新; -v 显示过程)
使用命令 fc-list 列出所有可用字体。字体的选择及显示风格,可以修改 GTK2 或者 Qt 的配置文件,建议使用图形界面配置[34]