注册 登录  
 加关注

网易博客网站关停、迁移的公告:

将从2018年11月30日00:00起正式停止网易博客运营
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

为着理想勇敢前进

 
 
 

日志

 
 

Ubuntu 8.04和8.10的字体设置  

2009-01-09 23:24:48|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

2007年我写过一篇文章,Ubuntu 的字体设置。不过Ubuntu 8.04以后出现了新问题,Flash Player中的中文都变成了方块。为什么呢?

要知道为什么,得从fontconfig匹配字体的方式说起。其实呢,fontconfig匹配字体的时候,会考虑locale(本地化),这个locale就是我们平常 export LANG=XXX 的那个XXX。中文locale就用中文字体,英文locale就用英文字体,是挺好的。此外,fontconfig的配置文件里有一个binding="strong"的选项,可以要求fontconfig无视locale,直接选用最前面的字体。

到了Ubuntu 8.04,其中的language-selector配置文件会把一些英文字体添加到了中文字体的前面,还用了<edit binding="strong">的标志。这就产生了一个问题,即使需要渲染一个汉字,fontconfig却总是选择英文字体。这可怎么办?

大部分应用程序的解决办法是使用fontconfig选择的下一个字体渲染,然而Adobe Flash Player却不这样干,它直接渲染出一个方块。所以我们就看到了方块。

最好的解决办法是让Adobe修复这个bug,不过,在Adobe修复这个bug以前,另一种暂时的解决办法就是不要使用binding="strong"。所以我建议卸载language-selector和language-selector-common这两个包,在命令行输入以下代码即可:

sudo apt-get remove language-selector language-selector-common
若想使用文泉驿的字体,并且要让等宽字体等宽,可以把以下代码保存到~/.fonts.conf
<?xml version="1.0"?><!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <match target="pattern">
    <test qual="any" name="family" compare="eq">
      <string>monospace</string>
    </test>
    <edit name="family" mode="prepend" binding="strong">
      <string>DejaVu Sans Mono</string>
    </edit>
  </match>

  <alias>
    <family>sans-serif</family>
    <prefer>
      <family>WenQuanYi Zen Hei</family>
    </prefer>
  </alias>
  <alias>
    <family>monospace</family>
    <prefer>
      <family>WenQuanYi Zen Hei</family>
    </prefer>
  </alias>
</fontconfig>
  评论这张
 
阅读(454)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018