LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: quanliking

Linux 字体微调 - windows 效果版

[复制链接]
 楼主| 发表于 2006-8-15 18:23:36 | 显示全部楼层
Post by hihihihi
找到flashplayer亂碼的solution了.....
defoma-hints -c --no-question truetype /usr/share/fonts/truetype/winxp/mingliu.ttc > /etc/defoma/hints/winxp.hints
defoma-font reregister-all /etc/defoma/hints/winxp.hints
reboot

Good!
上次你谈这个问题的时候,我网上找过:
http://linux.inet.hr/flash_plugin_on_x11r7.html
看他们的讨论,flashplugin 字体和 xfs 有关,而不是和 fontconfig 有关。
但不清楚到底问题出在何处,现在终于明白问题出在哪了 :)

我一般一开始就把 simsun, mingliu 用 defoma 管理,从而让 xfs 知道我要用这些字体,因为我要使用 xmms 这个 gtk1 程序,虽然很多人不屑用这个播放器。
像微软核心字体,下载后,自动会调用 defoma 来管理,而 defoma 除了把这些字体信息提供给 fontconfig 外,还把它们提供给 xfs。

我在主贴里提到在 xorg.conf 加入FontPath        "/usr/share/fonts/myfonts/winxp"
从而让 xfs 找到 winxp 字体路径,目的也就在此,否则你用 xlsfonts 是看不到 mingliu 的。

对于 defoma,我有更好的建议,可以使用 dfontmgr 把 simsun 或 mingliu 注册到defoma。
或拷贝我的 hints,如下:
simsun.hints
  1. category truetype
  2. begin /usr/share/fonts/myfonts/winxp/simsun.ttc
  3.   FaceNum = 2
  4.   Family = SimSun
  5.   FontName = SimSun-Regular
  6.   Encoding = Unicode
  7.   Location = English Chinese-China
  8.   Charset = GB2312 GBK GB18030 ISO8859-1
  9.   GeneralFamily = Roman
  10.   Weight = Book
  11.   Width = Variable
  12.   Shape = Serif Upright
  13.   Foundry = zhongyi
  14.   Priority = 20
  15.   Family1 = NSimSun
  16.   FontName1 = NSimSun-Regular
  17.   Encoding1 = Unicode
  18.   Location1 = English Chinese-China
  19.   Charset1 = GB2312 GBK GB18030 ISO8859-1
  20.   GeneralFamily1 = Roman
  21.   Weight1 = Book
  22.   Width1 = Variable
  23.   Shape1 = Serif Upright
  24.   Foundry1 = zhongyi
  25.   Priority1 = 20
  26. end
复制代码
mingliu.hints
  1. category truetype
  2. begin /usr/share/fonts/myfonts/winxp/mingliu.ttc
  3.   FaceNum = 2
  4.   Family = MingLiU
  5.   FontName = MingLiU-Regular
  6.   Encoding = Unicode
  7.   Location = English Chinese-Taiwan
  8.   Charset = BIG5 ISO8859-1
  9.   GeneralFamily = Roman
  10.   Weight = Book
  11.   Width = Variable
  12.   Shape = Serif Upright
  13.   Foundry = dynalab
  14.   Priority = 20
  15.   Family1 = PMingLiU
  16.   FontName1 = PMingLiU-Regular
  17.   Encoding1 = Unicode
  18.   Location1 = English Chinese-Taiwan
  19.   Charset1 = BIG5 ISO8859-1
  20.   GeneralFamily1 = Roman
  21.   Weight1 = Book
  22.   Width1 = Variable
  23.   Shape1 = Serif Upright
  24.   Foundry1 = dynalab
  25.   Priority1 = 20
  26. end
复制代码
  1. $ defoma-font reregister-all simsun.hints
  2. $ defoma-font reregister-all mingliu.hints
复制代码
不需要重启,退出 X,login 后,用:
  1. $ xlsfonts |grep simsun
  2. -zhongyi-nsimsun-book-r-normal--0-0-0-0-p-0-gb18030.2000-0
  3. -zhongyi-nsimsun-book-r-normal--0-0-0-0-p-0-gb2312.1980-0
  4. -zhongyi-nsimsun-book-r-normal--0-0-0-0-p-0-gbk-0
  5. -zhongyi-nsimsun-book-r-normal--0-0-0-0-p-0-iso8859-1
  6. -zhongyi-simsun-book-r-normal--0-0-0-0-p-0-gb18030.2000-0
  7. -zhongyi-simsun-book-r-normal--0-0-0-0-p-0-gb2312.1980-0
  8. -zhongyi-simsun-book-r-normal--0-0-0-0-p-0-gbk-0
  9. -zhongyi-simsun-book-r-normal--0-0-0-0-p-0-iso8859-1
  10. $ xlsfonts |grep mingliu
  11. -dynalab-mingliu-book-r-normal--0-0-0-0-p-0-big5-0
  12. -dynalab-mingliu-book-r-normal--0-0-0-0-p-0-iso8859-1
  13. -dynalab-pmingliu-book-r-normal--0-0-0-0-p-0-big5-0
  14. -dynalab-pmingliu-book-r-normal--0-0-0-0-p-0-iso8859-1
复制代码

我想系统中需要用到 xfs 的软件还是不少的,如你提到的 flashplugin,xmms,emacs21,gfontview,dfontmgr 等等。所以有必要做一下上述工作。

需要安装的软件:
x-ttcidfont-conf defoma
可选软件:
dfontmgr
回复 支持 反对

使用道具 举报

发表于 2006-8-15 19:25:38 | 显示全部楼层
确实佩服兄弟的钻研精神。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-15 19:47:09 | 显示全部楼层
hihihihi 兄,我有个想法。
主要是关于 simsun 或 mingliu 英文部分。

上面讨论过,用 fontconfig 英文替换的方法,问题多多,不能根本解决问题,所以要找找 simsun 本身。

如果强制使用 simsun (当然事先把 simsun 英文替换注释掉),在网页上看到一些数字或英文会很丑,我猜这些可能使用的是 simsun 点阵英文部分,因为很毛糙。见截图。
不知道你用 mingliu 时是否也碰到过类似问题。

我的想法是,先搞清是否是使用了点阵英文,如果是,有两种方案:
1。用字体工具,把 simsun 的英文部分用其它字体替换掉,如换成 arial
但我觉得这样少了很多选择性,因为有些人喜欢别的英文字体

2。把英文部分去掉,只保留中文部分和一些必要的符号
这样 fontconfig 找不到 simsun 英文部分,会用其它英文替换,这样的自由度更好些。

你认为呢?或有其它更好的主意么?

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 2006-8-15 19:56:06 | 显示全部楼层
再请教一下JAVA SDK是怎样管理字型呢??我的JAVA显示不了中文字,但firefox的javaapplet就没问题。。。
apt-get install j2sdk1.4
vi hello.java
  1. import javax.swing.JOptionPane;
  2. class hello {
  3.         public static void main(String args[]) {
  4.                 JOptionPane.showMessageDialog(null,"你好");
  5.                 System.exit(0);
  6.         }
  7. }
复制代码
javac hello.java
java hello

thz~~
回复 支持 反对

使用道具 举报

发表于 2006-8-15 20:52:25 | 显示全部楼层
Post by quanliking
hihihihi 兄,我有个想法。
主要是关于 simsun 或 mingliu 英文部分。

上面讨论过,用 fontconfig 英文替换的方法,问题多多,不能根本解决问题,所以要找找 simsun 本身。

如果强制使用 simsun (当然事先把 simsun 英文替换注释掉),在网页上看到一些数字或英文会很丑,我猜这些可能使用的是 simsun 点阵英文部分,因为很毛糙。见截图。
不知道你用 mingliu 时是否也碰到过类似问题。

我的想法是,先搞清是否是使用了点阵英文,如果是,有两种方案:
1。用字体工具,把 simsun 的英文部分用其它字体替换掉,如换成 arial
但我觉得这样少了很多选择性,因为有些人喜欢别的英文字体

2。把英文部分去掉,只保留中文部分和一些必要的符号
这样 fontconfig 找不到 simsun 英文部分,会用其它英文替换,这样的自由度更好些。

你认为呢?或有其它更好的主意么?

为什么要替换simsun的英文?
把默认字体选为英文,比如arial,遇到中文会自动调用simsun,这不就已经
避免使用simsun自带的英文字体了吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-15 21:02:15 | 显示全部楼层
我装了 1.5,你看一下这个文件:
/usr/lib/jvm/java-1.5.0-sun/jre/lib/fontconfig.properties
改成你系统中的字体,用 xlsfonts 查看。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-15 21:39:18 | 显示全部楼层
Post by faxian
为什么要替换simsun的英文?
把默认字体选为英文,比如arial,遇到中文会自动调用simsun,这不就已经
避免使用simsun自带的英文字体了吗?

我一直以来也都是推荐这样做的,看看前面的讨论就知道了。

但实际使用中,你可能发现这个世界并非想象中那么完美 :)

但当你碰到我截图里的情况,是否会一筹莫展呢?
这时就算你指定 Arial,也无济于事。因为这时网页是指定用 宋体/SimSun 的。

这时你会反驳,为什么不强行使用自选字体呢?
我要反问,比如一个网页指定用 Verdana,而你使用 Arial,是不是会改变网页风格呢?

或者你会说碰到指定宋体的网页时,如果发现不好看,再强行覆盖?
我要反问,那是不是太繁琐了呢?每次要等半天才反应过来。

还有在某些时候,你会碰到类似矛盾的问题,我一下子记不起来。我想这也就是为什么老有人嚷嚷 linux 下的中文效果不 windows 的原因之一吧!

当然如果你要求不高,完全可以不用管这些。

不相信的话,可以在 google 中输入关键字“ font 宋体 ”

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 2006-8-15 22:09:35 | 显示全部楼层
Post by quanliking
hihihihi 兄,我有个想法。
主要是关于 simsun 或 mingliu 英文部分。

上面讨论过,用 fontconfig 英文替换的方法,问题多多,不能根本解决问题,所以要找找 simsun 本身。

如果强制使用 simsun (当然事先把 simsun 英文替换注释掉),在网页上看到一些数字或英文会很丑,我猜这些可能使用的是 simsun 点阵英文部分,因为很毛糙。见截图。
不知道你用 mingliu 时是否也碰到过类似问题。

我的想法是,先搞清是否是使用了点阵英文,如果是,有两种方案:
1。用字体工具,把 simsun 的英文部分用其它字体替换掉,如换成 arial
但我觉得这样少了很多选择性,因为有些人喜欢别的英文字体

2。把英文部分去掉,只保留中文部分和一些必要的符号
这样 fontconfig 找不到 simsun 英文部分,会用其它英文替换,这样的自由度更好些。

你认为呢?或有其它更好的主意么?

其实我到现在都不太明白fontconfig的运作,但我觉得用方法1会好一些,一劳永逸。而且如果用方法2的话会不会有些程式不懂补上漏掉的code而出现缺字情况?
如果support fontconfig的我们只要调一调sans的次序,然后字体选sans就可以了,不知到我有没有理解错??
我现在都是这样做,把tahoma搬到前面,效果都不错。。。

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-15 22:45:20 | 显示全部楼层
Post by hihihihi
其实我到现在都不太明白fontconfig的运作,但我觉得用方法1会好一些,一劳永逸。而且如果用方法2的话会不会有些程式不懂补上漏掉的code而出现缺字情况?
如果support fontconfig的我们只要调一调sans的次序,然后字体选sans就可以了,不知到我有没有理解错??
我现在都是这样做,把tahoma搬到前面,效果都不错。。。


我可能没把意思表达清楚。
现在系统中的字体效果应该说已经相当不错了。但浏览有些网页时,一些丑陋的字体突然跳出来,让你困惑不解。就好比幼儿园小朋友,大部分都很听话,偶尔一两个特别调皮的。
麻烦你到雅虎社区逛逛,看看里面的数字和英文部分的效果,可能你就明白我要表达的意思了:
http://cn.bbs.yahoo.com/message/read_talkcar_181485.html
回复 支持 反对

使用道具 举报

发表于 2006-8-15 22:50:28 | 显示全部楼层
Post by quanliking
我可能没把意思表达清楚。
现在系统中的字体效果应该说已经相当不错了。但浏览有些网页时,一些丑陋的字体突然跳出来,让你困惑不解。就好比幼儿园小朋友,大部分都很听话,偶尔一两个特别调皮的。
麻烦你到雅虎社区逛逛,看看里面的数字和英文部分的效果,可能你就明白我要表达的意思了:
http://cn.bbs.yahoo.com/message/read_talkcar_181485.html

你是不是本来是用prepend的方法,但是oo菜单亂码所以就想想其他办法?
回复 支持 反对

使用道具 举报

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

本版积分规则

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