1) 我该如何处理包含特殊字符(如或 )aspell
的单词?我不能简单地将它们添加到字典中。F\"orster
\AA ngstrom
2) 如何跳过aspell
数学模式?例如,$a^bc$
它提供替换bc
。
答案1
GNU Aspell带有专用的 TeX/LaTeX 过滤器,可以使用--mode=tex
命令行选项激活。但是,此过滤器的功能仍然有限。本质上,当 Aspell 处于 TeX/LaTeX 模式时,它会跳过控制序列并根据可在命令行或 Aspell 的配置文件之一中扩展的宏签名列表检查/忽略宏参数。此外,在 TeX/LaTeX 模式下,Aspell 默认跳过注释。查看Aspell 手册了解详情。
Aspell 目前无法处理包含以传统 ASCII 符号表示的特殊字符的单词,例如,F\"orster
尽管在这方面改进 Aspell 是Aspell TODO 列表。此外,无法告诉 Aspell 跳过特定区域,例如内联公式或选定的 LaTeX 环境。
至于后一个问题,一个功能强大的 Aspell 前端可能会帮到你。一个例子是 – 令人惊讶 ;-) – Emacs 文本编辑器。实际上,当 Emacs 访问 TeX/LaTeX 输入文件时,拼写检查器(可以通过ispell-program-name
适当设置定制为使用 Aspell 作为后端)会跳过与 中指定的正则表达式匹配的所有区域ispell-tex-skip-alists
。但默认情况下,不会跳过内联公式。为了实现这一点,你必须ispell-tex-skip-alists
在 Emacs 初始化文件中进行扩展,例如使用以下形式:
(setcar ispell-tex-skip-alists
(append
(car ispell-tex-skip-alists)
'(("[^\\]\\$" . "[^\\]\\$"))))
答案2
并没有完全回答这个问题,但ispell
(而不是aspell
)忽略了大多数数学环境(带有选项-t
)。为了避免被新宏混淆,请参阅http://einstein.sc.mahidol.ac.th/~scmal/LaTeX/mspell/index.html。
答案3
关于你的第二个问题,有一个 aspell 补丁,它可以使它跳过内联和显示的数学公式。
该补丁的详细描述如下:
http://lists.gnu.org/archive/html/aspell-devel/2011-02/msg00000.html
不幸的是,补丁还没有在官方存储库中。无论如何,我都会使用它,因为我自己从源代码+补丁编译了 aspell。而且它运行良好。