美しい印刷を目指して

エンゲルバートのNLS はコンピューターを計算以外の処理に使うという道を示し、アラン・ケイはそこから Alto という「道具としてのコンピューター」を作りだしました。

しかし、NLS の意志を受け継いだのは、Alto だけではありません。むしろ、Alto は傍流となるシステムに過ぎません。


NLS の本来の目的は、文章を処理し、人間の「思考」を補佐することです。そして、NLS の直後に、偉大な2つの文章処理システムが産声を上げています。

ここで、時代が逆になりますが、後で考案したシステムを先に紹介しようと思います。なぜなら、先に考えられたシステムはその後幾度もの壁に突き当たり、いまだ実現されていないためです。

我々の前に先に現れたシステム・・・それは、美しい文章を作成し、印刷するためのシステムでした。

目次

Knuth 教授の悩み

TeX システム

TeX の機能

もっと美しく

TeX の開発終了と、新しい論理記述言語

文芸的プログラミング


Knuth 教授の悩み

1976年のある日、Knuth 教授は悩んでいました。

Donald E. Knuth スタンフォード大学教授は、1974 年にチューリング賞を受賞したコンピューター数学者です。チューリング賞というのはチューリング機械を考案したアラン・チューリングにちなんだもので、コンピューター学者に贈られる非常に権威ある賞です。

教授はコンピューター数学の聖典となるような本を執筆していました。プログラム技法やアルゴリズムなどを、1つの話題ごとに1冊にまとめ全7巻刊行する予定の「The Art of Computer Programing」シリーズで、すでに 1968 年に1巻が、1969 年には2巻が、そして 1973 年には第3巻と、第1巻の第2版が出ていました。


しかし、問題はこの次の出版予定でした。次には第2巻の第2版を出版予定だったのですが、この活字組みで問題が出ていたのです。

The Art of Computer Programing は非常に高度な数学の本で、数式一つ間違えれば内容がまったく意味をなさなくなってしまいます。しかし、活版工には数学的な深い知識を持つ人などほとんどおらず、何度校正を繰り返しても間違いがなくならない、と言う状態だったのです。

そこで、第2巻の第2版は、コンピューター植字で出版することが検討されました。これは、コンピューターによって活字を組みあわせ、活版を作り上げるシステムです。

しかし、出来上がりは教授の期待を裏切るものでした。

・・・活字の組み方が、美しくないのです。そこにあるのは、ただ「文字を並べただけ」の本であり、職人の技には遠く及ばないものでした。


教授を悩ましていたのは、この部分です。本を出版するからには、みんなに愛される美しい本を作りたい。しかし、職人の手に頼る以上、数学的な間違いが入る可能性がある。愛されるためには、美しさも、信頼性も、両方必用だ。


そして、教授は決断します。

自分の手で、職人以上の組版が出来るコンピューター組版システムを作ろう、と。


まだ誰も作ったことの無いシステムですが、それができ上がるまでは安心して執筆活動が出来ません。何年かかるかわかりませんが、完成するまでは本の出版は延期です。

・・・天才の考えることは、どこかちょっとずれています (^^;;


TeX システム

Knuth 教授は完璧主義者です。作ると決めたら中途半端なことはしません。

いきなりプログラムを作り始めたりせずに、古今東西の印刷物を調べ、「美しい印刷」とはどういうものかを調べます。そして、その中で良いと思ったものを取り入れ、プログラムしていくのです。

こうして、最初のシステムが出来、TeX (テフ)と名付けられました。TeX には多くの特徴がありますが、最も大きな特徴は、システムが3つに分離していることです。

  • フォント作成ソフト METAFONT
  • 組版ソフト TeX
  • 印刷ドライバ

このように分離しておくことで、多くのメリットが得られます。


METAFONT は、ベクトルでフォントの形をデザインすれば、さまざまな大きさ・さまざまな解像度のフォントを生成してくれるソフトです。フォントのデザイン方法は公開されていますし、TeX システムには普通 METAFONT が用意されていますので、ソースだけ配付すればよいと思えば、自作フォントの配付も簡単です。


 現在のコンピューターでは、ベクトルデータを表示の瞬間に計算(レンダリング)して表示するのが普通です。
 しかしレンダリングは非常にややこしい処理で、当時のコンピューターでは時間がかかりました。そこで、あらかじめレンダリングしたデータをディスクに保存しておく方法が取られました。

 また、ベクトルフォントはドット数が小さくなるとフォントの形が綺麗にレンダリングできないという問題もあります。
 現代のパソコンでは、「画面表示用の小さなフォントは、ベクトルフォントとは別にビットマップとしてデザインする」という手法がとられていますが、METAFONTではそのようなことはしていません。
 METAFONTプログラムが自動的にさまざまな手法を試し、最も見た目がよくなる方法でレンダリングを行うのですが、これはレンダリングの時間を余計に延ばすことになります。もっとも、それをするだけの価値はある見栄えとなります。

教授は、 TeX のために、Computer Modern Font と呼ばれるフォントをデザインしています。このフォントの出来は非常に良く、中にはKnuth 教授の最大の功績は、 TeX の作成よりも CM Font の作成だ、という人もいます。(事実、10年の開発期間のうち7年を CM Font開発に費やしたそうです)


また、印刷ドライバを分離し、しかも TeX システムには含めなかったことも、良い選択でした。印刷ドライバは、プリンタを使用する人が自分の責任で開発するのです。

もちろん、大抵のプリンタは有志によってドライバが開発されています。それでも、情報を公開して勝手に作らせることで、世の中に5万とある印刷機に、自由に対応が可能となったのです。


たとえば、TeX のデータを印刷するのは、20年前のプリンタでも可能です。その一方、1千万円もする業務用印刷機でも可能なのです。

違いは、速度や解像度の細かさだけ。おおまかな見た目は変わりませんから、家で納得いくまで試し刷りをして、最後に印刷所に持ち込むことが可能です。


教授は、このシステムを使って 1981 年に、第2巻の第2版を出版します。そして、TeX の更なる改良を行い、1982 年には現在の TeX と同じものを完成させました。


TeX の機能

本稿では、実は TeX の威力というのは、あまり取り上げません。TeX はいまだに最高の組版システムであり続けていますが、その分参考書も多数出版されていますので、本屋さんに行けば詳しい情報を入手できるでしょう。それらの本自体も TeX で作成されているでしょうから、良いサンプルを見ることが出来ますし。

しかし、まったく無視するのもなんですので、機能の「ほんの一部」を紹介しておきます。


TeX では、文字や線を自由に配置することが出来ます。配置する位置や線の太さは、1/65536 ポイント刻みで変えることができます。(ポイントは印刷で使われる単位で、1ポイント = 1/72.27 インチ)

文字の配置などは、簡単なプログラムで指示します。TeX システムは、これらの情報を「コンパイル」することで、印刷ドライバが処理するデータを生成します。

この方法によって、何十ページにも渡る文章を、全体で最も美しくなるように組版することが可能なのです。


たとえば、我々は小学校で、原稿用紙の行の先頭に「。」や「、」が来るときは、前の行の最後に、はみ出して書いてしまって構わない、と教わります。これを「禁則処理」と呼びます。美しくないので、適当に処理を加えるわけです。

TeX も、同じことを教えられています。あらかじめ、1行は40文字、と教えてあったとしても、行の先頭に「。」が来てしまえば、前の行の文字間を少しづつ詰めて、41文字入るように調整します。


しかしまぁ、この程度の処理であれば、Macintosh やWindows ワープロでもやってくれるでしょう。TeX の真価はここからです。


例えば、1行40文字、1ページ50行と決められた文章があるとします。

文章を書いて割り付けたら、最後のページに8文字しかなかったと考えて下さい。


・・・TeX では、こういう「ちょっとしか印刷されないページ」は、美しくないと見なします。つまり、禁則処理を行うのです。

そこで、自動的に「1ページ50行」という禁を破り、前のページを51行にして、最後のページが出来ないようにします。

しかし、「1ページ50行」という禁を破るのも美しくないのです。そこで、今度は「1行40文字」という禁を破って、なんとか1ページを50行に保とうとします。


この努力の甲斐あって、1ページの50行のうち、たった8行を41文字に詰めることで、「1ページに8文字だけ」という状況は回避されました。

1行が40文字から41文字になるのは通常の「禁則処理」の範囲内ですから、これならそれほど美しさは損なわれません。


ワープロなどでは、ここまでの処理は出来ません。上の例は2ページを操作するだけで終わりましたが、このようなページをまたがる処理は、場合によっては連鎖反応を引き起こし、とても時間のかかるものになってしまうからです。

TeX は「文章の入力」と「割り付け」をわけて考えるので、時間がかかっても構わないのですが、ワープロでは入力と割り付けを同時に行うので、美しさを求めすぎると使いにくいものになってしまうのです。


もう一つの例を上げましょう。

もし、手元にパソコン雑誌があれば、「Office」という単語が無いか探してみて下さい(きっと MS-Officeの記事とかあるでしょう?)。

見つかったら、今度は手元の英和辞典で、同じ単語を探してみて下さい。

文字はどのように組まれているでしょう? おそらく、それぞれが下の絵のようになっているのではないでしょうか。

合字の例

上がパソコン雑誌のもの、下が英和辞典のものです。

英和辞典はもちろん、「英語」に関してはこだわりをもって作られています。下のような活字の組み方は「合字」(ligature)と言って、英語の組版では当たり前の組み方です。


合字が出来ていない例として「パソコン雑誌」を例にしたのは、パソコン雑誌は普通 DTP ソフトで作成されているためです。ワープロより高度な組版を可能としている DTP ソフトであっても、合字までは処理できないのです。

しかし、TeX は当たり前のように処理します。「合字にせよ」と、人間が指示するような必用もありません。


実は、TeX と言う書き方も、本当は正しい表記ではありません。TeX を表記するには、普通のソフトで書けない、TeX でないと正確に表わせない書き方をするのです。

ここは、文字で表わせないので絵で示しておきます。TeX を正式に書くと

TeX

となります。(このように正式に書けないときは TeX と書くように、とKnuth 教授は指示しています。本稿ではそれにしたがっています)

「E をずらしただけじゃん」とか思ってはいけません。これは、英語ではなくラテン語の、正しい表記方法に由来しているのですから。

英語のために作られているコンピューターでは、ラテン語を正しく表記することは出来ません。しかし、どんな組版でも出来るように設計された TeX なら出来るのです。


ちなみ、ラテン語の TeX とは、英語の「text」の意味だそうです。


次ページ: もっと美しく


1 2 次ページ

(ページ作成 1999-12-13)
(最終更新 2011-03-07)

戻る
トップページへ

-- share --

4008

-- follow --




- Reverse Link -