Windows95 のフォント事情


続・等幅じゃない等幅フォント

【2000/02/27】

とうとう Windows2000 が発売されたらしいですね。 で、そんな関係の記事を見ていたら、面白い話がありました。

Microsoft のナレッジベースにある Windows2000 の障害報告なのですが、 [NT] 固定ピッチフォントのポイントサイズによりピクセル幅が既存と異る というものです。
どうやら 「Windows2000 の GDI では、DBCS 一文字のピクセル幅が SBCS のピクセル幅の二倍(偶数)になるように補正している」ので、 等幅フォントを使った場合にどんなポイント数を指定しても ちゃんと等幅に表示できるのだけど、 しかしそれは「Microsoft(R) Windows 2000 日本語版の問題と認識して」いるらしいです。 つまり、今までのガタガタとずれるやつが正しい挙動だそうです (それとも、Windows2000 では、今まで以上に変な動作だったのかな?)。 対策用のプログラムも公開されているらしいです。

おそらく、等幅フォントを選んでも等幅にならないという現象には気が付いていて、 その対策を施したのだけど、 それによって色々な問題が発生してしまったということなのでしょう。 既に Windows 上の資産がかなりあるので、 今更変更は出来ない(互換性を重視する)ってところなのかな。

Windows95 の頃(あるいは Windows 3.1 とかもっと前?)にちゃんと補正しておけばよかったのにね。

(それとも、違う問題だったのかな?)


見えないアンダーバー

【1998/10/07】

下記の「等幅じゃない等幅フォント」の話ですが、 「フォントの大きさによっては、漢字(罫線)1文字の幅が奇数ドット になってしまうからじゃないでしょうか」とのご意見が。 なるほど。きっとそんな感じの理由なんでしょうね。

ところで、モジラ君の場合、フォントの大きさは「ポイント」じゃなく 「サイズ」で指定するんですね。 今始めて気が付いた。

本当にポイントの場合(72ポイント(米)=1インチ)には、 解像度によってずれるポイント数が違うんでしょうかねぇ。

あ、それと、Windows95 のフォントにはもう一つ謎があったことを思い出しました。 「MSP明朝」の「サイズ=12」を使って、以下の例を見てください。

サンプル:
 ↓ここにチルドがあるのは、見えますよね。
 
 ~test~~test~~~~test
 _test__test____test
 
 ↑ここにアンダーバー(アンダースコア)があるの、見えますか?

Netscape Communicaotr の場合、なぜかアンダーバーが消えてしまいます。 MSIE の場合には、どうなるか確認していませんが。

次に「MSP明朝」の「サイズ=9」や、 「MSPゴシック」の「サイズ=12」で見てください。

どうやら、「MSP明朝」の「サイズ=12」の場合、 アンダーバーが見えなくなる場合があるようなのです。 なんででしょうね。

TrueType フォントには、ヒントデータというものがあるのですが、 「MSP明朝」のヒントがおかしいのでしょうか… (ヒントデータにどんな物が入っているのか、実は良く分かっていませんが)。 それとも Netscape Communicator が悪いんでしょうか。


等幅じゃない等幅フォント

【1998/10/06】

最近、 某所 で「等幅フォントを使ってね」と書いたんですが、 Windows95 ではちょっと不思議な現象がある事を思い出したので ちょっとだけ。

まずは用語の説明。 はじめはプロポーショナルフォントについて。 プロポーショナルフォントというのは、 フォントの幅が文字によって異なるフォントのことです。 例えば英字の「I(アイ)」や「l(小文字のエル)」などは幅が狭い方がきれいに見えますよね。 逆に「W」等は広めにした方が自然です。 このようなフォントがプロポーショナルなフォントです。 Windows95 には「MSPゴシック」や「MSP明朝」等のプロポーショナルフォントがあります。

そして、主にテキストエディタ等のカラム位置が重要な場合には、 等幅のフォントを使う事があります。 WでもIでも同じ幅のフォントですね。 Windows95 では、「MSゴシック」「MS明朝」「FixedSys」「Terminal」等たくさんあります。

次にアウトラインフォント。 これは、フォントのデータとして、その外形を覚えているフォントです(…よね?)。 これによって、拡大縮小をしてもギザギザが目立たないようになるわけです。 「MSPゴシック」「MSP明朝」「MSゴシック」「MS明朝」などはこれです (あれ、TureType は正確にはアウトラインじゃないんでしたっけ?)。

で、ようやっと本題。 普通、等幅のフォントが必要なら、「MSゴシック」や「MS明朝」を使うと思います。 でも、等幅のはずなのになぜかガタガタにずれてしまう事ってありませんか?

お手数ですが、ブラウザのフォントを変えて、下の罫線を見てもらえませんか。 まずは、「MSゴシック」の「10ポイント」。 後ろの線がずれていると思います。

サンプル:
┏━━━━━━━━━━━━━━━━━━━━┓
┃テスト                                  ┃
┃                                        ┃
┃             これはテストで〜す         ┃
┗━━━━━━━━━━━━━━━━━━━━┛

それでは、次に「MSゴシック」の「9ポイント」。 今度はきれいに揃っていると思います。

難しい事は分かりませんが、どうやら TrueType のフォントの場合、 なぜか 1.5 の倍数のポイント以外では、ズレてしまう事があるようです。 何故なんでしょう。 アウトラインの計算の際に、上手く割り切れない等の理由なんでしょうかね。

ともかく、TrueType の等幅フォントを使うときには、 「9ポイント」か「12ポイント」で見ると確実に等幅で見る事ができると思います。 ご注意下さい (アプリケーションによっては「10.5ポイント」が指定できるので、それでもOKですが)。


「愚者のアイデア」のページに戻る

トップページに戻る

Since: Oct. 06, 1998
Author: SATOH_Yoshiyuki <yotti@imasy.or.jp>