【←前頁】【↑目次】【次頁→】


はじめに

小目次
  1. LaTeXとは何なのか?
  2. LaTeXの何が(・∀・)イイのか?
  3. ワープロとの比較
  4. HTMLとの比較
  5. むすび

lionheadLaTeXとは何なのか?

「LaTeX(「ラ・テフ」と読む)」とは、ぶっちゃけて言うと、文書(document)を作成するためのアプリであるワープロのオルタナティブのようなモノです。異論があるのは重々承知ですが、このサイトでは今、隆盛のM$ワードに代表されるワープロにうんざりしてる人達への代替物として勧めています。一般には、複雑な数式を表記するのに便利なので、主に理系の人達に好まれて使われているソフトです。UNIXで開発され、今では他の様々なOSにも移植されています。幾つか商用版もありますが、基本的にはフリーです。オリジナルの「TeX(「テフ」)」は、スタンフォード大学のKnuth博士が自著『The Art of Computer Programming』を改訂するに際して、依頼した出版社による初版の印刷が、特に数式に関してあまりにも酷かったために、今度は自分でやろうということで開発されました。「LaTeX」はそれに様々なマクロパッケージを加えた拡張版です。

その為かどうかは分かりませんが、非理系の一般人には少々とっつきにくいプログラムなようです。もともとUNIXのアプリですので、ウィンドウズやマックしか知らない人にはインストールからして難解であり、グラフィカルなユーザーインターフェースは無きに等しい。入門書や入門サイトは理系の読者を想定して書かれているものが多く、また、LaTeXでは高度な設定を行うためにプログラミングの概念も沢山導入されていて、初歩的なプログラミング知識が無いと分からない用語が説明も無しにバンバン使われていたりします。LaTeXのポート(他OSへの移植)を配布してる方々もまた、自分が使うために開発し、移植したものを他の人にも好意で使わせてあげている(しかもフリーで)ということもあってか、基本的に「小学生に教えるがごとく手取り足取りのサポートを望むのはお門違いよ、あしからず」といったつれない様子。部外者には感謝されこそすれ、とやかく文句言われる筋合いは無い、それが嫌なら素直にワードでも使ってなさい、というわけです。いわゆる「ユーザーフレンドリー」の対極にあります(無論、親切なLaTeXヘビーユーザーの方は沢山います;ただズブの素人教えて君は基本的に放置されるということです)。

screen しかし実際には、LaTeXはそれ程難しいものではなくて、私のようにタコな文系マカーにも十分に使える、たいへん便利なソフトだと思うのです。パソコンに精通した理系の人だけに独占させておくのは、もったいない。馴染みのないUNIXライクなインターフェイスだから、難しいプログラミングの知識が無いと無理そうだからと敬遠してしまうのは、もったいない。難易度的には、HTMLを手書きで書いてホームページを作成するのとさして変わりません。ホームページで込み入ったことをしようとすればJavaScriptだのPERLだのを要するのと同じく、LaTeXでも高度なことをしようとすれば、それなりの知識と能力が要求されます。ただ、基本はいずれも至ってシンプルなのです。基本がつかめれば、後は少しづつ勉強して難しい応用もできるようになります。

ただ、LaTeXとHTMLの大きな違いの一つは、前者がそれほど一般的でなく、また、上記のような事情もあって、いちいち文系のド素人にも分かり易い入門の手引きを書くべき故などないということです。「サルでもわかるホームページ作成入門」の類は巷に掃いて捨てるほど存在してますが、LaTeXには殆どありません。「サル」なら素直にワープロ使っていれば済むことだからなのでしょうが、しかし、私があえてこのようなページを始めたのは、UNIX使いのようにパソコン知識豊富な理系人間でなくとも、学ぶ苦労に見合うだけの便利性がLaTeXにはある、と信じるからであります。

とは言っても、やはり万人に勧められるような代物では到底ありません。パソコン音痴を自認するような人なら苦労して学ぶメリットはないでしょう。簡単な目安として、独学でHTMLを学んで、手書きでホームページを作れる程度の労力が払える/能力がある人なら、LaTeXは十二分に重宝すると思われます。「能力」に関しては、まあ小学生が夏休みの宿題にホームページ作るくらいですから、たいしたものが要求されるわけではありません。根気よく学べば誰にでも使用方法を修得できます。ただ、HTML等のバックグラウンドが全く無い場合には、やはり修得するまでに少々「時間」がかかるかと思われます。慣れないうちは簡単な文書を作成するのにも苦労しますので、素直にワープロソフト使った方が早いでしょう。「これから卒論書くから、さあLaTeXでも学んでやろうかな」というノリで気楽に始めると、LaTeXの使い方を勉強してるだけで提出期限が来てしまった、などということにもなりかねません。その点、もし既にHTML等の知識があるなら、修得するまでにかかる時間もかなり短縮されるだろうというわけです。後で述べますが、HTMLとLaTeXは大変似ています。

素人でもパソコンを長く使っていると、次第に色々カスタマイズしたり、難しいことにもチャレンジしてみたくなってくるものです。本格的なプログラミングは(よっぽど入れ込んだのでもない限り)無理ですが、ホームページ作成などは、そういった中級パソコンユーザーがトライするものの代表格です。LaTeXも、一般には認識されていませんが、そのような位置づけにあるというわけです。程々にチャレンジングな、便利なモノ。ワード開いて文章書いて印刷するのはサルにでもできます。それに飽き足らなくなったら、ぜひLaTeXをトライしてみてください。




lionheadLaTeXの何が(・∀・)イイのか?

では、いったいLaTeXの何が便利なのか? 理系人間でもなく、ウィンドウズやマックのようなGUI OSのユーザーに、それを使うことで一体どんなメリットがあるのか? まずは(1)お好みの軽快なテキストエディタで文章を作成できるということにつきます。M$ワード等に代表される、クソうざい機能満載の愚鈍なワープロソフトで文章を書くのは、苦痛以外の何物でもありません。かといって使い勝手の良いテキストエディタでは、細かな文書の体裁を整えて印刷する場合ちょっと不都合である。このジレンマを解消してくれるのがLaTeXです。

そもそも「テキストエディタの何がイイのか?」「テキストエディタとは一体何なのか?」「ワープロの何が悪い?」という人もいるかと思いますので、この点もう少し詳しく解説いたしましょう。
  1. テキストエディタというのは、基本的に「プレーンテキストを作成、編集するためのソフト」です。「プレーンテキスト(plain text)」とは、文字通り「プレーン(簡素な、なにも加えられていない)」な「テキスト(文章)」のことです。文章だけで、太字(ボールド)や斜体(イタリック)等の視覚効果のデータを一切含まない文書を指します()。一般に拡張子「.txt」が付いているファイルがそうです。シンプルなものではOS付属のNotepad(Win)、Simple Text(Mac)、より高機能なものでは秀丸エディタ、Jeditなどがその代表です。

  2. 一方、斜体や太字のような視覚効果を適用して、見た目にも艶やかな文章を作成するためには、一般にワープロが使われます。極基本的な文字修飾だけを使う場合には「リッチテキスト(….rtf)」という共通フォーマットが使えますが、今ではどのワープロソフトも独自の機能を沢山盛り込んでいるので、あるワープロソフトで作成した文書は他のワープロソフトで直接開くことは不可能です。そういう場合は、その都度文書を別形式にコンバートする必要があります(例:ワード→クラリス)。

  3. もっと本格的な、デザインが込み入った文書や広告などを作る場合には、Adobe Pagemakerのようなページレイアウト・プログラムや、Adobe Illustratorなどのグラフィック作成ソフトが使われます。これはページごとに細かに設定していきますので、文章がメインのページ数が多い文書を作成する際には、素人には少々荷が重いでしょう。普通は、印刷業のプロの方々が使うモノです。

とまあワープロとは、よく言えば、お手軽な、多彩な機能を統合したオールラウンド・ソフトなのですが、悪く言えば、器用貧乏で中途半端なソフトなわけです。特に最近では、M$ワードのように何でも一つでこなそうとして過剰に機能が加えられていき、たいへん煩雑で鈍重な、かえって使いにくい代物と化してきているものが少なくありません。(余談ですが、WWWブラウザーも似たような傾向にあります。

一方、テキストエディタは、プレーンテキスト、素の文章自体の作成を目的に特化されたアプリです。何で「素の文章自体」なのかと言いますと、例えばC言語などでソフトウェアを作成する時に書くプログラムでは、別に文章の見栄えなどまったく関係なく、打ち込んだコマンド自体が重要なわけです。この場合、斜体だの太字だのといった特殊効果はかえって邪魔になってしまいます。なぜなら、プログラムのソースコードはコンパイラーにかけて実行できるソフトに変換することが目的なのであって、人にその文章を直に見せること後述)が目的ではないからです。同様の理由から、ホームページを手書きで作成する際のHTML文書も、テキストエディタで書かれます。HTMLもまた、ブラウザに読ませて表示させることが目的であり、人にそのソース文書を直に見せるものではありません。テキストエディタはそういった類いの文書を作成するのに使われます。

テキストエディタは、特に印刷する必要のない、自分のパソコン上だけで使う文章を作成するのにも暫し使われます。例えば、WWWの掲示板やニュースグループなどに投稿する文章の下書きなどに、たいへん便利です。また、単なる覚え書きや、授業ノートの纏めにも使えます。大概、メモリ消費量も少ない軽いソフトですので、パッと開いてササッと書いて閉じることができる。あるいは常時開けっ放しにしておくことも苦ではありません。また、印刷する際の体裁などを気にする必要がありませんから、パソコンのモニター上ではワープロ文書などより格段に読みやすい。ワープロだと、見やすくするために文字のサイズ1つ変えるだけでレイアウトが滅茶苦茶になってしまいますが、印刷しないなら、そんなことは気にとめる必要もありません。

みみかき


では、テキストエディタは単なる「プレーンテキスト(素の文章)」を書くだけのものだから機能も乏しいのかといえば、それは違います。前述のOS付属のテキストエディタでは確かにそうですが、秀丸やJeditなどサードパーティによって作られたテキストエディタには、複雑な組み合わせの文字の変換/置換やマルチファイル検索など、視覚的効果の為でなく文章自体の効率的な作成を支援する様々な便利機能がついています。さらに、ワープロにあるような機能も、他のアプリと連携することで十分実現できます。統合されていないから、個々の機能について好きなアプリを組み合わせることができます。例えば英文のスペルチェックなら、ワープロ付属のセコい辞書でなく、他の様々なサードパーティ製のものから選んで最適なものを利用できるわけです。

そして、そういった機能が盛りだくさんであっても、まだ極度に肥大したワープロなどよりは格段に軽い、というのが大きな利点です。特に長く込み入った内容の文章を頭ひねりながら作成している場合には、コピー&ペーストや検索がサクサク機能してくれることが大変重要です。なぜなら、書くという行為が、その書いてる内容についての思考にも直接関わってくるからです。サクサク書けるということは、サクサク考えることにも繋がります。最初から書く内容をハッキリさせてから書き始める人にはあまり関係ないかも知れませんが、私のように書いては消し、書いては消し、試行錯誤を繰り返しながら内容を思案し文章練っていくタイプの人には、テキストエディタは最適です。

といったことが、私の考えるテキストエディタの利点です。テキストエディタはしかし、単体では、印刷して見栄えの良い文章を作るのには向いていません。無理矢理テキストエディタで下書き書いてからワードにコピペして(ワードごときでも「流し込む」などという洒落た表現使う人がいるようですが)、いちいち整形後に印刷などというのはいかにもマヌケです。そこで、上述のスペルチェッカーの様な形で、テキストエディタで印刷に耐える見栄えの良い文章を作成するのを支援するのがLaTeXである、というわけです(テキストエディタと組み合わせて始めて機能するものですから、LaTeX単体では何もできません)。LaTeXを使えば、テキストエディタの下書き文書と、見栄え・体裁を整えた印刷用ワープロ版などというように、2つファイルを作る必要はありません。なぜなら、LaTeXの助けを借りることで、テキストエディタで書いた文書がほぼそのまま印刷できるからです。




lionheadワープロとの比較
ワープロとLaTeX+テキストエディタとで、実際に文章を作成する際、具体的にどう違うのか。M$ワードのようなワープロでは

word


というように、斜体や太字などの修飾効果を、画面上に打った文字へ直接適用できます。そして、これを印刷すれば、そのまま同じ見栄えのものが出てきます。いわゆる「WYSIWYGWhat You See Is What You Get、見えるモノが、そのまま得られるモノ)」です。一方、LaTeX+テキストエディタの場合はそうではありません。2つのアプリを使用していることからもわかるように、このプロセスが二分されています(厳密には更に分業されていますが、これは後述)。

latex


LaTeX+テキストエディタの場合、まずテキストエディタでソース(/原文)を書き(画像1)、それをLaTeXでコンパイルした後に出力、印刷するという行程をとります(画像2)。「コンパイル」とは、一般にある規則(例:プログラミング言語の文法)に従って書かれたソース文書を、コンピューターが実行できるバイナリーファイルに変換する作業を言います。例えば、ドラクエのようなゲームソフトのプログラムをプログラム言語を使って書いても、そのままではプログラム言語のコマンドの羅列されたテキストでしかなく、何もできません。これをクリックすれば実行可能な(ゲームをプレイできる)アプリに変換するためにコンパイルの作業が必要なわけです。LaTeXでも同様に、まずソースを書いて、これをコンパイルして初めて、印刷して見栄えの良い文書ファイルを生成することができます。つまり、LaTeXではコンピューターのソフトを作成するのと同じような感覚で文書を作成するというわけです(LaTeXはPASCALで開発されたこともあって、LaTeX文法にはこのプログラミング言語の影響が端々に見られます)。

LaTeXのソース文書を書いている時に見える(What You See)のは、LaTeXコマンドが織り混ざったプレーンテキストであって、これはできあがりの印刷物(What You Get)とは見た目がまったく異なります。画像1のソースでは文書の編集だけ、コンパイル後の画像2では文書の表示、印刷しかできません。つまり、文書の作成と、その整形・出力を独立して行っているわけです。

「WYSIWYG」に対し、LaTeXのようなシステムを「マークアップ言語(Markup Language)形式」と呼びます。マークアップ言語形式とは、文書中に整形出力のためのコマンドを書き込み、これをプレーンテキストファイルとして保存し、文書整形ソフトで処理することで印刷イメージファイルを作成する方法です。画像1で「¥documentclass」「¥begin」他、緑色で表示されている¥マークが先頭についた英単語が、「マークアップ言語」の「整形出力のためのコマンド」です。これらのコマンドが文章に付加されて、用紙の大きさや、フォントの大きさ、スタイルなどを規定します。例えばある文章を斜体にするには、その文章を斜体コマンドで囲ってやることで行います。LaTeXでは、画像1にあるように「¥textit」コマンドを使います。{…}括弧の中に入る文章が斜体として出力されるわけです。

HTMLもマークアップ言語の一種です。HTMLはマークアップ言語形式を使ってホームページを作成します。LaTeXはマークアップ言語形式を使って文書を作成するというわけです。しかし、LaTeXはマークアップ言語形式を使った「ワープロ」ではありません。なぜなら、LaTeX上では文章を整形し出力するだけで、文章の入力、編集などは一切行わないからです。そういったことは、テキストエディタで行われます。故に、LaTeXのようなプログラムは俗にタイプセッティング(type setting、植字・製版)・システムと呼ばれます。印刷、出力に特化したプログラムというわけです(上述の3分類の内では、ページレイアウト・プログラムに近い)。

印刷される際の見栄えの情報は全てソースにあるコマンドによって決定されますので、ソースのテキストにおいては、コマンドをいじらなければテキストをどう書こうと表示させようと構いません。例えば、画像1のテキストエディタ画面でLaTeXコマンドを際だたせるために行われている色づけは、印刷物には反映されません。




lionheadHTMLとの比較

LaTeXのさらなる利点について述べるには、LaTeXの少々複雑な仕組みについて言及せざるをえません。以下でもLaTeXのコマンドをいくつかロクな説明も無しに使っていますが、極力、LaTeXの知識が無くても初歩的なHTMLの知識さえあれば理解できるように書きましたので、少々不明に感じられるような点は無視しくださっても文意は伝わることと思われます。

まずは基本的な仕組みから。LaTeXのメインの文章は、ホームページを作る際に書くHTMLに非常に似ています。比較すると:

種類 ソース 応用/拡張 コンパイル 出力:画面 出力:印刷
HTML文書 HTML文法を使い、テキストエディタでプレーンテキストファイルに書く(….htm)。 Java、JavaScript、PERL、ShockWave等。 ブラウザで直接読み込めるのでコンパイルは不要。HTML文法のチェックにはJ CheckerなどのHTML文法チェッカーを利用できる。 ネットスケープなどのブラウザで開いて、モニターに表示する。 ネットスケープなどのブラウザで開いて、プリンターから印刷する。
LaTeX文書 LaTeX文法を使い、テキストエディタでプレーンテキストファイルに書く(….tex)。 BibTex、スタイルファイル作成等。 LaTeXプログラムを使い、プレーンテキストで書かれたソースをdviファイルに変換する。その際LaTeX文法もチェックしてくれる。Excalibur等で別途に英文スペルチェックと同時にLaTeX文法もチェックできる。 DviXでdviファイルを開いて、モニターに表示する。 DviXやdvipskでdviファイルを開いて、プリンターから印刷する。


ソース文書は、こんな感じで書きます:

HTML LaTeX
<HTML lang="ja">
<BODY bgcolor="white">
HTMLは素晴らしい!
</BODY>
</HTML>
¥documentclass[12pt]{j-article}
¥begin{document}
LaTeXは素晴らしい!
¥end{document}
 

本文は、¥begin{document}¥end{document}の間に入ります。文字修飾には、例えばある文を太字にする場合には、「¥textbf{...}」というコマンドを使います。これはHTMLだと「<B>」タグに相当します。

HTML LaTeX
<b>タグで囲まれた文章が太字になる。</b> ¥textbf{括弧に囲まれた文章が太字になる。}
タグで囲まれた文章が太字になる。 括弧に囲まれた文章が太字になる。

LaTeXでは更に目次を本文中の「見出し」から自動的に作成してくれます。詳しい説明は後に譲りますが、例えば:

第1章 ほにゃらについて
ほえほえほにゃら、ほにゃららら、へへへのへへへ。ほえほえほにゃら、 ほにゃららら、へへへのへへへ。ほえほえほにゃら、ほにゃららら、へ へへのへへへ。ほえほえほにゃら、ほにゃららら、へへへのへへへ。

と印刷される文章を書きたい場合には、まず:

¥section{第1章 ほにゃらについて}
ほえほえほにゃら、ほにゃららら、へへへのへへへ。ほえほえほにゃら、 ほにゃららら、へへへのへへへ。ほえほえほにゃら、ほにゃららら、へ へへのへへへ。ほえほえほにゃら、ほにゃららら、へへへのへへへ。

と書きます。「第1章 ほにゃらについて」が見出しです(<H>タグに相当します)。見出しは、上のように本文中においては太字の少し大きめのサイズで表示されます。こうして本文中に「¥section{...}」で囲んで挿入された見出しを、LaTeXが後で拾いまとめて、目次ページを自動的に作成してくれます。

目次

第1章 ほにゃらについて................1ページ
第2章 のほほんについて................5ページ
第3章 はらほろについて................9ページ

といった具合に、印刷される文章の最初のページに追加されます。だから、章の順番をコピー&ペーストなどで入れ替えたりした場合には、章番号や順番を自動的に計算して変更してくれます。 LaTeXは他にも参考文献や索引など(2)様々なページを自動生成してくれます。

上記の基本的なデフォルト機能に加え、LaTeXではHTMLでのスタイルシートに相当するような(3)スタイルファイルを利用することができます。例えば、参考文献の表記方法などは、ジャーナルによって大きく異なるなることが暫しです。Chicago方式、APL方式、様々なものがあります。大学の卒論、修論、博士論文でも、目次の書き方からページの順番まで、個々の学校で要求するフォーマットが微妙に異なります。そういった際に、その形式を定義したスタイルファイル(「….sty」)が既にあれば、後はLaTeXの基本的な文法に則って文書を書いて、そこからスタイルファイルを呼び出すだけで、ちゃんと規定のフォーマットに沿った文章に仕上げてくれます。フォーマットを変えたい場合には、呼び出すスタイルファイルを変えるだけで済みますので、たいへん簡単です。ソース文書は改変する必要はありません。また、OB、OGが論文を書いた際に使ったスタイルファイルはたいがいの学校で入手可能です。Googleなどの検索エンジンでネットを探せば、すぐ見つかることでしょう。




lionheadむすび

文献データベースのようなことはワード等でも頑張ればできるのですが、その為には色々追加のソフト買ったり、使い方も憶えなければならず、そうなると労力はLaTeX憶えるのとさして変わらなくなってくるわけです。またホームページ作成と比較すれば、HTML手書きとホームページ作成ソフトを使うことの差に似ています。ホームページ作成ソフトの使い方をマスターするくらいなら、HTMLの書き方勉強したほうがいい、というような気性の人にはLaTeXがいいでしょう。

また「同じ事ができる」といっても、LaTeXの場合自分で細かく設定して行いますので、(4)不満があればいくらでも自分で修正できるという利点があります。それも、文書の見栄えだけでなく、それを行うアプリの機能自体からして根本的に変えてしまうことができます。例えば脚注を挿入する場合、ワープロなどでは脚注番号/記号の表示に2、3の選択肢があるくらいで、それ以外の方式を使いたい場合には一つ一つ自分で打っていくしかありません。一方、LaTeXの場合、脚注コマンドを自分の望むように根本的に再定義してしまうことができます。そして、LaTeXにおいては全てアプリまかせでなく自分で設定していくということは、(5)ユーザーが意図しない余計なお世話的なことをLaTeXは全くしないということも意味します。

まあ、最終的には好みの問題です。ワードで満足しているなら、それでまったく問題ありません。無理してLaTeX憶える必要はないでしょう。

最後に、よく言われるLaTeXの良いところについても一応簡潔に述べておきます。LaTeXは(6)マルチプラットフォームかつプラットフォーム・インデペンデントかつフリーです。Unixでも、ウィンドウズでも、マックでも、どんなパソコン/OSを使っていても利用できます。そして出力はどのOS上でも同様に表示されます。しかもフリーだから、いつでも何処でも気軽に入れることが出来るわけです(テキストエディタもまた、どのOSでも使える基本中の基本的アプリです)。アカウントを持ってるISPにtelnetでアクセスすることができるなら、文書ファイルをFTPでアップロードして、その鯖のUNIXに入ってるLaTeXを使うことも出来ます(LaTeXは大概のUNIXに入っています)。

(7)込み入った数式を書くのにもLaTeXは大変便利です。私自身は文系なので、この点に関してはあまり恩恵を受けていませんが。(^_^; ただ、ワードなどのWYSIWYGな数式エディタと違って、LaTeXで書くとソースコードが複雑で、ソースを見ただけではそれが何なのか分からない、というのは少々不便かも知れません。その点、普通の文章においては、せいぜい加わるのは「¥textit{...}」といったコマンドだけですので、ソースのままでも十分読めます。いや、十分どころか、適切なテキストエディタを使えば(8)画面上ではワープロなどよりもずっと読みやすいと私は思います。ミミカキエディットのようなテキストエディタでは、LaTeXのコマンドだけ色づけして際だたせてくれるので、たいへん便利です。

むすびのむすびとして、LaTeXのマスコットについて:MacpTexのアイコン等にも使われているあのマスコット動物は、ライオンだそうです…てっきり犬だと思ってた(笑)。

lion


【←前頁】【↑目次】【次頁→】