有可能babel
让 AUCTeX 加载已加载的语言的拼写词典。另一个便利之处在于它可以对文档中的语言变化做出适当的反应。可以使用和的宏进行此类更改babel
。csquotes
那么,是否可以根据文档的语言宏让 AUCTeX 以正确的语言进行拼写检查?
下面是一个测试文档。解决方案是让 AUCTeX 自动对第一段英文进行拼写检查,其他段落则根据指定的语言进行拼写检查。
\documentclass{article}
\usepackage[danish,english]{babel}
\usepackage{csquotes}
\begin{document}
In computing, a spell checker (or spell check) is an application
program that flags words in a document that may not be spelled
correctly.
\foreignquote{danish}{I computerterminologi er en stavekontrol en
design feature eller et software program designet til at tjekke
stavningen af ord i et dokument og som normalt kan komme med forslag
til stavningsforslag.}
\hyphenquote{danish}{I computerterminologi er en stavekontrol en
design feature eller et software program designet til at tjekke
stavningen af ord i et dokument og som normalt kan komme med forslag
til stavningsforslag.}
\foreignlanguage{danish}{I computerterminologi er en stavekontrol en
design feature eller et software program designet til at tjekke
stavningen af ord i et dokument og som normalt kan komme med forslag
til stavningsforslag.}
\begin{hyphenrules}{danish} I computerterminologi er en stavekontrol
en design feature eller et software program designet til at tjekke
stavningen af ord i et dokument og som normalt kan komme med forslag
til stavningsforslag.
\end{hyphenrules}
This sentence should be spell checked with an English dictionary.
\end{document}
答案1
假设您正在使用flyspell
,是的,这是可能的!
包裹flyspell-babel.el应该完全按照您的要求进行:读取 babel 的内联语言更改,并flyspell
为该语言启动一个进程。
根据文档:
此包所做的解析有其局限性,因此它不能用于任意 LaTeX 代码。我希望这些限制在实践中不会影响大多数人的典型用法。第一个语言声明通常由传递给 babel 命令的最终语言选项决定,该选项在 \begin{document} 之后生效。此后,您可以使用 语句、环境和命令
\usepackage
切换声明的语言 。您还可以定义自己的语言切换命令,并使用 flyspell-babel 注册这些命令。\selectlanguage
otherlanguage
\foreignlanguage
因此,您可能必须让其他语言更改命令(例如\foreignquote
)为人所知flyspell-babel
。
此软件包需要以下软件包flyspell-multi.el
(目前尚无已知链接)或ispell-multi.el
flyspell
同时启动多个进程,以避免在滚动浏览语言变化的文件时出现速度减慢。
安装说明
将文件flyspell-babel.el
放在flyspell-multi.el
加载路径并将以下几行添加到您的.emacs
:
(autoload 'flyspell-babel-setup "flyspell-babel")
(add-hook 'latex-mode-hook 'flyspell-babel-setup)
要添加对其他命令的支持,请将以下行添加到.emacs
:
(add-to-list 'flyspell-babel-command-alist ("hyphenquote" "hyphenquote"))
(add-to-list 'flyspell-babel-command-alist ("foreignquote" "foreignquote"))
(add-to-list 'flyspell-babel-environment-alist ("hyphenrules" "hyphenrules"))
所有功劳归于彼得·赫斯林,这两个包的作者。