フォントは、名称、サイズ、およびオプションのプロパティで指定します。フォントの指定形式は、現代のフリーデスクトップ環境で使用されている fontconfig ライブラリに基づいています:
[Family[-PointSize]][:Option1=Value1[:Option2=Value2[...]]]
後方互換性のため、従来のXLFDベースのフォーマットもサポートされています。
MS-Windows上のEmacsは、多数のフォントバックエンドをサポートしています。現在は、gdi、uniscribe、およびharfbuzzのバックエンドが利用可能です。gdiフォントバックエンドはすべてのバージョンのWindowsで利用可能であり、Windowsがネイティブにサポートするすべてのフォントに対応しています。uniscribeフォントバックエンドはWindows
2000以降で利用可能であり、TrueTypeおよびOpenTypeフォントをサポートしています。harfbuzzフォントバックエンドは、EmacsがHarfBuzzサポート付きでビルドされており、かつシステムにHarfBuzz
DLLがインストールされている場合に利用可能です。uniscribeと同様に、このバックエンドはTrueTypeおよびOpenTypeフォントのみをサポートしています。複雑なレイアウトを必要とする一部の言語は、UniscribeまたはHarfBuzzバックエンドでしか適切にサポートできません。デフォルトでは、各フレームに対して2つのバックエンド(gdiと、利用可能かどうかに応じてharfbuzzまたはuniscribeのいずれか)が有効になります(両方が利用可能な場合は、デフォルトでharfbuzzのみが有効になります)。Emacsが適切なフォントを探す際、harfbuzzおよびuniscribeバックエンドはgdiよりも優先されます。この優先設定を上書きし、Uniscribeが利用可能であってもGDIバックエンドを使用するには、コマンドライン引数に-xrm
Emacs.fontBackend:gdiを指定してEmacsを起動するか、レジストリの‘HKEY_CURRENT_USER\SOFTWARE\GNU\Emacs’または‘HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs’キーに値gdiのEmacs.fontBackendリソースを追加してください(X
Resourcesを参照)。同様に、HarfBuzzが利用可能であってもUniscribeバックエンドを使用するには、Emacsを起動するコマンドラインで-xrm
Emacs.fontBackend:uniscribeを指定してください。また、フレームパラメータfont-backendを介して3つのバックエンドすべてを要求することもできますが、その場合、システム上で利用可能なフォントがない文字のフォント検索に時間がかかる点にご注意ください。
あるいは、font-backend
フレームパラメータを使用して、フレームにフォントバックエンドを指定することもできます。modify-frame-parameters を使用します(The
Emacs Lisp Reference Manual の Parameter
Access を参照してください)。また、default-frame-alist および
initial-frame-alist
を使用して、すべてのフレームに対して特定のフォントバックエンドを指定することも可能です(Frame Parameters を参照してください)。なお、font-backend パラメータの値は、(uniscribe) や (harfbuzz uniscribe gdi)
と同様に、シンボルのリストである必要があります。
MS-Windowsでサポートされているオプションのフォントプロパティは以下の通りです。
weight
¶フォントの太さを指定します。weight= を使用せずに、特殊な値 light、medium、demibold、bold、black を指定できます(例:Courier
New-12:bold)。それ以外の場合、太さは 100 から 900 までの数値、または font-weight-table
で定義されている名前付きの太さのいずれかである必要があります。指定しない場合は、レギュラーフォントとみなされます。
slant
¶フォントが斜体であるかどうかを指定します。slant= を省略して、特殊値 roman、italic、oblique を指定できます(例:Courier
New-12:italic)。それ以外の場合、傾斜は数値、または font-slant-table で定義されている名称付きの傾斜のいずれかを指定します。Windows
では、150 を超える傾斜は斜体として、それ未満はローマン体として扱われます。
familyフォントファミリーを指定しますが、通常はフォント名の先頭で指定します。
pixelsizeフォントサイズをピクセル単位で指定します。ファミリー名の後に指定するポイントサイズの代わりに使用できます。
adstyleフォントの追加スタイル情報を指定します。MS-Windowsでは、mono、sans、serif、script、decorative
の値が認識されます。これらは、フォントファミリーが未指定の場合のフォールバックとして特に有用です。
registry ¶フォントがカバーすることが想定される文字セットレジストリを指定します。ほとんどの TrueType および OpenType
フォントは、複数の国別文字セットをカバーする Unicode フォントですが、ここで w32-charset-info-alist
から特定のレジストリを指定することで、特定の文字セットをサポートするフォントに絞り込むことができます。
spacingフォントの間隔を指定します。p の間隔はプロポーショナルフォントを、m または c は等幅フォントを指定します。
foundryWindowsでは使用されませんが、情報提供および、設定されていることを前提とするコードでの問題発生を防ぐため、内部的にはビットマップフォントの場合は
raster、スケーラブルフォントの場合は outline、いずれにも該当しないと判断された場合は unknown に設定されています。
script ¶フォントがサポートすべきUnicodeサブレンジを指定します。
Emacsが認識するすべてのスクリプト(一般的には最新のUnicode標準で定義されているすべてのスクリプトを指します)は、MS-Windows上でも認識されます。ただし、GDIフォントがサポートしているのは、既知のスクリプトの一部(greek、hangul、kana、kanbun、bopomofo、tibetan、yi、mongolian、hebrew、arabic、およびthai)のみです。
antialias ¶アンチエイリアス方式を指定します。値 none はアンチエイリアスなし、standard は標準的なアンチエイリアス、subpixel はサブピクセル・アンチエイリアス(Windowsでは Cleartype として知られています)、natural
は文字間の間隔を調整したサブピクセル・アンチエイリアスをそれぞれ意味します。指定しない場合は、フォントはシステムのデフォルトのアンチエイリアスを使用します。
MS-Windows上のEmacsが、特定の非ASCII文字の表示に適したフォントを探す際に使用する手法は、システムにそれらの文字をサポートするフォントがインストールされていても、一部の稀な文字体系(具体的には比較的最近Unicodeに追加されたもの)では機能しない場合があります。これは、MS-Windows上のEmacsがフォント検索に使用する情報において、これらの文字体系にUnicodeサブレンジビット(USBs)が定義されていないためです。これらの問題を解消するには、w32-find-non-USB-fonts関数を使用できます。この関数は、Emacsセッションの開始時に一度実行し、新しいフォントをインストールした際にも再度実行する必要があります。Emacsを起動するたびにこの関数が実行されるようにするには、initファイルに以下の行を追加してください:
(w32-find-non-USB-fonts)
あるいは、いつでも M-: を介してこの関数を手動で実行することも可能です(Emacs Lisp 式の評価
を参照)。多くのフォントがインストールされているシステムでは、w32-find-non-USB-fonts
の実行に数秒かかる場合があります。起動時に実行するには時間がかかりすぎると考え、かつ新しいフォントのインストールが稀である場合は、M-: を介してこの関数を一度だけ実行し、返された値が nil
でない場合に、その値を init ファイルの変数 w32-non-USB-fonts
に代入してください。(関数が nil
を返した場合は、この機能を必要とするスクリプトの文字を表示できるフォントがインストールされていないことになります。)
変数 w32-use-w32-font-dialog は、S-mouse-1 (mouse-appearance-menu) によるフォント選択方法を制御します。値がデフォルトの t の場合、Emacs は標準の Windows フォント選択ダイアログを使用します。値が nil の場合、Emacs
は代わりに固定されたフォントセットのメニューを表示します。メニューに表示されるフォントは w32-fixed-font-alist によって決定されます。