通常はフォントを直接扱う必要はありません。これを行う必要がある場合にはこのセクションでその方法を説明します。
Emacs Lispではフォントはフォントオブジェクト(font objects)、フォントspec(font specs)、フォントエンティティー(font entities)という3つの異なるLispオブジェクトを使用して表現されます。
objectがフォントオブジェクト、フォントspec、フォントエンティティーならt
、それ以外ならnil
をリターンする。
オプション引数typeが非nil
なら、チェックするLispオブジェクトの正確なタイプを決定する。この場合にはtypeはfont-object
、font-spec
、font-entity
のいずれかであること。
フォントオブジェクトはEmacsがオープンしたフォントを表します。Lispでフォントオブジェクトは変更できませんが調べることはできます。
ウィンドウwindow内の位置positionにある文字を表示するために使用されているフォントオブジェクトをリターンする。windowがnil
の場合のデフォルトは選択されたウィンドウ。stringがnil
ならpositionはカレントバッファー内の位置を指定する。それ以外ならstringは文字列、positionはその文字列内での位置を指定すること。
フォントspecはフォントを探すために使用できる仕様セットを含むLispオブジェクトです。フォントspec内の仕様にたいして1つ以上のフォントがマッチすることができます。
arguments内の仕様を使用して新たなフォントspecをリターンする。これはproperty
-value
のペアーであること。可能な仕様は以下のとおり:
:name
XLFD、Fontconfig、GTKいずれかのフォーマットによるフォント名(文字列)。Fonts in The GNU Emacs Manualを参照のこと。
:family
:foundry
:weight
:slant
:width
これらは同名のフェイス属性と同じ意味をもつ。Face Attributesを参照のこと。
:size
フォントサイズ。非負の整数はピクセル単位、浮動小数点数ならポイントサイズを指定する。
:adstyle
‘sans’のような、そのフォントにたいするタイポグラフィックスタイル(typographic style)の追加情報。値は文字列かシンボルであること。
:registry
‘iso8859-1’のようなフォントの文字セットレジストリーとエンコーディング。値は文字列かシンボルであること。
:script
そのフォントがサポートしなければならないスクリプト(シンボル)。
:otf
Emacsが‘libotf’サポートつきでコンパイルされている場合、そのフォントはそれらのOpenType機能をサポートする、OpenTypeフォントでなければならない。値は以下の形式のリストでなければならない
(script-tag langsys-tag gsub gpos)
ここでscript-tagはOpenTypeスクリプトタグシンボル、langsys-tagはOpenType言語システムタグシンボル(nil
ならデフォルト言語システムを使用)、gsub
はOpenType
GSUB機能タグシンボル(何も要求されなければnil
)、gpos
はOpenType
GPOS機能タグシンボルのリスト(何も要求されなければnil
)。gsub
やgpos
がリストなら、そのリスト内のnil
要素は、そのフォントが残りすべてのタグシンボルにマッチしてはならないことを意味する。gpos
は省略可。
フォントspec font-spec内のプロパティpropertyにvalueをセットする。
フォントエンティティーはオープンする必要がないフォントへの参照です。フォントオブジェクトとフォントspecの中間的な性質をもちフォントspecとは異なり、フォントオブジェクトと同じように単一かつ特定のフォントを参照します。フォントオブジェクトとは異なりフォントエンティティーの作成では、そのフォントのコンテンツはコンピューターへのメモリーにロードされません。Emacsはスケーラブルフォントを参照するために単一のフォントエンティティーから複数の異なるサイズのフォントオブジェクトをオープンするかもしれません。
この関数はフレームframe上のフォントspec
font-specにもっともマッチするフォントエンティティーをリターンする。frameがnil
の場合のデフォルトは選択されたフレーム。
この関数はフォントspec font-specにマッチするすべてのフォントエンティティーのリストをリターンする。
オプション引数frameが非nil
なら、そのフォントが表示されるフレームを指定する。オプション引数numが非nil
なら、それはリターンされるリストの最大長を指定する整数だること。オプション引数preferが非nil
なら、それはリターンされるリスト順を制御するために使用する、別のフォントspecであること。リターンされるフォントspecはそのフォントspecに“もっとも近い”降順にソートされて格納される。
:font
属性の値としてフォントspec、フォントエンティティー、フォント名文字列を渡してset-face-attribute
を呼び出すと、Emacsは表示に利用できるもっとも“マッチする”フォントをオープンします。そして。そのフェイスにたいする:font
属性の実際の値として、対応するフォントオブジェクトを格納します。
以下の関数はフォントに関する情報を取得するために使用できます。これらの関数のfont引数にはフォントオブジェクト、フォントエンティティー、またはフォントspecを指定できます。
この関数はfontにたいするフォントプロパティpropertyの値をリターンする。
fontがフォントspecであり、そのフォントspecがpropertyを指定しなければリターン値はnil
。fontがフォントオブジェクトかフォントエンティティーなら、:scriptプロパティにたいする値はそのフォントがサポートするスクリプトのリストかもしれない。
この関数はfontに対応するフェイス属性のリストをリターンする。オプション引数frameはフォントが表示されるフレームを指定する。これがnil
なら選択されたフレームが使用される。リターン値は以下の形式
(:family family :height height :weight weight :slant slant :width width)
ここでfamily、height、weight、slant、widthの値はフェイス属性の値。fontにより指定されない場合には、いくつかのキー/属性ペアーはこのリストから省略されるかもしれない。
この関数はfontにマッチするXLFD((X Logical Font
Descriptor))を文字列としてリターンする。XLFDに関する情報はFonts in The GNU Emacs
Manualを参照のこと。その名前がXLFD(最大255文字を含むことが可能)にたいして長すぎれば、この関数はnil
をリターンする。
オプション引数fold-wildcardsが非nil
なら連続するワイルドカードは1つにまとめられる。