2016年5月20日金曜日

0とOが区別しにくいことへの改善方法

PCを使っていて、アプリケーションや設定によっては、0(1バイト文字の数字の0)とO(マルチバイトフォントに含まれているアルファベットのO)とが区別しにくい場合があります。
1バイト文字とマルチバイト文字のフォントを別々に設定できるのであれば、1バイト文字について数字の0がたとえば中央に中黒(・)やスラッシュ(/)が付加されたものを指定することで、区別しやすくすることができます。しかし、かならずしもこのような機能があるわけでありません。

なにか方法はないのかと思って探していると、Windowsについて次のような記述を見つけました。
Z..TSO(TSS)作業の効率化・品質向上・・・ゼロ”0”とオー”O”の表示と改善
http://www.arteceed.net/?p=4232
以下にその設定方法の記述を引用します(一部、わかりやすさのために、原文と順序を変えています)。
Windowsの場合、(条件付きですが)以下の方法で数字のゼロ”0″とアルファベットのオー”O”の区別がわかりやすくなる事が判りましたので、ご紹介します
※2)でレジストリ操作をします。自己責任でお願いします
  1. 作業PCに”Consolas”という名称のフォントがある
    マイクロソフト社がソースコードの表示を判りやすくするために提供しているフォントのため1バイトのゼロ”0″に斜線が入っています。但し、2バイトコードが提供されていません
    →(秀丸エディタなど)2バイトコードを別のフォントに置き換えてくれるアプリケーションもありますが、置き換えに対応していないアプリケーションについては文字化けします(TcplinkスタンダードV3.50で確認の結果、文字化けしました)。
  2. レジストリにて”Consolas”に対して”Font Link”機能を与える
    レジストリ(Windows側)で2バイトコードのフォントを代替フォントで表示させるようにする事で1)のTcplinkのような(2バイトコード置き換え非対応)アプリケーションでも2バイトコードが表示されるようになります
    1. regeditにて
      \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink
      に文字列値として
      Consolas
      を作成
    2. 続いて値のデータに2バイト表示の際の代替フォントを指定します
      私は代替フォントとして
      MSGOTHIC.TTC,MS UI Gothic
      で動作を確認しました
  3. Windowsを再起動する
MacOS Xのアプリケーションでは、
  • フォントは1バイト文字でもマルチバイト文字でも設定できる
  • 1バイト文字のフォントを指定した時は、マルチバイト文字を表示するときにはそのフォントとペアになったマルチバイトフォントが利用される。
  • マルチバイト文字のフォントを指定した時は、同じくペアになった1バイト文字のフォントとペアで利用される
  • たぶんほとんどのフォントについて1バイト文字とマルチバイト文字のペア設定がある
という状況なので、多くのアプリケーションについては、1バイト文字について0の区別がしやすいフォントを選べば、自然と区別が付くようになります。ただし、1バイト文字とマルチバイト文字のフォントが別々に設定できず、アプリケーションの設定が優先されるような場合にはうまくいきません。また、1バイトの文字のフォントとマルチバイト文字の文字のフォントのペア設定を変更できるかは、残念ながらわかりません。