写本を書き写す――ソフトウェア
LaTeXとPerl
本章ではLaTeXというソフトウェアを使います。LaTeXの基本となるTeXというソフトは、スタンフォード大学の数学者ドナルド E.
クヌース(Donald
E.
Knuth)博士が、数学の論文を書くために開発した組み版ソフトです。数式は非常に複雑な組み版を要するため、校正作業などが大変だったのだそうです。
自分で組み版をしてしまえ、というのがTeXの開発目的だったようです。ただし、TeXそのものは、ユーザーにも相当の知識を要求します。そのため、コン
ピュータ学者のレスリー・ランポートは、TeXを基本としたLaTeXを開発し、より多くの人が気軽にTeXの機能を利用できるようにしたのです。
トランスクリプションにLaTeXを利用するメリットは、前節でも述べましたが、それ以外に、次のものをあげることができます。
- 組み版ソフトであるため、個人ユーザーでも高品質な印字が可能な上、写植印刷も可能である
- LaTeXの原稿はLowAscrii文字のみを使う、プレインテキストであるため、MacOS, Windows,
Unixといった複数のプラットフォームでのデータ交換が容易である
- LaTeX自体が、マルチプラットフォームであり、MacOS, Windows, Unix上で利用できる
良いことずくめですが、泣き所もあります。LaTeXは便利なだけに、世界中で利用されています。そして、それぞれのお国の事情、つまり、言語の特性と
か、組み版の慣習などにあわて、様々な変更が独自に行われました。つまり、様々な方言が生じたのです。その結果、一口にLaTeXと言っても、その指示す
るものが人によって違うという事態が生じています。本章で紹介するマクロは、できる限り、TeXの機能を利用したものであり、そうした方言の違いに影響を
受けにくいようにはなっています。けれども、場合によっては、思い通りに動かないかも知れません。あらかじめご了解ください。筆者が利用している
LaTeXはMac用のLaTeX209です。
LaTeXはAscii出版局からCD-Rom付きの書籍で発売されており、これを利用してインストールするのが一番簡単です。
なお、本書のやり方で、LaTeX用の原稿を作った場合、そのままでは、すぐにLaTeXでは処理できません。LaTeXにはLaTeXの都合というも
のがあります(後述)。もちろん、その都合に研究者の側があわせるのは本末転倒ですが、両者がそっぽを向いていたのでは、何もできません。両者の都合を仲
立ちするためのプログラムが用意しました。それらのプログラムは、Perlで書かれており、利用するためには、最新版のPerlがお使いのコンピューター
にインストールされている必要があります。
MacPerlはhttp://www.ptf.com/macperl/
内のhttp://www.ptf.com/macperl/depts/getmp.html
でダウンロードできます。
Windows用のPerlは
http://www.activestate.com /Products/Download/Get.plex?id=ASPNPerl
でダウンロードできます。
LaTeXにせよ、Perlにせよ、これらのソフトウェアを使いこなすには、それなりの習熟が必要です。本書の目的は、それらのソフトウェアの使用法を
全般的に述べることではありません。手ほどきはしますが、それ以上のことはできませんので、ご了承ください。これらのソフトウェアには多数の優れた解説書
が販売されています。
LaTeX
LaTeXの原稿はhtml形式に似たマーキング言語で作成します。マーキング言語の特徴は基本的に次の点にあります。
- LowAscii文字のみを使用する
- 本文と文字の出力法をしてするコマンドが原稿内で混在する
- マクロが使える
LowAscii文字というのは、Macならオプションキーを、WindowsならAltキーを押さずに入力できる文字です。
1234567890-^\!"#$%&'()0=~|abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@[];:,./_`{}+*<>?
がLowAscii文字です。これらの文字は、éとかœ、«などのHighAscii文字とは異なって、全てのOSに共通したコードで記述されます。ひら
たく言えば、MacからWindowsへ書類を受け渡した場合でも、これらの文字は文字化けしません。一方、HighAscii文字が文字化けを引き起こ
すのはみなさんご存じの通りです。実のところ、日本語文字もHighAscii文字で、一部の文字コードがMacintoshとWindowsで異なりま
す。おまけに、日本語文字のコードが欧文文字のコードとも重なるため、話がいっそうややこしくなるのです。
HighAsciiコードを用いる限り、欧文と和文が入り交じった文章を異なったプラットフォーム上でやりとりするには、一部のワープロソフト(MS-
Wordなど)にたよるしかありません。けれども、ワープロ文書は、メーカにより様々な規格で記述されているため、データ解析を行ったり、プログラミング
処理したりする際にひどい手間がかかります。
ワープロ文書はデータ再利用の可能性を著しく狭めた滓データです。コンピュータを電子タイプライターの代わりに使うだけなら、もちろん便利ですし、筆者
も試験問題などはこれで作りますが、フォーマットさえ公開しない一般メーカーのワープロソフトは基本的はおもちゃの域を越えません。
話がわき道にそれました。ともかく、LaTeXのすごいところは、欧文のHighAscii文字をLowAscii文字で記述してしまうというところに
あります。たとえば、éは\'{e}で、âは\^{a}で表現します。これにより、欧文と和文の混在さえも何ら問題を生じないのです。HighAscii
文字は全て日本語として解釈すれば良いからです。
文字の出力法のコマンドというのは、たとえば、ある文字をイタリックで出力したい場合などに使われます。ワープロではイタリックで表したい文字列を選択
して、「イタリック」という命令を選べば、それらの文字がイタリックで表示されます。一方、LaTeXでは、{\it France}などとして、Franceを
出力します。
ここまでの話でおわかりのように、LaTeXはWysiWyg(What you see is what you
get)ではありません。ワープロソフトでは、画面で見たとおりに印刷することができますが、LaTeXの原稿はそのままだと、非常に見苦しいです。原稿
をLaTeXで解釈し、dvi書類という書類を生成し(コンパイルと言います)、それをdviインタプリタにかけて、初めて、仕上がりを確認することがで
きるのです。
面倒だなと思う人もあるでしょう。実際、LaTeXが大きなメリットを有するにも拘わらず、ワープロソフトを駆逐できないのは、LaTeXが面倒な手続
きを要求するからです。éを入力する代わりに、\'{e}などと入力するのはかなり手間ですし、{\it
France}の最後の}を書き忘れて、それ以降の文字が全部イタリックになってしまったり、時には、あまりに入力ミスが多すぎて、LaTeXがコンパイ
ルできませんと言い出したり、面倒なことは数限りなくあります。けれども、それが面倒だからといって、ワープロソフトが使えれば良いと割り切るのは考え物
です。コンピュータを使うのは研究を合理的に行うためであって、研究をコンピュータにあわせていたのでは、本末転倒です。ワープロソフトを使っていれば、
当然ワープロソフトでうまく行かないことは、あきらめるしかありません。それは、研究をコンピュータにあわせているのと同じことです。
偉そうなことを言ってしまって、後で後悔しそうですが、筆者が言いたいのは、LaTeXの見かけ上の複雑さにだまされて、あきらめないでほしいというこ
とです。たしかに、LaTeXで非常に込み入った組み版をしようと言うのであれば、相当の時間を費やす必要があります。けれども、実のところ、校訂テキス
トというのは、単なる定型文書なのです。いったん、処理法を確立してしまえば、LaTeXのコマンドを見る必要さえなくなってしまいます。
たとえば、éを\'{e}と入力するのが手間であれば、éと入力し、後で、\'{e}に一括置換すれば済む話です。通常、校訂テキストには日本語と欧文
は混在しませんから、欧文特殊文字を置き換えるプログラムは非常に単純です。いったんプログラムを手に入れたら、あなたはもう、欧文特殊文字のことは考え
る必要がなくなるのです。出力方法のコマンドにしても同じです。複雑に見える校訂本の書式は、実は非常に単純です。これもプログラムでたいていの場合は処
理できてしまうのです。
とはいえ、筆者が提供するプログラムをブラックボックスのようにして使うだけであれば、通り一遍のことしかできません。プログラムをアレンジしたり、あ
るいは、筆者が提供していない機能をLaTeXに求めるのであれば、それなりの勉強は必要です。ある程度、LaTeXやPerlの知識を身につけるのは、
それほど難しいことではありません。M*-W**dやE***lに習熟するよりはずっと簡単だとさえ言えます。市販のワープロソフトやデーターベースソフ
トは、ごく少数のデータやごく少量の原稿を書くために作られた、汎用プログラムに過ぎません。プロ仕様にはなっていません。文系研究者はその道のプロで
す。研究でコンピュータによるデータ処理が必要ならば、プロ用に作られたツールについて学ばねばならないのは、至極当然のことです。中世仏文学者が
Tobler-Lommatzschの「古仏語辞典」(Altfranzösisches
Wörterbuch)を使うために、ドイツ語を学ぶのと同じことです。LaTeXやPerlの修得がドイツ語の習得よりずっと簡単なのは言うまでもあり
ません。
さて、LaTeXの最後の特徴は、マクロが使えるということでした。ここでのマクロというのを誤解しないでください。通常のアプリケーションのマクロと
は全く概念が異なります。前節で、\gra|ndで、g andを表しました。この\gra|がマクロです。要はユーザーが文字の
出力法を独自に定義でき、その定義にユーザーが独自の名称を付けることができる。これが、マクロです。本章の目的はこのマクロの使い方を解説することにあ
ります。
Perl
Perlは言語学者にしてコンピュータ学者の、ラリー・ウォール(Larry
Wall)によって開発された、プログラミング言語とその言語のインタープリタ(プログラムを実行するためのプログラム)です。Perlは
Practical Extraction and Report
Language(実用的なデータ取得レポート作成言語)の省略ですが、その正式名から想像される通り、文字列処理にはとてつもない威力を発揮します。
Perlを利用するメリットは次の点にあります。
- PerlにはUnix版、Windows版、Mac版があり、ほとんど同じプログラムが同じように動作する
- Perlは高速であり、大容量で文字データを瞬時に処理する能力をもつ
- CやC++よりも簡単にプログラムが書ける
1のメリットが理解できない人はないでしょう。Perlを学べば、どのOS上でもプログラムできるのですから、これほどうれしいことはありません。
2は具体例を挙げた方が良いでしょう。たとえば、『薔薇物語』の全行21750行をアルファベット順にソート(並べ替え)することを考えてみましょう。
多くのワープロソフトはソート機能をもっていますが、この規模のデータになると、並べ替えに恐ろしいほどの時間がかかるか、最初からソートできなくなりま
す。AppleWorksの表計算シートにデータを流し込もうとしたら、五百行までしか読み込んでくれませんでした。MS-Wordでソートしようとした
ら「文書が大きすぎます」と文句を言ってソートしてくれません。実はほっとしました。Perlなら一秒以下で終わる仕事に何十分あるいは何時間も費やされ
るのは、迷惑だからです。FileMakerProlを使って、ようやく、ソートを実行することができました。二秒程度はかかりました。それと同じくらい
の時間で、Perlなら、全ての小文字を大文字に変換し、逆綴りにした後、全ての行をソートすることができます。筆者のFileMakerProは古い
バージョンですから、こういう比較は不公平だとは思いますが、FileMakerProはMacintoshG4/400上で使用したのに対し、Perl
はMaicintoshG3/350(ibook)で使用したのです。いずれにせよ、データが十万行を越えたり、データの一件一件が八音節以上の文字列
だった場合には、PerlとFileMakerProの速度差は指数的に拡大します。それに、大文字を小文字になおしたり、逆綴りにしたりといった作業
は、たぶん最新版のFileMakerProでも簡単にはできないでしょう。Excelのマクロを使うという手もあるかも知れませんが、処理時間が恐ろし
くかかるだろうと思います。
3番は説明が難しいのですが、たとえば、単なるソートなら、
open(IN,"Origin") or die "Could not open ORIGIN";
open(OUT,">Result);
@Data = (<IN>);
@Data=sort(@Data);
print OUT (@Data);
close(IN);
close(OUT);
というコードだけで実行できます。Originという名前の書類をソートして、Resultという書類に流し込んでくれます。本書では、Perlの解説は
しません。興味のある方は、筆者の「簡単Perl」等を参照してください。
テキストエディタ
テキストデータを扱う場合、使い勝手のよいエディタソフトは必需品です。データを作る際にももちろん役立つのですが、LaTeXの原稿と同様、Perl
のプログラムもプレインテキストで書くことができますから、エディタソフトは作業の合理性を大幅に左右します。エディタソフトにはスタイル付きテキストを
扱えるものが少なくありませんが、処理データを作成する場合には、段落番号が表示できるプレインテキスト専用のエディタが便利です。データがかなりの大容
量になっても、軽快に動作しますし、何よりも、書式情報がデータ処理のじゃまになるという事態を防ぐことができます。
一方で、スタイル付きテキストを扱うことのできるエディタソフトもあると何かと便利です。けれども、こちらの方は説明はいらないでしょう。
Windowsに添付されたNotePadやMacOS9.2に添付されたSimpleTextはスタイル付きテキストを扱えますし、それぞれのOS上で
定番と呼ばれるエディタソフトも 存在していますから。
筆者は用途に応じ、スタイル付きテキスト用のエディタとプレインテキスト専用のエディタを使い分けています。データ作成には、YooEditという、プ
レインテキスト専用のエディタを使います。何十メガバイトにもなるテキストデータをスタイル付きテキストエディタで開くのは、非常に時間がかかるからで
す。プレインテキストはテキストの個別部分にフォントなどを設定できませんから、欧文和文の混在文を扱うには不便ですが、データ処理を行う際には強力な武
器となります。欧文和文の混在文にはJeditやTexEditPlusを使います。いずれも、非常に軽快に動作しますし、AppleScriptにも対
応しています。Perlはスタイル付きテキストを扱う場合には、不便ですので、その弱点を補うのにAppleScriptを利用しています。また、
YooEditとJeditはMacOS9.2用でも正規表現が使えます 。
なお、本書ではトランスクリプションをプレインテキスト専用のエディタソフトで行うことを前提とします。
左はYooEditのウインドウです。右側の柱の部分に段落番号が表示されていることにご注意ください。
目次に戻る
次ページへ