変数: フォントプロパティを指定する定義済みシンボル | |
MSymbol | Mfoundry |
開発元を指定するフォントプロパティのキー. | |
MSymbol | Mfamily |
ファミリを指定するフォントプロパティのキー. | |
MSymbol | Mweight |
太さを指定するフォントプロパティのキー. | |
MSymbol | Mstyle |
スタイルを指定するフォントプロパティのキー. | |
MSymbol | Mstretch |
幅を指定するフォントプロパティのキー. | |
MSymbol | Madstyle |
adstyle を指定するフォントプロパティのキー. | |
MSymbol | Mspacing |
spacing を指定するフォントプロパティのキー. | |
MSymbol | Mregistry |
レジストリを指定するフォントプロパティのキー. | |
MSymbol | Msize |
サイズを指定するフォントプロパティのキー. | |
MSymbol | Motf |
開発元を指定するフォントプロパティのキー. | |
MSymbol | Mfontfile |
フォントファイルを指定するフォントプロパティのキー. | |
MSymbol | Mresolution |
解像度を指定するフォントプロパティのキー. | |
MSymbol | Mmax_advance |
開発元を指定するフォントプロパティのキー. | |
MSymbol | Mfontconfig |
"fontconfig" という名前を持つシンボル. | |
MSymbol | Mx |
"x" という名前を持つシンボル. | |
MSymbol | Mfreetype |
"freetype" という名前を持つシンボル. | |
MSymbol | Mxft |
"xft" という名前を持つシンボル. | |
型定義 | |
typedef MFont | MFont |
フォントの型宣言. | |
関数 | |
MFont * | mfont () |
新しいフォントを作る. | |
MFont * | mfont_parse_name (const 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 max_size) |
フォントを探す. | |
int | mfont_set_encoding (MFont *font, MSymbol encoding_name, MSymbol repertory_name) |
フォントのエンコーディングを設定する. | |
char * | mfont_name (MFont *font) |
フォント名からフォントを作る. | |
MFont * | mfont_from_name (const char *name) |
フォントからフォント名を作る. | |
int | mfont_resize_ratio (MFont *font) |
フォントのリサイズ情報を得る | |
MPlist * | mfont_list (MFrame *frame, MFont *font, MSymbol language, int maxnum) |
フォントのリストを得る | |
MPlist * | mfont_list_family_names (MFrame *frame) |
int | mfont_check (MFrame *frame, MFontset *fontset, MSymbol script, MSymbol language, MFont *font) |
int | mfont_match_p (MFont *font, MFont *spec) |
MFont * | mfont_open (MFrame *frame, MFont *font) |
MFont * | mfont_encapsulate (MFrame *frame, MSymbol data_type, void *data) |
int | mfont_close (MFont *font) |
変数 | |
MPlist * | mfont_freetype_path |
フォントファイルとフォントファイルを含むディレクトリのリスト. |
MFont
型のオブジェクトとして表現する。 フォントは フォントプロパティ を持つことができる。他のタイプのプ ロパティ同様、フォントプロパティはキーと値からなり、キーは以下のシ ンボルのいずれかである。
Mfoundry
, Mfamily
, Mweight
, Mstyle
, Mstretch
, Madstyle
, Mregistry
, Msize
, Mresolution
, Mspacing
フォントプロパティのキーが 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) である。
type プロパティの値は、フォントドライバを指示し、現在 Mx もしくは Mfreetype である。
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 PIXEL_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 ライブラリが各グリフのビットマップイメージを提供する。
|
|
|