m17n ライブラリ 1.8.4
読み取り中…
検索中…
一致する文字列を見つけられません
関数
フォントセット

フォントセットは文字からフォントへの対応付けを行うオブジェクトである. [詳解]

関数

MFontsetmfontset (char *name)
 フォントセットを返す.
 
MSymbol mfontset_name (MFontset *fontset)
 フォントセットの名前を返す.
 
MFontsetmfontset_copy (MFontset *fontset, char *name)
 フォントセットのコピーを作る.
 
int mfontset_modify_entry (MFontset *fontset, MSymbol script, MSymbol language, MSymbol charset, MFont *spec, MSymbol layouter_name, int how)
 フォントセットの内容を変更する.
 
MPlistmfontset_lookup (MFontset *fontset, MSymbol script, MSymbol language, MSymbol charset)
 フォントセットを検索する.
 

詳解

フォントセットは文字からフォントへの対応付けを行うオブジェクトである.

フォントセットMFontset 型のオブジェクトである。M-text の表示の際、フォントセットは以下の情報を用いて M-text 中の個々の文字にどのフォントを用いるか決める規則を与える。

これらの情報がどのように用いられるかは mdraw_text() の説明を参照のこと。

関数詳解

◆ mfontset()

MFontset * mfontset ( char *  name)

フォントセットを返す.

関数 mfontset() は名前 name を持つフォントセットオブジェクトへのポインタを返す。 nameNULL ならば、デフォルトフォントセットへのポインタを返す。

name という名前を持つフォントセットがなければ、新しいものが作られる。その際、 m17n データベースに <fontset, name> というデータがあれば、フォントセットはそのデータに沿って初期化される。 なければ、空のままにされる。

マクロ M17N_INIT() はデフォルトのフォントセットを作る。アプリケーションプログラムは mframe() を初めて呼ぶまでの間はデフォルトフォントセットを変更することができる。

戻り値:
この関数は見つかった、あるいは作ったフォントセットへのポインタを返す。

◆ mfontset_name()

MSymbol mfontset_name ( MFontset fontset)

フォントセットの名前を返す.

関数 mfontset_name() はフォントセット fontset の名前を返す。

◆ mfontset_copy()

MFontset * mfontset_copy ( MFontset fontset,
char *  name 
)

フォントセットのコピーを作る.

関数 mfontset_copy() はフォントセット fontset のコピーを作って、名前 name を与え、そのコピーへのポインタを返す。name は既存のフォントセットの名前であってはならない。そのような場合にはコピーを作らずに NULL を返す。

◆ mfontset_modify_entry()

int mfontset_modify_entry ( MFontset fontset,
MSymbol  script,
MSymbol  language,
MSymbol  charset,
MFont spec,
MSymbol  layouter_name,
int  how 
)

フォントセットの内容を変更する.

関数 mfontset_modify_entry() は、languagescript の組み合わせ、または charset に対して font のコピーを使うように、フォントセット fontset を設定する。

フォントセット中の各フォントは、特定のスクリプトと言語のペア、特定の文字セット、シンボル Mnil のいずれかと関連付けられている。同じものと関連付けられたフォントはグループを構成する。

scriptMnil であるか、スクリプトを特定するシンボルである。 シンボルである場合には、language は言語を特定するシンボルか Mnil であり、font はthe script / language ペアに関連付けられる。

charsetMnil であるか、文字セットオブジェクトを表すシンボルである。 シンボルである場合には font はその文字セットと関連付けられる。

scriptcharset の双方が Mnil でない場合には font のコピーが2つ作られ、それぞれ script / language ペアと文字セットに関連付けられる。

scriptcharset の双方が Mnil ならば、 fontMnil と関連付けられる。この種のフォントは fallback font と呼ばれる。

引数 howfont の優先度を指定する。how が正ならば、font は同じものと関連付けられたグループ中で最高の優先度を持つ。how が負ならば、最低の優先度を持つ。how が 0 ならば、font は関連付けられたものに対する唯一の利用可能なフォントとなり、他のフォントはグループから取り除かれる。

layouter_nameMnil であるか、フォントレイアウトテーブル (フォントレイアウトテーブル)を示すシンボルである。シンボルであれば、font を用いて M-text を表示する際には、そのフォントレイアウトテーブルを使って文字列からグリフコード列を生成する。

戻り値:
処理が成功したとき、mfontset_modify_entry() は 0 を返す。 失敗したときは -1 を返し、外部変数 merror_code にエラーコードを設定する。
エラー:
MERROR_SYMBOL

◆ mfontset_lookup()

MPlist * mfontset_lookup ( MFontset fontset,
MSymbol  script,
MSymbol  language,
MSymbol  charset 
)

フォントセットを検索する.

関数 mfontset_lookup()fontset を検索し、fontset の内容のうち指定したスクリプト、言語、文字セットに対応する部分を表す plist を返す。

scriptMt ならば、返す plist のキーはフォントが指定されているスクリプト名のシンボルであり、値は NULL である。

script がスクリプト名のシンボルであれば、返す plist は languageによって定まる。

  • languageMt ならば、plist のキーはフォントが指定されている言語名のシンボルであり、値は NULL である。キーは Mt であることもあり、その場合そのスクリプトにフォールバックフォントがあることを意味する。
  • language が言語名のシンボルならば、plist は指定のスクリプトと言語に対する FONT-GROUP である。FONT-GROUP とは、キーが FLT (FontLayoutTable) 名のシンボルであり、値が MFont へのポインタであるような plist である。ただしフォントに FLT が対応付けられていない時には、キーは Mt になる。
  • languageMnil ならば、plist はそのスクリプト用のフォールバック FONT-GROUP である。

scriptMnil ならば、返す plist は以下のように定まる。

  • charsetMt ならば、plist のキーはフォントが指定されている文字セット名のシンボルであり、値は NULL である。
  • charset が文字セット名のシンボルならば、plist はその文字セット用の FONT-GROUP である。
  • charsetMnil ならば、plist はフォールバック FONT-GROUP である。
戻り値:
この関数はフォントセットの内容を表す plist を返す。 plist は m17n_object_unref() で解放されるべきである。

m17n-lib Home