締め切り日が正式に二週間延びた。あと二週間この調子で続くのかと思うとうんざりする。
レイアウトの難しさを本当に知っているのはプログラマかもしれないと思うことがある。
ここ5年間くらいでほとんどのプログラムがGUI (Graphical User Interface)になってしまったが、GUIのプログラムというのはレイアウトの固まりである。確かにCUI (Character User Interface)のプログラムだって、文字の配置は重要だった。しかし、そのレイアウト決定規則において以前と大きく変わったことがある。
それはフォントの問題である。
昔は、ビットマップ等幅フォントであった。8×16とか16×16とかいうあれである。このフォントの良いところは、大きさが簡単にわかるから、ある枠内に何個文字が入るか簡単に計算できる(レイアウトがしやすい)。解像度が低くても読みやすいように作られているし、なんといっても等幅は日本人の感覚にフィットする。ASCIIアートだって思いのまま。良いことずくめである。
にも関わらずこの古き良き時代は終わった。WYSIWYGの到来と共にビットマップ等幅フォントは闇に葬られ、ベクターフォント(TrueType FontとかPS Fontとかはこれ)に取って代わられてしまったのである。当初、これによってピクセルなんていう現実世界とはマッチしない単位を使わずにすむという理想郷がやってくるはずであった。しかしである。現実はそうではない。解像度は、あのころからせいぜい2倍程度にしかなっていないし、画像はビットマップが未だ主流で、GUIの絵画もマウスのポイント地点もすべてピクセルで決められているのである。解像度が二倍になるとアイコンの物理サイズは1/4になるのに、フォントの大きさは変わらない。このため、環境の解像度によって見え方が一定しないということになるが、作り手にとってこれは地獄以外の何物でもない。
問題はこれに留まらない。まずフォント指定のサイズはSI単位系ではなく、ポイントという怪しげな単位である。確かに出版界では昔から使われてきたとはいえ、直感的に大きさがわからないというのは非常に不便だ(しかも解像度が決まらないと絵画すらできない)。
これに拍車をかけるのが同じポイント数でもフォントのサイズが異なるという点である。これは、ポイント数が大文字のWの幅を基準に決められていることが原因らしい。WindowsだけならばMSゴシック決めうちでいいのだが、他のプラットフォームでも使うかもしれないJavaでプログラムを書くときにはそういうわけにもいかない。
というわけで本ページは、ピクセルを止めて、すべてcmとポイントの物理単位系にしてあります(結局ポイントの使用はすることにした)。だから、どうしたという話ではあるが。