*Aspell [#asp4a889]
*[[Aspell:http://aspell.net/]] [#asp4a889]

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

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

AspellはIspellに機能を追加した新しいスペルチェッカです。TeXの命令を無視する機能もあります。

英語はもちろんのこと、ドイツ語・フランス語・ギリシア語・ロシア語などにも対応しています。
#contents

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


**Aspell のインストール [#aspin466]

*** Windowsの場合 [#w22dbwnd]
***Windows の場合 [#w22dbwnd]

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

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

まず、次の場所からAspell本体(Aspell-(任意の数字)-Setup)と英語辞書(Aspell-en-(任意の数字))をダウンロードします。
Windows の場合は MSYS2 で Aspell をインストールします.

[[Aspell for Win32:http://aspell.net/win32/]]
[[Windows での Emacs の設定覚書#Aspell>http://qiita.com/ignorant/items/76e4c162cedc47336e75#aspell]]

まず本体をインストーラの指示通りにインストールします。基本的にはNextとInstallとFinishを押していくだけでインストールできるはずです。英語辞書もインストーラになっていますが、本体のインストール時にインストール先を変えた場合は、英語辞書のインストール先も適切に変更しておく必要があります。(変えてない場合はデフォルトどおりにインストールします。)
 pacman -S mingw-w64-x86_64-aspell mingw-w64-x86_64-aspell-en

辞書のインストール時に
***macOS の場合 [#g5b60c70]

 replace TmpInstall/Copying? [y]es, [n]o, [A]ll, [N]one, [r]ename:
Homebrew を使ってインストールできます.
 brew install aspell --lang=en
MacPorts を使ってインストールできます.
 sudo port install aspell aspell-dict-en

と聞かれることがあります。「A」と入力してEnterキーを押しておきましょう。
***Linux の場合 [#w22db8c3]

Windows PowerShell またはコマンド プロンプトを用いる場合は環境変数 PATH を設定します。~
PATH の値は
Linux Mint/Debian/Ubuntu の場合は
 sudo apt install aspell aspell-en
です.

-64-bit Windows の場合
 C:\Program Files (x86)\Aspell\bin
-32-bit Windows の場合
 C:\Program Files\Aspell\bin
Fedora の場合は
 sudo dnf install aspell aspell-en
です.

です。
**Aspell の使い方(コマンドライン編) [#aspus466]

// Windows以外のインストール方法は、[[欧文スペルチェッカー GNU Aspell:http:// members.jcom.home.ne.jp/advweb/build/others/aspell.html]]をご覧ください。
コマンドラインから

*** Linuxの場合 [#w22db8c3]

Linux Mint の場合は
 $ sudo apt-get install aspell aspell-en
です。~
Vine Linux の場合は
 $ sudo apt-get install aspell
です。~



***OS X の場合 [#g5b60c70]
Homebrew を使って簡単にインストールできます。
 $ brew install aspell --lang=en
MacPorts を使って簡単にインストールできます。
 $ sudo port install aspell aspell-dict-en

**Aspell の使い方(Windows PowerShell・コマンド プロンプト編) [#aspus466]

PATHを通しているならば、

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

でTeX文書を英語でスペルチェックできます。LinuxなどUNIX-likeなシステムでも同様にターミナル上で上記コマンドを実行します。
で TeX 文書を英語でスペルチェックできます.

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

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

間違ってユーザ辞書に登録してしまった場合は、ユーザ辞書をテキストエディタで開いて当該行を削除。ユーザ辞書は通常 ~/.aspell.en.pwsという名前になっています。
間違ってユーザ辞書に登録してしまった場合は,ユーザ辞書をテキストエディタで開いて当該行を削除.
ユーザ辞書は通常 ~/.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 には,
 --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のあとに、コマンド名と制御パラメータを書きます。
非標準の TeX コマンドを追加したい場合には,--add-tex-command
を使います.--add-tex-command のあとに,コマンド名と制御パラメータを書きます.
    «command»  «a list of p,P,o and Os» 
コマンドの後に続くパラメータは、コマンド文におけるスペルチェックの動作を制御します。pはコマンドの引数をスペルチェックせずにスキップ、Pはスペルチェックする。oはコマンドのオプション引数をスペルチェックせずにスキップ、Oはスペルチェック、パラメータの1文字目はコマンドの第1引数に相当します。パラメータの2文字目はコマンドの第2引数に相当します。それ以上のパラメータがあればAspellは通常通りにスペルチェックします。例えば、
コマンドの後に続くパラメータは,コマンド文におけるスペルチェックの動作を制御します.
-p はコマンドの引数をスペルチェックせずにスキップ,P はスペルチェックする.
-o はコマンドのオプション引数をスペルチェックせずにスキップ,O はスペルチェックする.

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

>
例えば,
 --add-tex-command rule pp
とすると、"rule"というコマンドの第1と第2引数をスキップします。また、
とすると,"rule"というコマンドの第1と第2引数をスキップします.
また,
 --add-tex-command foo Pop
とすると、"foo"というコマンドの第1引数はスペルチェックされ、その次のオプション引数があってもなくても無視され、第2引数も無視されますが、それ以降の引数はスペルチェックの対象となります。さらに、コマンドの最後についているアスタリスク(*)は単純に無視されます。例えば、
とすると,"foo"というコマンドの第1引数はスペルチェックされ,その次のオプション引数があってもなくても無視され,第2引数も無視されますが,それ以降の引数はスペルチェックの対象となります.
<

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

>
例えば,
 --add-tex-command enlargethispage p
とすると、enlargethispageとenlargethispage*の両方の第1引数を無視します。
とすると,enlargethispage と enlargethispage* の両方の第1引数を無視します.
<

コマンドの削除は単純に例えば、
コマンドの削除は単純に例えば,
 --rem-tex-command foo
とします。これでfooというコマンドがTeXコマンドリストから削除されて通常の文書として透けるチェックの対象となります。もちろん、リストからの削除はこの場限りです。
とします.これで foo というコマンドが TeX コマンドリストから削除されて通常の文書としてスペルチェックの対象となります.
もちろん,リストからの削除はこの場限りです.

追加するtex-commandは、aspellの設定ファイル/etc/aspell.confや~/.aspell.confにあらかじめ書いておくことも可能。
追加する tex-command は,Aspell の設定ファイル /etc/aspell.conf や
&#x7e;/.aspell.conf にあらかじめ書いておくことも可能です.
 add-tex-command citep p, citet p
 tex-check-comments true

// 詳しい使い方は
// [[欧文スペルチェッカー GNU Aspell:http://members.jcom.home.ne.jp/advweb/build/others/aspell.html]]
// をご覧ください。

**Aspell の使い方(Emacs編)[#aemcsfoi]

Emacs の exec-path に Aspell の PATH を追加します。~
64-bit Windows の場合は
 (add-to-list 'exec-path "C:/Program Files (x86)/Aspell/bin")
32-bit Windows の場合は
 (add-to-list 'exec-path "C:/Program Files/Aspell/bin")
を &#x7e;/.emacs.d/init.el に追加します。~
Emacs の exec-path に Aspell のコマンド検索パスを追加します.
Windows の場合は
 (add-to-list 'exec-path "C:/msys64/mingw64/bin")
を &#x7e;/.emacs.d/init.el に追加します.
基本的には &#x7e;/.emacs.d/init.el に
 (setq-default ispell-program-name "aspell") 
と1行書けばとりあえず使えます。ただし、バージョン3.0以前のispell.elを使っている場合は、
 (setq-default ispell-extra-args '("--reverse")) 
を足す必要がありますが、aspellが標準で入っているシステムでは通常不要です。
と1行書けばとりあえず使えます.

日本語混じりの TeX 文書のスペルをチェックしたい場合には、[[qa:3898]] にある通り、
 (eval-after-load "ispell"
  '(add-to-list 'ispell-skip-region-alist '("[^\000-\377]+")))
も追加します。
日本語混じりの TeX 文書のスペルをチェックしたい場合には,[[qa:3898]] にある通り,
 (with-eval-after-load "ispell"
   (add-to-list 'ispell-skip-region-alist '("[^\000-\377]+")))
も追加します.

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

入力したスペルを途中に含む単語を補完入力する場合には、
入力したスペルを途中に含む単語を補完入力する場合には,
 M-x ispell-complete-word-interior-frag
とします。
とします.

// ispell.lから呼び出せるそうです。いろいろ検索してみましょう。例として、[[ドイツ語LaTeX文書のスペルチェック方法:http://www.pocus.jp/d-latex/aspell-latex-de.html]]のページを挙げます。
// ispell.l から呼び出せるそうです.いろいろ検索してみましょう.
// 例として,[[ドイツ語LaTeX文書のスペルチェック方法:http://www.pocus.jp/d-latex/aspell-latex-de.html]]のページを挙げます.


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

.aspell.lang.pwsはテキストファイルです。1行目には、
ユーザ辞書には2種類あります.
&#x7e;/.aspell.lang.pws は標準辞書にはない単語を追加する辞書で,
&#x7e;/.aspell.lang.prepl は特定のミススペルに対して修正置換対象を指定する辞書です.

.aspell.lang.pws はテキストファイルです.
-1行目には,
 personal_ws-1.1 lang num [encoding]
と書きます。langは英語ならen、numは単語数ですが単なる目安です。0でOKです。2行目からは、登録単語を書きます。1単語1行です。
と書きます.
lang は英語なら en,num は単語数ですが単なる目安です.
0でOKです.
-2行目からは,登録単語を書きます.
1単語1行です.

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

.aspell.lang.preplもテキストファイルです。1行目には
.aspell.lang.prepl もテキストファイルです.1行目には
 personal_repl-1.1 lang num [encoding]
と書きます。langとnumは上と同じです。2行目からは修正対象と修正語をペアで書きます。
と書きます.lang と num は上と同じです.2行目からは修正対象と修正語をペアで書きます.
 misspelled_word correction
ここで設定された修正語は、スペルチェックの際に第一候補として表示されます。
ここで設定された修正語は,スペルチェックの際に第一候補として表示されます.


**コメント [#aspb14cm]
- 日本語Aspellのじしょうをさがします。Linkください。 -- Mathieu Jobin &new{2006-03-29 (水) 15:17:11};
- 「じしょう」とは辞書(じしょ)のことでしょうか?日本語にたいしてはスペルチェッカー(spell checker)にあたるものはありません。これは日本語の特質からくるものです。 -- DM &new{2007-09-04 (火) 17:54:09};
- Microsoft Word ではある程度スペルチェック?できますね。 -- legac &new{2008-02-06 (水) 08:17:04};

- 日本語Aspellのじしょうをさがします.Linkください. -- Mathieu Jobin &new{2006-03-29 (水) 15:17:11};
- 「じしょう」とは辞書(じしょ)のことでしょうか?日本語にたいしてはスペルチェッカー(spell checker)にあたるものはありません.これは日本語の特質からくるものです. -- DM &new{2007-09-04 (火) 17:54:09};
- Microsoft Word ではある程度スペルチェック?できますね. -- legac &new{2008-02-06 (水) 08:17:04};

#comment