2015年4月16日木曜日

Windows 10 のフォントレンダリングは文字が欠ける(何も改善されていない)

Windows 7, 8.1でプログラミングする場合、フォントをConsolasなど定番フォント(Inconsolata、Source Code Pro、DejaVu Sans Mono、Anonymous Pro、…)に変更することが一般的です。

しかし、これらのフォントは英数字のみ収録されているため、日本語のコメント文を表示することが出来ません。 日本語が全く表示されず空白になってしまったり、表示されても文字が潰れて読めなかったり、文字の比率がおかしくなってしまう事があります。

対処法には、大きく2つの方法がありました。
①FontLink設定する。
②Rictyのように、英字フォントに日本語フォントを合成する。

デメリットは、①の場合は、英数字以外はメイリオなどを使うようにレジストリを設定した場合、メイリオは横長なので等幅フォント風に幅を調整するパラメータ設定が難しいことです。 ②のデメリットは、windowsのフォント描画性能が悪いせいで「f」や日本語の文字の横棒が消えてしまう問題があることです。フォントサイズ20以上にすればまだ読めるのですが、 現実的に使用する10〜18ポイントでは使い物になりませんでした。 (そこでGDIPPやMacTypeのようなツールに人気がありました)。

Windows 10 (Technical Preview)ではどうか

試しにサクラエディタにてRictyの表示をしてみました。(画像はRicty Diminishedのフォントサイズ12ptです)。 しかし、残念ながらWindows7時代と同様に、文字の一部が欠けてしまいます。「語」の口の部分が几のように下が欠けています。また、英語部分も文字が歪んでいます。 これまでどおり、諦めるか、従来のツールを使うしかなさそうです。

Webで検索するとMacTypeの動作報告がいくつか見つかるため、Windows10でもMacType等のツールに頼るしかないです。

マイクロソフトは改善する予定はない

当然、フォント描画をなんとかしてくれ!という要望は世界中からされているのですが、却下されてしましました。(参照: Improve font rendering)

Improve font rendering

Anyone who's used other operating systems knows Cleartype distorts fonts to a point where some look atrocious. In general, it makes fonts too thin and jagged which makes them harder to read. Projects like gdipp and MacType try to address this issue, however, they can't provide the best result.

「他のOSに比べてもWindowsのフォントはギザギザになるし汚いよ。gdippやMacTypeだけじゃ限界があるから、改善してほしいな」という意見に対して、回答は…

Admin (Admin, Microsoft Windows) responded · Mar 26, 2015

Thank you for the great feedback. IE, Windows modern shell and Office all use grayscale. ClearType is only used in a few places on the desktop shell, not in places where people read text. This is no longer an issue starting in Windows 8.

「IEもOfficeもグレースケールを使っていて、ClearTypeは限られた場所で使っているだけだ。Windows8の時点で既に問題は解決されているから、対処はしないよ」と。

つまり、Windows10では、フォントの問題は解決されない見込みです。

2015年4月3日金曜日

MacBook Retina+Windows10で解像度を16:10に変更する方法

Windows 10 Technical Previewが2014年10月から公開されています。

私はMac Book Pro (Retina)で無料の仮想化ソフト「Virtual Box」上にインストールして、Windows 10TPでの動作確認を実施しています。 ところが、Virtual Box上のWindows10 TPでは、標準で選択できる画面解像度は1600x1200、1280x1024、1152x864、1024x768と、画面解像度が4:3のものしか使用できません。

フルスクリーンで使用する場合はもちろんのこと、ウィンドウモードで使用する場合でも16:10や16:9で使用したいと考えるのが普通では無いでしょうか?そこで、Macbook+VirtualBox上のWindows10にて、画面解像度を自在に設定する方法を調べました。

仮想マシン上のWindowsで認識できる解像度の追加方法

Macのターミナルからコマンドを実行することで追加が可能です。

Terminalにて、VirtualBoxのインストールディレクトリに移動します。


cd /Applications/VirtualBox.app/Contents/MacOS

下記のコマンドを実行します。


VBoxManage setextradata "Windows 10 TP" CustomVideoMode1 1280x800x32
VBoxManage setextradata "Windows 10 TP" CustomVideoMode2 1440x900x32

ここでは画面解像度として1280x800と1440x900を追加しています。

「Windows 10 TP」の部分は、VirtualBoxの仮想マシンの設定名称に合わせて変更してください。「Oracle VM VirtualBox マネージャー」の画面にて表示されている名前を使用します。大文字と小文字が区別されることに注意してください。

CustomVideoMode のあとの数字は、追加する数に合わせて1,2,3,...と変更します。

最後の1280x800x32の部分で追加する解像度を指定します。横幅ドットx縦幅ドットx色数ビットの型式で指定します。

※ちなみに、このコマンドはホストOSがWindowsでも共通に使用できます。ディレクトリをC:\Program Files\...に読み替えてやってください。

どの解像度を追加すべきか

Appleの公式サイトに記載があるように、Macbookはアスペクト比が16:10で、iMacは16:9のようです。
https://support.apple.com/ja-jp/HT5266
(16:10) 2560x1600 - MacBook Pro (Retina, 13-inch, Late 2012 以降)
(16:10) 2880x1800 - MacBook Pro (Retina, Mid 2012) および MacBook Pro (Retina, 15-inch, Early 2013 以降)
(16:9) 5120x2880 - iMac (Retina 5K, 27-inch, Late 2014)

したがって、16:10または16:9の画面解像度を設定するのがお勧めです。

Macbook Pro Retinaの場合でも、フルスクリーンであれば16:10が便利ですが、ウィンドウモードで使用する場合にはDockの表示領域を考慮して16:9程度の画面解像度を追加しておくと便利です。

MacbookPro Retina(13in)は、ディスプレイの解像度は2560x1600と高いのですが、実際には擬似解像度として 1280x800ドットと同じ倍率で画面表示されます(標準設定の場合)。 そのため、縦幅800ドット以下の解像度を追加するのが便利です。

画面解像度はWikipediaにリストがありますので、そこから適当に選んできましょう。
http://ja.wikipedia.org/wiki/%E7%94%BB%E9%9D%A2%E8%A7%A3%E5%83%8F%E5%BA%A6

以上から、私のおすすめは 1280x800, 1280x720あたりです。