🔡

Jetbrains IDEで等幅フォントを使っても文字がずれる時

2024/01/30に公開

忙しい人向け

日本語対応等幅フォントにしてもずれる時は、フォントサイズの指定を 偶数 にすると治ります

fontsize_settings

事の始まり

業務でAndroid Studioを使っている友人から「等幅フォントを使っているのに、全角半角を混ぜるとズレるのだが?」と相談を受けました。

確かに言われてみると、PyCharmでMarkdown書いている際に表を揃えたくても微妙にずれていた覚えがあり、調べてみることにしました。

1. Jetbrains Monoは日本語等幅フォントではない

大前提としてJetbrains IDEの標準フォントになっている Jetbrains Mono は、公式ページを見るとサポート言語に書かれていないように、日本語は非対応です

https://www.jetbrains.com/ja-jp/lp/mono/

そのため日本語を表示する際は、フォールバックでMSゴシックが表示されてしまいます。UDEV Gothic のような日本語対応等幅フォントを指定する必要があります。

https://github.com/yuru7/udev-gothic

2. フォントサイズが奇数だとずれる

日本語対応の等幅フォントを使ってもずれる場合、フォントサイズが 奇数 になっている可能性があります。

大半の等幅フォントは 全角:半角 = 2:1 で作られていますが、フォントサイズが奇数になっている時に計算誤差(?)なのか、全角と半角が混じった行で少しずつズレてしまいます。

特にJetbrains IDEはデフォルト設定のフォントサイズが 13.0 になっているので、この問題が発生しやすい前提があります。
fontsize_odd_number

おまけ

どうやらSublimeでも同様の問題があるようです。

https://qiita.com/sawada/items/103c00061ece29f18657

Visual StudioとかVSCodeはどうなんだろう… 普段使ってないので同じような事象が発生するか分かりませんが、もしかしたら同様の解決法で治るかも?

Discussion