2009-11-23

またちょんぼ(事実誤認)をしてしまった……。

実際に確認してから書くべきだったなあ。ましてはじめからもう一度行くつもりだったんだから、書くのはそのあとでもよかったはず。そうしなかったのは気が逸ってたとしか言いようがない。めずらしく同時性の高いことを書くから、少しでも早く、となってしまったのだと思う。

というか「僕の書いたのを見て誰か興味を持ってくれるかもしれないぞ」とまだ思ってたってことだ。まだまだ自分は青いと思った。それが悪いこととはぜんぜん思わないけど(むしろほとんどの人にとってはいい動機だと思う)、自分に限ってはそういうこと考えない方が楽になれると思うんだよなあ。

Windows 7 + IE 8 で(おそらく Vista + IE 7 でも)フォントがおかしくなる件

Blogger の場合テンプレートが複雑なせいでわかりにくくなってるのだけど、要は「デフォルトフォントが serif となっていて、それまでに指定されているフォントが日本語文字セットを含まない場合に起こる」でいいのかな。

例。たとえばこんな HTML ファイルで発生する。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<meta http-equiv="Content-Style-Type" content="text/css">
<title>テスト1</title>
<style type="text/css">
<!--
body { font-family: "Times New Roman", serif; }
-->
</style>
</head>
<body>

<h1>テスト1</h1>

<p>スタイルシートを修正したので今は大丈夫だと思うけど、Windows 7 の IE8
でしか確認していない。ほかの環境でおかしかったら言ってください。</p>

</body>
</html>

HTML ソースのエンコーディングは関係ないですね。Shift_JIS でも、UTF-8 でも起こる。

回避方法は、日本語フォントもちゃんと指定する。

body { font-family: "Times New Roman", "MS 明朝", serif; }

しかしMS明朝固定は避けたいという場合は、先日知った IE の「バージョンベクタ」のテクニックを使う。CSS ハックとかいうやつよりはこっちのほうがいいよね。

<style type="text/css">
<!--
body { font-family: "Times New Roman", serif; }
-->
</style>
<!--[if gte IE 7]>
<style type="text/css">
body { font-family: "Times New Roman", "MS 明朝", serif; }
</style>
<![endif]-->

フォント名は指定しないほうがいいという意見もあるし、それはそれで傾聴に値すると思うんだけど、少しは遊んでみたいときもある。

そのことで以下余談。

理想をいえば、マイクロソフトがMS明朝/ゴシック(とその他の日本語フォント)をはじめからきれいにレンダリングできるようにしていればよかったのに、と思う。メイリオなんていう新しいフォントを付け足すんじゃなくて。そもそもどんなフォントでも読みやすくレンダリングできていれば、前述のような意見は出てこなかったろうに。海外のページを見ると、みんな自分のお気に入りの書体でページを作れていいなあ、と思う。

ラテン文字(アルファベット)では、ClearType はとても読みやすいテキストを描画する。Windows の 2000 か XP か忘れたけど、初めて ClearType をオンにして NYTimes あたりを見たとき、こりゃやばいと思った。欧米の人間は「これでもうディスプレイの解像度やフォントの品質の改良はいらないな」と思ってしまうだろうから、日本語テキストの描画品質の改善が置き去りにされてしまうんじゃないかと思ったのだ。

一方で、昔、Mac OS X が(UI の構成部品とか含めて)スクリーンのすべてのフォントをアンチエイリアス処理して描画してるのを見たとき、これはマイクロソフトのアプローチのほうが正しそうだ、と思った記憶もある。初めの頃の OS X の日本語フォントはほんと読みにくかった。ここでいうマイクロソフトのアプローチというのは、ラテン文字はアンチエイリアスで出しても、MS明朝/ゴシックなどの日本語フォントはビットマップフォントという方針のこと。当時は描画速度の問題もあったんだろうけど。

ところが Tiger かその前あたりで、OS X は日本語フォントが随分読みやすくなっていた。いろいろ中の人ががんばっていたんだろうと思う。結果的に今では Mac のほうが日本語フォントは読みやすい環境にあると思う。

というか、Windows の日本語フォントのユーザー体験って、Windows 95 から基本的に変わってないよね。15年だぞ、15年。コンピューターの世界でこれはひどくないか。これについては日本人はもっと怒ってもいいんじゃないかと思うんだけど。15年たっても、Windows では日本語フォントの描画品質はまったく変わっておらず、エディットコントロールでは禁則処理もできていない(いや、Windows の API にいろいろあるのは知ってますよ)。

でも、日本ではあんまりそういう要望は聞かれないのかもしれない。というのは、携帯電話のテキストまわりのユーザー体験を考えてみると、いまだに驚くほど貧弱だから。以前 INFOBAR 2 を使ってたけど(いまはまた古い携帯使ってます)、2007年の時点でメールの本文を折り返し表示して行頭に句読点が平気で出ていた。これが21世紀かと。

いいですか、ぶんかてきというのは、でんわにてれびをつけたりすることじゃ、ないんですよ。

もちろん、使ってる日本人すべてが「句読点が行頭にくるのはおかしい!」とか声を荒げるべきだというつもりはないよ。こういうの(写植と組版)には、こういうことに対して執念深く追求するある種の人間が必要で、そういう人々によって(普通の人々が気づかないところで)実現されるものだと思う。Mac とか TeX とか、そうでしょ。TeX 嫌いだけど。しかしそういう「活字の美しさに取り憑かれた技術者」がいないのだろうね。

世の中には、吉の字の上が長いか下が長いかの違いを血眼になって議論する人もいれば、常用漢字に何を入れるかに熱くなる人もいれば、InDesign のバグについて重箱の隅をつつくことに情熱を注ぐ人もいるみたいだけど、コンピューターのもっとも基本的でだれもが使うところでの当たり前のユーザー体験の部分について改善しろという人はいないのか。

どうも、そういう基本的なところさえもがいつまでたっても改善されないのが不満なんですよ。

組版に対する情熱では、日本人は欧米人にとうていかなわないと思う。Microsoft の DirectWrite のページとかを見ると、こいつらの欲望は果てしないな、と思わずにはいられない。墨の表現に使うとかで、日本語フォントにもかなり応用の利きそうなトピックもあるけど、まあそういう恩恵にあずかれるようになる日はこの調子では近くはないであろう。

自分にフォントの知識があったらなあ、とはよく思うけど、あの世界は僕には難しすぎる。ベジエとか何?みたいな。