Unicodeの私用領域の文字を含むANSIテキストを表示しようとしています。これらの文字を含む2つのフォントがあります。1つ目はPCF(ビットマップ)フォントで、2つ目はTTFフォントで、最初のフォントから生成され、まったく同じグリフのセットが含まれています。
PCFフォントは、DebianおよびUbuntuの「tv-fonts」パッケージで利用でき、「teletext」と呼ばれます。TTFバージョンはこちらから入手できます。
このテキストファイルを表示するには、端末でフォントの1つを使用するように構成してから、このファイルをカタログ化します。
これにより、端末ごとに異なる結果が生成されます。
XtermはPCFフォントのみを使用できます。xterm -fg white -bg black -fn teletext
私は正しい出力を参照してください。
ターミネーターはPCFフォントとTTFフォントの両方を使用できます。PCFフォントを使用すると、出力は正しくなります。
しかし、ターミネーターにTTFフォントを使用するように指示すると、大きな「BBC」ロゴの後に予期しない文字が出力に含まれます。
問題の文字は、ユニコード0xee20です。これは、PCFフォントとTTFフォントの両方で空のスペースです。
xfce4-terminalを使用した場合、結果は同じです。ターミネーターとXfce4ターミナルはどちらもlibvteを使用します。
だから私の質問:
Update: It seems that this isn't actually related to VTE but to Gtk, and possibly X11 itself. The same results can be seen when setting the font in a text editor, such as mousepad (which uses GtkSourceView.)
Actually, xterm
(and xfd
) can use TrueType fonts, using the -fa
option. With the latter, you can see that 0xee20
is missing from the font:
Given that, xterm would show a missing glyph (because it uses only one font). Likely vte is doing the same because none of the fallback fonts which it may be using has this particular private use code.
For comparison, here is a screenshot with xfd
displaying the PCF font (which does have the glyph):
フォントが「同一」であるかどうかは、フォントがどのように作成(および維持)されたかによって異なります。TrueTypeフォントのスクリーンショットに7つの欠落したグリフが表示され、PCFフォントには表示されません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加