less than 1 minute read

TeX文書のスペルチェックにはいくつかの方法がある.ひとつが今日紹介するコマンドラインからispellやaspellを用いる方法,そしてもう一つがflyspellに代表されるようにエディターでオンザフライでやる方法だ.後者の方法もスペルチェックのエンジンとしてはispell/aspellを利用していることが多い.詳しいことはaspellの公式ドキュメントを参照.

aspellのインストール

コマンドラインから使えるaspellはispellに機能を追加した新しい(といってもすでに結構古いが...)スペルチェッカーだ.macの場合はhomebrew/macportsから簡単にインストールできる.

# homebrewの場合
brew install aspell 

# macportsの場合
sudo port install aspell 

基本的な使い方

基本的な使い方は以下のように-lで言語を,-cでファイルを指定する.-tはファイルがTeXファイルであることを示すオプションである.これを指定すると環境やTeXコマンドについてはエラーを出さないようになる.

aspell -t -l en -c <file>

このコマンドを実行すると,インタラクティブにスペルを修正できる.修正は複数の修正候補が画面上に表示されるので対応する番号を押すことでひとつづつ修正していく.まずはこれで使い勝手を見てみるのが良いだろう.

応用的な使い方

実際上はもう少し高等な使い方をしたいことが多い.以下にいくつか例をあげるが,これらはあくまでオプションである.

aspellの設定ファイルをつくる

aspellの設定ファイルは.aspell.confという名前で,通常ホームディレクトリに置かれる1.よく使うオプションはこちらに記述した方がよい.一例を示す.personalは個人辞書の指定である.(後述)

lang en_US
mode tex
personal ~/.aspell.en.pws

もしプロジェクトごとに設定ファイルを変更したい場合は,aspell実行時に--confオプションで指定する.

aspell --conf=<path/to/aspell.conf> -c <file>

本格的に使いたい場合は設定ファイルを書くことを強くおすすめしたい.可能なオプションについては公式のマニュアルに詳しい説明がある.基本的には辞書に関する設定,エンコーディングに関する設定,チェッカーに関するオプション,フィルター(ファイル形式)に関するオプションの4つを色々と指定できる.それぞれのオプションで可能な値についてはaspell dump <options>コマンドで調べられる.例えばファイル形式について知りたい場合はaspell dump modesとすると以下のように可能な形式の一覧が表示される.

$ aspell dump modes
nroff          mode for checking Nroff documents
perl           mode for checking Perl comments and string literals
email          mode for skipping quoted text in email messages
tex            mode for checking TeX/LaTeX documents
markdown       mode for checking Markdown/CommonMark documents
ccpp           mode for checking C++ comments and string literals
sgml           mode for checking generic SGML/XML documents
none           mode to disable all filters
texinfo        mode for checking Texinfo documents
html           mode for checking HTML documents
comment        mode to check any lines starting with a #
url            mode to skip URL like constructs (default mode)

辞書に単語を追加する

専門用語や個人名などは予め辞書に登録しておくといちいち修正候補として表示されないので楽になる.デフォルトでは辞書はホームディレクトリ直下に~/.aspell.en.pwsという名前で保存される.aspellで修正中もaでユーザー辞書に登録できる.辞書はただのテキストファイルなので各自で自由に編集できる.辞書のフォーマットは,まず一行目に

personal_ws-1.1 lang num [encoding]

という行が必要.langは言語,numは辞書に含まれる単語の数なのだが数字はいくつでもよいらしい.例えば英語の場合は

personal_ws-1.1 en 0

でOK.二行目以降に一行一単語で追加していくだけ.たとえばファイルの一例は以下のような感じ.

personal_ws-1.1 en 0
Bach
Beethoven
Chopin
Mozart

` 話は脱線するが,そもそも略語のたぐいを多様する場合はacronymパッケージやGlossariesパッケージなどを使って略語自体を管理するようにするほうが運用としてはスマートだろうということは付言しておく.

プロジェクトごとに辞書を使い分ける

もしプロジェクトごとに辞書を使いわけたい場合は追加で辞書ファイルを作成してaspell実行時に辞書を指定する.

aspell --personal <path/to/dictionary> -l en -c <file>

もしくは上にあげたようにaspell.confpersonalオプションで個人辞書を指定する.また,複数の辞書を扱いたい場合はextra-dictsオプションで追加指定できる.

emacs上から直接利用する

emacsで編集している場合は,コマンドラインからではなくemacs上から直接aspellを利用できるが,これは今回の趣旨と違うのでまた別の機会に紹介する.

実際の運用についてのコメント

実際の運用では,私はプロジェクトごとに辞書ファイル,設定ファイルを作るようにしている.全ての文書で同一の個人辞書を使ってしまうと辞書が大きくなって意図せずスペルミスを見逃す可能性がありそうだからだ.gitでの管理が楽になるというのもある.

emacsでのflyspellや,最近のIDEの優れた機能を利用すればエディターで編集中にオンザフライでスペルチェックはできるが,文書を書いている最中は内容を考える方に頭が行っていてスペルチェックまで完璧にできることは少ない.aspellは文書が出来上がったあとで一括で全体のスペルチェックができるので修正漏れが起こりにくいというメリットがあると思う.というわけでどんな場合でも文書完成後に一回aspellにかけておくと安心できる.

また,これはaspellに限らないがこの手のスペルチェッカーはあくまで単純なスペルミスを修正してくれるにすぎず,文法の誤りや表現の誤りは一切修正できないことにも留意すべきだ.それらの修正にはより高等なアプリで確認する必要がある.これらのアプリでは同時にスペルミスも直してくれるが,TeXファイルを直接確認できるものはおそらく存在しない(?)ため,一回pdfに起こしてから文書をコピーして... とする必要がある.そうするとどうしてもTeXファイルを直接チェックできるaspellに比べてミスを逃しすくなる印象がある.

まとめると(あくまで私の場合は)文書を書く,スペルチェックをする,文法/表現の修正をするの3ステップを別々にやることでより漏れのすくない自己校正ができると考えており,そのためのツールとしてaspellは必須である,ということだ.

参考

aspellの公式ドキュメント TeX Wiki Aspell 英語の文章を aspell でスペルチェック #英語 - Qiita

備考

  1. より具体的にはglobal configuration fileが/usr/etcまたは/usr/local/etcに存在し,ホームディレクトリにおかれたpersonal configuration fileがその設定を上書きする.