IDEA12でフォント変更したら日本語コメントが上手く表示されない場合の対処

昨年、JavaScript開発でWebStormを使ってみてから、JetBrains製品を気に入りIntelliJ IDEAユーザになりました。

当時はIDEA11を購入し、昨年末のマヤ歴の終りセールで勢いでIDEA12に乗り換えたのですが、エディタのフォントを自分の好みのものに変更すると、コード内の日本語の表示がおかしくなる問題がありました。(そもそも日本語コメント、いや…コメントをあまり付けないので気にしていませんでしたが)

この問題の対処方法についてとりあえず発見したのでメモしておきます。
なお、私の試した環境はWindows7(64bit)なので予めご了承ください。

まずは、IDEA12デフォルトのフォント(Monospaced)だとこのような感じです。

IDEA12_1

そのままでも実用上問題はないのですが、やっぱり自分の好みのフォントを使いたいですよね。
ということで、設定でフォントを「Consolas」に変更します。

IDEA12_2

これで問題ないように思えますが、IDEAを再起動すると以下の表示になってしまいます。

IDEA12_3

よく見ると、日本語フォントが化けているのではなく、行内の日本語フォントが一箇所に重なってしまっているようです。

ちなみに等幅フォント以外のもの(MSゴシック等)を指定すると再起動の日本語表示も問題ないのですが、コーディングに等幅フォント以外は使いたくないですよね…

と、ここまでの内容を整理すると、”フォントに「Monospaced」以外の等幅フォントを選択すると日本語表示がおかしくなる”のではないかという気がして来ました。そこで、「Monospaced」ってどんなフォントなんだろうと調べてみたところ、論理フォントだということがわかりました。

論理フォントを使用する – Fontクラス – Swing

論理フォントに対する実際の物理フォントは、「fontconfig.properties」に記述されています。IDEAの場合は「インストールフォルダ/jre/jre/lib」を見ているようですが、デフォルトでは「fontconfig.properties」は存在しないので、「fontconfig.properties.src」がデフォルト設定だと思われます。(もしかするとJAVASCRIPT_HOMEとかで参照先は変わってくるかもしれません)

中身を確認すると、以下のように論理フォント「monospaced」に対して物理フォントが充てられているようです。

monospaced.plain.alphabetic=Courier New
monospaced.plain.chinese-ms950=MingLiU
monospaced.plain.chinese-ms950-extb=MingLiU-ExtB
monospaced.plain.hebrew=Courier New
monospaced.plain.japanese=MS Gothic
monospaced.plain.korean=GulimChe

以下のサイトを参考に、「fontconfig.properties」を作成しカスタマイズしてみました。

[NetBeans]Consolasフォントを使う | さまくた-samakuta
Windows/JDK6のデフォルトフォントの変更と、論理フォントに対応する物理フォントをプログラム上で取得 – torutkの日記

# 以下、変更点のみ抜粋

#monospaced.plain.alphabetic=Courier New
monospaced.plain.alphabetic=Consolas
#monospaced.plain.japanese=MS Gothic
monospaced.plain.japanese=Meiryo UI

#monospaced.bold.alphabetic=Courier New Bold
monospaced.bold.alphabetic=Consolas Bold
#monospaced.bold.japanese=MS Gothic
monospaced.bold.japanese=Meiryo UI

#monospaced.italic.alphabetic=Courier New Italic
monospaced.italic.alphabetic=Consolas Italic
#monospaced.italic.japanese=MS Gothic
monospaced.italic.japanese=Meiryo UI

#monospaced.bolditalic.alphabetic=Courier New Bold Italic
monospaced.bolditalic.alphabetic=Consolas Bold Italic
#monospaced.bolditalic.japanese=MS Gothic
monospaced.bolditalic.japanese=Meiryo UI

#sequence.monospaced.windows-31j=japanese,alphabetic,dingbats,symbol
sequence.monospaced.windows-31j=alphabetic,japanese,dingbats,symbol

# 以下、追記

filename.Consolas=CONSOLA.TTF
filename.Consolas_Bold=CONSOLAB.TTF
filename.Consolas_Italic=CONSOLAI.TTF
filename.Consolas_Bold_Italic=CONSOLAZ.TTF
filename.Meiryo_UI=MEIRYO.TTC
filename.Meiryo_UI_Bold=MEIRYOB.TTC
filename.Meiryo_UI_Italic=MEIRYO.TTC
filename.Meiryo_UI_Bold_Italic=MEIRYOB.TTC

本ファイル作成後、フォントに「Monospaced」を指定したものが以下になります。

IDEA12_4

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*