Aspell

Aspell は Ispell に機能を追加した新しいスペルチェッカです. 英語はもちろんのこと,ドイツ語・フランス語・ギリシア語・ロシア語などにも対応しています. TeX の命令を無視する機能もあります.

上記の通り日本語アルファベット混じり文を完全無視してくれないのが嫌だとか,重いのがいやだとか特に理由がなければぜひ Aspell をお試しください.

Aspell のインストール

Windows の場合

Aspell は本体と辞書ファイルが別々に配布されています. ここでは英語辞書のみをインストールすることにしましょう.

もちろん英語以外の辞書をインストールすれば英語以外の言語の文書もスペルチェックできます. ただし,コマンドラインなどでは,ASCII 文字のアルファベット以外で構成された単語をスペルチェックすると文字化けすると思います. EmacsVim など,さまざまな文字コードに対応したテキストエディタのマクロから呼び出すことを勧めます.

Windows の場合は MSYS2 で Aspell をインストールします.

Windows での Emacs の設定覚書#Aspell

pacman -S mingw-w64-x86_64-aspell mingw-w64-x86_64-aspell-en

macOS の場合

Homebrew を使ってインストールできます.

brew install aspell --lang=en

MacPorts を使ってインストールできます.

sudo port install aspell aspell-dict-en

Linux の場合

Linux Mint/Debian/Ubuntu の場合は

sudo apt install aspell aspell-en

です.

Fedora の場合は

sudo dnf install aspell aspell-en

です.

Aspell の使い方(コマンドライン編)

コマンドラインから

aspell --lang=en -c -t 調べたいtexファイル

で TeX 文書を英語でスペルチェックできます.

スペルチェック中の操作キーは下記の通り.

キー機能
0-9修正候補と置換
i無視して次へ
r自分で手修正
aユーザ辞書に追加
b修正を保存せずに終了
I同じミススペルを全て無視して次へ
R手修正を全ての同じミススペルに適用.そして次へ
l小文字でユーザ辞書に追加.そして次へ
x保存して終了

間違ってユーザ辞書に登録してしまった場合は,ユーザ辞書をテキストエディタで開いて当該行を削除. ユーザ辞書は通常 ~/.aspell.en.pws という名前になっています.

さらに Aspell には,

--add|rem-tex-command=<str> TeX commands
--[dont-]tex-check-comments check TeX comments
--add|rem-tex-extension=<str> TeX file extensions

このようなオプションがあります.

例えば,コメント文もスペルチェックして欲しいときには,

aspell -c -t --tex-check-comments TeXソースファイル

とします.

非標準の TeX コマンドを追加したい場合には,--add-tex-command を使います.--add-tex-command のあとに,コマンド名と制御パラメータを書きます.

   «command»  «a list of p,P,o and Os» 

コマンドの後に続くパラメータは,コマンド文におけるスペルチェックの動作を制御します.

パラメータの1文字目はコマンドの第1引数に相当します. パラメータの2文字目はコマンドの第2引数に相当します. それ以上のパラメータがあれば Aspell は通常通りにスペルチェックします.

例えば,

--add-tex-command rule pp

とすると,"rule"というコマンドの第1と第2引数をスキップします. また,

--add-tex-command foo Pop

とすると,"foo"というコマンドの第1引数はスペルチェックされ,その次のオプション引数があってもなくても無視され,第2引数も無視されますが,それ以降の引数はスペルチェックの対象となります.

さらに,コマンドの最後についているアスタリスク(*)は単純に無視されます.

例えば,

--add-tex-command enlargethispage p

とすると,enlargethispage と enlargethispage* の両方の第1引数を無視します.

コマンドの削除は単純に例えば,

--rem-tex-command foo

とします.これで foo というコマンドが TeX コマンドリストから削除されて通常の文書としてスペルチェックの対象となります. もちろん,リストからの削除はこの場限りです.

追加する tex-command は,Aspell の設定ファイル /etc/aspell.conf や ~/.aspell.conf にあらかじめ書いておくことも可能です.

add-tex-command citep p, citet p
tex-check-comments true

Aspell の使い方(Emacs編)

Emacs の exec-path に Aspell のコマンド検索パスを追加します. Windows の場合は

(add-to-list 'exec-path "C:/msys64/mingw64/bin")

を ~/.emacs.d/init.el に追加します. 基本的には ~/.emacs.d/init.el に

(setq-default ispell-program-name "aspell") 

と1行書けばとりあえず使えます.

日本語混じりの TeX 文書のスペルをチェックしたい場合には,qa:3898 にある通り,

(with-eval-after-load "ispell"
  (add-to-list 'ispell-skip-region-alist '("[^\000-\377]+")))

も追加します.

Emacs では単純なスペルチェック以外にも,Aspell を使って,途中まで入力した単語の後半を補完してくれるスペル補完機能があります.

M-x ispell-complete-word

入力したスペルを途中に含む単語を補完入力する場合には,

M-x ispell-complete-word-interior-frag

とします.

ユーザ辞書の作成

ユーザ辞書には2種類あります. ~/.aspell.lang.pws は標準辞書にはない単語を追加する辞書で, ~/.aspell.lang.prepl は特定のミススペルに対して修正置換対象を指定する辞書です.

.aspell.lang.pws はテキストファイルです.

日本人の人名などを人名辞典から引っ張ってきて片っ端から入れるのも良いでしょう.

.aspell.lang.prepl もテキストファイルです.1行目には

personal_repl-1.1 lang num [encoding]

と書きます.lang と num は上と同じです.2行目からは修正対象と修正語をペアで書きます.

misspelled_word correction

ここで設定された修正語は,スペルチェックの際に第一候補として表示されます.

コメント



Last-modified: 2017-08-17 (木) 18:21:11 (612d)