unoh.github.com

NetBeansでConsolasフォントを使う

Tue Nov 25 21:49:03 -0800 2008

yamaokaです。

NetBeansの6.5がリリースされましたね。もともとNetBeansはJava用のIDEですが、今ではPHPやRuby、C/C++の開発にも使えるようになっています。PHPをバンドルしたものを試しているのですが、入力補完など基本的な動作はもちろん、Subversionなどバージョン管理ツールとの連携も便利で個人的な開発にはすっかり手放せないものとなってしまいました。

さて、新しいIDEやエディタを導入したとき、皆さんは初めに何をするでしょうか。私の場合はフォントの設定を行う場合が多いです。Consolasフォントがお気に入りなのですが、Windows環境に導入したNetBeansでエディタのフォントにConsolasを指定すると 日本語が正しく表示されません(豆腐文字になってしまいます)。Windowsのフォントリンクの機能なども試してみましたが、うまく表示されないようです。

NetBeans
NetBeans posted by (C)フォト蔵

NetBeansはSwingで動作しているので、Java側で設定されている論理フォント「Monospaced」の設定を書き換え、「Monospaced」を使うようにすれば表示することができるようになります。ということで、Java側の設定を変更してしまいます。ちなみに、今回NetBeansはJava SDK 1.6.0_10に付属のJREで動作しています。

Javaの設定はプロパティファイルで変更することができます。JDKをインストールしたフォルダに「jre」というフォルダがあるので、その中にある「fontconfig.properties.src」をコピーして同じ場所に「fontconfig.properties」というファイルを作り、エディタで編集します。

まず、Consolasフォントが使えるように末尾に次の内容を追記します。

filename.Consolas=CONSOLA.TTF
filename.Consolas_Bold=CONSOLAB.TTF
filename.Consolas_Italic=CONSOLAI.TTF
filename.Consolas_Bold_Italic=CONSOLAZ.TTF
また、なぜかWindows環境で「Monospaced」が指定された場合に英字フォントより日本語のフォントを優先して使うようになっているので、「sequence.monospaced.windows-31j」の値を「alphabetic」と「japanese」を逆にして次のように変更します。
sequence.monospaced.windows-31j=alphabetic,japanese,dingbats,symbol
最後に、「Monospaced」の英字フォント設定を変更します。デフォルトでは「Courier New」になっているので、「Consolas」に変更していきます。変更箇所は4ヶ所です。
monospaced.plain.alphabetic=Consolas
monospaced.bold.alphabetic=Consolas Bold
monospaced.italic.alphabetic=Consolas Italic
monospaced.bolditalic.alphabetic=Consolas Bold Italic
変更が終わったら「fontconfig.properties」を保存してNetBeansを起動しましょう。エディタのフォントはMonospacedに設定します。

NetBeansでConsolasフォント
NetBeansでConsolasフォント posted by (C)フォト蔵

英字部分はConsolasで、日本語部分はMSゴシックで表示されるようになるかと思います。日本語の表示を他のフォントに変更する場合は、同じように「fontconfig.properties」の値を書き換えることで変更できます。

フォントの変更方法について書いてきましたが、NetBeansはかなり便利です。何より、体感的にEclipseより動作が軽い気がします。XDebugを使ったリモートデバッグもできるようなので、そのうち試してみたいところです。