试析FreeBSD桌面系统中利用Fontconfig进行字体配…

2009-05-13 08:22:02来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

试析FreeBSD桌面系统中利用Fontconfig进行字体配置的运作原理

杜比环绕声

概要:本文以KDE桌面环境为例,试析Fontconfig的运作机制
一、Fontconfig在桌面系统中的作用

    KDE是类Unix系统中建立在X基础上的一个主流桌面环境,对用户来说,它提供了良好的图形界面和语言切换机制,用以满足来自不同国家、使用不同语言的用户的使用需求,这种机制简称“国际化”。主要包括界面文字的翻译,多种语言字体的管理、显示的支持以及输入法等等。这其中系统层面字体的管理和显示的支持直接关系到文字的显示效果,因此显得尤为重要。在KDE系统中,字体管理、显示的支持采用的是如下框架。


    Fontconfig(字体配置)---->Freetype(字库操作)---->xft(字体渲染)


  • Fontconfig : 管理系统安装的字体,根据应用程序的字体配置,match(匹配)一种字体,填充match字体的各种属性。
  • Freetype : 以Fontconfig匹配到的字体为参数,根据应用程序需要读取相应的字库。
  • xft: 对需要显示的语言文字进行渲染

二、X系统中字体的管理

    作为KDE底层支持的X,它使用字体服务器(xfs)对安装的字体进行管理,也称之为“核心字库管理系统”,基本配置原理是xfs使用可维护的字体安装目录和fonts.dir文件对字体进行操作。

    X为之提供了一些工具来完成管理操作。诸如 :


  • mkfontdir,mkfontscale 用来生成安装字体的 fonts.dir和fonts.scale。
  • xlsfonts 用来显示安装的字体。
  • xfd 用来显示指定字库的信息。
  • xset 用来管理字体服务器。

对于FreeBSD,在安装了xorg 7.2并且X server运行的情况下,字体安装目录可用 xset q来查询

shell>xset q
Font Path: /usr/local/lib/X11/fonts/misc/,
/usr/local/lib/X11/fonts/TTF/, /usr/local/lib/X11/fonts/OTF,
/usr/local/lib/X11/fonts/Type1/, /usr/local/lib/X11/fonts/100dpi/,
/usr/local/lib/X11/fonts/75dpi/, /home/dbhrscom/.fonts
    上面显示的是X系统安装时定义的字体目录。在这些目录中,都有利用mkfontdir生成的fonts.dir(对于true type 字体需要使用mkfontscale 生成 fonts.scale,然后拷贝到fonts.dir中)。fonts.dir是个文本文件,里面保存的是所在目录的字体信息。关于这些信息的具体含义,可以参见X的man手册,这里不再赘述。

    如果准备把一个字体安装到X系统中,并且使用Xfs进行管理,大致需要以下过程:

    1、建立一个目录,并且把字库文件拷贝到这个目录下
    2、运行mkfontdir或者mkfontscale,生成安装字库的fonts.dir文件。
    3、运行“mkfontdir -e 系统编码目录” 生成encodings.dir 文件(可选)
    4、运行 “xset +fp 字体目录” 或者  “xset fp+ 字体目录”,把字体目录添加到xfs的字体目录列表中。需要注意的是当字体目录没有fonts.dir这个文件时,这种添加字体目录操作会失败。
    5、运行“xset rehash”进行更新,确保新添加的字体可用。

    注意:作为一种X系统的约定,安装字体最方便的做法是把字体文件拷贝到“$HOME/.fonts/“目录下,这样省去了添加字体目录的操作,而且xset +fp 是针对当前会话有效,如果准备系统启动时有效,还要修改相关的配置文件。


三、Fontconfig的字体管理

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:OpenBSD Porting Checklist

下一篇:FreeBSD下建立KDE 4日志(2007年6月7日)