日本語の Markdown 表が「ズレる」問題に、フォント選びの観点から実践的に対処するメモ。
ポイントは 半角=1幅/全角=2幅(1:2) を選ぶことと、曖昧幅(Ambiguous width) の扱いです。
TL;DR(まずはこれ)
-
表を確実に揃えたい → 1:2 版を選ぶ
- 代表例:UDEV Gothic(無印 or JPDOC), PlemolJP Console, Moralerspace HW/HWJPDOC, HackGen(白源)
- いずれも 1:2 版を明記 (GitHub)
-
iTerm2/ターミナルを使うなら「曖昧幅を全角扱い」に設定 ( iterm2.com, ソフトアンテナ)
-
3:5(“35”)版は英数がゆったり・読みやすいが、表は崩れやすいので用途で使い分け (GitHub)
なぜズレる?──文字幅と曖昧幅の罠
-
1:2(半角=1、全角=2) を前提に整列されるケース(コード表や ASCII テーブル)が多い
-
3:5(“35”) は英数が広く見やすい反面、1:2前提の表でズレやすい
- 多くのフォントは 1:2 と 3:5 の両系を提供 (GitHub)
-
曖昧幅(Ambiguous) の記号(例:←→□■…)の扱いはアプリ側設定で変えられる
- iTerm2 では Ambiguous characters are double-width の設定が公式に案内されている ( iterm2.com )
おすすめ(表ズレ視点)
-
第一候補:UDEV Gothic(1:2 / JPDOC)
- 1:2 と 3:5 を明記
- JPDOC で日本語文書頻出記号を全角化でき、Markdown 表や和文多めのテキストが揃いやすい
- Nerd Fonts やリガチャ版も用意 (GitHub)
-
実績安定:PlemolJP Console(1:2)
- IBM Plex 系
- Console 版は矢印など多くの記号を半角で統一し、コードや表の桁合わせと相性がよい
- 3:5 系(PlemolJP35)も併設 (GitHub)
-
新しめ&多機能:Moralerspace HW/HWJPDOC(1:2)
- Monaspace × IBM Plex
- HW(=1:2)/HWJPDOC を選べば表が揃う
- 最新版は Nerd Fonts 標準同梱、窓の杜も「日本人向け最高峰の1つ」と評価 (GitHub, 窓の杜)
-
定番:白源(HackGen)
- 1:2 が標準
- HackGen35(3:5)も同梱
- Console 版あり (GitHub)
主要フォントの「幅」早見表(抜粋)
- UDEV Gothic … 1:2/3:5/JPDOC/NF 等 (GitHub)
- PlemolJP … 1:2(通常/Console)、3:5(PlemolJP35) (GitHub)
- Moralerspace … 通常 3:5、1:2 は HW/HWJPDOC。NF 版あり (GitHub)
- HackGen(白源) … 1:2(通常/Console)、3:5(HackGen35) (GitHub)
- Explex … 1:2(通常/Console)、3:5(Explex35) (GitHub)
- NOTONOTO … 1:2(通常/Console)、3:5(NOTONOTO35) (GitHub)
- Guguru Sans Code … 1:2/3:5 の両系 (GitHub)
- Pending Mono … 3:5 が基本、1:2 版もあり (GitHub)
- Bizin Gothic … 1:2 の等幅 (GitHub)
- BIZTER … UI 向け合成フォントで、等幅前提ではない(表整列用途には不向き) (GitHub)
- Firge … Fira Mono × 源真ゴシック。幅仕様は README 要確認 (GitHub)
セットアップ例
VS Code(settings.json)
{
"editor.fontFamily": "'UDEV Gothic', 'PlemolJP Console', 'Moralerspace HWJPDOC', 'HackGen', monospace",
"editor.fontLigatures": true
}