Next: , Previous: , Up: Microsoft Windows   [Contents][Index]


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

Emacs23からは、フォントはフォント名、サイズ、オプションのプロパティーにより指定されるようになりました。フォントを指定するフォーマットは、モダンなフリーデスクトップで使用されているfontconfigライブラリーから由来しています。

  [Family[-PointSize]][:Option1=Value1[:Option2=Value2[...]]]

後方互換のため、古いXLFDベースのフォーマットもサポートされます。

Emacs on MS-Windowsでは、いくつかのフォントバックエンドがサポートされています。Windowsでは現在のところバックエンドとしてgdiuniscribe、およびharfbuzzが利用可能です。gdiフォントバックエンドは、すべてのバージョンのWindowsで利用でき、Windowsでネイティブにサポートされるすべてのフォントをサポートします。uniscribeフォントバックエンドはWindows 2000以降で利用できTrueTypeフォント、OpenTypeフォントをサポートします。harfbuzzフォントバックエンドはEmacsがHarfBuzzサポートつきでビルドされた場合に利用可能で、システムにHarfBuzz DLLがインストールされていれば、このバックエンドはuniscribeのようにTrueTypeフォントとOpenTypeフォントをサポートします。複雑なレイアウトを要求するいくつかの言語は、UniscribeバックエンドかHarfBuzzバックエンドだけが正しくサポートできます。デフォルトではgdi、およびharfbuzzuniscribeのいずれかのバックエンドはすべてのフレームで有効であり、どれが有効かは利用可能なバックエンドに依存します(両方が利用可能ならデフォルトでは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にセットします(Resourcesを参照)。同様にHarfBuzzが利用可能であってもUniscribeバックエンドを使用するには、Emacsを呼び出すコマンドラインで-xrm Emacs.fontBackend:uniscribeを使用してください。フレームパラメーターを通じて3つのバックエンドすべてを要求することもできますが、その場合にはシステムに利用可能なフォントがない文字にたいするフォント検索には時間を要すると警告されます。

かわりにmodify-frame-parametersを使用してfont-backendフレームパラメーターを通じてフレームにたいするフォントバックエンドを指定できます(Parameter Access in The Emacs Lisp Reference Manualを参照)。default-frame-alistinitial-frame-alistを通じてすべてのフレームにたいするフォントバックエンド(複数可)も要求できます(Frame Parametersを参照)。font-backendパラメーターの値は(uniscribe)(harfbuzz uniscribe gdi)のようにシンボルのリストであることに注意してください。

MS-Windowsでサポートされるオプションのフォントプロパティーです:

weight

フォントのweightを指定します。特別な値lightmediumdemiboldboldblackは、weight=を使わずに指定できます(例: Courier New-12:bold)。それ以外の場合、weightは100から900の数字か、font-weight-tableの中の名前のついたweightを指定します。指定されない場合は、regularフォントが指定されたとみなします。

slant

フォントがitalicかどうかを指定します。特別な値romanitalicobliqueは、slant=を使わずに指定できます(例: Courier New-12:italic)。それ以外の場合は、数字か、font-slant-table内のなまえつきのslantの1つを指定します。Windowsでは、150を越える任意のslantはitalicとして扱われ、150以下のものはすべてromanとして扱われます。

family

フォントファミリーを指定しますが、通常はフォント名の最初でファミリーを指定します。

pixelsize

フォントサイズをピクセルで指定します。これはファミリー名の後のポイントサイズ指定のかわりに使用することができます。

adstyle

そのフォントにたいする、追加のスタイル情報を指定します。MS-Windowsでは、値monosansserifscriptdecorativeが認識されます。これはフォントファミリーが指定されていない場合のフォールバックとして、もっとも有用です。

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フォントは既知のスクリプトのサブセットgreekhangulkanakanbunbopomofotibetanyimongolianhebrewarabicthaiだけをサポートします。

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-: (Lisp Evalを参照)からこの関数を実行できます。多くのフォントがインストールされたシステムではw32-find-non-USB-fontsの実行に数秒かかるかもしれません。スタートアップ中に実行するには長すぎると思い、かつフォントを新たにインストールすることが稀なら、M-:からこの関数を一度実行してからリターン値が非nilならinitファイルで変数w32-non-USB-fontsにそれを割り当ててください(関数がnilをリターンしたらこの機能を必要とするスクリプトから表示できるインストール済みのフォントはない)。

変数w32-use-w32-font-dialogS-mouse-1を通じてフォントを選択する方法を制御します(mouse-appearance-menu)。値がt(デフォルト)ならEmacsは標準的なWindowsのフォント選択ダイアログを使用します。nilならEmacsはかわりにフォントの固定セットのメニューをポップアップします。メニューに表示されるフォントはw32-fixed-font-alistにより決定されます。