2001Yのプロフォール画像

2001Y@Y20010920T

日本語の 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
}