文字コード的に見たフォント設計の自由度2007年10月30日 21:41

JIS X 0208:1997の公開レビューがインターネットで行われていたのはご存じでしょうか。当時はFTPでレビュー資料をダウンロードする形態をとっていました。ネットニュース(fjニュースグループ)でお知らせが回っていたような覚えもあります。

レビュー資料のことはもうほとんど忘れてしまいましたが、FAQの中にイカした項目があったのは覚えています。たしか、低解像度のビットマップフォントなどで点画の省略をしても規格に適合するという話の後だったと思うのですが、

問: 1区1点から、区点位置をひとつずつずらして、「亜」の区点位置に「唖」の字形、「唖」の区点位置に「娃」、「娃」の位置に「阿」……として実装したフォントはこの規格に適合しますか? これなら、それぞれの文字は他のいかなる図形文字とも区別できますよ。

答:適合しません。区点位置に定義されている文字を想起できないからです。

なにぶん10年以上前の記憶なので細かいところは違っているかもしれませんが、概略こんな項目だったと思います。

これは、文字コード規格がフォント実装に要求するものを考える上で示唆的な話です。

97JISの「3.3.3 受信装置」は、装置が「符号化文字を受信し」「対応する文字を」「利用者に渡さなければならない」として、(回りくどい表現ではありますが) バイト表現を解釈しフォントを印字する際の要件を示しています。

上の架空のやり取り (FAQと称していても、実際はnever asked questionなことってありますよね) の意地悪な問いは、ここで述べられている、符号化文字に対応する文字を渡すという点において、規格の規定から外れてしまうわけです。「亜」の符号を受信した装置は、利用者がその符号位置に対応する文字 (「亜」) だと認識できる図形を出力しなければならないわけです。まあ、常識で考えればいい話ではあるんですが。

同じ節はまた、受信装置に表現上の制約がある場合は点画の省略を行っても良いが、他の文字と区別できることを要求しています。また、その際に包摂規準を越えた点画の省略をも許しています。これは、16ドットフォントで「量」を作ろうとするとどこかの横線を省かないとできない(当然、包摂規準でそんな字体差は包摂できない)といった事情を救済するためのものです。全然違う字体を採用することを許容するものではありません。中国簡体字をまねて「機」を「机」にするなどまるっきり違う字体に簡略化してしまうと、上のFAQと同じ要領で不適合とみなされることになります。

こうしてみると、文字コード値に対応させて出力する字形というのは、

  • その符号位置に対応する文字を、文字集合内の他の文字と紛れのないように表示すべきであり、
  • 可能な字体差は包摂規準に示されており、
  • ただし表示装置が貧弱な場合は妥当な簡略化も許容するが、だからといってなんでもいいわけではない

といった条件を満たすべきということになります。実は規格本文を見ると分かりますが、これでもまだ端折った内容があります。これ以上は面倒くさいので勘弁。

だからたとえば、「辻」に対応する符号を受け取った装置は、利用者が他のどの文字でもない「辻」のことだなとわかるような字形を表示すればよいわけです。その際、しんにょうの点のがひとつかふたつかなどは書体設計者の自由ですが、世間一般でいう「辻」だと認識できないようなつくりであってはいけないわけです。

よく考えれば常識的なことなのに、言葉にされるとなんだかえらく面倒な感じがするものですね。

コメント

トラックバック