Blog on 27th Floor
主页 随便 电脑 电影 社会 阅读 下载 本站 存档
主页 随便 电脑 电影 社会 阅读 下载 本站 存档

X字体配置的小心得

06/11/06。  cathayan.org版权所有,保留一切权利。转载请保留此说明。谢绝商业转载。


想当初Redhat 7-8-9的时代,汉化美化文章满天飞,但最终结果实在是不满意,基本是费了很大功夫,最后还是不一定能用。但在那个时代之后,字体技术也是突飞猛进,到现在已经很简单了,所以脑子里记下的东西反而更少。

先是X的核心字体,老辈子的技术,目前多数X程序都已经不再使用,但还有个xmms,还有一些终端仿真程序,像rxvt一类还在使用。对这种字体的要求是只要有,也就可以了。

核心字体可以用xlsfonts来查看,西文的不说,加上 |grep gb2312来查看gb码的字体,形式是:

-misc-simsun-medium-r-normal--0-0-0-0-c-0-gb2312.1980-0

至于它是什么意思已经完全不重要了,以前这些是相当地重要,还要改一些参数以便有斜体,粗体等。现在只要看到simsun的名字,以及后面gb2312-1980-0这个编码就行了,表示有这个字体,支持这种编码,一切OK。如果要看unicode编码,它这里用的是iso10646。

这种字体的配置是首先把字体放到字体目录下,如/usr/share/fonts下面建个zhfonts目录就行。放后字体文件,然后在这个目录下执行ttmkfdir,或者mkfontdir,它们有什么区别不清楚,总这会在字体目录下生成fonts.dir/fonts.scale这两个文件之一,然后拷贝成另外一个即可。这两个文件里面第一行是行数,下面前面是字体文件,后面是核心字体名,一个文件可能对应多个字体名。这里的工作就结束了。如果没有那两个程序,就装一下xfonts-utils这个或其他什么包吧,Debian直接搜就出来了。

然后是新的字体技术,一般说是xft,支持这个就是使用这种技术的了。有xft/freetype/pango/fontconfig等几种不同的技术,依稀记得说是pango管布局,freetype管画线,xft是编程的,fontconfig是配置管理的(不对请指出啊)。这都完全不重要了,知道名字就行。

这个新技术是更加简单的。在字体目录下放好字体文件,执行:fc-cache -v -f就可以看到系统一个个目录地过滤这些字体,找出其中能用的,无须重启,然后在应用程序的配置中就可以看到并使用这些字体了。

X需要知道字体目录在哪里,这个在/etc/fonts下面设置,文件有两个,fonts.conf和local.conf,前一个是系统的,推荐不修改,有时候升级系统时还要替换成新的,某次就是这个文件在升级时没有替换,造成了一些问题。自己改的东西可以放在locla.conf里面,这个方法应该没有问题。当然也可以在用户目录下建一个.fonts.conf。

这两个文件开头就是dir的设置,一行一个,用< dir >标签包上即可,把自己的目录加进去即可。我观察似乎这些目录是可以自动包含子目录的。

另有一个设字体路径的是在X的设置中,我一直没搞懂这两个具体区别是什么。这个在/etc/X11/xorg.conf里面,section files,一长串FontPath。我一般是把fonts.conf里的路径在这里又重复一遍(估计比较土)。这里似乎还有个顺序问题,可以把自己想优先使用的放得靠上一些(可能是民科了)。

在fonts.conf文件(或者local.conf或者~/.fonts.conf)中,一个比较重要的工作就是指定字体的查找顺序,也就是程序在需要字体时按一个什么的顺序来过滤这些字体文件。一般前面放几个西文字体,紧接自己最想用的中文字体。比如:

1
2 <alias>
3 <family>sans</family>
4 <prefer>
5 <family>Bitstream Vera Sans</family>
6 <family>Arial</family>
7 <family>SimSun</family>
8 <family>WenQuanYi Bitmap Song</family>
9 </prefer>
10 </alias>
11

这里的Prefer就指定了当遇到sans字体时按Bitstream/arial/simsun/wqy这个顺序来找,如果是英文就用bitstream,如果是中文的,优先就是simsun了。用同样的方法指定Serif和Mono字体。这些文件都是xml,看意思其实也算是很明白的。

这个Sans,据说是法文,意思是without,它全称是sans-serif;而这个serif一般称为有衬线的,有修饰的,其实就是西文字体在笔划终端处的突出的尖。这个的来历是在石头上刻字时进刀或出刀的地方,久之形成了风格。而Sans自然就是没这个装饰的字体,这算是字体的两大流派。一般咱们的宋体,对岸及日本称为明体的,也带这个装饰。但刻石时完成可以用其他刀法来避免这个尖的出现。

一般认为屏幕上Sans,也就是圆头圆脑的字体比较好,而印刷时有衬线比较好。而Mono类,就是等宽字体,一般编程时用,这种字体每个字母都占同样的宽度,w和l完全一样宽,而一个中文正好是两个字母宽。当然编程还有其他要求,比如LlIi1/Oo0这些都要能清楚地分辨。

Linux这里有两套自由字体,Bitstream和DeJavu,样子基本一致,据说de系字符要多一些,推荐使用这两个。下面的fonts.conf语法可以把这个字体指定到sans上:

1
2 <match target="pattern" >
3 <test name="family" qual="any" >
4 <string>sans</string>
5 </test>
6 <edit mode="append" binding="strong" name="family" >
7 <string>DejaVu Sans</string>
8 </edit>
9 </match>
10


这里的字体是XFT字体,用名字就可以了。可以用fc-list命令来查看系统上有哪些xft字体。

另外一个语法是粗体:

1
2 <match target="font">
3 <!-- check to see if the font is just regular -->
4 <test name="weight" compare="less_eq">
5 <int>100</int>
6 </test>
7 <!-- check to see if the pattern requests bold -->
8 <test target="pattern" name="weight" compare="more_eq">
9 <int>180</int>
10 </test>
11 <edit name="embolden" mode="assign">
12 <bool>true</bool>
13 </edit>
14 </match>
15

这一段其实在标准的fonts.conf里面就有,但Debian下缺少会设成200,于是网页上的粗体就显示不出来,所以才要自己再设成180。其实在印刷上中文没有粗体这个说法,也没有斜体,在西文用粗体的地方中文一般用黑体,在用斜体的地方中文可用楷体或仿宋体,正文一般是宋体。

还有一段是关闭中文小字号的AA,也就是防锯齿,就是显得虚的那种,总之是小字号时点阵比较清楚漂亮些。


1
2 <match target="font">
3 <test compare="contains" name="lang">
4 <string>zh-cn</string>
5 <string>zh-tw</string>
6 </test>
7 <test compare="more_eq" name="pixelsize" qual="any">
8 <double>11</double>
9 </test>
10 <test compare="less_eq" name="pixelsize" qual="any">
11 <double>15</double>
12 </test>
13 <edit mode="assign" name="antialias">
14 <bool>false</bool>
15 </edit>
16 </match>
17


中间指定的11-15点,这个依各人喜好设置。我记得Win2k上中文直到18点都不开AA,其实很不好看。simsun好看的原因之一也就是它内置了比较全比较多的点阵字体,WenQuanYi也是这样,效果也不错。这个关闭AA也可以针对字体来设置,而不是语言。

还有英文用了和中文一样的宽度等问题,都可以在fonts.conf里面设置,这个就不说了。

最后是应用程序的设置,通常xft程序都带有字体设置,指定某个字体给它用就是了,一般可以指定一个好看的西文字体,然后中文就会按fons.conf里的顺序来自动查找。桌面上的窗口用的字体一般也有设置,Gnome/xfce都有,可以指定一下。Firefox的字体设置要分中文和西文。而gvim的设置是写在.gvimrc里的,可以命令模式下用set guifont?来查看。


06/11/06 10:49:46,由cathayan发表。目录:电脑

1条评论

现在使用的是GTK2,而不是GTK了,所以很多字体的美化步骤都省略了

http://izumo.class@gmail.com kundong 于 06/12/06 22:05:43 发表. 


这篇文章已经关闭,不能添加评论和投票
I am watching and will delete all spam.

我的E-Mail


Copy&Paste Exchange

访问CPeX Group

订阅Feed

订阅Feedburner
Feedsky订阅
本站订阅

请登录

导航

cathayan.org Web

最新贴

RIME 小狼毫/鼠须管的极点及五笔拼音配置
Software that rocks or sucks less
一棵热带的树换新叶的过程
几个有用的Vim招术
论语七 述而
Nomacs 图像浏览器
Windows 文件校验
Windows 10 文件批量命名简单方法
Windows 10 文件删除高级操作
本站也算是有响应式设计了

最新评论

Powered by

Powered by Nucleus CMS

版权声明

Creative Commons License
Blog on 27th floor by Cathayan is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
Powered by Nucleus CMS v3.71. Best view with Mozilla browsers.