零時館
コンピュータ利用記

TeX ファイルに文法チェッカをかけるには


■ 文法チェッカは必需品

論文を書くときに,もっとも難儀をするのはやはり英語だ.日本語ででも論文を書くのは簡単ではないが,英論文となるとその苦労は倍増,3倍増する.すでに何本か英論文を書いているので,ある程度は慣れたが,それでも相変わらず文法ミスは多い.何度も見直して修正していくが,主観的になっていると初歩的なミスでさえ見逃すことがある.最終的には客観的なチェックが必要だ.

ネイティブな人にチェックしてもらうのがベストだが,それは論文が受理されたときでいい.とりあえず提出する,というときは文法チェックソフト「Correct Grammar for Windows」(残念ながら SMI SOFT 社では販売終了…)にお世話になる.スペルミスだけでなく,いわゆる,3単現の s などの初歩的な文法ミスはこれで大体ひっかかる.ただし,文章が複雑なときは文法ミスを見逃してしまうことがあるので,100%あてにすることはできない.あくまで,何度も見直した上で,最後の仕上げとして使うのが望ましい.

ところで,σ(o_o;)はいつも論文を書くときは TeX を使っている.しかし,文章に埋め込まれた TeX コマンドが「Correct Grammar」でひっかかってしまう.したがって,「Correct Grammar」をかけるときには,TeX コマンドを取り除かなければならない.手動で取り除くのはかなり面倒だ.そこで,いくつかのソフトを使って取り除く.

■ TeX コマンドを取り除く方法

いくつかの方法があるが,私が使っているのは「jdvi2tty」というソフト.これはコマンドラインで動くソフトで,もともとは dvi ファイルを TTY 端末でプレビューするときに使う.つまり,組版された状態で出力される.これをリダイレクトを使って,ファイルに出力してしまえばいい.なお,dvi ファイルを作るときに '\raggedright' コマンドを埋め込んでコンパイルすると改行時のハイフンが抑えられるので便利(ただし右端がデコボコになるので一時的に指定したほうがいい).
例) C:\home> jdvi2tty -w100 -V -l -opaper.txt paper.dvi
オプションの -w100 は横幅を 100 桁に指定し,-V は余分な空行を除いてくれる.-l を指定すると改ページを '^L' で表示してくれる.こうして TeX コマンドが除かれたテキストファイルが得られる.改ページに伴うページの表示などがでてくるが,正規表現 '^ *[0-9]\n\^L\n\n' でマッチするのでエディタや 「sed」 で取り除ける。こうして,修正したテキストファイルを「Correct Grammar」にかける.

「jdvi2tty」以外にも「detex」というまさに TeX コマンドを取り除くソフトがあるのだが,「jdvi2tty」の方が使い勝手が良かったので,こちらを使っている.「detex」のどこが使い勝手が悪かったのか,ちょっと忘れてしまったが,たしかかなりゴミ( { } とか $ など)を残していった気がする.ちなみに「jdvi2tty」も「detex」も UNIX 版がある(というか,こちらが本家)ので,UNIX 上でも TeX コマンドを取り除くことができる.

■ 「Correct Grammar」にかけたあとは

「Correct Grammar」でミスを修正したら,テキストを保存する.修正前のテキストも拡張子を bak に変えたファイル名で保存される.修正箇所を確認するために「diff」コマンド(「UNIX like tools」または「Cygwin」というパッケージに入っている)を使う.
例) C:\home> diff paper.bak paper.txt | more
この出力を参考にして,TeX のソースファイルを修正していく.ここで注意しなければいけないのは,1行に2つ以上修正箇所がある場合だ.「diff」は,修正された行を出力してくれるが,単語単位で修正箇所を示してくれるわけではないので,1つ目を修正して安心してしまうと2つ目を見逃してしまうことがある(経験済み…).

TeX コマンドに対応した文法チェッカが出たら,こんな面倒な手順を踏まなくてすむのになぁ.スペルチェッカはあるんだけど,やっぱり不十分だし.かといって,文法チェッカが装備されているとはいえ,「Word」を使いたいとは思わない.

(2001/07/13)

E-mail : reijikan-kanshu@hotmail.co.jp
コンピュータ利用記に戻る
ホームへ戻る