用infinality美化你的字体

其他Linux/Unix/BSD/OSX等发行版讨论
头像
sgsdxzy
帖子: 430
注册时间: 2008-07-19 11:14

用infinality美化你的字体

#1

帖子 sgsdxzy » 2012-03-30 19:25

本人第一次写教程,有错误之处还请大家指正。本文讲的是字体设置,理论上设置的不对不会对系统造成致命伤,但我曾把cairo搞坏进入X什么也显示不出来……如果遇到问题,至多是X显示问题,在终端下回滚:pacman -S freetype2 fontconfig cairo libxft 应该能解决。我实践过多次,都能用以上方式恢复。本方案仅作为参考,具体见infinality官方主页与wiki。如果跟随本教程造成别的损失,请自负责任。
首先安装infinality,在AUR中:yaourt -S freetype2-infinality fontconfig-infinality 。如果是64位,还有lib32-freetype2-infinality。至于可选依赖libxft-lcd,现在这包已经从AUR中删除了,我试过影响不大。可以考虑采用libxft-ubuntu和cairo-ubuntu,这个cairo-ubuntu还有一个好处:已经打好了遵循全局字体设置的补丁,不会出现像自由建客所说的gtk程序不听话的问题。注意:cairo这个部件如果不熟悉不要轻易修改代码与动编译选项!别的出错至多字体显示问题,cairo能使整个桌面环境无法显示!
然后是设置。infanality的新版本采用了有别于全局的设置方式:一切设置都在/etc/fonts/infinality中,原本的/etc/fonts中的设置不再有效(除了一个例外:local.conf,但是新版infinality已经不需要这个文件,这点wiki上有误导)。infinality提供了一些预设制,有:debug(如其名)、infinality、linux、osx、osx2(苹果风格)、win7、win98、winxp。如果想使用苹果或windows的风格,请安装相应字体,并确保你取得了对应的字体授权。我们这里以linux为例。infinality的默认设置没有考虑到中文,所以我们要做些修改。
首先,进入/etc/fonts/infinality/styles.conf.avail中,你能看到以上的预设风格。我们先把linux设置复制一份(以下所有操作均需root权限):

代码: 全选

mkdir linux-zh
cp linux/* linux-zh
然后进入linux-zh中,可以看到一系列配置文件。这和原来的fontconfig是一样的,开头数字越大优先级越高。我们打开20-aliases-default-linux.conf,可以看到预设的字体是DejaVu Sans、Liberation Serif、Liberation Mono,这三套字体都没有中文,所以我们可以在其下加上一套中文字,比如文泉驿微米黑:

代码: 全选

…………
 <alias>
        <family>sans-serif</family>
        <prefer>
            <family>DejaVu Sans</family>
            <family>WenQuanYi Micro Hei</family>
        </prefer>
    </alias>
…………
mono字体用WenQuanYi Micro Hei Mono。
然后跳过一些文件(当然你有兴趣也可以进去看看),我们直奔显示设置:
50-base-rendering-inf-osx-lin.conf 此文件是默认的渲染方式,默认的设置也不错了。不建议修改这个文件,主要是设置会被后面的两个61文件覆盖,只对两个60中没列出的少量字体有效。
60、61分别定义了truetype字体、非truetype字体的渲染。为了让中文更好显示,我们也仿照他来一份:

代码: 全选

cp 60-group-non-tt-fonts.conf 62-group-chinese-fonts.conf
cp 61-group-non-tt-rendering-inf-7-xp-lin.conf 63-group-chinese-fonts-rendering.conf
其中的62、63比61大就行。
修改62-group-chinese-fonts.conf,里面依样画葫芦就行,放入中文字体,比如我的:

代码: 全选

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>

	<match target="font">
		<test name="force_autohint">
			<bool>false</bool>
		</test>
		<test name="family">
			<string>WenQuanYi Micro Hei</string>
			<string>WenQuanYi Micro Hei Light</string>
			<string>WenQuanYi Micro Hei Mono</string>
			<string>WenQuanYi Micro Hei Mono Light</string>
			<string>WenQuanYi Zen Hei</string>
			<string>WenQuanYi Zen Hei Mono</string>
		</test>
		<edit name="font_type" mode="assign">
			<string>Chinese Font</string>
		</edit>
	</match>
</fontconfig>
建一个类别Chinese Font,以便在63中修改,适用与英文不同的设置。我的63-group-chinese-fonts-rendering.conf:

代码: 全选

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>

	<!-- ##Style: linux -zh-->

	<match target="font">
		<test name="font_type">
			<string>Chinese Font</string>
		</test>
		<edit name="antialias" mode="assign">
			<bool>true</bool>
		</edit>
		<edit name="hintstyle" mode="assign">
			<const>hintslight</const>
		</edit>
		<edit name="autohint" mode="assign">
			<bool>false</bool>
		</edit>
	</match>

</fontconfig>
这样就能让中文用hintslight并关闭autohint,得到最佳显示效果。
最后,到/etc/fonts/infinality中运行

代码: 全选

infctl.sh setstyle
会让你选择风格,选上刚建的linux-zh,重启X,字体是不是漂亮多了?

总结:infinality还有好多设置我们没有涉及,有兴趣的可以自己看。我尝试发现,infinality下,文泉驿微米黑的显示效果很不错,完胜微软雅黑。另有一套ttf-dejavusans-yuanti,也很漂亮,但是由于版权问题,我不多说了。如果你的系统中还有别的中文字体,也可以加到62-group-chinese-fonts.conf中,在20-aliases-default-linux.conf设置默认字体。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 用infinality美化你的字体

#2

帖子 eexpress » 2012-03-30 19:33

支持分析。
只是蛋痛。洗发水啊。
● 鸣学
头像
shinery
帖子: 1378
注册时间: 2009-07-22 22:23

Re: 用infinality美化你的字体

#3

帖子 shinery » 2012-03-30 19:46

上图。
愿扣上你双手,至繁华浪处到沙丘。
长头发的和尚
帖子: 12134
注册时间: 2008-01-11 17:02

Re: 用infinality美化你的字体

#4

帖子 长头发的和尚 » 2012-03-30 20:22

好教程,顶一个..
你往幸福的方向挥挥手,从此我便追随你永不回头。
jtshs256
帖子: 22323
注册时间: 2010-07-19 21:41
系统: OS X

Re: 用infinality美化你的字体

#5

帖子 jtshs256 » 2012-03-30 20:26

我这里矢量关了ah就糊的不行……
躺平
头像
nmsfan
帖子: 18958
注册时间: 2009-10-16 22:46
来自: finland

Re: 用infinality美化你的字体

#6

帖子 nmsfan » 2012-03-30 20:30

支持
我装了

我是fedora
>>>>推Ubuntu 桌面培训~~<<<<
>>>>想加入/了解gimp汉化吗,点我吧~<<<<
——————————————————————
不推荐wubi,也不推荐你给别人推荐wubi…………
随心而为的感觉真好……
强推mayhem!!
强推ensiferum
头像
winbber
帖子: 118
注册时间: 2011-12-16 19:11

Re: 用infinality美化你的字体

#7

帖子 winbber » 2012-03-30 20:55

:em01
这个论坛最有爱
qifei9
帖子: 141
注册时间: 2010-06-28 19:14

Re: 用infinality美化你的字体

#8

帖子 qifei9 » 2012-03-30 22:05

我想知道infinality,ubuntu,lcd,这些freetype的补丁之间具体有什么不同
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

Re: 用infinality美化你的字体

#9

帖子 自由建客 » 2012-06-17 13:57

文泉驿微米黑的显示效果很不错,完胜微软雅黑
是否太过夸张?
附件
微软雅黑.png
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 用infinality美化你的字体

#10

帖子 lilydjwg » 2012-06-17 15:51

自由建客 写了:
文泉驿微米黑的显示效果很不错,完胜微软雅黑
是否太过夸张?
好丑的微软雅黑,特别是那加粗的 :em31
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: 用infinality美化你的字体

#11

帖子 YeLee » 2012-06-17 16:02

雅黑有粗体的,不过,那标点,大家懂的。 :em04 :em04 :em04
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

Re: 用infinality美化你的字体

#12

帖子 自由建客 » 2012-06-17 16:49

lilydjwg 写了:
自由建客 写了:
文泉驿微米黑的显示效果很不错,完胜微软雅黑
是否太过夸张?
好丑的微软雅黑,特别是那加粗的 :em31
你还能找出这么清晰的矢量字体来不?
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

Re: 用infinality美化你的字体

#13

帖子 自由建客 » 2012-06-17 17:05

YeLee 写了:雅黑有粗体的,不过,那标点,大家懂的。 :em04 :em04 :em04
标点在哥这不是问题,你懂的。 :em04
头像
jmw778s
帖子: 994
注册时间: 2009-10-16 11:13
来自: 福安
联系:

Re: 用infinality美化你的字体

#14

帖子 jmw778s » 2012-06-17 17:18

自由建客 写了:
YeLee 写了:雅黑有粗体的,不过,那标点,大家懂的。 :em04 :em04 :em04
标点在哥这不是问题,你懂的。 :em04
建客挖坟,在用你的字体配置,非常棒 :em11
Acer 4738ZG-P22G50Mnkk 笔记本电脑
我用Windows 7 来这里装13的
pmshou
帖子: 315
注册时间: 2012-05-05 20:21

Re: 用infinality美化你的字体

#15

帖子 pmshou » 2012-12-06 20:50

自由建客 写了:
文泉驿微米黑的显示效果很不错,完胜微软雅黑
是否太过夸张?
同样雅黑,Ubuntu下渲染的效果明显要好于Arch! :em09
附件
1.png
看我注册日期:从此告别WINDOWS!
回复