フォントの字体変更は文字コードの話題か?2007年10月30日 00:03

JIS X 0213:2004が (包摂の範囲内で) 例示字形を変更したために、この変更に追随して字体設計を変更するフォントがいくつかあるようです。「辻」のしんにょうが1点か2点か、というのはこのレベルの話です。さて、これは文字コードの話題でしょうか?

文字コードとは、文字とバイト表現との対応を規定するものです。あるバイト表現に対応する文字がどのような字体をとるかは、包摂の範囲内において、設計者の方針次第です。文字コードの問題ではありません。JIS X 0208/0213では、しんにょうの点が1点か2点かは、文字コードとして区別しないことが明記されています。

なので、「辻」のしんにょうの点の数の如き問題は、文字コードの話題ではありません。フォントの話です。文字コードについて雑誌記事などを書く人におかれては、是非こうした区別に敏感であってほしいと思います。

補足すると、字体変更が包摂規準の範囲を越えて行われると、文字コード規格に適合するかどうかの問題が生じるので、文字コードの話題ともなり得ます。

文字コード的に見たフォント設計の自由度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と同じ要領で不適合とみなされることになります。

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

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

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

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

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

規格の読み方2007年10月30日 23:31

前の記事を書くために久しぶりに97JISを読んだのですが、ああ、やっぱりこれは1997年の規格なんだなということを感じました。

というのは、規格が書かれた当時の常識や技術的な背景というもの (それらの多くは現在でも通じるにしても) が、規格の文言の裏に透けて見えるわけです。

規格というのは、文面に書かれたものが全てであるかのように読み、それできちんと意味が通じるのが良いわけです。というのは、異なるベンダの実装者が別々に読んで実装したものが、きちんと相互運用できてほしいから。けれどもその一方で、書かれた文書はやはりその時代の産物であることは免れ得ない。してみると、深く理解しようとしたら、書かれた当時の事情を知るに如くはない。

時代背景や常識というものをまるっきり無視して、言葉尻だけをとらえてあげつらうのは、(規格の草案を練り直すときには有益かもしれないとしても) 現実世界への適用においてはあんまり意味がないわけです。

そういうわけで、JISの「解説」はもっと参照されて良いのではと思います。規定がなぜそうなったかを知る手がかりになるからです。97JISやJIS X 0221-1:2001の「解説」なんかは誰でもいつでも参照できるように整備されていてほしいと思います(そういえばX0221の新しいのはもうすぐでしたっけ)。JISCのサイトでは「解説」まで含めてくれないのですよね。残念。