HackGenNerd RegularをWindows Terminalで使用するとNerd Fontsが小さく描画される
nekocodeX opened this issue · 2 comments
環境
- Windows 10 Pro 21H1 (Build: 19043.964)
- Windows Terminal 1.7.210419001-release1.7
- HackGenNerd Regular 2.3.2
現象
HackGenNerd RegularをWindows Terminalで使用するとNerd Fontsが小さく描画されます。
Windows Terminalでのフォント設定
- フォントフェイス:
HackGenNerd
(HackGenNerd Regular 2.3.2) - フォントサイズ:
14pt
HackGenNerd Console Regularでは正常に表示されると共に Nerd Fontsでパッチを当てたフォント でも正常に表示されることを確認しました。
Windows Terminalでのフォント設定
- フォントフェイス:
HackGenNerd Console
(HackGenNerd Console Regular 2.3.2) - フォントサイズ:
14pt
Windows Terminalでのフォント設定
- フォントフェイス:
Inconsolata NF
(Inconsolata Regular Nerd Font Complete Windows Compatible) - フォントサイズ:
14pt
よろしくお願いいたします。
ご報告ありがとうございます。確認しました。
これは、仕様による弊害だと思います。
HackGenNerdでは、NerdFonts収録のアイコンのグリフ幅を、全角幅に揃えています。一方、HackGenNerd Consoleでは、同グリフ幅を半角幅にしています。
これは、HackGenNerdでは、グリフに対して次の文字が被らないようにするため。そしてHackGenNerd Consoleでは、アイコンの表示が大きくされるようにするための対処によるものです。
この辺りの調整はアプリ側との相性から弊害もあったりして、正直、悩ましいです。
こちらとしては大きく困ることがないのであれば、HackGenNerdかHackGenNerd Consoleから都合の良い方を使っていただくのが良いかと考えています。
一応、詳しくご説明します。(長いので読まなくても大丈夫です。)
これは、HackGenNerdではグリフに対して次の文字が被らないようにするため。そしてHackGenNerd Consoleではアイコンの表示を大きく取れるようにするための対処によるものです。
上記の対処の結果、現状、下図のような違いが出ています。
例えば U+F028
に登録されているグリフ(スピーカー?のアイコン)です。
左がHackGenNerd、右がHackGenNerd Consoleで、赤い矢印部分がグリフ幅を示しています。
左ではグリフ全体がグリフ幅(=1080)の中に収まっていますが、対して右ではグリフ幅(=540)を超える形で描かれています。
HackGenNerd Consoleのグリフは、グリフ幅を超えて描かれていることから隣接する文字に被ります。
例: Windows Terminal で ABC[スピーカー]ABC
と入力した場合
被り無く表示するためには、スピーカーの横に半角スペースを空け ABC[スピーカー] ABC
としなければいけません。
一方、左の状態のグリフ(HackGenNerd)は、 ABC[スピーカー]ABC
と半角スペースを空けずとも、隣接する文字と被ることはありません。
Windows Terminalでは一部のグリフを絶対に半角幅で表示させようとするようで、NerdFontsに含まれるアイコングリフも縮小され米粒のようになってしまっています。(本来1080幅のグリフを、540幅に縮小させているイメージです)
しかし、アプリによってはそのままの幅で、縮小せずに表示してくれるので、逆に好都合だったりします。
下図はHackGenNerdを使い、Cmderというターミナルアプリで ABC[スピーカー]ABC
を表示させた場合です。
したがって、HackGenNerdとHackGenNerd Consoleから、表示上で都合の良い方を使っていただくのが得策かなと考えています。
詳しくご説明くださり、ありがとうございます。
仕様による弊害ということで承知いたしました。
HackGenNerd Consoleでは、小さく描画されることもありませんので、そちらを使用させていただこうと思います。
原因が分かりましたので、こちらでIssueをクローズとさせていただきます。
早急にご対応いただきありがとうございました🙇♂