QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9838|回复: 17

汉字高效美化 (Gentoo, 但可能也适合其他发行版)

[复制链接]
发表于 2004-2-22 01:10:16 | 显示全部楼层 |阅读模式
过多的时间花在字体美化上面,是不值得的。本贴是为了linux新手在gentoo或其他linux distro历程中更快启航而写。如有谬误,请不吝指教。

1) 题外话:gnome更多的桌面主题:
[code:1]#emerge metacity-themes
#emerge gnome-themes-extras[/code:1]

2) 拷贝windows字体到gentoo box里。例如tahoma.ttf, tahomabd.ttf, simsun.ttc, mingliu.ttc,我的目录是/usr/local/share/fonts/,不要忘记
[code:1]chmod 744 /usr/local/share/fonts/*[/code:1]

3) 按照www.xfree.org中的文档,需要为core和fontconfig两种字体系统安装字体。
首先,core字体安装方式是将路径添到XF86Config和在目录下执行mkfontscale, mkfontdir. 已有诸多贴子描述,从略。
其次,fontconfig字体安装是在字体目录下执行fc-cache。

4) 美化方案
只讲fontconfig,其他的例如gtk等已有大量帖子描述,从略。
4-1) 不要修改fonts.conf:  既然它要求不要改,那就别改。
4-2) 修改/etc/fonts/local.conf,还是修改~/.fonts.conf,可由需要决定。
4-3) 怎样修改local.conf或~/.fonts.conf
务必要按照下面格式
[code:1]<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- 要设置的内容统统在这里-->
</fontconfig>[/code:1]
4-4) local.conf或.fonts.conf要设置的内容描述 - 这里不是讲解fontconfig,这里只讲要用的东西,要注意: 如果在kde中设置字体,它会改写~/.fonts.conf。
        4-4-1) 字体目录
           [code:1]<dir>/usr/local/share/fonts</dir>[/code:1]
         4-4-2) default fonts
                    Serif是有衬线的字体,像Times这个字体, sans是像Arial这样的字体,代码示例
[code:1]<!-- Default fonts -->
<alias>
        <family>Times New Roman</family>
        <family>Times</family>
        <family>SimSun</family>
        <family>MingLiU</family>
        <default><family>serif</family></default>
</alias>
<alias>
        <family>Tahoma</family>
        <family>SimSun</family>
        <family>MingLiU</family>
        <default><family>sans-serif</family></default>
</alias>
<alias>
        <family>Terminal</family>
        <family>Courier New</family>
        <family>SimSun</family>
        <family>MingLiU</family>
        <default><family>monospace</family></default>
</alias>[/code:1]
         4-4-3) 字体替换顺序,代码示例
[code:1]<alias>
        <family>serif</family>
        <prefer>
                <family>Times New Roman</family>
                <family>Times</family>
                <family>SimSun</family>
                <family>MingLiU</family>
        </prefer>
</alias>
<alias>
        <family>sans-serif</family>
        <prefer>
                <family>Tahoma</family>
                <family>SimSun</family>
                <family>MingLiU</family>
        </prefer>
</alias>
<alias>
        <family>monospace</family>
        <prefer>
                <family>Terminal</family>
                <family>Courier New</family>
                <family>SimSun</family>
                <family>MingLiU</family>
        </prefer>
</alias>[/code:1]
             4-4-4) 选中的字体,不要anti-alias (就是不要模模糊糊的那种)
[code:1]<match target="font" >
        <test name="family" qual="any" >
                   <string>Tahoma</string>
                <string>Verdana</string>
                <string>Arial</string>
                <string>Times</string>
                <string>Times New Roman</string>
                <string>Courier</string>
                <string>Courier New</string>
                <string>SimSun</string>
                <string>MingLiU</string>
          </test>
          <edit mode="assign" name="antialias" >
                   <bool>false</bool>
          </edit>
</match>[/code:1]
这里一定要有simsun, mingliu,否则4-5-2)粗体出不来。xfree.org里列举了将所有字体anti-alias都取消的代码,这样当然不好。也可以按照例如从8点到15点字都不用anti-alias的方案
            4-4-5) xfree.org中举例的为LCD显示器做的优化
[code:1]<!-- Enable sub-pixel rasterisaton on LCD displays -->
<match target="font">
        <edit name="rgba" mode="assign">
                <const>rgb</const>
        </edit>
</match>[/code:1]液晶显示器必选。
           4-4-6) 解决使用中文字体时,英文字间距加倍问题:
[code:1]<match target="font">
        <test target="spacing" compare="more_eq">
                <const>dual</const>
        </test>
        <edit name="globaladvance" mode="assign">
                <bool>false</bool>
        </edit>
</match>[/code:1]
将以上所有片段连接起来,就可以了。<!-- 到 -->里面的都是注释。
4-5) 粗体解决方案
          4-5-1) 替代方案
           在你自己的local.font或者~/.fonts.conf中加入
[code:1]<!-- bold substitution, by luo: [email protected] -->
<match>
        <test name="family">
                <string>SimSun</string>
        </test>
        <test name="weight" compare="eq">
                <const>bold</const>
        </test>
        <edit name="family" mode="assign_replace">
                <string>SimHei</string>
        </edit>
<!-- if subtitude fonts has "bold", we can use it, otherwise just comment out       
         <edit name="weight" mode="assign_replace">
                <const>bold</const>
        </edit>  
-->
</match>[/code:1]
这里,我们用黑体SimHei代替应该成为黑体的simsun。效果不怎么样。如果用一个粗圆体,效果会更好些。
           4-5-2) 修改libXft方案。按照firefly提供的patch,可以自己编译,也可以按照其他贴子修改ebuild,重新emerge,但是都很麻烦。现在要使用一个比较"dirty"的方案,但是效果是非常不错的。
首先看看你原本的libXft.so.2在哪里
[code:1]# find /usr -type f -iname 'libXft.so.2*'[/code:1]
我的是在/usr/X11R6/lib/下面,xft2的是libXft.so.2.1,其他两个是到这个文件的符号连接。
下载:http://firefly.idv.tw/setfont-xft/RedHat/9.0/RPMS/libXft-2.1.2-2.firefly.i386.rpm
然后,将里面的库提取出来
[code:1]#mkdir tempDir
#cd tempDir
#rpm2cpio ../libXft-2.1.2-2.firefly.i386.rpm | cpio -i[/code:1]
或者
[code:1]#rpm2targz libXft-2.1.2-2.firefly.i386.rpm
#tar -xvzf libXft-2.1.2-2.firefly.i386.tar.gz[/code:1]
你将看到,里面共有三个文件,一个库文件libXft.so.2.1.1,两个符号连接。简单的办法,删除原来的libXft.so.2.1,把新的拷贝过去并命名为libXft.so.2.1即可。同时,要在你自己的local.fonts或~/.fonts.conf中增加:
[code:1]<!-- artificial bold by: firefly-->
<match target="font">
        <test target="pattern" name="weight" compare="more">
                <const>medium</const>
        </test>
        <edit name="weight" mode="assign">
                <const>bold</const>
        </edit>
</match>[/code:1]这样就产生了粗体。

5) mozilla的字体,除了中文将最小字体改为12,其他我没做任何改变。

看图吧。我自己就是万全我上面所说的方法进行,我只用了很少时间就得到了一个清晰美观的桌面。好了,现在可以学学别的了。

附记:如果使用圆体字AA美化,你也可以从我的方案中马上只道怎么做了。提示:4-4-4)就不要了,所有的字都用反锯齿效果了,粗体解决方案用4-5-1)即可, firefly相关补丁等都不需要进行了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2004-2-22 01:21:12 | 显示全部楼层
补记:将libXft.so.2.1.1提取出来,拷贝过去的办法,对早一点的xft2是否有效,我没有试过。
回复

使用道具 举报

发表于 2004-2-22 11:11:04 | 显示全部楼层
万变不离其宗 - firefly...

感谢 luo 在 Gentoo 中文化方面做出新的尝试!
回复

使用道具 举报

发表于 2004-2-22 13:53:32 | 显示全部楼层
此方法对kde3.2无用,呵……gnome确实好办一些,但kde却要qt支持,没有办法,要对qt打上补丁对可以的。
回复

使用道具 举报

发表于 2004-9-4 23:20:42 | 显示全部楼层
个人认为还应该有一个好的fonts.dir和fonts.scale文件

并且load xtt最好!
回复

使用道具 举报

发表于 2004-9-16 19:51:40 | 显示全部楼层
atfa,那个LinuxIdea我看了都没有什么内容,新建的吧?
回复

使用道具 举报

发表于 2004-9-16 22:16:41 | 显示全部楼层
精华
回复

使用道具 举报

 楼主| 发表于 2004-9-17 12:08:54 | 显示全部楼层
写这篇文章到现在,已经过去了很多时间。linux的软件更新很快,所以觉得有必
要再多罗嗦几句,特别是对于gentoo的用户,因sunmoon1997等人在
gentoo中文化上面的努力,使gentoo的用户更方便了。由于我自己在用
gentoo,同时也用fvwm,所以,这篇新的文章,想在这方面写下自己的体会,
目的是给自己弄一个舒服的工作环境,并且让自己的桌面看上去更加"l33t"一点


到gentoo.linuxsir.org的下载页面得到最新的中文portage,并按照上面的提
示安装freetype, fontconfig, libXft(USE="cjk glc" emerge --nodeps
...)。如果安装freetype有什么问题的话,多半是因为这个包被mask了,这时,
你可以自己建立一个文件/etc/portage/package.unmaske (如果你没有这
个目录和文件的话),并加入这么一行(2.1.8是现在的,要按被mask的具体情
况):
[code:1]>=media-libs/freetype-2.1.8
[/code:1]
另外,要注意的是,libXft已经没有单独emerge的可能,你可以直接emerge中
文portage的libXft的ebuild.

另外,新的中文portage连字体也已经给我们准备好了,sunmoon1997真是体
贴啊,gentoo的中文化确实容易多了!

安装以后,可以看/etc/fonts/local.conf的内容,要读懂它是很简单的,我这头
贴应该是个很好的解说。唯一的区别是按我头贴4-4-4)中anti-aliasing的那段,
现在的中文portage是改为8-16点大小的字用anti-aliasing,这样大于16点的
字看起来就顺眼了(没有锯齿)。如果像我现在这样,反而喜欢圆滑的英文字,
那我索性就把这段给删除了。

这个时候,界面已经很好了。不过,fvwm的用户(也包括其他桌面),可以再接
再厉把桌面搞得l33t一些。我将我的配置文件贴上,并写上过程,给各位前辈参
考。主要意图是使用artwiz漂亮的英文字体,再一个就是让fvwm启动得快一
些。gnome是已经装了。

1)桌面壁纸,是QNX OS那里借的,到这个地方去下载http://eccentric.cx/pictures/wallpaper/。把它转为png格式图片。建立
~/.fvwm, ~/.fvwm/images目录。
2)安装aterm, root-tail, xv, scrot, xcalendar, grun 将自己加入adm用户
组。
3)安装artwiz-aleczapka-en字体(一套字体,并带一个pp的鼠标指针),并将
其路径加入XF86Config字体路径FontPath的第一行,这样一来,我们就可以看
到新的鼠标指针形状了。同时将其加入/etc/fonts/local.conf,注意不要按其
readme说的那样,后面加一个unscaled,我的实验结果是完全不需要。 fc-cache一下。
我发现arwiz字体里有个叫aqui,很像以前的Macintosh系统字体,在我的
17"LCD下面看上去效果很不错,但是它只有bold,gtk2的程序再把它bold一
下,就粗得吓人,不过不要紧,只要在/etc/fonts/local.conf中加入这么一段就
可以了。
[code:1]       
<match target="font">
        <test target="family" name="aqui"/>
        <edit name="weight" mode="assign">
                <const>medium</const>
        </edit>
</match>
[/code:1]
4)为了使用我下面所附的.fvwm2rc,还要做一点点事情,图标,我用的图标是
windowMaker的,在gentoo中,你可以很简单地emerge wm-icons就可以
了。应该装在/usr/share/icons/wm-icons/下面。
5) 然后将下面两段东西uudecode成两幅图片(windows标题栏背景),放到
~/.fvwm/images下面(你可以先将它们存为两个文件例如file1, file2, 然后
uudecode -o title_back.png file1就可以得到第一个图了):
[code:1]
begin 644 title_back.png
MB5!.1PT*&@H````-24A$4@````$````1"`8````<P\82````!F)+1T0`_P#_
M`/^@O:>3````"7!(67,```L3```+$P$`FIP8````!W1)344'U`,7##(;H1J%
ME@```!UT15AT0V]M;65N=`!#<F5A=&5D('=I=&@@5&AE($=)35#O9"5N````
M.DE$051XVCV*L0V`,`##K/P_]BNZLG``5Y"$`=HELJTPCD[=UXGB![5%B?]I
B@M)%C9?:*-WM^P6`^0)LD#!7?4W=0@````!)14Y$KD)@@@``
`
end
[/code:1]
[code:1]
begin 644 title_back_inactive.png
MB5!.1PT*&@H````-24A$4@````$````1"`8````<P\82````!F)+1T0`_P#_
M`/^@O:>3````"7!(67,```L3```+$P$`FIP8````!W1)344'U`,7##4`9#[:
MO0```!UT15AT0V]M;65N=`!#<F5A=&5D('=I=&@@5&AE($=)35#O9"5N````
M-4E$051XVE7+L0D`(!3$T'#[KV1C+98NX0X_5@IVX4%8VY'9&Q&(2A12W.*9
=2HIKY7>(`(P#7O$CI!U5BA4`````245.1*Y"8((`
`
end
[/code:1]
图片当然放在~/.fvwm/images下面。
将附件的.fvwm2rc和FvwmApplet-DigitalClock放在~/.fvwm/下面。现在,
你的桌面应该看上去和这个附件的图差不多。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

 楼主| 发表于 2004-9-17 12:21:19 | 显示全部楼层
fvwm配置文件。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

发表于 2004-9-17 13:58:23 | 显示全部楼层
无聊再来回一帖:

楼主辛苦了~~~ :-)
文章总体上说总结得很好。

但是第二篇文章最好单独分出来一下。
回复

使用道具 举报

发表于 2004-11-16 23:58:33 | 显示全部楼层
楼主的东西不错!

占个位置好找!
回复

使用道具 举报

发表于 2004-11-17 13:47:34 | 显示全部楼层
好帖,赞
回复

使用道具 举报

发表于 2005-1-29 13:25:20 | 显示全部楼层
[code:1]
         <test target="spacing" compare="more_eq">
[/code:1]

[code:1]
root@Do fonts # fc-cache
Fontconfig warning: "local.conf", line 89: invalid test target "spacing"
root@Do fonts #
[/code:1]

请问这是为什么?找不到spacing?
回复

使用道具 举报

发表于 2005-7-11 00:59:04 | 显示全部楼层
我也有同样的问题,同问?

如果能修正,这个帖子就完美了!!!
回复

使用道具 举报

发表于 2005-7-19 02:33:02 | 显示全部楼层
[quote:a10ce84864="yangray"]我也有同样的问题,同问?

如果能修正,这个帖子就完美了!!![/quote]

I have fixed it
Use the following code instead

[code:1]
<match target="font">
   <test target="pattern" name="spacing" compare="more_eq">
      <const>dual</const>
   </test>
   <edit name="globaladvance" mode="assign">
      <bool>false</bool>
   </edit>
</match>
[/code:1]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-9-30 14:33 , Processed in 0.069919 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表