| 変数: フォントプロパティを指定する定義済みシンボル | |
| MSymbol | Mfoundry | 
| 開発元を指定するフォントプロパティのキー. | |
| MSymbol | Mfamily | 
| ファミリを指定するフォントプロパティのキー. | |
| MSymbol | Mweight | 
| 太さを指定するフォントプロパティのキー. | |
| MSymbol | Mstyle | 
| スタイルを指定するフォントプロパティのキー. | |
| MSymbol | Mstretch | 
| 幅を指定するフォントプロパティのキー. | |
| MSymbol | Madstyle | 
| adstyle を指定するフォントプロパティのキー. | |
| MSymbol | Mregistry | 
| レジストリを指定するフォントプロパティのキー. | |
| MSymbol | Msize | 
| サイズを指定するフォントプロパティのキー. | |
| MSymbol | Mresolution | 
| 解像度を指定するフォントプロパティのキー. | |
| MSymbol | Mfontconfig | 
| 開発元を指定するフォントプロパティのキー. | |
| MSymbol | Mx | 
| 開発元を指定するフォントプロパティのキー. | |
| MSymbol | Mfreetype | 
| 開発元を指定するフォントプロパティのキー. | |
| MSymbol | Mxft | 
| 開発元を指定するフォントプロパティのキー. | |
| 型定義 | |
| typedef MFont | MFont | 
| フォントの型宣言. | |
| 関数 | |
| MFont * | mfont () | 
| 新しいフォントを作る. | |
| MFont * | mfont_parse_name (char *name, MSymbol format) | 
| フォント名からフォントを作る. | |
| char * | mfont_unparse_name (MFont *font, MSymbol format) | 
| フォント名からフォントを作る. | |
| MFont * | mfont_copy (MFont *font) | 
| フォントのコピーを作る. | |
| void * | mfont_get_prop (MFont *font, MSymbol key) | 
| フォントのプロパティの値を得る. | |
| int | mfont_put_prop (MFont *font, MSymbol key, void *val) | 
| フォントのプロパティに値を設定する. | |
| MSymbol * | mfont_selection_priority () | 
| フォント選択優先度を返す. | |
| int | mfont_set_selection_priority (MSymbol *keys) | 
| フォント選択優先度を設定する. | |
| MFont * | mfont_find (MFrame *frame, MFont *spec, int *score, int limited_size) | 
| フォントを探す. | |
| int | mfont_set_encoding (MFont *font, MSymbol encoding_name, MSymbol repertory_name) | 
| フォントのエンコーディングを設定する. | |
| char * | mfont_name (MFont *font) | 
| フォント名からフォントを作る. | |
| MFont * | mfont_from_name (char *name) | 
| フォント名からフォントを作る. | |
| int | mfont_resize_ratio (MFont *font) | 
| フォントのリサイズ情報を得る | |
| MPlist * | mfont_list (MFrame *frame, MFont *font, MSymbol language, int maxnum) | 
| フォントのリストを得る | |
| 変数 | |
| MPlist * | mfont_freetype_path | 
| フォントファイルとフォントファイルを含むディレクトリのリスト. | |
MFont 型のオブジェクトとして表現する。 フォントは フォントプロパティ を持つことができる。他のタイプの プロパティ同様フォントプロパティはキーと値からなる。キーは以下のシ ンボルのいずれかである。
Mfoundry, Mfamily, Mweight, Mstyle, Mstretch, Madstyle, Mregistry, Msize, Mresolution 
フォントプロパティのキーが Msize あるいは Mresolution の場合、 値は整数値であり、キーがそれ以外の場合、値はシンボルである。「フォ ント F のフォントプロパティのうちキーが Mxxx であるもの」のこと を簡単に「F の xxx プロパティ」と呼ぶことがある。
foundry プロパティの値は、adobe, misc 等のフォントの開発元情報を示 すシンボルである。
family プロパティの値は、times, helvetica 等のフォントファミリーを 示すシンボルである。
weight プロパティの値は、normal, bold 等の太さに関する情報を示すシ ンボルである。
style プロパティの値は、normal, italic 等のスタイルに関する情報を 示すシンボルである。
stretch プロパティの値は、normal, semicondensed 等の文字幅に関する 情報を示すシンボルである。
adstyle プロパティの値は、serif, sans-serif 等の抽象的なフォントファ ミリーに関する情報を示すシンボルである。
registry プロパティの値は、iso10646, iso8895-1 等のレジストリ情報を 示すシンボルである。
size プロパティの値は、フォントのデザインサイズを表わす整数値であ り、単位は 1/10 ポイントである。
resolution プロパティの値は、想定されているデバイスの解像度を表わ す整数値であり、単位は dots per inch (dpi) である。
m17n ライブラリはフォントオブジェクトを2つの目的で用いている。ア プリケーションプログラムからフォントの指定を受け取る目的と、アプリ ケーションプログラムに利用可能なフォントを提示する目的である。アプ リケーションプログラムに対して提示を行う際には、フォントプロパティ はすべて具体的な値を持つ。
m17n ライブラリは Window システムフォント、FreeTypeフォント、 OpenTypeフォントの3種類をサポートしている。
m17n X ライブラリは、X サーバと X フォントサーバが取り扱う全てのフォ ントをサポートする。XLFD の各フィールドとフォントプロパティの対応 は以下の通り。この表にないフィールドは無視される。
    XLFD フィールド                             プロパティ
    ---------------                             --------
    FOUNDRY                                     foundry
    FAMILY_NAME                                 family
    WEIGHT_NAME                                 weight
    SLANT                                       style
    SETWIDTH_NAME                               stretch
    ADD_STYLE_NAME                              adstyle
    POINT_SIZE                                  size
    RESOLUTION_Y                                resolution
    CHARSET_REGISTRY-CHARSET_ENCODING           registry
m17n ライブラリは、FreeType ライブラリを使うように設定された場合に は、FreeType が扱うすべてのフォントをサポートする。変数 mfont_freetype_path は m17n ライブラリの設定と環境変数 M17NDIR に応じて初期化される。詳細は変数の説明を参照のこと。
もし m17n ライブラリが fontconfig ライブラリを使うように設定された 場合には、mfont_freetype_path に加えて、 fontconfig で使用可能なフォ ントもすべてサポートされる。
FreeType フォントのファミリ名は family プロパティに対応する。 FreeType フォントのスタイル名は、下の表のように weight, style, stretch プロパティに対応する。
    スタイル名          weight  style   stretch
    ----------          ------  -----   -------
    Regular             medium  r       normal
    Italic              medium  i       normal
    Bold                bold    r       normal
    Bold Italic         bold    i       normal
    Narrow              medium  r       condensed
    Narrow Italic       medium  i       condensed
    Narrow Bold         bold    r       condensed
    Narrow Bold Italic  bold    i       condensed
    Black               black   r       normal
    Black Italic        black   i       normal
    Oblique             medium  o       normal
    BoldOblique         bold    o       normal
上の表に現われないスタイル名は "Regular" として扱われる。
platform ID と encoding ID の組み合わせは registry プロパティに対 応する。たとえばあるフォントが (1 1) という ID の組合せを持てば、 registry プロパティは 1-1 となる。頻繁にあらわれる組合せには以下の ような定義済み registry プロパティ が与えられている。
    platform ID         encoding ID     registry プロパティ
    -----------         -----------     -----------------
    0                   3               unicode-bmp
    0                   4               unicode-full
    1                   0               apple-roman
    3                   1               unicode-bmp
    3                   1               unicode-full
したがって、二つの組合せ (1 0) 、(3 1) を持つフォントは、それぞれ registry プロパティが 1-0, apple-roman, 3-1, unicode-bmp である4つ のフォントオブジェクトに対応する。
m17n ライブラリは、FreeType ライブラリと OTF ライブラリを使用するよ うに設定すれば、すべての OpenType フォントをサポートする。実際に利 用できるフォントのリストは FreeType フォントの場合と同様に作られる。 OpenType フォントを FLT (Font Layout Table) 経由で使用するようフォ ントセットに指定されており、FLT に OTF 関連のコマンド (たとえば otf:deva) があれば、OTF ライブラリがフォントの OpenType レイアウト テーブルに従って文字列をグリフコード列に変換し、FreeType ライブラリ が各グリフのビットマップイメージを提供する。
| 
 | 
| MFont 型はフォント指定用の構造体であり、フォントのプロパティであ る foundry, family, weight, style, stretch, adstyle, registry, size, resolution に関する情報を含む。 この構造体はフォントセット内のフォントを指定する際と、使用可能なシ ステムフォントの情報を格納する際の両方に用いられる。 内部構造はアプリケーションプログラムからは見えない。 
 | 
| 
 | 
| 関数 mfont() はプロパティを一切持たない新しいフォントをオブジェク トを作る。 
 
 | 
| 
 | ||||||||||||
| 関数 mfont_parse_name() は、フォント名 name から取り出されたプロパ ティを持つ、新しいフォントオブジェクトを作る。 format は name のフォーマットを指定する。format が Mx であれば、 name は XLFD (X Logical Font Description) に従って解析される。 format が Mfontconfig であれば name は Fontfonfig のフォントテキ スト表現に従って解析される。format が Mnil であれば、まず XLFD に 従って解析され、それに失敗したら Fontconfig に従って解析される。 
 
 | 
| 
 | ||||||||||||
| 関数 mfont_unparse_name() は format にしたがったフォント名の文字 列をフォントfont を元に作る。 format は Mx または Mfontconfig でなければならない。Mx ならばフォ ント名は XLFD (X Logical Font Description) に従う。Mfontconfig な らばフォント名は Fontconfig のフォントテキスト表現に従う。 
 
 | 
| 
 | 
| 関数 Mfont_copy() はフォント font のコピーを作り、それを返す。 | 
| 
 | ||||||||||||
| 関数 mfont_get_prop() はフォント font のプロパティのうち、キーが key であるものの値を返す。key は以下のシンボルのいずれかでなけれ ばならない。 
 
 
 | 
| 
 | ||||||||||||||||
| 関数 mfont_put_prop() は、フォント font のキーがkey であるプロ パティの値を val に設定する。key は以下のシンボルのいずれかであ る。 
 
key が  | 
| 
 | 
| 関数 mfont_selection_priority() は6つのシンボルからなる配列を作っ て返す。配列の要素は、以下のフォントプロパティのキーを優先度順に並 べたものである。 
 m17n ライブラリはこの配列に従って、最も合致するフォントを選択する。 優先度の低いプロパティの値が違うフォントと優先度の高いプロパティの 値が違うフォントがある場合、前者が選択される。 | 
| 
 | 
| 関数 mfont_set_selection_priority() は、6つのシンボルの配列 keys にしたがってフォント選択優先度を設定する。各要素は以下のうちのどれ かであり、全て異なっていなくてはならない。 
 詳細は関数 mfont_selection_priority() の説明を参照のこと。 | 
| 
 | ||||||||||||||||||||
| 関数 mfont_find() は、フレーム frame 上でフォント定義 spec にもっ とも合致する利用可能なフォントへのポインタを返す。 score は NULL であるか、見つかったフォントが spec にどれほど合っ ているかを示すスコアを保存する場所へのポインタである。スコアが小さ いほど良く合っていることを意味する。 | 
| 
 | ||||||||||||||||
| 関数 mfont_set_encoding() はフォント font のエンコーディング情報 を設定する。 encoding_name はフォントと同じエンコーディングを持つ文字セットを 示すシンボルである。 
repertory_name は  
 
 | 
| 
 | 
| この関数は廃止予定である。 mfont_unparse_name() を使用のこと。 | 
| 
 | 
| これは関数は廃止予定である。 mfont_parse_name() を使用のこと。 | 
| 
 | 
| 関数 mfont_resize_ratio は m17n データベース <font, reisize> を検 索し、フォント FONT のリサイズの比率(パーセンテージ)を返す。たとえ ば返値が 150 であれば、m17n ライブラリは指定されたサイズの 1.5 倍の フォントを使用することを意味する。 | 
| 
 | ||||||||||||||||||||
| 
関数 mfont_list() はフレーム frame で利用可能なフォントのリスト を返す。 font が  
 
 | 
| 
 | 
| 
変数 Mfoundry は  | 
| 
 | 
| 
変数 Mfamily は  | 
| 
 | 
| 
変数 Mweight は  | 
| 
 | 
| 
変数 Mstyle は  | 
| 
 | 
| 
変数 Mstretch は  | 
| 
 | 
| 
変数 Madstyle は  | 
| 
 | 
| 
変数 Mregistry は  | 
| 
 | 
| 
変数 Msize は  | 
| 
 | 
| 
変数 Mresolution は  | 
| 
 | 
| 
変数 Mfoundry は  | 
| 
 | 
| 
変数 Mfoundry は  | 
| 
 | 
| 
変数 Mfoundry は  | 
| 
 | 
| 
変数 Mfoundry は  | 
| 
 | 
| 
変数  マクロ M17N_INIT() によって、この変数は m17n データベースと環境変 数 "M17NDIR" 双方のサブディレクトリ "fonts" を含むように設定される。 mframe() の最初の呼び出しの際に、この変数から実際に使用できるフォ ントの内部リストが作られる。そこでアプリケーションプログラムは、 mframe() を呼ぶ前に(必要ならば)この変数を変更しなくてはならな い。新しい要素を追加する場合には、その値は安全に開放できる文字列 でなくてはならない。 m17n ライブラリが FreeType ライブラリを使うように設定されてない場 合には、この変数は用いられない。 | 
 mule-aist@m17n.org
mule-aist@m17n.org