Linux默认安装的字体模糊难看

上一篇 / 下一篇  2010-04-09 22:42:40 / 个人分类:Linux

Linux默认安装后的字体是很糊,怎么办? 地球人都知道,用Win的字体呗
典型的就用Simsun.ttf, 把win下的SimSun.ttc拷到/usr/share/fonts/zh_CN/TrueType/目录下,
我是把它改成为.ttf,跟大家一样的后缀,Linux也要用字体查看器打开它.
然后执行一下: ttmkfdir -d /usr/share/fonts/zh-CN/TrueType/ -o /usr/share/fonts/zh-CN/TrueType/fonts.scale
在该目录下有个fonts.dir,看看别入了simSun没有,注销重新登录.
在 首选项->控制中心->字体中,将各类字体选择为SimSun 16, 菜单焕然一新,但浏览器上看到网页字体还是糊,再改一下浏览器设置,Edit->Preferences->Appearance-> Fonts,把可以汉字的都改为SimSun,字号大小设为14.
下文是百度来的,备查.



以下内容包括:

1. 为 Redhat 的两个字体子系统添加字体
2. 让 Enlightenment 显示中文
3. Java 的中文问题:

- JBuilder 的中文问题
- J2SDK 的中文问题
- J2RE 的中文问题

大家挑自己需要的看就好了.

为 Redhat Linux 添加新字体


[注]
以下过程在 Redhat 9.0 上测试通过.

准备要安装的字体, 如: simsun.ttc, tahoma.ttf... 根据发行注记里所言分别为核心 X 字体子系统和 fontconfig 字体子系统添加字体:
为核心 X 字体子系统添加字体

[注]
以下部分应该对 Redhat 9.0 之前的版本也适用, 因为 核心 X 字体子系统存在 于迄今为止的版本中.
"如果你想给你的 Red Hat Linux 9 系统添加新字体,根据使用新字体的字体子系统而定 ,你必须明确所需步骤。对于核心 X 字体子系统,你必须:
1. 创建 /usr/share/fonts/local/ 目录(如果它不存在):
mkdir /usr/share/fonts/local/"

- 这一步没问题.

"如果你必须要创建 /usr/share/fonts/local/,你就必须把它添加到 X 字体服务器的 路 径中:
chkfontpath --add /usr/share/fonts/local/"

- 如果是刚创建的 /usr/share/fonts/local/, 那么执行这一行命令会提示错误 因为系统在这个目录里找不到 fonts.dir 文件, 然后就不 add.. 不过没关系, 这一步跳过去, 在第三步之后做.
"2. 把新字体文件复制到 /usr/share/fonts/local/ 中"
- 照做.

"3. 使用以下命令来更新字体信息:
ttmkfdir -d /usr/share/fonts/local/ -o /usr/share/fonts/local/fonts.scale"

- 照做. 然后:
1) 把 fonts.scale 拷贝出来一份 fonts.dir.
2) chkfontpath --add /usr/share/fonts/local/

"4. 使用以下命令来重新启动 xfs 字体服务器:
service xfs reload"

- 这一步我没成功, 因为我发现 redhat 9 里面没有 service 这个命令. 于是 用笨办法解决: 退出 X, 再 startx.

以 上这些步骤做完之后, 所有 gtk 1.2 的程序里有关字体的部分 (如 xmms 的字体设置 里) 都多出来我们要的新字体, 像 simsun, tahoma. 这时可以在程序内部直接使用了. 比如我们让歌曲列表里的中文使用 simsum, 英文使用 tahoma, 可以这样做:

1) 先在 xmms 的 Fonts 里勾上选项 "Use fontsets" - 让 xmms 支持双字节的 中文字体;
2) 在 播放清单 部分浏览字体, 选择使用 simsum: -misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r (不用拷这个, 选上 simsun 它自己就出来了)

对于英文字体的要用 tahoma 就这么来, 一点小技巧:

把这段 "-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r" ^x 剪切下来, 再选字体为 tahoma, 出现这个:

-microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1

好了, 在后面加个逗号, 把刚才剪切的那段东东 ^v 粘贴在后面成为:

-microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1,
-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r

这 么一行, 保存一下, 于是歌曲列表就会对中文使用 simsum, 英文使用 tahoma. 再把这行拷下面 Main Window 的字体里 (要勾上 "Use X font"), 这时 xmms 主窗 口里的字体 (像那条来回滚动的歌曲信息的字体) 也和歌曲列表里的一样了.

注意, 我刚才说的是程序内部, 就象 xmms 的歌曲列表一样, 而 程序本身, 即 xmms 自 己的窗口却还是又粗又大的字体, 这时需要改 gtk 的字体设置:

1) 用 root 账号: vi /etc/gtkrc.zh_CN
2) 把原来的:

fontset = "-adobe-helvetica-medium-r-normal--16-*-*-*-*-*-iso8859-1,
-*-*-medium-r-normal--16-*-*-*-*-*-gb2312.1980-0,*-r-*"

改成和我们上面用在 xmms 里的字体一样:

fontset =
"-microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1,
-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r"

3) 保存退出, 关掉 xmms 这些程序, 再重新打开, 效果就出来了! Enjoy!


为 fontconfig 字体子系统添加字体

[注]
以下除了 "图形化地安装字体" 部分为 Rehat 9.0 独有, 其他应该在之前版本也适 用, 大家试试.

这部分简单多了, 看 redhat 9 发行注记:

"把新字体添加到 fontconfig 字体子系统比较简单明了;只需把新字体复制到 /usr/share/fonts/ 目录中即可(个体用户可以把新字体复制到 ~/.fonts/ 目录中来修 改他们的个人字体配置)

复制了新字体后,使用 fc-cache 来更新字体信息缓存:

fc-cache

(这里的 应该是 /usr/share/fonts/ 或 ~/.fonts/ 目录。)"

- 我是按这个办法把字体拷 ~/.fonts/ 下面做成功的. (不想使用 root 用户, hh) "个体用户还可以图形化地安装字体。方法是:在 Nautilus 中浏览 fonts:///,然后把 新字体文件拖放到那里。"

- 而这个办法我失败了, 无论我用普通用户还是 root 用户, 都无法把字体文件 拷贝或者 "拖放" 到 Nautilus 的 fonts:/// 文件夹里. 不知道原因, 只好放弃.

按 第一种方式添加成功后, 在 gtk 2 的程序里设置字体的部分都可以自由使用新字体 比如在控制中心里把应用程序字体都改成 simsum. (另外, 我发现 10 号大小的 simsun 效果最好, 不使用单色也非常清晰, 可以考虑使用) 总的来说, 为 Redhat Linux 添加新字体并没有什么太难太神秘的东西, 我个人做完之 后 觉得并没有想像中那么难, 尤其是 gtk 1.2 程序的字体部分, 不必改别人说过的那么多
文件, 而实际只要添加完字体, 改个 /etc/gtkrc.zh_CN 就搞定了.


让 Enlightenment 显示中文


同样简单, 在上面的前提下, 找到你当前使用的 E 主题, 如我的是在

~/.enlightenment/themes/AquaX/

进入这个目录后, 最简单的做法:
gedit textclass.cfg

利用 gedit 的替换功能, 把所有关于字体的字符串, 如:

"-*-helvetica-bold-r-normal-*-*-120-*-*-*-*-*-*"

统统替换成和 xmms 一样的:

-microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1,
-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r"

保存退出, 清除 E 的缓存, Restart E, 搞定.


Java 的中文显示


1. JBuilder 的中文问题

vi /etc/profile

添加:

JAVA_FONTS=/path/to/your/zhfonts/
export JAVA_FONTS

比如要用刚才弄好的 simsum 和 tahoma 字体, 因为我们已经把它们放在: /usr/share/fonts/local 里面了, 所以这里就可以填:
JAVA_FONTS=/usr/share/fonts/local

注 意, JBuilder 显然用的是 fontconfig 字体子系统, 所以, 要让它认出来 有哪些字体可以用, fonts.scale 和 fonts.dir 这两个问题无疑是必需的. 相比较上面核心 X 字体子系统的字体文件夹里, 即我的 ~/.fonts 里面只有字体文件和一个叫 "fonts.cache-1" 的文件, 可以对比着理解.

能让 JBuilder 打开的程序显示中文, 但 JBuilder 本身中文有问题, 下面:
修改 JBuilder 自己的字体配置, 比如我的 JBuilder 装在:

~/Apps/Devs/JBuilder

那么:
vi ~/Apps/Devs/JBuilder8/jdk1.4/jre/lib/font.properties

把这样的东西:

serif.0=-b&h -lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1
serif.1=--standard symbols l-medium-r-normal--*-%d-*-*-p-*-urw-fontspecific

serif.italic.0=-b&h-lucidabright-medium-i-normal--*-%d-*-*-p-*-iso8859-1
serif.italic.1=--standard symbols l-medium-r-normal--*-%d-*-*-p-*-urw-fontsp
ecific

统统换成如:

serif.0=-microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1
serif.1=-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r

serif.italic.0=-microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1
serif.italic.1=-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r

(还是用上面 xmms 一样的字体)

所有这些 "*.0=.." 都是描述英文该用什么字体 ,而所有 "*.1=..." 都是描述中文该用什么字体

最后保存退出, JBuilder 里的英文就都是 tahoma, 所有的中文都是 simsun 自然, 因为已经设置了 JAVA_FONTS , 所以所有 Java 的应用程序都能正常找到 中文字体并显示.

最后注意一点, 我自己尝试失败的一件事:

记得我们上面配置核心 X 字体子系统时, 在 ~/.fonts/ 里面放置了给 gtk 1.2 程序使用的字体文件, 如果这时把 JAVA_FONTS 指向这里, 会出现的现象是:

JBuilder 里面打开的程序可以显示中文 ,但是, JBuilder 自己的窗口无法显示中文.

我个人认为和 fontconfig 的 fonts.dir, fonts.scale 以及核心 X 的 "fonts.cache-1" 有关系, 具体就不懂了. 所以这里可以体验到两个字体子系统的差异.

2. j2sdk 的中文问题:

上 面这样配置之后, 只有在 JBuilder 环境内开发程序时, 才能正常显示中文 (因为 JBuilder 帮你找字体), 而如果我们回到命令行方式使用 j2sdk 开发, 这时会发现还是显示不了中文, 让我们由此及彼地推想一下, jbuilder 的 jre 里把 font.properties 修改完就能显示中文, 同样, j2sdk 下面也有自己的 jre... 没错! 只要把我们刚才为 JBuilder 修改完的 fonts.properties 拷 到 $JAVA_HOME/jre/lib 下面, 把它原来的覆盖, 一切 OK!

3. j2re 的中文问题:

还没想到测试方法, 回头再说...估计也一样, j2re 下面的 lib 里一样有 font.properties, 所以, 应该可以再次重用 JBuilder 的 fonts.properties. 总之呢, 这一切都基于你最初要把字体添加正确, 其它都好办了, 拷文件而已.'

zi

blog.chinaunix.net/u/462/showart_11110.html

================================================

安装中文字体

先下载http://freshair.netchina.com.cn/~George/sm.sh
(参考文献:http://www.linuxeden.com/edu/doctext.php?docid=2679)

 SimSun18030.ttc在微软网站可下载,http://www.microsoft.com/china/w ...  它是个msi文件,在mswindows中安装用的,装好后在windows目录下的fonts 目录里面就可以找到它。把simsun.ttc,SimSun18030.ttc,tahoma.ttf,tahomabd.ttf
拷贝到/usr/local/temp,然后下载的shell文件也放到这个目录里,然后打开终端

cd /usr/local/temp
chmod 755 sm.sh
./sm.sh

如果不嫌麻烦,可以安装turbo linux第一张盘上的两个中文字体 ttf-zh-additional-1.4-6.noarch.rpm 和 ttf-zh-song-1.4-6.noarch.rpm
这样就可以在xmms中显示准确的歌曲名。

4.在gnome内的调整。

使用"首选项"的"字体"
(可以看到字体列表里已有了SimSun)
点击"细节"进入字体绘制细节,将分辨率改成72 点击"关闭"回到字体主窗口
你也不一定要改这里,在分辨率为96是,9号子相当于我说的12号字。
以下是选用的参数:
应用程序字体: Century Schoolbook L 12 反正中文是SimSun就只看英文的效果了。
桌面字体: Sans 16 为的是保留原RH8的风格
窗口标题字体: Century Schoolbook L 12
终端字体 : Ar PL KaitiM GB 14 经比较它用在这最好看
字体绘制: 最佳形态
这里实际是指定英文字体,你可以反复的比较最佳的效果,但终端的字体必需支持汉字
当然也可以将windows的一些ttf字库考出来,如果只想给gnome2用的话就不需要编辑fonts.dir文件,只要在/etc/fonts/fonts.conf文件中指出路径就可以了。 取消字体绘制总有点感到少了RH8的个性。
当然你也可以全部使用SimSun字体,但要注意这个设置:
字体绘制: 单色
这样修改后你的gnome和KDE的汉字界面显示和Xtt驱动SimSun字体的汉字界面显示几乎没二异。
当你改完了这一切再来看看效果,十分的完美。
5.在KDE下的调整:
"小红帽"-控制中心-观感-字体, 取消字体平滑后选用SimSun字体。(重新启动KDE后生效)
调整终端字体
设置-字体-定制 Luxi Mono,10号。
设置-保存设置。

.调整mozilla字体:

将简体中文字体改为:simsun-gb18030.2000-0或simsun-gbk-0,据我的使用来看效果很好。
不推荐使用gb2312.1980字符集,在有些网站会照成汉字显示问题。 

www.linuxeden.com/forum/thread-57485-1-1.html


TAG: Linux linux 字体

 

评分:0

我来说两句

Open Toolbar