很少有问题会导致原始发布者所描述的行为,他们使用的是自定义修改版本tex-mode.el
,而不是AUCTeX。
首先,yas--snippet-parse-create
除了其他代码之外,该函数还包含以下与 LaTeX 转义的美元符号不能很好配合的函数:
(yas--protect-escapes nil `(?\\ ?` ?'))
(yas--protect-escapes)
(yas--restore-escapes)
(yas--delete-regions ys--dollar-regions)
其次,yas--simple-mirror-regexp
除了标准的 yasnippet 字段(例如$1
. 当上述(yas--delete-regions yas--dollar-regions)
被 调用时yas--snippet-parse-create
,结果是错误删除。此答案的作者已修改正则表达式以排除带有前面反斜杠的美元符号:
(setq yas--simple-mirror-regexp "[^\\]$\\([0-9]+\\)")
此答案的作者目前没有修复yas--protect-escapes
and yas--restore-escapes
,并且在此期间只是将它们注释掉。[这对于任何编程的人来说显然都是有问题的,但对于仅仅编写 LaTeX 文档似乎就足够了。] Github 上已经打开了一个问题,如果在那里找到解决方案,这个答案的作者将更新这个线程。