Emacs+YaTeXで英語論文を書くときのスペルチェックの話です。昔はispell
ってのが使われてたけど、最近はaspell
が使われてるようですね。とりあえず、こいつをinstallしましょう。
$ brew install aspell --lang=en $ echo lang en_US > ~/.aspell.conf
--lang=en
つけてあげれば2つめのコマンドは打たなくてもいいかも。一応入ってるか確認。
$ aspell -v @(#) International Ispell Version 3.1.20 (but really Aspell 0.60.6.1)
ちゃんと入ってるので、次はEmacs側から使う設定をしていきます。
;;ispellをaspellに置き換え (setq ispell-program-name "aspell") ;;日本語まじりでも使えるようにする (eval-after-load "ispell" '(add-to-list 'ispell-skip-region-alist '("[^\000-\377]+")))
ispellをaspellに置き換える部分を評価してエラーが出たら、
(setq ispell-program-name "/path/to/aspell")
などと絶対パスで指定してあげると良いようです。さて、これでEmacsからaspellを使う準備ができたわけですが、毎回M-x ispell
を打つのも面倒なんで、ファイル保存時にスペルチェックしてくれるようにしましょう。
;;YaTeXモードの時にのみ動作させる用に条件分岐 (defun ispell-before-save-if-needed () (when (memq major-mode '(yatex-mode)) (ispell))) (add-hook 'before-save-hook 'ispell-before-save-if-needed)
これでYaTeXモードの時だけ保存時にスペルチェックが走ります。しかしWordを使ってる人からすると「なんでリアルタイムに見てくれないんだ!」という感じだと思うので、flyspell-mode
を使ってリアルタイムもにスペルチェックしてもらいましょう。
;;YaTeXモードの時にのみflyspell-modeを起動 (mapc (lambda (hook)(add-hook hook '(lambda () (flyspell-mode 1)))) '(yatex-mode-hook))
これで間違ったスペルは強調表示してくれますし、YaTeXモード以外の時はスペルチェックが走らないので安心です。便利!
参考
まとめ
Emacs Lisp書いてないで論文書かないとマズイ。