Spell Check Your LaTeX Writings Using GNU Aspell

The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:

你在学术和技术写作中使用LaTeX吗?你不使用吗?那你应该使用!它是唯一一个能够制作格式正确的PDF文档的专业工具。而MS Word和Apple Pages适用于非技术人员,而LaTeX是严肃的。它在很多方面都非常完美,多亏了Donald Knuth(TeX的创造者)和Leslie Lamport(LaTeX的作者),但它缺少一个非常方便的功能:拼写检查。到目前为止,我找到的唯一解决方案是GNU aspell,它对我的文档非常完美地工作。

GNU aspell是一个命令行工具,它需要你提供LaTeX源代码(确实是代码,而不是”文本”)作为输入,并打印出发现的拼写错误列表。它的美妙之处在于它仅检查文本,忽略TeX命令。例如,这是一个LaTeX文档:

如果我们将这段文本输入到其他拼写检查器(或不带--mode=tex选项的GNU aspell)中,单词textbf将被视为明显的拼写错误;然而,aspell将其理解为LaTeX命令并忽略它。此外,aspell可以通过使用--pws选项提供的自定义词典理解单词Yegor,尽管它不是英语单词。

aspell还有一些其他有用的功能。长话短说,我决定创建一个小的aspell包装器,以简化其配置过程:texsc(代表”TeX拼写检查”)。它是一个命令行工具,你可以安装并运行,例如像这样(你可以在此论文的Makefile中看到它是如何配置的)。

有一个参数列表可以提供给texsc

  • --ignore(你可能有很多)是TeX命令的列表,以及应该被忽略的参数。一个很好的例子是\code{}命令,在所有情况下都有一个不是英语单词的内容。你也可能有带有多个参数的命令,在这种情况下,你可以写成--ignore=code:op,在命令\code[foo]{bar}中,foobar都会被忽略。后缀:op表示一个可选(o)参数被忽略,然后是一个必选(p)参数。类似:oppp的形式会告诉aspell忽略一个可选参数,然后三个必选参数。

  • --min-word-length 是要关注的单词的最小长度。我使用数字 3,这是默认值。更短的单词(一个或两个字符)不重要,不需要进行拼写检查。

我在所有的LaTeX项目中都使用texsc,通常作为其构建周期的一部分,我使用GNU make进行自动化。你也可以这样做,因为它是开源的。

Translated by ChatGPT gpt-3.5-turbo/42 on 2023-11-28 at 15:30

sixnines availability badge   GitHub stars