XTermは*一部* Unicode文字を正しく表示しませんか?

XTermは*一部* Unicode文字を正しく表示しませんか?

XTermとUnicodeに関する一般的な質問はありません。ほとんどの場合、すべてが機能します。これはうまくいきます:

$ echo "¿dónde está la llama?"
¿dónde está la llama?

このように:

$ echo -e "\xE2\x98\xA0"

しかし、これ失敗する:

$ echo -e "\xE2\xA4\xB7"

予想される出力(⤷、別名)の代わりに矢印は下を指して右に曲がります。)その恐ろしい箱を受け取りました。私は現在以下を使用しています:

xterm*faceName: Hack Regular:size=12:antialias=true

これは私が使用しているのと同じフォントで、gnome-terminal同じ文字を正しく表示します。私はまた、さまざまな固定幅フォント(Droid Sans Mono、DejaVu Sans Mono、Liberation Mono)を使用して同じことを試しました。これらのフォントはすべてXTermで同じように機能しますが、他の場所ではうまく機能します。実際に\u2620正しく表示される文字と間違って表示さ\u2937れる文字の間を見ると、XTermで正しく表示されないように見える文字がたくさんあります。

$ python
>>> for x in range(0x2620, 0x2938):
...    print(unichr(x))

私はここで何が起こっているのか理解したいと思います。 XTermディスプレイに問題があるのはなぜですか?一部このキャラクターはありますが、他のキャラクターではありませんか?

答え1

略式:xtermの使い方一つフォント(2幅文字の特殊な場合を除く)を使用し、他の端末では追加のフォントを使用します(そしてそれらはそれら要求されたフォントにない文字のフォント)。

長い:あなたが興味を持っている役割はいいえのように見えるフォントの一部フォントハッキングティーDebian で。欠落しているコードは0x2937で、使用されているコードxfd -fa hackはフォントで提供されていないことを確認できます(ヒント:ページの最初のコードは0x29です)。87):

ここに画像の説明を入力してください。

フォントの簡単な説明は用途を教えてくれます。

しわがありません。トリックはありません。 Hackは手作業で仕上げられ、視覚的にバランスが取れ、コードの主な顔になります。

(「コード」は通常POSIX文字セットと人々が良いと思うコメントであるため)おそらく小さいでしょう。この例では、通常よりもPO​​SIX以外の文字が多い。 ASCII+Latin1 で始まる:

ここに画像の説明を入力してください。

フォントには数百のグリフがあります(半分以上の数のグリフを表示しますが、それを表示するにはさらに数十のスクリーンショットが必要です)。たとえば、2番目のページの部分的なサポートは次のとおりです。

ここに画像の説明を入力してください。

コメントを見てgnome-terminalを追跡したところ、次のフォントファイルがロードされたことがわかりました。

/usr/share/fonts/truetype/ttf-bitstream-vera/VeraMono.ttf
/usr/share/fonts/truetype/ttf-bitstream-vera/VeraMoBd.ttf
/usr/share/fonts/truetype/ttf-bitstream-vera/VeraSeBd.ttf
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono.ttf
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf

0x2937は最後のエントリで提供されます。実際の詳細は構成によって異なる場合があります。

関連情報