3

我试图让emacs在字体锁定模式下正确渲染数学组合字符,如分音符、横杆等。目标是能够编写像 x_dot 这样的数学运算并将其显示为“ẋ”,或将 x_bar 显示为“x̄”。

这是我到目前为止所拥有的,而且它大部分都有效。

 (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”。

到底是怎么回事?

4

1 回答 1

2

对于它的价值,您的第一个示例在我在 OS X 上的前沿 Emacs 中没有伪影的情况下运行良好。您可能会看到特定于您平台的 emacs UI 和/或字体库的渲染怪癖。如果您发布有关您正在运行的 Emacs 的更多信息,比我更专业的人可能能够确认该问题。

于 2011-05-13T18:19:07.007 回答