Windows のフォント一覧に HackGen35NerdConsole が表示されない
SatohNorio opened this issue · comments
v2.5.0 以降のフォントをインストールすると、アプリ側でフォントを選択する一覧に下記フォントが表示されません。
v2.4.1 は問題ありません。
HackGen35
HackGen35Nerd
HackGen35Console
HackGen35NerdConsole
ご報告ありがとうございます。
こちらの環境(Win 10 21H1)では特に問題がないため、いくつか確認させてください。
- ご使用の OS のバージョンを教えてください
C:\Windows\Fonts
では該当フォントは見えますか?- 再現するのは特定のアプリですか?全てのアプリですか?
v2.5.0 以降、ということで思い当たる点でいうと、フォント内部に持っている「プロポーショナルフォントかどうか」を示す値をプロポーショナルフォント扱いになるよう変更した経緯があります。これは、ExcelなどのGDI描画を使っているWindowsアプリにおいて、一部記号の幅が異常に広くなってしまうことへの対処です。(35系のファミリーは、半角と全角が従来の1:2幅では無いため、本来はプロポーショナル扱いにするのが正しいはず)
ほとんどのアプリに影響無い変更だとは思うのですが、プロポーショナルフォントが読み込めないようなアプリ(例えばサクラエディタの v2.2.0.1 以前のバージョンなど)の場合には、フォント設定時の選択肢に表示されなくなるなどの影響が考えられます。
ご確認ありがとうございます。
環境を記載しておらず申し訳ありません。
当初、 Windows Server 2019 Standard で現象を確認しましたが、
再現しないとのことでしたので Windows 10 Pro 21H1 でも確認しました。
OS は仮想マシンで、ホストは macOS Big Sur (11.5.2)
VMware Fusion 12 上に作成しました。
<再現手順>
- OS インストール
- Windows PowerShell 起動
- chocolatey インストール
- font-hackgen-nerd インストール
- Windows PowerShell 閉じる
- Windows PowerShell を再度起動し、タイトルバー右クリック→プロパティ→フォントタブ内の一覧に先程インストールしたHackGen フォントのうち、HackGen35系フォントが表示されません。
その後、Github から v2.4.1 をダウンロードし、「すべてのユーザーに対してインストール」すると Windows PowerShell のフォント一覧に出てきます。
C:¥Windows¥Fonts には該当フォントは存在します。
書いていて思ったのですが、
もしかしたら、Windows PowerShell で選択できるフォントは等幅フォントのみなのかもしれません。
その他のアプリでは、コマンドプロンプト、PowerShell 7、gVim も同様に選択できませんでした。
メモ帳は選択できました。
特定アプリのみで発生するということですね。状況から察するに、やはり「等幅フォントしか扱えないアプリ」問題ではないかと考えます。
ちなみに「プロポーショナルフォントを扱えるか」の分かりやすい判別方法として、フォント選択の際、「MS ゴシック」と「MS P ゴシック」の有無を見てみる方法があります。
「MS ゴシックは選べるけど、MS P ゴシックは選べない」という状況のようでしたら、ほぼ間違いなくそのアプリは「等幅フォントしか読み込めない仕様」ということになります。
ちなみに検索してみたところ、Windows版gVimではそのような仕様になっていそうなissueがありました。
vim-jp/issues#741
Source Han Code JP(2:3幅)がプロポーショナル扱いになっていて使えない、とのことなので状況としては同じかと。
上記issueにもあるように、従来の1:2幅の等幅フォントしか扱えないようにしているアプリは、それなりの理由(文字ズレの不都合が起こるなど)があると思うので、正しい描画を担保するにはHackGen35は現行Verのようにプロポーショナル扱いにしておくのが良さそうだと、改めて思いました。
ご不便をおかけして申し訳ないですが、そういうものだと割り切って、プロポーショナル未対応のアプリでは通常版HackGen、あるいはv2.4.1以前のHackGen35のご使用をご検討ください
プロポーショナルフォント非対応アプリで使えないとのこと承知致しました。
Vim で使用できないのは厳しいですが、 HackGenNerdConsole フォントを使うようにします。
対応ありがとうございました。