縦組み時の文字の方向に関する議論を解きほぐす試み (1)コンテンツの記述

春先から、「縦組み時の文字コード正立論」というテーマで何回かブログを書き、また、資料をEPUBにまとめてきました。そろそろ、その結論を出さなければならないだろうと考えて、Unicodeコンソーシアムのフォーラムに質問および意見を投稿しました。この投稿に関しては、Adobeの山本太郎氏から強い反対意見が出る[*1]など、残念ながら多くの賛成を得るにいたっていません。

また、Twitterの議論でも縦組時の文字の方向をどうすべきか、ということに関して多くの方から多数の意見が出ています[*2]。

国際電子出版EXPOの会場でも私の主張に同意される方、あるいは意見を異にする方数名の方と直接意見交換をさせていただきました。

この議論がとても難しい理由は、(1) これまで受けた職業的訓練など発言者の経験、あるいは美観といった主観に基づく判断と、(2) デジタル組版に関わる技術要素が極めて高度になっていることがあります。

(1) と(2)の両方が複雑に組み合わさっているため、問題の理解が難しく、従って、適切な解決策を提案するのが非常に難しくなります。そこで、あらためて(2)について検討することで、複雑に込み入ってしまった問題を解きほぐすことを試みてみたいと思います。

まず、テキストコンテンツ(Unicodeで記述されているものとします)があったとき、それが画面または印刷物(紙)として目に見える過程を図示し、それにどのような技術要素が関係しているかを簡単な絵で表してみます。

最初に、これらの技術要素について順番に簡単な解説を試みます。

1.コンテンツの記述

テキストコンテンツは一般には符号化文字集合で規定された文字コードを使って表現します。符号化文字集合としては、2000年ごろまではシフトJISが主流でした。これまでに蓄積されたコンテンツの量としては、シフトJISが圧倒的に多いと思います。

例えば、青空文庫はJIS X0201(但し、半角カナを除く)とJIS X0208の文字を使って入力し、シフトJIS形式で保存することになっています。JIS X0201(半角)とJIS X0208(全角)ではアラビア数字やラテンアルファベットがダブっていますが、これについては、半角と全角を使い分ける簡単な規則を次のように定めています[*3]。

・縦組みで正立しているラテンアルファベットは全角で、英単語は半角で入力します。
・アラビア数字は1文字のときは全角で、2文字以上は半角で入力します。

青空文庫の全角・半角の使い分けはシフトJISを使うときの基本的な方法と言って良いと思います。

さて、現在の多くのアプリケーションで採用している、符号化文字集合は、Unicodeが主流になっていると言って良いと思います。そして、今後新しく作られて流通するコンテンツはUnicodeベースに移行していくことになると予想できます。

2.シフトJISとUnicodeの違い

シフトJISは、MS-DOSのために開発された文字の保存方式(符号化方式)です。従って、MS-DOSが動作する環境であるPCに密接に関係しています。すなわち、文書を表示するディスプレイは半角と全角のセルをもつキャラクタ・ディスプレイであり、ドットパターンとして作成された文字がROM(リードオンリーメモリ)に保存されています。

JIS X0201の文字は半角幅のセルに表示され、JIS X0208の文字は全角幅のセルに表示されるということで文字コードとその表示幅は完全に1対1対応しています。

これに対して、Unicodeは新しい世代のコンピュータのための文字集合として設計されています。文字を表示する環境は、ビットマップ・ディスプレイであり、文字の字形はアウトライン(ベクトル)としてフォントファイルに収容されています。これにより、文字の幅も半角・全角というような固定幅から開放されて、プロポーショナルな幅をもつ字形のデザインが可能となっています。

こうした環境変化に対応し、Unicodeは文字とグリフ(字の形)を分離するCharacter-Glyphモデルを採用し、Unicodeは抽象化された文字(Character)を定義することになっており、文字の表示形は定義しないとされています。

Unicode標準はグリフイメージを定義しない。標準は、グリフがどのように可視化されるかではなく、文字がどのように解釈されるかを定義する。(中略)Unicode標準は、画面に見える文字の詳細な形、大きさ、方向は定義しない[*4]。

[*1] Fundamental questions
[*2] http://togetter.com/li/251192
[*3] 青空文庫工作員作業マニュアル (2011年11月20日第二版)
[*4] Unicode 仕様書第1章より引用