0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windows Terminal で日本語・ベトナム語・英語を等幅で揃える(UDEV Gothic NF)

0
Last updated at Posted at 2026-06-16

WSL で Windows Terminal を使っていると、英語はきれいな等幅なのに、日本語だけ幅が広すぎて桁がズレることがあります。原因はフォントで、直し方も単純です。さらに私は日本語・ベトナム語・英語を混ぜて書くので、その視点で合成フォントを比べたところ、思わぬ落とし穴(あるフォントがベトナム語を全角で描く)を見つけました。検証環境は WSL2(Ubuntu 24.04)+ Windows Terminal です。

執筆について: この記事は Claude Code が執筆し、筆者がレビューしました。スクリーンショットは Claude Code がヘッドレス Chrome で描画・計測したものです。

症状: 日本語だけ幅が広すぎる

英語と記号はぴったり等幅の格子に乗っているのに、日本語(と罫線・絵文字)の全角文字だけが、ラテン文字 1 セルの 2 倍より広く描かれて、列が右にズレていきます。全角は本来「半角ちょうど 2 個ぶん」のはずが、それより太いのです。

原因: CJK グリフが無く、別フォントへフォールバックしている

きっかけは既定フォントの CaskaydiaCove Nerd Font Mono(Cascadia Code に Nerd Font のアイコンを足したもの)でした。ラテン文字とアイコンはそろっていますが、日本語のグリフを一切持っていません。そのため Windows Terminal が、かな・漢字だけを別のシステム日本語フォント(Yu Gothic / MS Gothic / Meiryo など)へ自動フォールバックします。このフォールバック先のグリフ幅が、ラテン 1 セルのちょうど 2 倍に一致しないため、等幅の格子が崩れます。

なお、フェイス名にフォールバックを書き足す("CaskaydiaCove Nerd Font Mono, Yu Gothic" のように並べる)方法では直りません。これは「どのフォントで欠けたグリフを埋めるか」を変えるだけで(Windows Terminal は黙って同じことを既にやっています)、描かれる幅は元のままだからです。幅のズレそのものが問題なので、フォールバックの連鎖では解決しません。

解決: 半角:全角=1:2 の合成フォントに変える

直し方は、「半角ラテン 1 セル = 全角 CJK のちょうど半分」になるよう設計された合成フォント(コーディング向けに英語フォントと日本語フォントを 1:2 比で混ぜたもの)を 1 つ使うことです。Nerd Font 入りを選べば、プロンプトのアイコン( )もそのまま使えます。私は UDEV Gothic NF を選びました。JetBrains Mono + BIZ UDGothic の合成で、字形がいちばん素直でした。リガチャ(-> などの合字)が欲しい場合は UDEV Gothic NFLG を使います。

インストールは管理者権限も再起動も不要です。

  • UDEV Gothic の GitHub Releases から *_NF の zip を落とす → 解凍
  • .ttf をユーザー単位のフォントフォルダ %LOCALAPPDATA%\Microsoft\Windows\Fonts\ に入れる(各 .ttf を右クリック → インストール、でも可)
  • Windows Terminal の設定 settings.json でフェイスを指定
settings.json
"profiles": {
  "defaults": {
    "font": { "face": "UDEV Gothic NFLG", "size": 14 }
  }
}

defaults に書けば全プロファイルに効きます。あるプロファイルが weight だけ上書きしていても、facedefaults を継承します。settings.json はホットリロードされるので、効かなければタブを開き直しましょう。

確認は、全角文字の行をラテン文字の定規の下に並べて、「あ」一文字が M 二文字ぶんにきっちり収まるか見るだけです。

日本語・ベトナム語・英語を混ぜると、フォントで差が出る

ここからが本題です。私はベトナム語(ラテン文字+声調記号の積み重ね)も書くので、候補の合成フォント 4 つ(UDEV Gothic NFHackGen Console NFPlemolJP Console NFCica)でベトナム語も並べて比べました。結論から言うと、UDEV Gothic NF / UDEV Gothic NFLGPlemolJP Console NF は、日本語・ベトナム語・英語のどれも等幅の格子にきれいに乗ります。

UDEV Gothic と PlemolJP で日本語・ベトナム語・英語を表示した比較

注意が要るのは HackGen Console NF です。まず、どのフォントもベトナム語のグリフ自体は持っています。声調つき母音の合成済みコードポイント U+1EA0–U+1EF9(ế ằ ữ ị ộ ở …)を 90/90 すべて cmap に含んでいました。つまり「文字が無くて豆腐になる」問題ではありません。

差が出るのは East Asian Width(東アジアの文字幅)の扱いです。HackGen Console NF だけがベトナム語の合成済み母音を Wide(全角)扱いにするため、1 文字が 2 セルぶんの幅を取り、単語の途中に隙間が空いて崩れます(ph ở Vi ệ t のように散らばる)。半角の定規(M と数字)の下に並べると一目瞭然で、ếằữịổờ の行だけが定規の右端を大きくはみ出します。

ベトナム語の母音の幅。UDEV Gothic(半角・正)と HackGen(全角・崩れ)の比較

  • UDEV Gothic NF / UDEV Gothic NFLG → ベトナム語の母音も半角。日本語・ベトナム語・英語すべて格子に乗る。安全。
  • PlemolJP Console NF → 同じく半角で安全。UDEV Gothic の対抗馬。
  • HackGen Console NF → ベトナム語の母音が全角になり、単語が崩れる。日本語+ベトナム語には不向き。
  • Cica → 半角で格子は崩れないが、字形が軽め・丸めで好みが分かれる。

グリフの有無(カバレッジ)ではなく、フォントが各文字に割り当てる幅クラスの違いだ、という点がハマりどころでした。日本語だけ、あるいは英語だけで選ぶと気づきません。

結論

日本語・ベトナム語・英語を混ぜて書くなら、UDEV Gothic NFLG(リガチャ不要なら UDEV Gothic NF)が素直です。PlemolJP Console NF も同等に良い対抗馬です。HackGen Console NF はベトナム語の全角化があるので、多言語用途では避けるのが無難でした。日本語と英語しか使わないなら、4 つともきれいに揃います。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?