2011-05-12 18 views
3

我想让emacs在字体锁定模式下正确渲染数学组合字符,例如diaeresis,over bar等。目标是能够写出像x_dot这样的数学数据,并将其显示为“ẋ”,或将x_bar显示为“x̄”。如何让emacs在字体锁定模式下渲染数学组合字符?

这是我到目前为止,它主要是工作。

(font-lock-add-keywords 
    nil 
    `(("\\<\\(\\w\\)\\(_dot\\)\\>" 
    (0 (progn (compose-region (match-beginning 1) (match-end 2) 
        (concatenate 'string (match-string 1) " ̇")) nil))))) 

但是:我在组成角色前面看到一个视觉神器角色。在执行上述操作后,在* scratch *缓冲区中写入“x_dot”或类似的东西来测试。

这件神器像幽灵一般来去。在编写像“o”和“ - ”这样的普通字符时,不会发生此行为,如下例所示。

(font-lock-add-keywords 
    nil 
    `(("\\<\\(\\w\\)\\(_dash\\)\\>" 
    (0 (progn (compose-region (match-beginning 1) (match-end 2) 
        (concatenate 'string (match-string 1) "-")) nil))))) 

然后在某处输入“x_dash”。

这是怎么回事?

回答

2

对于它的价值,您的第一个示例在OS X的Emacs上我的流血边缘Emacs中没有工件效果很好。您可能会看到特定于您平台的emacs UI和/或字体库的渲染特性。如果您发布更多关于您正在运行的Emacs的信息,那么比我更专家的人可能会确认问题。

+0

我在ubuntu上用emacs 23.2测试了这个例子,看到了同样的问题。 – jtahlborn 2011-05-14 11:13:06

+0

是的,我也使用emacs 23.2在Ubuntu上。我会看看我是否可以追查真正的问题... – ivar 2011-05-16 08:58:22