yuru7 / HackGen

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

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Windows Terminalでtmuxを起動してペイン分割をしたときのペインの境界線が描画されない

jiro4989 opened this issue · comments

commented

いつも愛用しています。ありがとうございます。

HackGenNerd v2.1.1 を使用しています。

Windows TerminalでPowerShellを起動し、PowerShellからvagrantにsshし、vagrantでtmuxを起動した際、以下のようにペインの境界線が描画されないようでした。

Windows TerminalのfontFaceとしては HackGenNerd として指定しました。

hackgennerd

Windows TerminalのfontFaceに Consolas として指定した場合は、以下のように境界線が描画されました。

consolas

また、Git Bashのターミナルからvagrantにsshし、tmuxを起動した場合は、HackGenNerdを指定しても、以下のように境界線が描画されました。

gitbash_hackgennerd

Windows Terminalのドキュメントを確認したところ、デフォルトのフォントはConsolasのようです。

これは、プロファイルで使用されるフォント フェイスの名前です。 これが見つからないか無効である場合は、ターミナルによって Consolas へのフォールバックが試行されます。 既定のフォント Cascadia Mono のその他のバリアントについては、Cascadia Code に関するページを参照してください。

仮にHackGenNerdに、tmuxの罫線文字に該当するフォントが存在しなくても、Consolasフォントにフォールバックされるのであれば罫線が描画されそうに思っています。実際は描画されていないので、少し調べた感じでは原因がわかりませんでした...

Git Bashを使えば描画はされるので当面は困っていません。
お手すきの際にご確認いただけると助かります。

詳細なご報告ありがとうございます!

Windows TerminalのfontFaceとしては HackGenNerd として指定しました。

こちら、 HackGenNerd Console を指定すると状況に変わりあるでしょうか?

commented

こちら、 HackGenNerd Console を指定すると状況に変わりあるでしょうか?

ありがとうございます。 HackGenNerd Console に変更したところ、罫線が描画されました!

hackgennerd_console

これは推測ですが、 HackGenNerd 指定時の tmux の境界線は、全角の罫線記号が表示されているのではないでしょうか?(マウスで境界線部分を選択状態にすると幅が分かるかと思います)
一方、 HackGenNerd Console 指定時の境界線は、半角になっていませんか?

Windows Terminal では、曖昧幅記号 (ambiguous width characters: 全角幅、半角幅で表示するかが明確に定義されておらず、フォントや文字を表示するアプリケーション側の仕様に任されている記号) が全角だとうまく表示できないといった不具合がある、という情報を見かけたことがあります。

なお、罫線記号 ( など) も、曖昧幅記号の定義に含まれます。

commented

ありがとうございます。

HackGenNerdで確認したところ、おっしゃるとおり、全角幅で描画されているようでした。
以下の文字列をターミナル上で描画してみたところ、幅が全角幅のように見えます。
HackGenNerd Consoleでは半角幅で描画されていました。

echo ''

こちらのコードポイントを確認したところ、10進数コードポイントは 9472 でした。
こちらは罫線素片の一部のようです。 (罫線素片 - Wikipedia)

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

text = u"─"
print(text)
print(ord(text))
$ python3 codepoint.py
─
9472
commented

「HackGenNerd Consoleを使用すれば描画される」ということで、原因がわかりましたので
こちらのissuesはクローズいたします。

早急なご確認ありがとうございました 🙇