LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1257|回复: 6

[已解决]emacs部分中文显示为方框的问题

[复制链接]
发表于 2009-3-7 10:09:17 | 显示全部楼层 |阅读模式
大家好,我在英文界面下使用Emacs,但想显示中文,在网上找了好多配置方法都没有实现中文的正确的显示,今天按照http://www.emacs.cn/Chinese/Debian的方法安装了mule-ucs,但由于用emerge没找到文中所提到的“emacs-intl-fonts  xfonts-intl-chinese*  xfonts-intl-japanese*”等字体,所以没安装(这些字体能用文泉驿等字体来代替吗?),之后可以显示中文了,但对于“呢,么,还”等一些常用的字体还是显示方框。不知道什么原因,麻烦大家帮我看看,以下是一些相关信息,不知道够了吗,谢谢了。
操作系统:
  1. Linux Gentoo 2.6.25-gentoo-r8
复制代码
Emacs版本:
  1. GNU Emacs 22.3.1
复制代码
Locale:
  1. LANG=en_US.UTF-8
  2. LC_CTYPE=zh_CN.UTF-8
  3. LC_NUMERIC=en_US.UTF-8
  4. LC_TIME=en_US.UTF-8
  5. LC_COLLATE=en_US.UTF-8
  6. LC_MONETARY=en_US.UTF-8
  7. LC_MESSAGES=en_US.UTF-8
  8. LC_PAPER=en_US.UTF-8
  9. LC_NAME=en_US.UTF-8
  10. LC_ADDRESS=en_US.UTF-8
  11. LC_TELEPHONE=en_US.UTF-8
  12. LC_MEASUREMENT=en_US.UTF-8
  13. LC_IDENTIFICATION=en_US.UTF-8
  14. LC_ALL=
复制代码
输入法:
  1. SCIM
复制代码
.emacs关于字体等选项的部分:
  1. (require 'un-define)
  2. (setq locale-coding-system 'utf-8)
  3. (prefer-coding-system 'utf-8)
  4. (set-keyboard-coding-system 'utf-8)
  5. (set-terminal-coding-system 'utf-8)
  6. (set-selection-coding-system 'utf-8)
  7. (set-clipboard-coding-system 'ctext)
  8. (set-buffer-file-coding-system 'utf-8)
  9. (create-fontset-from-fontset-spec
  10. "-*-courier-medium-R-normal--14-*-*-*-*-*-fontset-mymono,
  11. chinese-gb2312:-*-wenquanyi bitmap song-medium-*-normal--14-*-*-*-*-*-iso10646-1,
  12. chinese-gbk:-*-wenquanyi bitmap song-medium-*-normal--14-*-*-*-*-*-iso10646-1,
  13. chinese-gb18030:-*-wenquanyi bitmap song-medium-*-normal--14-*-*-*-*-*-iso10646-1"
  14. )
  15. (setq default-frame-alist (append '((font . "fontset-mymono")) default-frame-alist))
  16. (set-default-font "fontset-mymono")
复制代码

这个问题应该和emacs的版本无关,因为我现在用的就是emacs-cvs版,没进行如下处理前是同样的问题,处理之后就好了。

解决方法:
参考了论坛中的两个帖子
1. http://www.linuxsir.cn/bbs/lastpostinthread283520.html
2. http://www.linuxsir.cn/bbs/thread341390.html

首先emerge安装两个小软件:
  1. xlsfonts
复制代码
  1. xset
复制代码
在安装了文泉驿字体的前提下执行:
  1. xset +fp /usr/share/fonts/wqy-bitmapfont/
复制代码
将文泉驿字体添加到核心字体中,然后执行:
  1. xlsfonts | grep gb
复制代码
如果能看到:
  1. -wenquanyi-wenquanyi bitmap song-bold-r-normal--0-0-100-100-p-0-gb18030.2000-0
  2. -wenquanyi-wenquanyi bitmap song-bold-r-normal--0-0-100-100-p-0-gb2312.1980-0
  3. -wenquanyi-wenquanyi bitmap song-bold-r-normal--0-0-100-100-p-0-gbk-0
  4. -wenquanyi-wenquanyi bitmap song-bold-r-normal--0-0-75-75-p-0-gb18030.2000-0
  5. -wenquanyi-wenquanyi bitmap song-bold-r-normal--0-0-75-75-p-0-gb2312.1980-0
  6. -wenquanyi-wenquanyi bitmap song-bold-r-normal--0-0-75-75-p-0-gbk-0
  7. -wenquanyi-wenquanyi bitmap song-medium-r-normal--0-0-100-100-p-0-gb18030.2000-0
  8. -wenquanyi-wenquanyi bitmap song-medium-r-normal--0-0-100-100-p-0-gb2312.1980-0
  9. -wenquanyi-wenquanyi bitmap song-medium-r-normal--0-0-100-100-p-0-gbk-0
  10. -wenquanyi-wenquanyi bitmap song-medium-r-normal--0-0-75-75-p-0-gb18030.2000-0
  11. -wenquanyi-wenquanyi bitmap song-medium-r-normal--0-0-75-75-p-0-gb2312.1980-0
  12. -wenquanyi-wenquanyi bitmap song-medium-r-normal--0-0-75-75-p-0-gbk-0
复制代码
就说明添加成功了,
但这种方法只能临时添加,要下次重启电脑后能继续使用这种字体,则需要在/etc/X11/xorg.conf中添加:
  1. FontPath /usr/share/fonts/wqy-bitmapfont/
复制代码
最后在.emacs中添加
  1. (create-fontset-from-fontset-spec
  2.    "-*-courier-medium-r-*-*-14-*-*-*-*-*-fontset-song,\
  3.    chinese-gb2312:-wenquanyi-wenquanyi bitmap song-medium-r-normal--15-150-75-75-p-80-iso10646-1,\
  4.    chinese-gbk:-wenquanyi-wenquanyi bitmap song-medium-r-normal--15-150-75-75-p-80-iso10646-1,\
  5.    chinese-gb18030:-wenquanyi-wenquanyi bitmap song-medium-r-normal--15-150-75-75-p-80-iso10646-1,\
  6.    chinese-cns11643-5:-wenquanyi-wenquanyi bitmap song-medium-r-normal--15-150-75-75-p-80-iso10646-1,\
  7.    chinese-cns11643-6:-wenquanyi-wenquanyi bitmap song-medium-r-normal--15-150-75-75-p-80-iso10646-1,\
  8.    chinese-cns11643-7:-wenquanyi-wenquanyi bitmap song-medium-r-normal--15-150-75-75-p-80-iso10646-1")
  9. (set-default-font "fontset-song")
  10. (add-to-list 'after-make-frame-functions
  11.    (lambda (new-frame) (select-frame new-frame)
  12.       (set-default-font "fontset-song")))
复制代码
就可以看到图中的效果了
[color="Red"]
PS: 比较好的解决办法是六楼blackwhite兄提供的链接,如下:

http://www.gentoo.org/proj/en/lisp/emacs/xft.xml

本帖子中包含更多资源

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

x
发表于 2009-3-7 11:21:47 | 显示全部楼层
你中文部分字出问题。看起来像是你的字体配置问题。
安装emacs cvs版本。因为这个版本支持xft,相对容易解决中文问题。
回复 支持 反对

使用道具 举报

发表于 2009-3-7 11:24:21 | 显示全部楼层
直接安装emacs cvs
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-7 12:05:52 | 显示全部楼层
谢谢blackwhite和waterloo2005的回复,那我试试cvs吧。
对了,我在zhcon下使用emacs显示中文是没有问题的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-8 14:52:04 | 显示全部楼层
解决方法放在这儿了,希望对碰到同样问题的朋友有点帮助,呵呵。
回复 支持 反对

使用道具 举报

发表于 2009-3-9 03:23:48 | 显示全部楼层
LZ, CVS版本的emacs默认不用xft,所以你要加上这个,才可以用xft字体。
http://www.gentoo.org/proj/en/lisp/emacs/xft.xml
你目前用emacs的字体支持还是老的方法Type1字体。从你的解决方法看,应该是你没有在xorg.conf把字体加到fontpath,所以你后来要用xset添加wqy的字体路径。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-9 19:46:01 | 显示全部楼层
Post by blackwhite;1958071
LZ, CVS版本的emacs默认不用xft,所以你要加上这个,才可以用xft字体。
http://www.gentoo.org/proj/en/lisp/emacs/xft.xml
你目前用emacs的字体支持还是老的方法Type1字体。从你的解决方法看,应该是你没有在xorg.conf把字体加到fontpath,所以你后来要用xset添加wqy的字体路径。
谢谢blackwhite,又学到了一些东西,确实是在FontPath中没有加入wqy,刚才回来打开emacs发现其又变回去了,将/usr/share/fonts/wqy-bitmapfont/添加到FontPath中就好了,谢谢你提供的信息。^_^
回复 支持 反对

使用道具 举报

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

本版积分规则

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