Migu 1M フォントで一部の文字が正しく表No.31519
にしかぜ さん 12/09/21 14:32
 
秀丸 8.21 β4 64bit
windows7 64bit

Migu 1M というフォントで ◢ ◣ ◤ ◥ などの文字が正しく
表示されません。
字幅は半角で、全角文字の左半分のみが表示されているようです。

フォントは以下のページからダウンロードしました。
M+とIPAの合成フォント
http://mix-mplus-ipa.sourceforge.jp/migu/

とりあえず確認したのは以下の文字です。

◢ U+25E2 BLACK LOWER RIGHT TRIANGLE
◣ U+25E3 BLACK LOWER LEFT TRIANGLE
◤ U+25E4 BLACK UPPER LEFT TRIANGLE
◥ U+25E5 BLACK UPPER RIGHT TRIANGLE
◧ U+25E7 SQUARE WITH LEFT HALF BLACK
◨ U+25E8 SQUARE WITH RIGHT HALF BLACK
◩ U+25E9 SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK
◪ U+25Ea SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK

これらの文字は秀丸上で、メイリオでは全角文字のように表示され
MSゴシックでは半角文字として表示されています。

fontforge で調べたところ、これらの文字は Migu 1M フォントにグリフがありませ
んでした。
グリフがない文字の描画に関係がありそうです。

[ ]
RE:31519 Migu 1M フォントで一部の文字がNo.31520
秀まるお2 さん 12/09/21 17:28
 
 連絡いただいた現象ですが、たしかにこちらでも確認できました。

 まず、にしかぜさんの所では、「3Dグラフィックスアクセラレータによる文字
の描画」がONになってると思います。これをOFFにするとまた別の問題が出るよ
うなので…。

 で、この「3D…」がONの場合、問題の文字の横幅が、全角文字と同じ幅になっ
て出てきてしまうようです。旧来の方法で文字幅を計算すると半角文字ってこと
になるようで、それと矛盾して文字が欠けてしまうようです。

 文字が全角か半角かを判定する処理が、3D対応してませんでして…。

 ということで、半角/全角判定の処理についても3D対応するということで、今
回の問題に対応させていただきます。結果的に今回の文字が全角文字扱いになっ
てしまうのですが、それは仕方が無いということで…。

 それと、実はテストしてて気づいたのですが、「3Dグラフィック…」の
オプションをOFFにすると、今回の文字が半角の「・」のような形でしか出ない
です。これは、にしかぜさんの調べていただいた「グリフが無い」ってことと関
係してるようです。ただ、秀丸担当の話だと、Windows7の場合はグリフが無くて
も勝手に代替フォントで描画してれるはずが、今回はなぜかそれが効いてくれて
ないようです。そういうケースは今までなかったとのことです。

 それについて対応する(グリフの無い文字については代替フォントを自前で用
意する?)のは、ちょっと大変過ぎるのでやってないそうです。

 とりあえず「3Dグラフィックス…」をONにすれば文字が出るので、それでよし
とさせていただきまして、全角/半角判定がおかしい点だけ修正させていただき
ます。

 次は正式版にしようかと思ってたんですが、もう1回β版で出します。

[ ]
RE:31520 Migu 1M フォントで一部の文字がNo.31521
にしかぜ さん 12/09/21 22:56
 
> 「3Dグラフィックスアクセラレータによる文字の描画」がONになってると思います。

はい、ON になっています。
OFF にすると「・」になるのも確認できました。

また、WindoowsVista 64bit でも同じ状態になっています。

> 結果的に今回の文字が全角文字扱いになっ
> てしまうのですが、それは仕方が無いということで…。

個人的には、何かしらのルールに統一されていればそれでいいと思います。

>  とりあえず「3Dグラフィックス…」をONにすれば文字が出るので、それでよし
> とさせていただきまして、全角/半角判定がおかしい点だけ修正させていただき
> ます。

はい、よろしくお願いします。

[ ]
RE:31520 Migu 1M フォントで一部の文字がNo.31530
にしかぜ さん 12/09/24 16:20
 
秀丸 8.21 β9 で解消して、正しく表示されていることを確認しました。
すばやい対応ありがとうございました。

[ ]