当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 1 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : (已解决)求助,emacs中defface使用自定义fontset的问题
帖子发表于 : 2011-04-17 21:37 

注册: 2007-06-23 17:27
帖子: 82
系统: Linux Mint 13
送出感谢: 1
接收感谢: 0 次
解决办法:http://marxistprogrammer.blog.163.com/blog/static/471989812011320112353323/
======================================
我的系统是win7,emacs版本23.3.1。

先定义一个名为dyna的face
代码:
(defface dyna
    '((t :family "楷体"))
    "face defined by dyn."
    :group 'basic-faces)


在buffer中选中中国的“中”字,然后选择菜单项:
Edit -> Text Properties -> Face -> Other
此时minibuffer中提示如下
Use face:
输入dyna

“中”字变成了楷体。
然后执行M-x describe-char,会显示相关信息如下:
character: 中 (20013, #o47055, #x4e2d)
preferred charset: chinese-gbk (GBK Chinese simplified.)
code point: 0xD6D0
syntax: w which means: word
category:
.:Base, C:2-byte han, c:Chinese, h:Korean, j:Japanese, |:line breakable
buffer code: #xE4 #xB8 #xAD
file code: #xD6 #xD0 (encoded by coding system chinese-gbk-dos)
display: by this font (glyph code)
uniscribe:-outline-楷体-normal-normal-normal-mono-13-*-*-*-c-*-gb2312.1980-0 (#x463)

Character code properties: customize what to show
name: CJK IDEOGRAPH-4E2D
general-category: Lo (Letter, Other)

There are text properties here:
face dyna

再定义一个名为dynb的face,不过这次我想让它使用一个自定义的fontset
我先创建这个fontset如下:

代码:
(create-fontset-from-fontset-spec
   "-outline-Arial-normal-normal-normal-sans-13-*-*-*-p-*-fontset-gbk")


然后再设置一下,指定对于chinese-gbk这个字符集使用楷体

代码:
(set-fontset-font
   "fontset-gbk" 'chinese-gbk
   "-outline-楷体-normal-normal-normal-mono-27-*-*-*-c-*-gb2312.1980-0")


然后新建一个名为dynb的face,并在其中使用这个自定义的fontset

代码:
(defface dynb
    '((t :family "chinese-gbk"))
    "face defined by dyn."
    :group 'basic-faces)


然后,同上边一样,在buffer中选中中国的“中”字,然后选择菜单项:
Edit -> Text Properties -> Face -> Other
提示Use face:时输入dynb

但这次“中”字并没有变成楷体。

执行M-x describe-char
显示如下信息:
character: 中 (20013, #o47055, #x4e2d)
preferred charset: chinese-gbk (GBK Chinese simplified.)
code point: 0xD6D0
syntax: w which means: word
category: .:Base, C:2-byte han, c:Chinese, h:Korean, j:Japanese, |:line breakable
buffer code: #xE4 #xB8 #xAD
file code: #xD6 #xD0 (encoded by coding system chinese-gbk-dos)
display: by this font (glyph code)
uniscribe:-outline-Batang-normal-normal-normal-serif-13-*-*-*-p-*-gb2312.1980-0 (#x8966)

Character code properties: customize what to show
name: CJK IDEOGRAPH-4E2D
general-category: Lo (Letter, Other)

There are text properties here:
charset chinese-gbk
face dynb

跟上一次几乎完全相同,除了一行之外。
似乎dyna并没有使用楷体,而是用了一个名为Batang的字体。

我用M-x describe-fontset查看fontset-gbk的详细信息
发现似乎是“中”字没有用我设定的楷体,而是fallback to the default fontset之后,用了default fontset中的字体。

请问这是怎么回事?我是哪里出了错?如何才能让face使用自定义的fontset?


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 1 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译