![在 AUCTeX 中跳过对某些宏进行拼写检查的适当方法](https://linux22.com/image/402912/%E5%9C%A8%20AUCTeX%20%E4%B8%AD%E8%B7%B3%E8%BF%87%E5%AF%B9%E6%9F%90%E4%BA%9B%E5%AE%8F%E8%BF%9B%E8%A1%8C%E6%8B%BC%E5%86%99%E6%A3%80%E6%9F%A5%E7%9A%84%E9%80%82%E5%BD%93%E6%96%B9%E6%B3%95.png)
我想跳过对包中的宏\acrshort
(也\acrlong
和\acrfull
)内部的检查glossaries
。
我尝试了以下邮报,我在宏方面取得了一些成功\cite...
(为了完整性,我将其列在下面)
;; https://tex.stackexchange.com/a/150882/37198
(setq ispell-tex-skip-alists
(list
(append
(car ispell-tex-skip-alists)
'(
("[^\\]\\$" . "[^\\]\\$")
("\\\\textcite" ispell-tex-arg-end)
("\\\\parencite" ispell-tex-arg-end)
("\\\\footcite" ispell-tex-arg-end)
("\\\\fullcite" ispell-tex-arg-end)
("\\\\citetitle" ispell-tex-arg-end)
("\\\\citep" ispell-tex-arg-end)
("\\\\cites" ispell-tex-arg-end)
("\\\\eqref" ispell-tex-arg-end)
("\\\\acrshort" ispell-tex-arg-end)
("\\\\acrlong" ispell-tex-arg-end)
("\\\\acrfull" ispell-tex-arg-end)
;; ("\\\\operatorname\\*" ispell-tex-arg-end)
;; ("\\\\operatorname" ispell-tex-arg-end)
;; ("\\\\mycommadtwo" ispell-tex-arg-end 2)
;; add as many lines like the previous two as you need before the "))"
))
(cadr ispell-tex-skip-alists)))
但它不起作用,也就是说,\acrshort
仍然没有跳过内部检查。但下面的方法确实有效,
(eval-after-load "tex-ispell"
'(progn
(TeX-ispell-skip-setcar
'(
("\\\\acrshort" ispell-tex-arg-end)
("\\\\acrlong" ispell-tex-arg-end)
("\\\\acrfull" ispell-tex-arg-end)
))
;; (TeX-ispell-skip-setcdr
;; '(("myverbatim" . "\\\\end{myverbatim}")))
))
我不太明白为什么会发生这种情况。
我检查了变量ispell-tex-skip-alists
,区别在于前一种方法将零件放在("\\\\acrshort" ispell-tex-arg-end)
列表中间,而后一种方法(成功)将零件放在列表开头。有没有更合适或更推荐的方法?非常感谢!