ps_findfont

フォントを読み込む

説明

int ps_findfont(
    resource $psdoc,
    string $fontname,
    string $encoding,
    bool $embed = false
)

あとで使用するために、フォントを読み込みます。読み込んだフォントを実際に利用するためには、 ps_setfont で設定しなければなりません。 文字の間隔を計算するため、この関数には adobe フォントメトリックファイルが必要です。 ページの内部で読み込まれたフォントは、 そのページ内でのみ有効となります。ドキュメント全体で使われるフォントは、 最初の ps_begin_page の実行より前に読み込まれなければなりません。 ページとページの間で ps_findfont が呼ばれた場合は、それ以降のページでフォントが有効になります。

afm ファイルの名前は、 fontname.afm でなければなりません。 フォントを埋め込む場合は、フォントのアウトラインを含む fontname.pfb が存在しなければなりません。

最初のページを処理する前に ps_findfont をコール際、 postscript ヘッダが出力されます。ここには、ドキュメント全体に適用される BoundingBox が含まれます。 通常は、BoundingBox を設定するのは最初に ps_begin_page がコールされたときで、これは ps_findfont をコールした後になります。 したがって、ps_findfont のコール時にはまだ BoundingBox が設定されておらず、警告が発生してしまいます。 こうなることを避けるため、ps_findfont をコールする前に ps_set_parameter をコールし、BoundingBox を設定しておくべきです。

パラメータ

psdoc

ps_new が返す、postscript ファイルのリソース ID。

fontname

フォントの名前。

encoding

ps_findfont は、encoding で渡されたファイルを読み込もうと試みます。 エンコーディングファイルは、 dvips(1) で使われるものと同形式です。 そこにはフォントエンコーディングベクタ(現在は利用されていませんが、 存在する必要があります)が含まれており、また afm ファイルから 生成されたリゲチャのリストを拡張するための拡張リゲチャが含まれています。

encodingnull または空文字列とすることも可能で、 その場合はデフォルトエンコーディング(TeXBase1)が用いられます。

encoding が builtin と指定された場合は、 エンコード処理は行われずにフォント固有のエンコーディングがそのまま用いられます。 これは、記号フォントを扱う場合に便利です。

embed

0 より大きい値を設定すると、フォントがドキュメントに埋め込まれます。 これを使用するには、フォントのアウトライン (.pfb ファイル) が必要です。

戻り値

成功した場合にフォントの ID を、失敗した場合にゼロを返します。 ID は正の数値です。

参考

  • ps_begin_page
  • ps_setfont