[文字] 欧文フォント使用時の記号文字の大きさ(3) 等幅フォント

2020年8月13日

 Courier New のような欧文系の等幅フォントで表示すると以下のように見えます。(多分)

aʤǽα×

 'a' と '○' が等幅で表示されています。
 (android 系はダメっぽいです。ダメな場合は「こらちの画像」を参照ください。)

 が、かつてよく見ていた等幅フォントはこうではありません。こんな感じです。

 つまり和文系のフォントでは、漢字やひらがなは正方形、英数は正方形を 1/2 に縦割りした長方形、で埋めたものを「等幅」と呼んでいます。(多分)
 ちなみに前者の文字を全角文字、後者の文字を半角文字、と呼びます。「全角」という呼び方は、もとは組版/印刷業界の用語のようです。
 (http://ja.wikipedia.org/wiki/全角と半角

 うまく表示できていれば、以下では 'a' が '○' の半分の幅で表示されているはずです。

ai12#%nmβ34

 漢字が全角文字なのは当然としても、なぜ '○' が全角文字扱いかというと、'○' は JIS X 0208 の文字だからです。(多分)
 かつて ShiftJIS が全盛だった時代は、全角とは JIS X 0208 の文字であり、半角とは JIS X 0201 の文字でした。前者は 2 バイトコードの規格であり、後者は 1 バイトコードの規格です。このため、2 バイトコードの文字は全角、1 バイトコードの文字は半角として扱うのが自然でした。
 ただ、今となっては符号化長で文字の幅が決まるのはおかしいですし、欧文も Unicode の登場でマルチバイトの時代となり '○' や '→' といった記号が使用できるようになりました。このような経緯から、同じ文字でも和文系のフォントと欧文系のフォントで幅が異なる状況が生じています。

 また、欧文系の等幅フォントは縦横比が 1:1、または 2:1 ではありません。つまり正方形を基本にしていません。ここも大きな違いです。

 したがって現在、等幅フォントは大別して欧文系のものと和文系のものと二つあり、単に等幅フォントと言われた場合、どちらを指しているのかを気にする必要があります。

 また、和文の等幅フォントが英数字以外(JIS X 0201 の文字以外)は全角幅かというとそういうわけではありません。たとえば 'ʤ' などの発音記号は MS ゴシックでは半角幅で表示されます。別のフォントでは漢字は全角幅だが記号類は欧文系にあわせて半角幅、というものもあります。したがって「マルチバイト文字 = 全角」という意識は捨てたほうが無難です。
 さらに最近は、和文でも、半角幅 3 文字 = 全角幅 2 文字、といった変則的な文字幅のフォントも登場していますから今後は、半角幅 2 文字 = 全角幅 1 文字、であることが当然という意識も捨てておいた方がトラブルは少なそうです。そのうち、全角文字 = 正方形、という関係も崩れるかもしれません。(過去、プリンターへの出力でそういう感じの実装がありました。)
 等幅フォントを選択する際は、使用する文字の幅が意図したものかどうかを逐一確認しておく必要がありそうです。

 このあたりの事情を加味して、CSS の font-family も monospace 一択ではなく、欧文の monospace なのか和文の monospace なのか、ついでに その等幅フォントが serif なのか sansserif なのかの指定もできるようになってくれるといいですね(汗

コメントを投稿する

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


«   »
 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org