XTerm の Unicode フォントを設定するにはどうすればいいですか?

XTerm の Unicode フォントを設定するにはどうすればいいですか?

デフォルトのフォントに Unicode 文字が含まれていない場合に、追加のフォントでその文字を表示できるように、.Xresources に追加のフォントを入れることはできますか?

答え1

はい。XTerm のCtrl+でわかるように、フォント サイズは 7 つあります。MouseRightButton.Xresourcesで設定できる

  • font= デフォルト
  • font1= 読めない
  • font2= 小さな
    ...
  • font6= 巨大

そのため、一部の Unicode 文字が欠落するデフォルトを設定できますfont。欠落している場合は、Tiny などの、それらをサポートするフォントに変更します。次の.Xresourcesファイルはこれを実行します。

XTerm*font:  -*-courier 10 pitch-medium-r-*-*-*-*-*-*-*-*-ascii-*
XTerm*font2: -*-fixed-medium-r-*-*-15-*-*-*-*-*-iso10646-*

答え2

xterm には 2 セットのビットマップ フォントがあります。

アプリのデフォルトファイルXTermそしてUXターム両方ありますが、後者では、それらのUnicodeフォントはutf8フォントXTermレイヤー。app -defaults ファイルの内容は次のとおりです。

*VT100.utf8Fonts.font2: -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso10646-1
*VT100.utf8Fonts.font:  -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1
*VT100.utf8Fonts.font3: -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso10646-1
*VT100.utf8Fonts.font4: -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso10646-1
*VT100.utf8Fonts.font5: -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso10646-1
*VT100.utf8Fonts.font6: -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso10646-1

UXTermapp-defaults ファイルの内容は次のとおりです。

*VT100.font2:   -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso10646-1
*VT100.font:    -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1
*VT100.font3:   -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso10646-1
*VT100.font4:   -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso10646-1
*VT100.font5:   -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso10646-1
*VT100.font6:   -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso10646-1

ただ読んでいるだけでXTermapp-defaultsファイルでは、ほとんどのユーザーは、ここで指定された非UTF-8フォントが何かUTF-8フォントのように:

*VT100.font1:       nil2
*IconFont:      nil2
*fontMenu*font2*Label:  Tiny
*VT100.font2:       5x7
*fontMenu*font3*Label:  Small
*VT100.font3:       6x10
*fontMenu*font4*Label:  Medium
*VT100.font4:       7x13
*fontMenu*font5*Label:  Large
*VT100.font5:       9x15
*fontMenu*font6*Label:  Huge
*VT100.font6:       10x20

これらの短縮名は(xterm はフォントを読み込めません) は ISO-8859-1 フォントの別名で、UTF-8 の歴史を考えれば当然ですが UTF-8 フォントと同じ外観です。ただし、UTF-8 ビットマップ フォントには数千の文字があるのに対し、UTF-8 ビットマップ フォントには 192 文字 (256 - 64 の制御文字) しかありません。

app-defaultsファイルは複数あります。これは、utf8Fonts配置。uxtermスクリプトは起動時に後者を選択します。-クラスオプションですが、マニュアル ページで説明されているように、xterm は起動時にロケール設定に基づいて utf8Fonts を自動的に選択します。

xtermにはメニュー項目がありますUTF-8 エンコーディングそしてUTF-8 フォント. ロケールがUTF-8エンコードを使用している場合(そしてlocaleリソースがデフォルト値を使用する場合、xterm はこれらのメニュー項目を事前に選択し、変更できないようにします。ロケールが UTF-8 エンコードを使用しない場合は、これらのメニュー項目を変更して、結果の違いを確認することができます。

Xリソースで使用するファイルを指定するには、リソースの前にXTermまたはUXTerm、 それぞれ。

一方で、フォントセットビットマップ フォントを使用すると、質問で求められていることを実行できるようになります。

デフォルトのフォントに Unicode 文字が含まれていない場合に、追加のフォントでその文字を表示できるように、.Xresources に追加のフォントを入れることはできますか?

xterm は、一度にこれらのビットマップフォントのうち 1 つだけを使用します (太字と斜体のバージョンも自動的に使用します)。X ライブラリにはフォントセット機能がありますが、パフォーマンスに重大な問題があり、広く使用されることはありませんでした。xterm では、これは厄介なものとして扱われています (を参照)。メニューロケールリソース)。

ビットマップフォントの他に、xtermはTrueTypeフォントもサポートしており、指定されたファミリから不足しているグリフを補うために必要に応じてフォントを自動的に検索します。-faオプション。fontconfig の設定に応じて、TrueType フォントから実用的な範囲を取得できます (ただし、一部のフォントのサイズが間違っているという注意点があります)。

関連情報