Weztermで一部のフォントが小さくなる問題の対応

Claude Codeの出力って一部をイタリックがありますよね。で、筆者の環境だと一部の文字だけめっちゃ小さくなることがありました。Claude Codeに限らず他のイタリック表示も同様です。今回はそれの対応を残しておきます。

フォントが小さくなる問題

実際に再現したのが次の画像。

実際の例

いくつかのフォントで発生しました。ただ、発生するサイズや文字はフォントによってバラバラなのでまだちゃんとした調査はできていません。

別のフォント(UDEV Gothic NF)での例。

UDEV Gothic NFでの例

対応

原因が分かるまではとりあえず「イタリックの場合は別フォントに置き換える」という対応をしています。

-- ...
local italic_font = "PlemolJP Console NF"
config.font_rules = {
{
intensity = "Normal",
italic = true,
font = wezterm.font(italic_font, {
weight = "DemiLight",
style = "Normal",
}),
},
{
intensity = "Bold",
italic = true,
font = wezterm.font(italic_font, {
weight = "Bold",
style = "Normal",
}),
},
{
intensity = "Half",
italic = true,
font = wezterm.font(italic_font, {
weight = "Light",
style = "Normal",
}),
},
}
return config
フォントを変更した例

参考:公式ドキュメントのfont_rules

確認用スクリプト

今回使った確認用スクリプトを載せておきます。

Terminal window
printf "Aがすごい! 検証 | 通常 \n\
\e[1mAがすごい! 検証\e[0m | 太字\n\
\e[3;1mAがすごい! 検証\e[0m | イタリック + 太字\n\
\e[3mAがすごい! 検証\e[0m | イタリック\n\
\e[3;2mAがすごい! 検証\e[0m | イタリック + 薄く表示\n\
\e[2mAがすごい! 検証\e[0m | 薄く表示\n"

以上、Weztermのイタリックフォント問題の対応でした。なにか分かったら随時更新します。