Image: 罫線文字の字幅がフォントによって異なる件

罫線文字の字幅がフォントによって異なるということを最近知った。罫線文字は今ではobsoleteであるとはいえ、これは等幅フォントとしてあるまじきことだろう。罫線文字に限らず、日本語フォントと英語フォントでmonospaceの幅が一致しないという現象はしばしばある。ソースコードをWebページに仕上げるときに、そういう違いに戸惑う。

DOS/Vコードページ932の半角罫線素片をUnicodeに変換するにあたって、フォントによる表示の違いに混乱させられた。

記事トップ画像は本来意図した通りの表示。上のテキストボックスはCP932の半角罫線文字をMS UI Gothicで表示、下はUnicodeのBOX DRAWINGS DOUBLEをMS ゴシックで表示している。

BOX DRAWINGS DOUBLE

MS UI Gothic

CP932の半角罫線文字は一重罫線になっているが崩れてはいない。一方、Unicodeの二重罫線は崩れてしまっている。

Image: 罫線文字 MS UI Gothic

MS ゴシック

CP932の半角罫線文字は崩れている。Unicodeの二重罫線は崩れずに正しく表示されている。

Image: 罫線文字 MS ゴシック

BOX DRAWINGS

Windows上でMS ゴシックの表示で罫線文字を使って作表し、それをCP932の半角罫線文字に変換してみる。変換するとき、半角罫線文字は2個分並べて全角として表示されていた時と字幅が変わらないようにしている。

MS ゴシック

スペースの幅は変わらずに罫線文字だけ半角よりも小幅になるので体裁が崩れる。

Image: 罫線文字 MS ゴシック

MS UI Gothic

こちらも正しく表示されない。

Image: 罫線文字 MS UI Gothic

Terminal (Shiftjis)

ところがコマンドプロンプトからTYPEコマンドで出力するとちゃんと表示される。これが本来意図していた表示。

Image: Terminal Shiftjis

欧文フォントでの罫線文字の表示

monospaceなCourier Newで表示してみる。

BOX DRAWINGS DOUBLE

Image: Courier New BOX DRAWINGS DOUBLE

BOX DRAWINGS

MSゴシックでは罫線文字が全角相当になったため体裁が崩れたが、こちらは半角のままなので崩れていない。

Image: Courier New BOX DRAWINGS

欧文フォントでは基本的に罫線文字は半角文字で表される。一方、MSゴシックではBOX DRAWINGSは全角で表され、BOX DRAWINGS DOUBLEは半角で表示される。Glyph(字形)が同じだから全角・半角の区別無く割り当てたかのかもしれないが、さすがにこれはなあ。

等幅フォントをmonospaceとして扱うことがあるのなら、このことを知っておくべき。


comments powered by Disqus

※コメント欄が表示されない場合はdisqusについてJavascriptが有効であることを確認して下さい.

(C) 2008-2017 akm. This blog theme is based on sakmug. Hosted by Xdomain