DirectWrite有効時 特定固定幅フォントにて 半角文字2個が全角文字1個の幅にならない
-
便利にMery使われていただいています。ありがとうございます。
DirectWrite有効時 特定固定幅フォントにて 半角文字2個が全角文字1個の幅にならない事象がありましたので報告します。DirectWrite無効時やフォントをMSゴシックにすると当該事象は発生しません。環境: Windows10 Pro
フォント:IPAゴシック(固定幅フォント)
再現方法:
Mery起動後 フォントをIPAゴシックに変更、DirectWrite 有効(レンダリングモード標準、カラーフォント有効)とし下記のように入力するとあいうえお:
:(スペース10個)
ABCDEFGHIJ:コロン(:) の左右位置が同一となるべきところ1行目(あいうえお)が左寄りになってしまいます。
なおDirectWrite無効にすると、期待通りコロンの位置は各行等しくなります。またフォントをMSゴシックにするとDirectWrite有効でもコロンの位置は各行等しくなります。以上です。
| nong | 返信 -
こんにちは。ご愛用ありがとうございます。
> DirectWrite有効時 特定固定幅フォントにて 半角文字2個が全角文字1個の幅にならない事象がありましたので報告します。DirectWrite無効時やフォントをMSゴシックにすると当該事象は発生しません。
DirectWrite の仕様と特定のフォントの仕様 (Ricty フォントでは既知の問題として公式サイトに記載されています) によるものです。
以下、Ricty フォントの公式サイトの情報より転載させていただきます。
----
半角文字と全角文字の横幅比が 1:2 にならないことがあります。ピクセル値 (px) が偶数でないとき、どのフォントでも起こりうる問題です。一般的な 96 DPI のフォントレンダリングでは 9 pt、10.5 pt、12 pt、13.5 pt、15 pt など、1.5 の倍数を指定すると 1:2 で表示されます。
----Ricty フォントに限らず、その他のフォントでも 1.5 の倍数のサイズを指定するとうまくいく可能性があります。
また、Mery 側の機能として DirectWrite 使用時のフォント幅を強制的に GDI (DirectWrite オフ) の状態のフォント幅に合わせる隠しオプションがあります。上記の対処法でも治らない場合はこちらもお試しください。
このオプションは Mery を閉じている状態で Mery.ini をメモ帳などで開き、[Display] セクションに GdiCompatible=1 を追記することで有効になります。
----
[Display]
GdiCompatible=1
----以上、よろしくお願いいたします。
| Kuro | 返信