Contents

[hide]

前言 :

Arch Linux 是一个定制性很强的发行版,其设计的哲学决定了Arch Linux 不太可能像SUSE、Fedora、Mandriva等发行版一样预设了一套完善的字体配置,Arch 的设计哲学更像Gentoo Linux。Arch Linux需要用户进行一定的定制,用户在定制、配置过程中能学到更多的知识,这也是Arch Linux的设计哲学之一。

一 .字体相关库的简介

1 . LibXft

libXft库是为了给X应用程序提供一个能访问FreeType字体光栅化引擎和X渲染扩展的、便于使用的接口,鉴于FreeType没有提供配置和定制 字体的功能,Xft也担负了这一任务。Xft提供了新的字体命名约定、复杂而精密的字体匹配和选择机制,并对相关功能进行充分的抽象,从而使得一般应用程 序既能够从使用X渲染扩展的文本输出获得益处,又能在不支持这一扩展的X服务器上正常工作。

libXft 是画字函数库, 它使用 Fontconfig match 到了所要的字型之后, 来决定该如何画这些字。libXft 会看情况而决定要不要使用 core protocol 或 XRender 来画字。libXft 主要作GTK 2 (GTK < 2.8.0)程序,QT 程序的画字函数库。

2 .Cairo

一个支持多种输出的向量图形库,也就是说,cairo是种画图的工具库,他可以向多种设备上画图.可以输出到pdf,ps,xlib,XCB,win32,svg。基于GTK ( = > 2.8.0)的程序用cairo 画字而不再使用libXft 。

3 .Fontconfig

Fontconfig 包含两个基本的模块,即读取XML文件并建立内部配置的配置模块和接受请求的字体样板并返回最接近所需字体的匹配模块。

4 .Freetype

Freetype库是一个完全免费 ( 开源 ) 的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType, OpenType, Type1, CID, CFF, Windows FON/FNT,X11 PCF 等。支持单色位图 (homochromous bitmap) 、反走样位图( anti-alias bitmap )的渲染。 Freetype 是高度模块化设计的程序库。Freetype 提供 libXft/cairo 如何画字的信息,包括处理 anti-aliasing 或 hinting. 因此 freetype 的改变会影响到 libXft/cairo 画出来的字,而 Fontconfig 的改变会影响到 libXft/cario 如何去选字来画。

5 .Pango

Pango 是个开源的整合到GTK+2的渲染国际化文本文件的库,pango 的名字是由 希腊语 "Pan" (Παν; lit. all) + 日语 "Go" (語; lit. language)组合成。也就是All language,Pango负责多国语言文本(如同一个文本文件中由英文,日文,中文等不同的语系组成)的渲染。需要注意的是Pango属于高级的库,不参加画字的过程。


 

二 .基本概念

参考及引用文献: 关于字体的一些基本概念中文CleraType字体CleraType技术

1. 点阵字体矢量字体

点阵字体也叫位图字体,其中每个字形都以一组二维像素 信息表示。由于位图的原故,点阵字体很难进行缩放,特定的点阵字体只能清晰地显示在相应的字号下。但对于 12-16px 这样小的汉字,点阵字体常常比其它类型的字体在屏幕上更好的显示效果。常见的点阵字体有 bdf,pcf,fnt,hbf 等格式。

对于常见的计算机操作系统,字体的显示算法需要一些字体的信息来优化屏幕显示效果,英文称为 hinting。汉字由于笔画复杂,所以 hinting 的方式与西文截然不同。使用在汉字字体中嵌入预先制作的点阵位图既可以有效地避免 hinting 算法带来的计算开销,同时屏幕上显示的汉字边缘清晰,易于阅读。


矢量字体中每一个字形是通过数学曲线来描述的,它包含了字形边界上的关键点,连线的导数信息等,字体的渲染引擎通过读取这些数学矢量,然后 进行一定的数学运算来进行渲染。这类字体的好处是字体可以无限放大而不产生变形。矢量字体主要包括 Type1 和 TrueType 等几类。

2. 内嵌点阵字的字体

由于CJK字体的结构复杂,在小号字体只有使用点阵才能有清晰的显示效果,但是点阵字体很难进行缩,而且线条单一,在大号字体显示时就显得苍白无力。把点阵字体内嵌到矢量字体就能发挥两者的优点,并且也弥补了两者的不足。小号字体时清晰明朗,大号字体时字型饱满,形态丰富。常见的内嵌点阵字的字体有:北京中易电子公司宋体SimSun 、方正宋体(FZSongti)、文鼎PL上海宋(Uming)、Firefly的文鼎PL新宋(AR PL New Sung)等。

3. Hinting 与 Autohinter

Hinting (字体微调) 是用来最佳化字型显示的方法。由于屏幕的像素有限,向量字型的缩放需要有更多的考虑, 例如当一条线位在两个像素格子中间时, 该取左边的格子还是右边的格子? 如果这方面的控制没有做好,就常常会出现字型的衬线没有对齐,或是小字歪七扭八的情况。 Hinting 是额外的信息, 它告诉 renderer 该如何处理这些细节的部份,使得向量字在小字的时候能够好看。也因此 Hinting 是非常费时费人力的工作,TrueType 字型很多,但是有良好 Hinting 的字型不多。拙劣的 Hinting 就会让字变得很难看。

为了稍微改善这个问题,freetype 有 autohint 的功能,可以自动为没有 hint 的字型做 hinting 的工作。另外由于 TrueType 的 hinting 是有专利的,不能完全自由地使用, autohint 就不受这个限制。autohint 自然无法做得像人力的 hint 一样好,不过至少比没有 hint 要好些。话虽如此,对于许多笔划复杂的文字 (如中文) 目前 freetype 的 autohint 还做得不甚完美,而因为建立完整的 hinting 的难度,即使是英文字,原本就很高,内建有 hinting 的中文字型就少之又少了。所以常常有人抱怨中文字在屏幕上很难看,就是没有理想 hinting, 或者是使用了 autohinter 所造成的一些反效果。

4. AA(Anti-aliasing)

Anti-aliasing (字体抗锯齿) 是将字体在后台先以数倍的大小来绘画,然后再缩成想要的大小,未满一格的格子用灰阶补点。由于原本 X 所支持的 logic 运算不敷使用,所以才用 XRender 的 extension 来达成目的。

Anti-aliasing 会给人一种朦胧的感觉,习惯了Windows XP 下清晰,锐利的字体显示时,Anti-aliasing 会让人不太适应,会让用户觉得Linux下的字体显示不如Windows XP。但是,其实 Anti-aliasing是一种很先进的显示技术 ,当长时间显示器上阅读的时候,Windows XP 下的锐利的字体显示风格,会让眼睛更加容易疲劳,使用Anti-aliasing,字体的显示更加柔和,更加适合长时间的在显示器上阅读文档,减少眼睛的疲劳。

5. Windows® 下的 ClearType 效果

微软提出和改善了 ClearType 技术(字体平滑),归因于液晶显示器的普及,以及苹果公司和 Linux 的竞争。

和 CRT显示器相比,液晶显示器的最大缺点是:插值显示效果惨不忍睹。要达到最好的显示效果,液晶必须显示于屏幕的特定分辨率下,就是对应于它原始发光点大小的显示分辨率,即最大分辨率。而在最大分辨率下,文字都变得很小,这对于长时间的阅读是一种灾难。而原来 Windows 下未经优化的点阵大字体方案明显粗糙而难看,令人无法接受。于是微软推出了 ClearType。

Windows® 下的 ClearType 技术相当于 Linux 下的 Hinting 和 Anti-aliasing,也相当于苹果公司的 Apple Advanced Typography (AAT) 技术。它也是一种字体渲染技术。

Windows Vista 和 Windows 7 已用 ClearType 来取代传统的黑白、锐利的英文字体显示和点阵CJK 显示。

当前,Linux 下也可尝试使用 ClearType 显示效果。参看 Cleartype

三 .字体简介

1 自由(free)的英文字体

Bitstream vera fonts,DejaVu fonts,MS True Type core fonts 等.

DejaVu fonts[community repo]是在Bitstream vera fonts release 1.10 的基础上进行不断扩充的字体。

MS True Type core fonts[ttf-ms-fonts]包含了Arial, Courier New, Times New Roman, Verdana等系列字体的总称。MS True Type core fonts 的licence 是EULA,可以合法的免费使用(感谢微软,嘿嘿!)。


 

2 自由中文字体

wqy-bitmapfont

wqy-zenhei

ttf-arphic-ukai

ttf-arphic-uming

ttf-fireflysung

3 不合版权的中文字体

LingSong :Tahoma+Simsun的“杂交”字体,Tahoma版权属于微软,Simsun字体的版权属于 北京中易电子公司。

Vera Sans YuanTi:Bitstream Vera+simsun点阵+方正准圆+方正粗圆的“杂交”字体。

四 .设置实例

1 开启/关闭 AA ,Autohint 与 Hinting

a. 全部的字体使用autohint 和 antialiasing,渲染度为 hintfull ,通常这是一个很好的全局默认设置。也可以根据个人喜好使用渲染度为hintslight。


 

       <match target="font">
                <edit name="autohint">
                        <bool>true</bool>
                </edit>
                <edit name="hintstyle">
                        <const>hintfull</const>
                </edit>
                <edit name="antialias">
                        <bool>true</bool>
                </edit>
        </match>


b. 小于16号的MS core fonts,关闭Antialiasing 和 Autohint,(使用hinting) 。可以根据个人喜欢调节字号的大小。


 

        <match target="font">
                <test name="family">
                        <string>Andale Mono</string>
                        <string>Arial</string>
                        <string>Comic Sans MS</string>
                        <string>Georgia</string>
                        <string>Impact</string>
                        <string>Trebuchet MS</string>
                        <string>Verdana</string>
                        <string>Courier New</string>
                        <string>Times New Roman</string>
                        <string>Tahoma</string>
                        <string>Webdings</string>
                        <string>Albany AMT</string>
                        <string>Thorndale AMT</string>
                        <string>Cumberland AMT</string>
                        <string>Andale Sans</string>
                        <string>Andy MT</string>
                        <string>Bell MT</string>
                        <string>Monotype Sorts</string>
                </test>
		<test name="pixelsize" compare="less_eq">
				<double>16</double>
		</test>
                <edit name="autohint">
                        <bool>false</bool>
                </edit>
                <edit name="antialias">
                        <bool>false</bool>
                </edit>
        </match>

2 英文字和中文字等宽

TrueType 字体分成两种,一种是可变字距,也就是每个字符宽度不一样,比如 "x" 与 "i",这两个字符就不等宽,它是在每个字符中记录该字符的宽度,大多数的 TrueType 字体都是这种格式。

另一种就是固定字距。也就是每个字符宽度都一样,这样显示或打印時,用会有对齐效果,比较美观,在英语环境中,不会有任何问题,但是CJK 的等宽字体,包含『半角英数字符』与『全角 CJK 字符』,字体引擎会把全角字宽度套用在半角字上,造成半宽字看起来间距太大。

a. 让字体引擎(FreeType)取消CJK字体的指定宽度

	<match target="font">
                <test target="pattern" name="lang" compare="contains">
                        <string>zh</string>
                        <string>ja</string>
                        <string>ko</string>
                </test>
                <edit name="spacing">
                        <const>proportional</const>
                </edit>
                <edit name="globaladvance">
                		<bool>false</bool>
                </edit>
        </match>

3 字体替换

一些网页编写时候,对使用的字体预先设定,(如英文部分使用了simsun,使得英文显示很不美观)所以可以使用字体替换使得字体显示更美观。

a. 把Simsun , SimSun-18030 , AR PL ShanHeiSun Uni等这个几个中文字体的英文部分,用 Tahoma,Arial 等替换。

	<match target="pattern">
		<test name="family">
			<string>SimSun</string>
			<string>SimSun-18030</string>
			<string>AR PL ShanHeiSun Uni</string>
			<string>AR PL New Sung</string>
			<string>MingLiU</string>
			<string>PMingLiU</string>
		</test>
		<edit binding="strong" mode="prepend" name="family">
			<string>Tahoma</string>
			<string>Arial</string>
			<string>Verdana</string>
			<string>DejaVu Sans</string>
			<string>Bitstream Vera Sans</string>
		</edit>
	</match>


 

b. 把 AR PL ShanHeiSun Uni , AR PL New Sung 字体中12~16号的中文字用 WenQuanYi Bitmap Song 点阵字替换, WenQuanYi Bitmap Song 比 AR PL ShanHeiSun Uni , AR PL New Sung中的内嵌点阵更加完善,美观。


 

	<match target="pattern">
		<test name="family" qual="any">
			<string>AR PL ShanHeiSun Uni</string>
			<string>AR PL New Sung</string>
		</test>
		<test compare="more_eq" name="pixelsize" >
			<double>12</double>
		</test>
		<test compare="less_eq" name="pixelsize" >
			<double>16</double>
		</test>
		<edit name="family" mode="prepend" binding="strong">
			<string>WenQuanYi Bitmap Song</string>
		</edit>
	</match>

4 使用内嵌点阵字

a. 当字体有内嵌字体时,优先使用内嵌字体。

	<match target="font">
		<edit name="embeddedbitmap" mode="assign">
			<bool>true</bool>
		</edit>
	</match>

注意:libXft 还没有embeddedbitmap选项的支持。可以到这里得到libXft2.1.8.2的embeddedbitmap patch,通过ABS重新编译安装libXft 。

5 必须使用hinting的字体

a. 有些 CJK 字体要the byte code interpreter (hinting)才能正确的显示,因为这些字体使用了hinting的一些技术制作。常见的MingLiu 就是这类字体。


 

        <match target="font">
                <test name="family">
                        <string>MingLiU</string>
                        <string>PMingLiU</string>
                </test>
                <edit name="autohint">
                        <bool>false</bool>
                </edit>
                <edit name="hinting">
                        <bool>true</bool>
                </edit>
        </match>

添加字体

现在为 Linux 系统添加字体要比以前容易得多。下面我帖一篇小技巧,以便帮助一般用户更好地理解如何为自己的 Linux 系统添加字体。首先必须要了解我们把字体放在了哪里。通常我们会把它们放在:

  • /usr/share/fonts
  • /usr/X11R6/libs/X11/fonts

这将会让每一个系统用户都可以使用它们, 当然这需要使用根用户权限。将它们拷贝到:

  • ~/.fonts

目录也不失为一个好主意。

有一些字体已经为使用 Arch Linux 的用户预先做好了 pkg 包,可以通过以下命令来搜索它们:

pacman -Ss fonts

如果你需要安装它们,则运行:

pacman -S artwiz-fonts ttf-cheapskate ttf-ms-fonts

这些字体将会被安装到 /usr/X11R6/libs/X11/fonts 目录。为了能够正确显示字符,推荐CJK(中文/日语/韩语)用户同时安装“ttf-arphic-uming”和“ttf-arphic-ukai”字体。

另一种选择是使用KDE控制中心里的KDE字体安装。如果你正在使用KDE,它的效果将非常完美。

当然你也可以手动将字体拷贝到上述三个目录,然后以根用户身份运行:

fc-cache -vf

一般来说,你可以方便地在诸如 Gnome、Xfce4及KDE等 X 窗口环境中使用这些字体。然而,一些 GTK1 和旧的程序不支持 fontconfig 。(是否真的如此呢?希望大家可以查阅一下相关资料并指正。)你需要在你的字体目录中运行如下命令(当然需要启动终端来运行):

  mkfontscale
  mkfontdir
  ln -s /usr/X11R6/lib/X11/fonts/encodings/encodings.dir yourfontdirectory/encodings.dir
  

之后通常你需要重启 X。

如果你想分享你的字体或不希望进行上述手工操作,那么你可以自行制作 Arch 安装包。首先以 tar.bz2 格式打包你需要安装的字体,然后修改下面的 PKGBUILD 和 .install 文件,通过 ABS 方式来完成安装:

# PKGBUILD
  pkgname=fonts-extra
  pkgver=1.0
  pkgrel=1
  depends=('xfree86')
  pkgdesc=\"Fonts extra\"
  source=(fonts-extra.tar.bz2)
  install=fonts-extra.install
  build()        {
    mkdir -p $startdir/pkg/usr/X11R6/lib/X11/fonts/local
    mv $startdir/src/*.ttf $startdir/pkg/usr/X11R6/lib/X11/fonts/local
  }
# fonts-extra.install:
  # arg 1:  the new package version
  post_install() {
    echo -n \"updating font cache... \"
    /usr/bin/fc-cache
    cd /usr/X11R6/lib/X11/fonts/local
    /usr/X11R6/bin/mkfontscale
    /usr/X11R6/bin/mkfontdir
    ln -s /usr/X11R6/lib/X11/fonts/encodings/encodings.dir /usr/X11R6/lib/X11/fonts/local/encodings.dir
    echo \"done.\"
  }

  # arg 1:  the new package version
  # arg 2:  the old package version
  post_upgrade() {
    post_install $1
  }

  # arg 1:  the old package version
  pre_remove() {
    /bin/true
  }

  op=$1
  shift

  $op $*


 

在几位朋友的耐心帮助下,终于使xmms能正确显示汉字了。大家的劳动成果不敢独吞,特总结出来供有相同问题的朋友参考。

一、安装simsun字体。
1、复制simsun.ttc到字体目录,并改名为simsun.ttf。
#mkdir /usr/fhare/fonts/truetype/simsun
#cp /mnt/c/fonts/simsun.ttc /usr/share/fonts/truetype/simsun/simsun.ttf
2、安装ttmkfdir软件包。
#apt-get install ttmkfdir
3、在simsun.ttf所在文件夹建立fonts.scale和fonts.dir文件。
#ttmkfdir
#cp fonts.scale fonts.dir
4、在XF86Config-4文件中设置字体路径。
#vi /etc/X11/XF86Config-4
在 # if the local font server has problems, we can fall back on these后添加如下一行:
FontPath "/usr/share/fonts/truetype/simsun

二、设置gtk使用simsun字体,以下方法任选一种,优先级依次增大。
1、编辑/etc/gtk/gtkrc.zh_CN文件。
#vi /etc/gtk/gtkrc.zh_CN
修改相关代码如下:
-*-simsun-medium-r-normal--16-*-*-*-*-*-zh_CN.GB2312
注:GB2312可以用GBK替换,因为GBK会导致Firefox中Flash菜单无法显示,所以我用了GB2312。
2、复制/etc/gtk/gtkrc.zh_CN文件到用户根目录下,改名为.gtkrc.zh_CN,并照方法1修改相关代码。
#cp /etg/gtk/gtkrc.zh_CN ~/.gtkrc.zh_CN
注:~/代表你要修改的用户的根目录,他只对该用户起作用,优先级最大。

三、设置默认字符编码,以下方法任选一种,优先级依次增大。
1、#dpkg-reconfigure locales
安装你所需要的字符编码,并将默认字符编码选择为第二步中设置的字符编码。
2、#vi /etc/X11/Xsession.d/20start-GB2312
添加如下代码:
export LC_ALL=zh_CN.GB2312
export LANG=zh_CN.GB2312
注:20start-GB2312文件名可以任意起,GB2312可以用GBK替换,要与步骤2中设置的字符编码相同。
3、在用户根目录下修改.xsession文件,如果没有就新建。
#vi ~/.session
添加方法2中的代码。
注:~/代表你要修改的用户的根目录,他只对该用户起作用,优先级最大。

经过以上三步,你的xmms等基于gtk的程序应该能够显示中文菜单了,注销登陆X,启动xmms试试吧。这样处理完,xmms菜单中的字体选项选种支持双字节字体后,能直接选择并支持simsun字体了。
最后感谢gnk007、zerolin、starboys和jhuangjiahua朋友的耐心帮助。
# posted by Benimas @ 2005-04-07 19:13 评论(1)


 
支持TrueType的X字体引擎大盘点

2005-3-19 星期六(Saturday) 晴

2005年2月19日17:23星期六 [Linux]
支持TrueType的X字体引擎主要包括freetype、xtt、xfs和xft四种,以前一直不知道这四个字体引擎究竟有什么区别也不明白如何配置,经常混为一谈,庆幸自己突然间明白了一点点,是对是错还需看官检验^_^。


理论知识

freetype分两个主要阶段的版本:1.x和2.x。Freetype 是开源字体渲染引擎,并不只为X设计。它的功能就是读取Truetype字体信息,如大小、分辨率、编码等,然后渲染成所需的位图数据输出。2.x与1.x 相比最大的差别就是加入了抗锯齿功能。

其中freetype和xtt是X的内部模块,都是使用freetype1来渲染字体。

xfs以服务的形式出现,也可以作为X的内部模块,使用freetype2来渲染字体。

xft也属于一个外部服务程序,以动态链接的形式提供,也就是说在需要的时候才被加载,同时也只有xft支持antialias。xft使用FontConfig来自定义和选择字体。

freetype、xtt和xfs可在X下用xlsfonts列出当前可用的X核心字体,xft可用fc-list列举当前可用字体。

这么多引擎到底用哪个好呢?freetype推荐使用2.x版本,所以如果当你使用的程序不支持xft的时候最好使用xfs。而对于中文的支持其实xtt的效果最好,因为对于小字体用函数描述法算出来的中文字体效果不能让人满意,所以很多中文字体公司就在Truetype字体里嵌入了位图字体。这些位图字体需要用特殊的方式读出来,所有的引擎中就只有xtt能做到这一点。但xtt有个问题就是速度太慢,反正我使用debian时使用xtt的时候使用 SimSun字体很慢的,但愿是我的配置有问题吧。当然了,能使用xft的时候一定要使用xft哦,xft显示出来的字体确实很漂亮,尤其是使用 Microsoft的Tahoma字体效果特别明显,你可以用fvwm配置着试一下,使用X核心字体-microsoft-tahoma-medium- r-normal--12-*-*-*-*-*-iso8859-1,然后再使用FontConfig来渲染试下xft:Tahoma:Medium: Size=12:encoding=iso8859-1,看看效果就知道了,gtk2和kde目前都采用xft来显示字体。


配置

freetype 和xtt的配置很简单,只要在/etc/X11/XF86Config-4(XFree86)或/etc/X11/xorg.conf(xorg)文件中加入FontPath 您的字体目录然后加载相应的引擎模块即可,注意的一点是freetype和xtt都是用freetype1来渲染字体不能同时使用的,只能加载其中一个模块。添加新字体时只需要在你新加的字体目录中创建fonts.dir和fonts.scale文件即可,创建方法可使用mkfontdir和 mkfontscale或者ttmkfdir,据说mkfontdir和mkfontscale创建的fonts.dir和fonts.scale有问题,但我使用时好象没遇到过问题,如果不行的话就用ttmkfdir创建fonts.scale然后再复制一个fonts.scale为 fonts.dir,具体操作可以看看man pages,进入你新建的字体目录下执行mkfontdir和mkfontscale或者执行ttmkfdir && cp fonts.scale fonts.dir即可。(注:如果你不知道将FontPath和LoadModule加在什么地方的话就别用X了哈)

xfs 的配置大同小异,xfs的配置文件为/etc/X11/fs/config。如果需要添加字体也需要创建fonts.dir和fonts.scale,创建方法同上,注意这儿字体目录不是添加在/etc/X11/XF86Config-4或/etc/X11/xorg.conf,而是将字体目录添加到 /etc/X11/fs/config中的catalogue那一行中,然后重启xfs服务/etc/init.d/xfs restart,不过你要注意在你的/etc/X11/XF86Config-4或/etc/X11/xorg.conf中是否加过了FontPath "Unix/:7100",如果没有的话自己手动加上吧。

xft的配置稍微麻烦一些,配置文件为/etc/fonts/fonts.conf,有点累了,不想讲了,看看我的另外一篇文章“X的中文显示配置”吧。添加新字体的话执行一下fc-cache -fv 你的新字体目录即可。

添加了新字体后,如果是xft可以用fc-list看看你新添加的字体应该已经列出来了(这个程序是基于console的,你在控制台就可以检查),如果是使用freetype、xtt或xfs的话你需要进入X然后执行xlsfonts检查是否列出了你新加的字体。


使用

用fvwm来检验效果是最好的了,你可以打开~/.fvwm/.fvwm2rc也可以在fvwm下打开fvwm的console模块进行试验,举个例子可以简单地加一个中文的菜单条目,然后配置菜单的样式。

如果只试验freetype你可以编辑你的XF86Config-4或xorg.conf加载freetype,注释掉FontPath "unix/:7100",如果只试验xtt也是编辑它但不同的是加载xtt而不是freetype(如果有LoadModule freetype请注释掉),如果只试验xfs的话就只留下FontPath "unix/:7100"同时去掉加载freetype或xtt的行。

对于freetype、xtt或xfs的使用都是一样的,设置fvwm的菜单样式可以这样设置MenuStyle * Font "-adobe-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,-misc-simsun-medium -r-normal--12-*-*-*-*-*-gbk-0,-*-"(对于iso8859-1字符集的文字使用helvetica字体显示,对于 gbk-0字符集的文字使用simsun显示,其它的自动查找吧)。

如果你要在fvwm中使用xft的话不用修改XF86Config- 4或xorg.conf,直接这样设置fvwm的菜单样式MenuStyle * Font "xft:Tahoma:Medium:Size=12:encoding=iso8859-1",如果要显示中文则这样设置MenuStyle * Font "StringEncoding=gbk-0:xft:SimSun:Medium:Size=12:encoding=iso10646-1",使用 xft实现刚才的功能(中英文使用不同的字体显示)我一直没找到方法,如果你知道的话一定记得告诉我,在此谢过了。


结束语

呵呵,大概知道的就这些了,其中某些理解或许还是错误的,如果你发现了其中的错误还请不吝赐教。