xml2afp用のフォント索引ファイルをカスタマイズする

xml2afpのサンプルフォント索引ファイルが、/usr/lpp/psf/xmltransform(AIX)とinstall_path¥xmltransform(Windows)に用意されています。サンプルには、フォントパスのアウトラインFOCAフォントとラスターフォントにXMLフォント名をマッピングするoutline_font_indexraster_font_indexが含まれています。

注意: OpenTypeフォントを使用している場合は、フォント索引ファイルは不要です。

フォントは、以下の属性を使用して XSL-FLO で参照されます。

  • family
  • size
  • style
  • weight
フォント索引ファイルでは、これらの属性を使用して AFP フォントを記述します。また、ユニコードコードポイントをAFPコードポイントにマッピングするマップが定義されます。

フォント索引ファイルは、空白文字(スペース、タブ、または改行など)で区切られた一連のキーと値の組で構成されます。コメントは区切り文字/*と*/の間で任意の位置に挿入できます。また、//を使用すると、現在行の残りがコメントを示すこともできます。

キーと意味は、以下のとおりです。

map
指定された文字マップを選択し、存在しない場合は作成します。文字マップは、ユニコードコードポイントをAFPコードページの名前とコードポイントのマップに使用されます。デフォルトは、defaultです。
codepage
後続の文字マッピングで使用するコードページを設定します。
to
マッピングされたユニコードコードポイントの範囲を終了します。値は、有効なユニコードコードポイントを表す整数に設定し、charキーワードに最も近く先行する値で指定された範囲の先頭値より大きくしてください。値には有効なユニコードコードポイントを使用してください。
先行するchar値とオプションのto値で指定された範囲を使用してマッピングを作成します。先頭から最後までのユニコード文字は、先行する最も近いcodepage値を使用し、at値からat値+末尾-先頭(両端含む)までの範囲のAFPコードポイントにマッピングされます。値には0から65535までの整数を使用してください。
family
現行のフォントファミリー名を設定します。値には、空白文字を含まない文字列を使用してください。
size
フォントサイズは、フォントの垂直方向のサイズを指定する浮動小数点値がポイント(1/72インチ)で表されます。アウトラインテクノロジーフォントを定義するときは、任意のサイズを使用できるので、サイズは省略してください。
style
フォントスタイル。この値には、以下のいずれかのキーワードを使用してください。
  • normal
  • italic
  • oblique
  • backslant
デフォルトは normal です。
weight
フォント幅。この値は、以下のいずれかのキーワードにできます。
  • normal
  • bold
値は、100 ずつ増分する 100 から 900 まで (100 と 900 を含む) のいずれかの値にすることもできます。キーワードnormalは400と同等であり、キーワードboldは700と同等です。デフォルト値は、normal(400)です。
charset
フォントプロパティー(family、size、style、weight)に指定された先行値を持つフォント、または先行するプロパティー値を設定していない場合はデフォルト値を持つフォントを定義します。現在選択されている文字マップがフォントに関連付けられ、フォントが選択されたときにユニコードコードポイントのマッピングに使用されます。後でファイルのマップを変更しても、変更内容は定義されたフォントに影響しません。
alias
現行ファミリーのフォントファミリー別名を設定します。

リストされたキーワードの中で、atcharsetの2つだけアクティブです。他のキーワードは、アクティブなキーワードが検出されたときに使用された値を収集します。これで、フォント索引にさまざまな配置が可能になります。例:

family courier
alias monospace
	size 7
		weight normal
			style normal
				charset C04200070
			style italic
				charset C0430070
		weight bold
			style normal
				charset C0440070
			style italic
				charset C0450070
以下のように同じフォントのセットが定義されます。

family courier	                size 7	       weight normal style normal charset C0420070
family courier	                size 7	       weight normal	style italic charset C0430070
family courier	                size 7	       weight bold style normal charset C0440070
family courier	                size 7	       weight bold style italic charset C0450070
alias monospace
ただし、読み取ることが難しくなります。