4

我的问题是在 emacs 中编写 TeX,但与 TeX 系统本身无关。

我的目标是在 emacs 中设置缩写,以用它们的 unicode 字符替换一些(TeX)宏,例如当我在 emacs 中键入 TeX 时自动将 \alpha 替换为 α。

我计划使用缩写系统来实现这一点。虽然以下缩写可以正常工作(用 \test 替换 test):

("test" "\\test" nil 0)

可以做我想做的缩写,即:

("\\alpha" "A" nil 0)

或者

("\\\\beta" "B" nil 0)

当我输入 \alpha 或 \beta 时不适用。

(我可以通过替换“alpha”本身并删除一个前面的字符来回避这一点,但我想保留在没有反斜杠的情况下键入 alpha 并且不应用此缩写规则的选项。)

用 α 代替 \alpha 的正确缩写形式是什么?

4

2 回答 2

5

您需要更改:regexpabbrev 表的属性。

(abbrev-table-put <your-abbrev-table> :regexp "\\(\\\\[a-z0-9@]+\\)")

唯一的问题是,在向后匹配的正则表达式中,开头不能有可选字符。因此,要么您更改 的语法类别\(但您不需要对缩写表进行任何特殊处理),要么您必须选择让此表中的所有缩写以或不以反斜杠开头。

但是为什么不使用输入法来插入 unicode 字符呢?

于 2013-08-14T15:18:43.430 回答
2

这已经存在。使用该功能set-input-method并选择TeX

于 2013-08-14T15:18:31.780 回答