Thursday, June 11, 2009

[Linux]字体配置

X下有两套字体系统:古老的X11 core font system 以及新的Xft and fontconfig.一般说来我们应该尽可能的使用后者.
  1. Xft是"X FreeType"的缩写。当Xft被使用的时候,字体是由使用这些字体的应用程序来渲染,而不是像在X11 core font system中那样由X server负责渲染.

    在xft中用fontconfig库来决定字体该如何渲染.它包括系统定义的配置/etc/fonts/fonts.conf 以及用户自定义配置~/.fonts.conf.

    如果要自己添加字体,可以把字体文件或目录添加到/usr/local/share/fonts/.网上教程之类的通常是这样做.不过你也可以直接添加到~/fonts/这个路径下,该路径被/etc/fonts/fonts.conf默认的访问.所以你只需要把新添加的字体拷到~/.fonts就好了.比如我就把windows下的C:\WINDOWS\Fontssimsun.ttc以及simshei.ttf文件考到了上述目录下.这样我就可以在linux中使用windows下的宋体,新宋和黑体.

    字体描述:采用如下格式[2]:
    <family>-<size>:<name>=<value>...
    比如
    times-12:bold:slant=italic,oblique

    常用命令:
    • fc-list pattern 显示符合指定条件的可用字体.比如
      "fc-list ":lang=zh-CN" family style weight file"就显示所有系统中可用的简体中文字体的名称,式样,权重以及包含该字体的文件的完全路径.
    • fc-cache option 为fontconfig系统建立字体cache
      "fc-cache -fv"强制(f,force)建立cache(哪怕之前的还up-to-date),v是verbose
  2. X core font system

    字体描述: X logical font description (XLFD)[3][4].
    比如75-dpi, 12-point, Charter font的字体用XLFD格式描述出来便是:
    -bitstream-charter-medium-r-normal--12-120-75-75-p-68-iso8859-1

    常用命令:

    • xfontsel 选定并显示X字体的字符
    • xfd 显示指定X字体的字符
    • xlsfonts 输出匹配给定条件的X字体名称
    • mkfontdir 创建指定(默认当前)目录下X字体索引
    • mkfontscale 创建指定(默认当前)目录下矢量字体索引
参考
[1] Installing and Configuring Fonts
[2] An Xft Tutorial
[3] X Logical Font Description Conventions
[4] X logical font description -- wikipedia

No comments: