【发布时间】:2010-01-23 03:25:01
【问题描述】:
当我在处于 LaTeX 模式的 Emacs 缓冲区上运行 Emacs 命令 ispell-buffer 时,ispell 还会检查数学表达式中的拼写。
我非常想禁用它。有没有简单的方法来做到这一点?
我读过关于 detex 的文章,但 detex 似乎没有集成到 Emacs 中。
【问题讨论】:
当我在处于 LaTeX 模式的 Emacs 缓冲区上运行 Emacs 命令 ispell-buffer 时,ispell 还会检查数学表达式中的拼写。
我非常想禁用它。有没有简单的方法来做到这一点?
我读过关于 detex 的文章,但 detex 似乎没有集成到 Emacs 中。
【问题讨论】:
如果您使用乳胶(例如 \[ ... \]、方程式环境等)来调用数学模式,则不应这样做。查看ispell-tex-skip-alists的内容;参看。 section 6 of the ispell FAQ 应该有什么样的东西。
您可以使用 $..$、$$..$$ 来使用 ispell-tex-skip-alists 来标记数学,但要小心让它们变得不平衡...
后记
还要检查ispell-parser 变量的值:这应该是'tex,否则ispell 将不会查找$...$ 和$$...$$ 区域。
【讨论】:
是的,您可以:安装 aspell 代替 ispell,并使用 flyspell。
【讨论】:
这并不能直接回答您的问题,但我发现Flyspell,一个即时拼写检查器,在编辑 LaTeX 文档时非常有用。它仍然会在方程式内进行拼写检查,但与 ispell 的交互式命令相比,忽略一些额外的红色下划线要容易得多。
【讨论】:
您可能知道这一点,但您可以在拼写检查期间按A 将单词添加到缓冲区本地字典(即大写A,小写a 将其添加到全局字典)。这并不理想,但这就是我通常在我的 LaTeX 文档中禁止对技术术语和变量名等进行拼写检查的方式。
【讨论】:
This AUCTeX mailing list thread : "spell checker (ispell-buffer) complains about products in math modes" 有一些解决方法,答案演示了如何使用 ispell-tex-skip-alists。
【讨论】:
另一种方法是使用ispell-skip-region-alist。下面的例子是to exclude org-mode src blocks:
(add-to-list 'ispell-skip-region-alist '("#\\+begin_src". "#\\+end_src"))
【讨论】: