电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

为系统添加新字体和中文显示


发布日期:2019/5/14
 

为 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 的应用程序都能正常找到

中文字体并显示

上一篇:JVM调优的几种策略

下一篇:Groovy 2.0静态类型检查及编译功能介绍