如何让 emacs 在字体锁定模式下渲染数学组合字符



我正在尝试让 emacs 在字体锁定模式下正确渲染数学组合字符,例如 diaeresis、over bar 等。目标是能够写出像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"。

这是怎么回事?

值得一提的是,您的第一个示例在OS X上的前沿Emacs中没有伪影即可正常工作。您可能会看到特定于平台的 emacs UI 和/或字体库的渲染怪癖。如果你发布更多关于你正在运行的Emacs的信息,比我更专家的人可能会确认这个问题。

最新更新