免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1136 | 回复: 0
打印 上一主题 下一主题

Linux操作系统下中文字体的安装 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-09-17 22:02 |只看该作者 |倒序浏览

[Linux]linux字体技术原理
   
  首先, 我们要理解X的字体引擎. X中支持Truetype字体(一种可放缩字体) 的主要有四种引擎. freetype, xtt, xfs和Xft.
  
  其中freetype 和 xtt 是 X 的内部模块. 使用的都是freetype1渲染引擎.
  
  Xfs 和xft 是外部服务程序. xfs 是系统级的字体服务程序, 也可以作为X的内部模块, 使用的是X 内部的freetype2. Xft 和其他类库一样, 只有被调用的时候才被加载. 其中只有xft才有antialias 支持.
  
  这里有必要讲讲freetype. Freetype 是开源字体渲染引擎, 并不只为X设计. 它的功能就是读取Truetype字体信息, 如大小, 分辨率, 编码等, 然后渲染成所需的位图数据输出. Freetype 现在的版本是 2.x, 与1.0 相比, 最大的差别就是加入了抗锯齿功能.
  
  有这么多引擎,到底要用哪个好? 其实我们目前为止, 支持中文最好的还是xtt. 因为小字体的时候, 用函数描述法算出来的中文字体效果不能让人满意, 所以很多中文字体公司就在Truetype字体里嵌入了位图字体. 这些位图字体需要用特殊的方式读出来, 所有的引擎中就只有xtt能做到这一点.
  
  我们下一步就是将字体添加到X中, 使xtt可以正确读取, 这样就可以了.
  
  首先, 由于要配置Linux系统文件, 我们需要用root帐号进入.
  
  X的配置文件是/etc/X11/XF86Config-4 (比较新的显卡) 或者是 XF86Config (比较老的显卡). 用你喜欢的文本编辑器打开, 如 kedit或gedit.(我发现好像是xorg.conf)
  
  打开后我们发现配置文件分成很多个Section, 我们首先要配置的就是 Section Files , 这个部分描述了X所要调用的文件信息.
  
  要加入一个字体目录, 只需在里面插入一行 FontPath 目录名 就可以了, 如:
  
  Section Files
  # Multiple FontPath entries are allowed (they are concatenated together)
  # By default, Mandrake 6.0 and later now use a font server independent of
  # the X server to render fonts.
  FontPath unix/:-1
  FontPath /truetype # 插入一个字体目录
  EndSection
  
  然后, 我们让X加载xtt字体引擎:
  
  找到Section Module, 像这样修改:
  
  Section Module
  # Load dbe # Double-Buffering Extension
  # Load v4l # Video for Linux
  Load extmod
  Load glx
  # Load type1 # type1 模组是渲染type1字体的, 和xtt冲突, 必需屏蔽
  # Load freetype # freetype 模组是渲染Truetype字体的, 和xtt冲突, 必需屏蔽
  Load xtt # 加入xtt模组引擎
  EndSection
  
  好了, 现在xtt会自动去 /truetype 里找字体.
  
  现在开始拷贝字体到 /truetype里去, 先要在根目录建一个truetype目录, 打
  
  mkdir /truetype
  
  就可以了.
  
  然后将所需要的字体文件拷贝到truetype 里.
  
  下一步我们要设置字体文件, Linux中X的字体设置很烦锁, 不像windows一拷贝就完事, 初级阶段嘛, 大家还是忍忍吧, 呵呵.
  
  1. 建立字体信息文件fonts.dir
  
  在所在的字体目录下运行:ttmkfdir > fonts.dir 。编辑fonts.dir文件,在simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-ascii-0下增加两行:
(第一行的24表示下面一共有24行设置 (好像有点傻))
  simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0
  -p-0-gb2312.1980-0
  simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0
  -p-0-gbk-0
  同时注意将文件第一行的数字相应改动,然后复制fonts.dir为 fonts.scale 。
  
  说明:
  
  simsun.ttf: 字体文件名
  
  ds=[yn]: ds是xtt的功能, 设成y 表示粗体, n 表示正常.
  
  ai=Real_number: 表示倾斜度. 不设表示自动.
  
  misc : 表示字体的类别
  
  SimSun : 是字体的名称
  
  bold : bold 表示粗体, 其他如medium表示正常,
  
  i : 表示斜体, r 是正常
  
  p: 可变长度, c 是正方形, m是固定宽度
  
  gbk: 字体编码
  
  这里大家发现我们还使用了tahoma英文字体, 这样替换, 系统读取Simsun英文字体的时候, 就会用pp的tahoma替代.
  
  好了, 现在存盘. 然后拷贝一个到fonts.scale
  
  cp fonts.dir fonts.scale
  
  然后拷贝编码文件 encodings.dir 到目录里来.
  
  cp /usr/X11R6/lib/X11/fonts/encodings/encodings.dir /truetype
  
  好, 重起, 把KDE, mozilla, galeon 等等所有默认字体都改成simsun, 哈哈, 是不是比从前漂亮了很多?
  
  大家还是把这几个配置文件备份起来, 以后安装的时候就不用再设置了.
  
  这里顺带说一下其他几个字体引擎的配置:
  
  xfs : 配置文件是 /etc/X11/fs/config
  xft : 配置文件是 /etc/X11/Xftconfig
  
  xft 的配置相对来说比较容易, 只要将字体拷到配置文件中dir 指定的任何一个目录就可以了. 如果要小字体不显示AA, 可以在末尾加入:
  
  match
  any size > 8
  any size 8
  any pixelsize
后记:
综合了两个版本:
http://www.75pc.com/viewthread.php?tid=17719
http://www.knowsky.com/303449.html


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/24010/showart_172563.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP