注册
登录
搜索
帮助
中国Linux公社论坛
»
中文化与桌面美化
» fontconf字体替换的奇怪问题
‹‹ 上一主题
|
下一主题 ››
发新话题
发布投票
发布商品
发布悬赏
发布活动
发布辩论
发布视频
打印
fontconf字体替换的奇怪问题
800
注册会员
发短消息
加为好友
当前离线
1
#
大
中
小
发表于 2006-7-31 23:27
只看该作者
fontconf字体替换的奇怪问题
假设fonts.conf中有如下内容:
[code:1]
<alias>
<family>xyz</family>
<prefer>
<family>Bitstream Vera Sans</family>
<family>SimSun</family>
</prefer>
<accept>
<family>Webdings</family>
</accept>
<default>
<family>abc</family>
</default>
</alias>
[/code:1]
按照文档的说法,fontconf会先找prefer列表中的字体。找不到,则去找名为xyz的字体。还没有接着找accept,最后找default。可实际情况并不是这样。
$ LANG=zh_CN fc-match xyz
simsun.ttc: "SimSun" "Regular"
$ LANG=C fc-match xyz
Vera.ttf: "Bitstream Vera Sans" "Roman"
也就是说,match到的字体还跟locale有关。如果是这样,字体替换岂不是根本无法实现?
测试用系统是archlinux
fontconfig 2.3.2-6
freetype2 2.1.10-4
UID
101841
帖子
52
精华
1
积分
135
阅读权限
20
来自
China.gif
在线时间
0 小时
注册时间
2004-3-7
最后登录
2007-5-12
查看详细资料
TOP
loop2002
新手上路
发短消息
加为好友
当前离线
2
#
大
中
小
发表于 2006-8-2 16:52
只看该作者
我在 Suse 的系統下 ..
更改字型的排列確實會跟 locale 的語言有相關..
之前有是過語言設定為繁體中文,並把 MAC 的 STHiti 字型社為首要
可是就是不會以這個字型為優先 ..
後來有更改語言為簡體之後,就可以囉~~ ..
原因是 ..
因為 sthiti 是屬於簡體中文字,所以就必須是簡體的 locale 就會優先取用
UID
26181
帖子
1
精华
0
积分
3
阅读权限
10
来自
China.gif
在线时间
0 小时
注册时间
2003-4-3
最后登录
2006-8-4
查看个人网站
查看详细资料
TOP
quanliking
新手上路
发短消息
加为好友
当前离线
3
#
大
中
小
发表于 2006-8-14 10:42
只看该作者
fontconfig 的字体匹配算法和 locale 关系紧密,语言特性具有很高的优先级。比如:
[code:1]
<alias>
<family>sans-serif</family>
<prefer>
<family>Arial</family>
<family>SimSun</family>
</prefer>
</alias>
[/code:1]
Arial 是排在 SimSun 前面的,按一般思维来说,应该先使用 Arial 的英文。
但如果你的 locale 为 zh_CN.UTF-8,Arial 的 lang 参数不含 zh-cn,而 SimSun 的 lang 参数包含 zh-cn,则优先使用 SimSun,用下面命令查看:
[code:1]
$ LANG=zh_CN.UTF-8 fc-match sans --sort
simsun.ttc: "SimSun" "Regular"
Arial.ttf: "Arial" "Regular"
......
[/code:1]
如果讲 locale 改为 en_US.UTF-8,则优先使用 Arial,道理同上。
[code:1]
$ LANG=en_US.UTF-8 fc-match sans --sort
Arial.ttf: "Arial" "Regular"
simsun.ttc: "SimSun" "Regular"
......
[/code:1]
可以通过强绑定机制,强行优先使用你喜欢的字体:
[code:1]
<match target="pattern">
<test name="family" >
<string>SimSun</string>
<edit name="family" mode="prepend" binding="strong">
<string>Arial</string>
</edit>
</match>
[/code:1]
不过这种处理问题多多,这也是 fontconfig 匹配算法很大争议的地方。
UID
2343
帖子
13
精华
0
积分
33
阅读权限
10
来自
China
在线时间
0 小时
注册时间
2002-8-22
最后登录
2006-8-19
查看详细资料
TOP
‹‹ 上一主题
|
下一主题 ››
版块跳转
社区公告专栏:最新通知和公告
公告区
基础技术支持专栏:
系统安装
硬件配置
Magic Linux专版:
Magic Linux技术支持区
Magic Linux开发培训版
一般应用技巧专栏:
中文化与桌面美化
桌面使用小技巧
命令行使用小技巧与SHELL编程
应用解决方案专栏:
网络工具
办公软件
多媒体应用
游戏乐园
服务器与网络安全
Linux资源共享区
高级技术学习专栏:
Debian/LFS/Gentoo专题版
Linux高质量字体研究
easyright计算机研究所
Linux认证考试专题版
社区开源项目专栏
应用编程技术与项目孵化
网站开发技术与项目孵化
参与国际开源项目
翻译汉化
中文GNOME用户交流区
Skyeye项目专栏
lumit项目专栏
eva项目专栏
fanx项目专栏
连连看for Linux项目专栏
OurLinux杂志专区
BitStorm项目专栏
RT-Thread实时操作系统
EGui开源项目
AVS项目专栏
VirgoFTP项目专栏
Linux内核研读区:公社内核阅读小组
内核源代码阅读交流
内核安装和升级
嵌入式开发
社区文化活动专栏:我们是一家人!
校园行动联盟
Linux与公社文化杂谈
求职与招聘
请进公社总部:
公社接待中心
控制面板首页
编辑个人资料
积分交易
积分记录
公众用户组
访问推广
基本概况
版块排行
主题排行
发帖排行
积分排行
交易排行
在线时间
管理团队
管理统计