yuru7 / HackGen

Hack と源柔ゴシックを合成したプログラミングフォント 白源 (はくげん/HackGen)

Home Page:https://qiita.com/tawara_/items/374f3ca0a386fab8b305

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

HackGenNerd RegularをWindows Terminalで使用するとNerd Fontsが小さく描画される

nekocodeX opened this issue · 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で、赤い矢印部分がグリフ幅を示しています。
image

左ではグリフ全体がグリフ幅(=1080)の中に収まっていますが、対して右ではグリフ幅(=540)を超える形で描かれています。

HackGenNerd Consoleのグリフは、グリフ幅を超えて描かれていることから隣接する文字に被ります。
例: Windows Terminal で ABC[スピーカー]ABC と入力した場合
image

被り無く表示するためには、スピーカーの横に半角スペースを空け ABC[スピーカー] ABC としなければいけません。
image

一方、左の状態のグリフ(HackGenNerd)は、 ABC[スピーカー]ABC と半角スペースを空けずとも、隣接する文字と被ることはありません。
image

Windows Terminalでは一部のグリフを絶対に半角幅で表示させようとするようで、NerdFontsに含まれるアイコングリフも縮小され米粒のようになってしまっています。(本来1080幅のグリフを、540幅に縮小させているイメージです)

しかし、アプリによってはそのままの幅で、縮小せずに表示してくれるので、逆に好都合だったりします。
下図はHackGenNerdを使い、Cmderというターミナルアプリで ABC[スピーカー]ABC を表示させた場合です。
image

したがって、HackGenNerdとHackGenNerd Consoleから、表示上で都合の良い方を使っていただくのが得策かなと考えています。

詳しくご説明くださり、ありがとうございます。

仕様による弊害ということで承知いたしました。

HackGenNerd Consoleでは、小さく描画されることもありませんので、そちらを使用させていただこうと思います。
原因が分かりましたので、こちらでIssueをクローズとさせていただきます。

早急にご対応いただきありがとうございました🙇‍♂