Next: その他のWindows固有の機能, Previous: MS-Windowsでの印刷, Up: EmacsとMicrosoft Windows/MS-DOS [Contents][Index]
Emacs 23からフォントはフォント名、サイズ、オプションのプロパティーにより指定されるようになりました。フォントを指定するフォーマットは、モダンなフリーデスクトップで使用されているfontconfigライブラリーから由来しています。
[Family[-PointSize]][:Option1=Value1[:Option2=Value2[...]]]
後方互換のため、古いXLFDベースのフォーマットもサポートされます。
Emacs on
MS-Windowsでは、いくつかのフォントバックエンドがサポートされています。Windowsでは現在のところバックエンドとしてgdi
、uniscribe
、およびharfbuzz
が利用可能です。gdi
フォントバックエンドは、すべてのバージョンのWindowsで利用でき、Windowsでネイティブにサポートされるすべてのフォントをサポートします。uniscribe
フォントバックエンドはWindows
2000以降で利用できTrueTypeフォント、OpenTypeフォントをサポートします。harfbuzz
フォントバックエンドはEmacsがHarfBuzzサポートつきでビルドされた場合に利用可能で、システムにHarfBuzz
DLLがインストールされていれば、このバックエンドはuniscribe
のようにTrueTypeフォントとOpenTypeフォントをサポートします。複雑なレイアウトを要求するいくつかの言語は、UniscribeバックエンドかHarfBuzzバックエンドだけが正しくサポートできます。デフォルトではgdi
、およびharfbuzz
かuniscribe
のいずれかのバックエンドはすべてのフレームで有効であり、どれが有効かは利用可能なバックエンドに依存します(両方が利用可能ならデフォルトではharfbuzz
だけが有効)。Emacsが適切なフォントを探す際には、gdi
よりharfbuzz
およびuniscribe
のバックエンドが優先されます。これをオーバーライドして、Uniscribeが利用できる場合もGDIバックエンドを使用するには、コマンドライン引数-xrm
Emacs.fontBackend:gdiを指定してEmacsを呼び出すか、レジストリーのキー‘HKEY_CURRENT_USER\SOFTWARE\GNU\Emacs’または‘HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs’のいずれかの下に、リソースEmacs.fontBackend
を追加して値をgdi
にセットします(Xリソースを参照)。同様にHarfBuzzが利用可能であってもUniscribeバックエンドを使用するには、Emacsを呼び出すコマンドラインで-xrm
Emacs.fontBackend:uniscribeを使用してください。フレームパラメーターを通じて3つのバックエンドすべてを要求することもできますが、その場合にはシステムに利用可能なフォントがない文字にたいするフォント検索には時間を要すると警告されます。
かわりにmodify-frame-parameters
を使用してfont-backend
フレームパラメーターを通じてフレームにたいするフォントバックエンドを指定できます(Parameter
Access in The Emacs Lisp Reference
Manualを参照)。default-frame-alist
とinitial-frame-alist
を通じてすべてのフレームにたいするフォントバックエンド(複数可)も要求できます(フレームパラメーターを参照)。font-backend
パラメーターの値は(uniscribe)
や(harfbuzz uniscribe gdi)
のようにシンボルのリストであることに注意してください。
MS-Windowsでサポートされるオプションのフォントプロパティーです:
weight
フォントのweightを指定します。特別な値light
、medium
、demibold
、bold
、black
は、weight=
を使わずに指定できます(例:
Courier
New-12:bold)。それ以外の場合、weightは100から900の数字か、font-weight-table
の中の名前のついたweightを指定します。指定されない場合は、regularフォントが指定されたとみなします。
slant
フォントがitalicかどうかを指定します。特別な値roman
、italic
、oblique
は、slant=
を使わずに指定できます(例:
Courier
New-12:italic)。それ以外の場合は、数字か、font-slant-table
内のなまえつきのslantの1つを指定します。Windowsでは、150を越える任意のslantはitalicとして扱われ、150以下のものはすべてromanとして扱われます。
family
フォントファミリーを指定しますが、通常はフォント名の最初でファミリーを指定します。
pixelsize
フォントサイズをピクセルで指定します。これはファミリー名の後のポイントサイズ指定のかわりに使用することができます。
adstyle
そのフォントにたいする、追加のスタイル情報を指定します。MS-Windowsでは、値mono
、sans
、serif
、script
、decorative
が認識されます。これはフォントファミリーが指定されていない場合のフォールバックとして、もっとも有用です。
registry
そのフォントがカバーすることを期待される、文字セットregistryを指定します。ほとんどのTrueTypeフォントとOpenTypeフォントは、複数の国際化文字セット(national
character
sets)をカバーするUnicodeフォントですが、ここでw32-charset-info-alist
から、特定の文字セットをサポートするregistry指定を使用することにより、選択されるフォントを絞り込むことができます。
spacing
フォントがspacingされる方法を指定します。p
はプロポーショナルフォントを指定し、m
およびc
はモノスペースフォントを指定します。
foundry
Windowsでは使用されませんが、情報的な目的のために、そしてこれをセットしようとするコードによる問題を防ぐため、ビットマップフォントではraster
、スケーラブルフォントではoutline
、どちらともタイプが特定できなかった場合はunknown
が、内部的にセットされます。
script
そのフォントがサポートすべきUnicodeの部分範囲(subrange)を指定します。
Emacsが知るすべてのスクリプト(一般的にはもっとも最近のUnicode標準で定義されたすべてのスクリプトを意味する)はMS-Windowsで認識されます。しかしGDI
フォントは既知のスクリプトのサブセットgreek
、hangul
、kana
、kanbun
、bopomofo
、tibetan
、yi
、mongolian
、hebrew
、arabic
、thai
だけをサポートします。
antialias
アンチエイリアシング(antialiasing)の方法を指定します。値none
は、アンチエイリアシングを行なわないことを意味します。standard
は、標準のアンチエイリアシングを使用することを意味します。subpixel
は、subpixelアンチエイリアシング(WindowsではCleartypeとして知られる)を使用することを意味します。natural
は、文字間のspacing調整つきでsubpixelアンチエイリアシングを使用することを意味します。指定されない場合、そのフォントはシステムのデフォルトのアンチエイリアシングを使用します。
Emacs on
MS-Windowsが与えられた非ASCII文字の表示に適切なフォントを探すために使用する手法はいくつかの希少なスクリプト、特に比較的最近Unicodeに追加されたスクリプトは、たとえそのスクリプトをサポートするフォントをインストールしていても失敗するかもしれません。これはEmacs
on MS-Windowsがフォントを探すために使用する情報内でそれらのスクリプトがスクリプトにたいして定義されたUnicode Subrange
Bits
(USB)をもたないからです。この問題を克服するために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
により決定されます。