フォントは通常、1つのアルファベットまたはスクリプトの形状を定義します。したがってEmacsがサポートするスクリプトの全範囲を表示するには、多くのフォントのコレクションが要求されます。Emacsではこのようなコレクションのことをフォントセット(fontset)と呼びます。フォントセットはフォント仕様のリストとして定義され、それぞれが文字コードのある範囲を処理し、指定されたフォントでカバーしない文字にたいしては他のフォントセットにフォールバックします。
それぞれのフォントセットは、フォントと同様に名前をもちます。しかしフォントはシステムに格納されていて、利用可能なフォント名はシステムで定義されていますが、フォントセットはEmacs自身で定義されます。1度フォントセットを定義したら、1つのフォントを使える場所ならどこでも、フォントセットを名前で指定して使用することができます。もちろんEmacsのフォントセットに使用できるのは、システムがサポートするフォントだけです。もしある文字がスクリーン上で空のボックスや16進コードで表示される場合、それは使用しているフォントセットがその文字にたいするフォントをもっていないことを意味します。このような場合や、文字は表示されるが、それが意図したものとは異なる場合、多分追加のフォントをインストールするか、システムにすでにインストールされた特定のフォントを使用するようにフォントセットを修正する必要があるでしょう(以下参照)。オペレーティングシステムにはインストールできるオプションのフォントがあるはずです。またはサポートされたスクリプトのほとんどのフォントを含むGNU Intlfontsパッケージをインストールすることもできます。10
Emacsは3つのフォントセットを自動的に作成します。それはスタンダードフォントセット(standard fontset)、スタートアップフォントセット(startup fontset)、デフォルトフォントセット(default fontset)の3つです。デフォルトフォントセットは、さまざまな非ASCII文字のフォントをもち、他の2つのフォントセットのデフォルトのフォールバック先です(デフォルトフォントをセットしたときは、デフォルトフォントセットではなくデフォルトフォント)。しかしこれはフォントのファミリー名を指定しないので、これを直接使うと、結果は少しランダムに思えるかもしれません。Emacsを‘-fn’オプションで実行することにより、特定のフォントセットを使用するように指示できます。たとえば、
emacs -fn fontset-standard
‘Font’でフォントセットを指定することもできます(Xのオプションとリソースを参照してください)。
使用するフォントセットが何も指定されていない場合、EmacsはASCIIフォントを使用し、そのフォントがカバーしない文字にたいするフォールバックに‘fontset-default’を使用します。名前とは裏腹にスタンダードフォントセットは、明示的に要求されたときだけ使用されます。
特定のフォントセットの情報を表示するためにはM-x describe-fontsetコマンドを使用します。このコマンドはフォントセットの名前(デフォルトはカレントフレームで使用されているフォントセット)を尋ねて文字のすべての部分範囲(subrange)と、フォントセット内でそれらに割り当てられたフォントを表示します。特定のフォントセットなしで開始されたセッション(通常発生し得る)でEmacsが使用するフォントを確認するには、プロンプトでfontset-default RETをタイプするか、あるいはカレントフレームで使用中のフォントを表示するために単にRETをタイプしてください。
フォントセットはすべての文字コードにたいしてフォントを指定する必要はありません。フォントセットが特定の文字にたいしてフォントを指定していない、または指定したフォントがシステムに存在しなければ、フォントセットは文字を正しく表示できません。この場合には、その文字にたいして16進コード、細いスペース、または空のボックスがかわりに表示されます(詳細はglyphless charactersを参照)。フォントセットが何らかの文字範囲を指定するかもしれないものの、その視覚的な外観が好みではないかもしれません。これが発生した場合にはフォントセットを修正したくなるかもしれません。これを行う方法についてはフォントセットの修正を参照してください。
EmacsをXで実行している場合には、以下のようにして新しくインストールしたフォントの場所をX serverに指示する必要があるでしょう:
xset fp+ /usr/local/share/emacs/fonts xset fp rehash