m17n ライブラリ 1.8.4
|
フォントセットは文字からフォントへの対応付けを行うオブジェクトである. [詳解]
関数 | |
MFontset * | mfontset (char *name) |
フォントセットを返す. | |
MSymbol | mfontset_name (MFontset *fontset) |
フォントセットの名前を返す. | |
MFontset * | mfontset_copy (MFontset *fontset, char *name) |
フォントセットのコピーを作る. | |
int | mfontset_modify_entry (MFontset *fontset, MSymbol script, MSymbol language, MSymbol charset, MFont *spec, MSymbol layouter_name, int how) |
フォントセットの内容を変更する. | |
MPlist * | mfontset_lookup (MFontset *fontset, MSymbol script, MSymbol language, MSymbol charset) |
フォントセットを検索する. | |
フォントセットは文字からフォントへの対応付けを行うオブジェクトである.
フォントセット は MFontset
型のオブジェクトである。M-text の表示の際、フォントセットは以下の情報を用いて M-text 中の個々の文字にどのフォントを用いるか決める規則を与える。
これらの情報がどのように用いられるかは mdraw_text() の説明を参照のこと。
MFontset * mfontset | ( | char * | name | ) |
フォントセットを返す.
関数 mfontset() は名前 name を持つフォントセットオブジェクトへのポインタを返す。 name が NULL
ならば、デフォルトフォントセットへのポインタを返す。
name という名前を持つフォントセットがなければ、新しいものが作られる。その際、 m17n データベースに <fontset
, name> というデータがあれば、フォントセットはそのデータに沿って初期化される。 なければ、空のままにされる。
マクロ M17N_INIT() はデフォルトのフォントセットを作る。アプリケーションプログラムは mframe() を初めて呼ぶまでの間はデフォルトフォントセットを変更することができる。
MSymbol mfontset_name | ( | MFontset * | fontset | ) |
フォントセットの名前を返す.
関数 mfontset_name() はフォントセット fontset の名前を返す。
フォントセットのコピーを作る.
関数 mfontset_copy() はフォントセット fontset のコピーを作って、名前 name を与え、そのコピーへのポインタを返す。name は既存のフォントセットの名前であってはならない。そのような場合にはコピーを作らずに NULL を返す。
int mfontset_modify_entry | ( | MFontset * | fontset, |
MSymbol | script, | ||
MSymbol | language, | ||
MSymbol | charset, | ||
MFont * | spec, | ||
MSymbol | layouter_name, | ||
int | how | ||
) |
フォントセットの内容を変更する.
関数 mfontset_modify_entry() は、language と script の組み合わせ、または charset に対して font のコピーを使うように、フォントセット fontset を設定する。
フォントセット中の各フォントは、特定のスクリプトと言語のペア、特定の文字セット、シンボル Mnil
のいずれかと関連付けられている。同じものと関連付けられたフォントはグループを構成する。
script は Mnil
であるか、スクリプトを特定するシンボルである。 シンボルである場合には、language は言語を特定するシンボルか Mnil
であり、font はthe script / language ペアに関連付けられる。
charset は Mnil
であるか、文字セットオブジェクトを表すシンボルである。 シンボルである場合には font はその文字セットと関連付けられる。
script と charset の双方が Mnil
でない場合には font のコピーが2つ作られ、それぞれ script / language ペアと文字セットに関連付けられる。
script と charset の双方が Mnil
ならば、 font は Mnil
と関連付けられる。この種のフォントは fallback font と呼ばれる。
引数 how は font の優先度を指定する。how が正ならば、font は同じものと関連付けられたグループ中で最高の優先度を持つ。how が負ならば、最低の優先度を持つ。how が 0 ならば、font は関連付けられたものに対する唯一の利用可能なフォントとなり、他のフォントはグループから取り除かれる。
layouter_name は Mnil
であるか、フォントレイアウトテーブル (フォントレイアウトテーブル)を示すシンボルである。シンボルであれば、font を用いて M-text を表示する際には、そのフォントレイアウトテーブルを使って文字列からグリフコード列を生成する。
MERROR_SYMBOL
フォントセットを検索する.
関数 mfontset_lookup() は fontset を検索し、fontset の内容のうち指定したスクリプト、言語、文字セットに対応する部分を表す plist を返す。
script が Mt
ならば、返す plist のキーはフォントが指定されているスクリプト名のシンボルであり、値は NULL である。
script がスクリプト名のシンボルであれば、返す plist は languageによって定まる。
Mt
ならば、plist のキーはフォントが指定されている言語名のシンボルであり、値は NULL である。キーは Mt
であることもあり、その場合そのスクリプトにフォールバックフォントがあることを意味する。FONT-GROUP
である。FONT-GROUP
とは、キーが FLT (FontLayoutTable) 名のシンボルであり、値が MFont へのポインタであるような plist である。ただしフォントに FLT が対応付けられていない時には、キーは Mt
になる。Mnil
ならば、plist はそのスクリプト用のフォールバック FONT-GROUP
である。script が Mnil
ならば、返す plist は以下のように定まる。
Mt
ならば、plist のキーはフォントが指定されている文字セット名のシンボルであり、値は NULL である。FONT-GROUP
である。Mnil
ならば、plist はフォールバック FONT-GROUP
である。