サポートに連絡

メールでご返信します。通常は2日以内です。

不正利用を防ぐため、Google reCAPTCHA がこの送信を確認します。その際データが Google に送られます。スクリプトはこのフォームを開いたときにだけ読み込まれます。

← すべての記事

自前の点検が 32 パーセント広く測っていた

八月二十七日に書いた点検が、196 の図の見出しを「収まる絵に対して広すぎる」と告げた。直すのに一日かかった。そのうち 103 は、広すぎたことなど一度もなかった。

広すぎると告げられた見出し 最初の報せ 196 測りと実体を直した後 93 幾何を動かした後 38 縁の規則を直した後 3 四つの見出しを短くした後 0 77 の記事、十一の言語で 5,093 の見出しを測った 196 のうち 103 は広すぎたことがない — 広かったのは点検

ポイントはピクセルではない

この点検は、GD で本物の書体ファイルに当てて見出しを測る。

$bb = imagettfbbox(13, 0, $font, $text);

13 は装い表にある字の大きさで、単位はピクセルだ。imagettfbbox() が受け取る大きさの単位はポイントである。つまり測っていたのは 13pt、すなわち 17.3px であり、どの見出しも 96/72 — 三分の一 — 広く出ていた。

はっきりしたのは、本当に字を描くものに尋ねたときだ。窓のない Chromium は本物の図を読み込み、見出しごとに getComputedTextLength() を告げられる。13 では両者が三分の一ずれた。13 * 72 / 96、つまり 9.75 では、半パーセント以内で一致する。ある見出しで 219 対 219 ピクセル、より長いもので 561 対 559。

書体の選びは最初から正しかった

点検は DejaVu Sans に当てて測る。その上の覚書はそれを詫びていた。DejaVu は多くの読み手が見るものより広いから、しきい値を 92 パーセントにした、と。

測ってみると、この選びはまさに正しい。ただし、書かれていた理由とは別の理由で。この場所の書体の連なりが届きうる書体のうち、DejaVu がいちばん広い。同じ一文で DejaVu 219 ピクセル、Liberation 194、Cantarell 193、FreeSans 188。Windows や Mac で読む人には余白が増えこそすれ、減ることはない。この測りは用心深いのではなく、最悪の場合そのものであり、点検が測るべきはまさにそれだ。

計算のあとに残ったもの

直した測りを生き延びた報せが 93。そのうち 33 は、欠陥ではなく規則だった。点検は絵の縁から十単位の余白を取り、それを硬い境として扱っていたので、縁から三単位のところに置かれた年号が「切れている」と数えられていた。切れてなどいない。境はいま縁そのものであり、窮屈さの問いは 95 パーセントのしきい値に委ねた。

残ったものは本物だった。帯の下へ潜り込む見出し、ロシア語の一文には狭すぎる欄、隣の枠に横たわる図の説明。幾何を動かして直したが、これは安い — 幾何は十一の言語の行すべてで同じなので、字句どおりの置き換え一つが十一を直す。四つの見出しは、それぞれ一つの言語で絵そのものより長かった。それらは短くした。

ここから一般化できること

片側にだけ外れる点検は、点検が無いより悪い。仕事を生むからだ。一日の三分の二が、どこも悪くない図に費やされた。そして残りが直された唯一の理由は、誤った報せが本物の隣に並んでいたからである。

決め手はコードをより注意深く読むことではなかった。決め手は、本物の字を描く独立したものに当てて、測り自体を測ったことだ — それに要したのは十分。点検を一週間信じたあとで。

広告