为 Redhat 的两个字体子系统添加字体 让 Enlightenment 显示中文 Java 的中文问题: JBuilder 的中文问题 JSDK 的中文问题 JRE 的中文问题 大家挑自己需要的看就好了 为 Redhat Linux 添加新字体 [注] 以下过程在 Redhat 上测试通过 准备要安装的字体 如: c f 根据发行注记里所言分别为核心 X 字体子系统和 fontconfig 字体子系统添加字体: 为核心 X 字体子系统添加字体 [注] 以下部分应该对 Redhat 之前的版本也适用 因为 核心 X 字体子系统存在 于迄今为止的版本中 如果你想给你的 Red Hat Linux 系统添加新字体根据使用新字体的字体子系统而 定 你必须明确所需步骤对于核心 X 字体子系统你必须 创建 /usr/share/fonts/local/ 目录(如果它不存在) mkdir /usr/share/fonts/local/ 这一步没问题 如果你必须要创建 /usr/share/fonts/local/你就必须把它添加到 X 字体服务器的 路 径中 chkfontpath add /usr/share/fonts/local/ 如果是刚创建的 /usr/share/fonts/local/ 那么执行这一行命令会提示错误 因为系统在这个目录里找不到 fontsdir 文件 然后就不 add 不过没关系 这一步跳过去 在第三步之后做 把新字体文件复制到 /usr/share/fonts/local/ 中 照做 使用以下命令来更新字体信息 ttmkfdir d /usr/share/fonts/local/ o /usr/share/fonts/local/fontsscale 照做 然后: ) 把 fontsscale 拷贝出来一份 fontsdir ) chkfontpath add /usr/share/fonts/local/ 使用以下命令来重新启动 xfs 字体服务器 service xfs reload 这一步我没成功 因为我发现 redhat 里面没有 service 这个命令 于是 用笨办法解决: 退出 X 再 startx 以上这些步骤做完之后 所有 gtk 的程序里有关字体的部分 (如 xmms 的字体设置 里) 都多出来我们要的新字体 像 simsun tahoma 这时可以在程序内部直接使用了 比如我们让歌曲列表里的中文使用 simsum 英文使用 tahoma 可以这样做: ) 先在 xmms 的 Fonts 里勾上选项 Use fontsets 让 xmms 支持双字节的 中文字体; ) 在 播放清单 部分浏览字体 选择使用 simsum: miscsimsunmediumrnormal****c*koir (不用拷这个 选上 simsun 它自己就出来了) 对于英文字体的要用 tahoma 就这么来 一点小技巧: 把这段 miscsimsunmediumrnormal****c*koir ^x 剪切下来 再选字体为 tahoma 出现这个: microsofttahomamediumrnormal****p*viscii 好了 在后面加个逗号 把刚才剪切的那段东东 ^v 粘贴在后面成为: microsofttahomamediumrnormal****p*viscii miscsimsunmediumrnormal****c*koir 这么一行 保存一下 于是歌曲列表就会对中文使用 simsum 英文使用 tahoma 再把这行拷下面 Main Window 的字体里 (要勾上 Use X font) 这时 xmms 主窗 口里的字体 (像那条来回滚动的歌曲信息的字体) 也和歌曲列表里的一样了 注意 我刚才说的是程序内部 就象 xmms 的歌曲列表一样 而 程序本身 即 xmms 自 己的窗口却还是又粗又大的字体 这时需要改 gtk 的字体设置: ) 用 root 账号: vi /etc/gtkrczh_CN ) 把原来的: fontset = adobehelveticamediumrnormal*****iso **mediumrnormal*****gb*r* 改成和我们上面用在 xmms 里的字体一样: fontset = microsofttahomamediumrnormal****p*viscii miscsimsunmediumrnormal****c*koir ) 保存退出 关掉 xmms 这些程序 再重新打开 效果就出来了! Enjoy! 为 fontconfig 字体子系统添加字体 [注] 以下除了 图形化地安装字体 部分为 Rehat 独有 其他应该在之前版本也适 用 大家试试 这部分简单多了 看 redhat 发行注记: 把新字体添加到 fontconfig 字体子系统比较简单明了只需把新字体复制到 /usr/share/fonts/ 目录中即可(个体用户可以把新字体复制到 ~/fonts/ 目录中来修 改他们的个人字体配置) 复制了新字体后使用 fccache 来更新字体信息缓存 fccache (这里的 应该是 /usr/share/fonts/ 或 ~/fonts/ 目录) 我是按这个办法把字体拷 ~/fonts/ 下面做成功的 (不想使用 root 用户 hh) 个体用户还可以图形化地安装字体方法是在 Nautilus 中浏览 fonts:///然后把 新字体文件拖放到那里 而这个办法我失败了 无论我用普通用户还是 root 用户 都无法把字体文件 拷贝或者 拖放 到 Nautilus 的 fonts:/// 文件夹里 不知道原因 只好放弃 按第一种方式添加成功后 在 gtk 的程序里设置字体的部分都可以自由使用新字体 比如在控制中心里把应用程序字体都改成 simsum (另外 我发现 号大小的 simsun 效果最好 不使用单色也非常清晰 可以考虑使用) 总的来说 为 Redhat Linux 添加新字体并没有什么太难太神秘的东西 我个人做完之 后 觉得并没有想像中那么难 尤其是 gtk 程序的字体部分 不必改别人说过的那么多 文件 而实际只要添加完字体 改个 /etc/gtkrczh_CN 就搞定了 让 Enlightenment 显示中文 同样简单 在上面的前提下 找到你当前使用的 E 主题 如我的是在 ~/enlightenment/themes/AquaX/ 进入这个目录后 最简单的做法: gedit textclasscfg 利用 gedit 的替换功能 把所有关于字体的字符串 如: *helveticaboldrnormal******** 统统替换成和 xmms 一样的: microsofttahomamediumrnormal****p*viscii miscsimsunmediumrnormal****c*koir 保存退出 清除 E 的缓存 Restart E 搞定 Java 的中文显示 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 字体子系统 所以 要让它认出来 有哪些字体可以用 fontsscale 和 fontsdir 这两个问题无疑是必需的 相比较上面核心 X 字体子系统的字体文件夹里 即我的 ~/fonts 里面只有 字体文件和一个叫 fontscache 的文件 可以对比着理解 能让 JBuilder 打开的程序显示中文 但 JBuilder 本身中文有问题 下面: 修改 JBuilder 自己的字体配置 比如我的 JBuilder 装在: ~/Apps/Devs/JBuilder 那么: vi ~/Apps/Devs/JBuilder/jdk/jre/lib/fontproperties 把这样的东西: serif=b&h lucidabrightmediumrnormal*%d**p*iso serif=standard symbols lmediumrnormal*%d**p*urwfontspecific alic=b&hlucidabrightmediuminormal*%d**p*iso alic=standard symbols lmediumrnormal*%d**p*urwfontsp ecific 统统换成如: serif=microsofttahomamediumrnormal****p*viscii serif=miscsimsunmediumrnormal****c*koir alic=microsofttahomamediumrnormal****p*viscii alic=miscsimsunmediumrnormal****c*koir (还是用上面 xmms 一样的字体) 所有这些 *= 都是描述英文该用什么字体 而所有 *= 都是描述中文该用什么字体 最后保存退出 JBuilder 里的英文就都是 tahoma 所有的中文都是 simsun 自然 因为已经设置了 JAVA_FONTS 所以所有 Java 的应用程序都能正常找到 中文字体并显示 |