次のTeXソースを見て下さい。本文部分だけを示しています。
\hsize=12zw
\parindent=0zw
ああああああああああああ あ、あ、あ、あ、ああーー ーああ。
まず、1行の幅 (\hsize
) を12文字幅にし、段落の字下げ (\parindent
) をゼロに指定しています。これで、以後12文字ごとに自動的に改行されますね。TeXはソースの改行は無視するので、ソースはどこで改行しても同じなのですが、ここではわかりやすいように、ソースも12文字ごとに改行してあります。
さて、この段落の3行目行頭に「ー」(長音記号) がありますが、この文字は句読点などと同様で、行頭には書けない文字 (行頭禁則文字) です。このような場合、組版ソフトは2つの選択肢を考えます。
このどちらかの処理を行なって、その文字が行頭に来ないようにするわけです。しかし文字間を詰める場合、漢字どうしの間を大きく詰めたりしたら文字が重なってしまうおそれがあります。従って、読点の後や括弧の前後など、元々ある程度すき間のある所でないと詰めるわけにはいきません。詰める余裕がない場合は必然的に追い出し処理になります。
さてこの例の場合ですが、追い出そうとすると、その前の文字も「ー」なので、これも行頭には来られません。結局、2行目末の3文字「あーー」をまとめて追い出さないとならないことになります。逆に追い込もうとすると、1文字分を詰めないとなりませんが、幸い2行目は読点が4つあるので、各読点の後ろを0.25zw (全角幅の4分の1) ずつ詰めれば、うまく収まります。
というわけでこの場合、TeXでもDTPソフトでもワープロソフトでも、通常、追い込みが選択されて、以下のように組まれるでしょう。
追い込んだので2行目が1文字多くなっていますが、違和感はないと思います。
では、次の場合はどうでしょう?
\hsize=12zw
\parindent=0zw
あ、あ、あ、あ、あ、ああ ああああああああああああ ああああーーーーーーーー ーああ。
先ほどとの違いは、読点のある行と長音記号のある行が別の行になっている点です。さらに長音記号が増えたので、追い出しの際には9文字まとめて追い出さなければなりません。
いろんなソフトでこれがどのように組まれるか見てみましょう。なお、ソフトによっては、長音記号が標準では禁則文字になっていない (行頭に来ることを許可する) ものがあります。以下、条件を同じにするために、禁則処理は強めに設定して、等幅フォントを均等配置で試すことにします。
すると、「QuarkXPress 4.1」や「PageMaker 6.53」などのDTPソフトも、「Word 2002」などのワープロソフトも、ほとんどのソフトは以下のように追い出し処理になりました。違うバージョンでもたぶん同じような結果だと思います。
これらのソフトは、「1つ前の行に詰められる余裕があれば追い込み、無ければ追い出す」というアルゴリズムになっているので、2つ以上前の行にいくら詰められる余裕があっても考慮されません。そんなわけで、前の方をちょっと詰めればきれいに組める状態でも、このように汚く空ける可能性があります。
一方、DTPソフトの「InDesign 2.0.2」は、次のように各行ができるだけ均等に空くように組まれます。
他のソフトは、現在行と1つ前の行だけで調整しようとしていたのに対し、InDesignは追い出し処理の際、その段落の最初の行からすべての行を見て、空きが均等になるように調整してくれるのです。結果、1つ1つの空き調整量は小さくなり、他のソフトより調整が目立たなくなります。このような緻密な日本語処理ができるということが、このソフトの売りの一つになっています。
ただし、「1つ前の行に詰められる余裕があれば追い込み、無ければ追い出す」というアルゴリズム自体は従来のソフトから変わっていません。だからこの場合も、追い込めばもっと少ない調整で済むのに、追い出してしまい、結局2行目は計4文字分相当も空きができています。
この例の場合、1行目に読点が5つあるので、各読点の後を0.2zw (全角幅の5分の1) ずつ詰めて1文字を追い込めば、以下何の問題もなく組めます。当然のようにTeXは以下のように最も調整量の少ない追い込み処理をします。
このようにTeXは、追い込んだ場合、追い出した場合、ある行を詰めた場合、空けた場合、どの位置で改行した場合……など、考えられるすべてのパターンの中で最も調整量の少ない最適解を見つけて組んでいきます。従って、一般のDTPソフトよりもきれいに段落を組むことができるのです。
これはフリーソフトのTeXが10年以上も前からやっている処理です。それを市販DTPソフトがやらないというのは不思議に思うかもしれません。また、InDesignがちょっと均等に空けられた程度で画期的と言われるのも不思議に思うかもしれません。もちろん、将来的には、市販DTPソフトもTeXレベルの組版ができるようになるとは思いますが、なぜ現在できないのか。この謎を解く鍵は、DTPソフトがWYSIWYG (画面で見た通りのものが印刷できること) であることにあります。
TeXでやっているような「考えられるすべてのパターンの中の最適解」は、段落内の1文字が変更になっただけで大幅に変わることがあり得ます。WYSIWYGだと常に印刷状態を表示し続けるわけですから、1文字編集をするたびに、「すべてのパターンの中の最適解」を計算し直して表示し直さないとならないことになります。
文章編集中に、1文字挿入するたびにTeXがコンパイルされる状況を想像してみればわかりますが、これがどれほど重い処理になるか想像できるかと思います。それを考えれば、DTPソフトの現状は妥当な選択だし、やはりInDesignはWYSIWYGのソフトとしては画期的なんだと思います。TeXにとってはそれ以上のことが朝飯前であっても(笑)。
TeXはWYSIWYGではないので、レイアウトを逐一確認しながら編集するなんてことはできません。まとめて書き上げてから、おもむろにレイアウトを確認するタイプのソフトです。これは書籍の編集では問題なくても、雑誌っぽいレイアウトを実現しようと思ったら「生産性」の点ではかなりのマイナスかもしれません。でも「出来上がりの美しさ」はきっと、より良いものにできるでしょう。