GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/emacs/Windows-Fonts.html ・ emacs-doc.conao3.com

I.10 MS-Windowsでのフォント指定

フォントは、名称、サイズ、およびオプションのプロパティで指定します。フォントの指定形式は、現代のフリーデスクトップ環境で使用されている 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 は等幅フォントを指定します。

foundry

Windowsでは使用されませんが、情報提供および、設定されていることを前提とするコードでの問題発生を防ぐため、内部的にはビットマップフォントの場合は 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 によって決定されます。