QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3158|回复: 7

终于明白pango的字体适配问题所在了

[复制链接]
发表于 2005-11-7 21:39:24 | 显示全部楼层 |阅读模式
Pango是将字符段用Unicode码表来进行字体适配的。但这个码表的英文部分没有把数字和符号算在里边,也就是只有英文的大小写字母。

所以,字符段中的英文字母可以正确映射到英文字体,数字和符号就被映射到了中文字体上。但似乎这个映射和渲染之间存在着诧异,经常会造成下一段字符的glyph位置计算出错。

比如图中,日期的部分,按照Pango现有的算法,里边只包含数字和符号,应该是被映射到中文字体上,但在渲染的时候又被映射到了英文字体上。造成了后续字符段(电子邮件地址)的问题,和前边的字符叠在一起了。

本帖子中包含更多资源

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

×
 楼主| 发表于 2005-11-14 17:41:50 | 显示全部楼层
据说Pango HEAD里启用了新的字体映射算法,但我实在懒得弄jhbuild了。谁有兴趣编译一把?

cairo->glib->pango即可,有兴趣也可以玩玩gtk+。
回复

使用道具 举报

发表于 2005-11-15 12:14:11 | 显示全部楼层
这种效果实在是让人发疯:

在编辑框里输入数字:0123
紧接着属于一个字母:0123a

整行文字的字体都变了,大小长短都变了,好像发生了灵异事件。
回复

使用道具 举报

 楼主| 发表于 2005-11-15 17:24:54 | 显示全部楼层
最恐怖的是你用鼠标选中数字的话,数字的字体会变  
回复

使用道具 举报

发表于 2005-11-15 19:55:48 | 显示全部楼层
强烈关注此案的进展
回复

使用道具 举报

 楼主| 发表于 2005-11-15 20:05:48 | 显示全部楼层
自己编译一把pango cvs HEAD就知道了。估计只有日月兄这种强人才有这种闲工夫  
回复

使用道具 举报

发表于 2005-11-15 20:55:40 | 显示全部楼层
[quote:48585cacb8="mandrakechina"]自己编译一把pango cvs HEAD就知道了。估计只有日月兄这种强人才有这种闲工夫  [/quote]
呵呵,的确我用的是 cvs head.
不过在 gentoo 里弄个真是太简单了;)
回复

使用道具 举报

 楼主| 发表于 2005-11-16 20:22:09 | 显示全部楼层
贴个图看看再说,看一下Sans这样的虚拟字体,重点是gedit这样对字体比较敏感的软件。
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-23 19:41 , Processed in 0.079951 second(s), 17 queries .

© 2021 Powered by Discuz! X3.5.

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