XEP Personal Edition、フォントの設定

※ 本記事のXEPは"xep-4.18-20101125-personal.zip"をインストールしたもの。 ※

RenderX XEPのフォント設定。
XEPはデフォルトでは日本語フォントの設定はなされていない。
設定ファイル"xep.xml"中の"Sample configuration for Windows TrueType fonts."と書いてあるそばに、Windows用のフォント設定サンプルがある。
コメントアウトされているので、それを有効にしてやる。
("Arial"、"Times New Roman"、"Courier New"、"Tahoma"、"Verdana"、"Palatino"の定義がある)
そして、下のように"MS ゴシック"などの日本語フォントの設定を追加する*1。元からあるWindows用フォント設定は、単体のTrueTypeフォントファイル(*.ttf)の設定なので、以下はTrueType Collection(*.ttc)での設定例にもなるかと思う。
なお、"xep.xml"は「UTF-8。BOMなし」で保存する。BOMありで保存すると、最初のBOMを読み飛ばさず、おかしな文字があると考えるのか、エラーにしてくれる*2

      <!-- MSゴシック -->
      <font-family name="MS ゴシック">
        <font><font-data ttc="msgothic.ttc" subfont="1"/></font>
        <font style="oblique"><font-data ttc="msgothic.ttc" subfont="1"/></font>
        <font weight="bold"><font-data ttc="msgothic.ttc" subfont="1"/></font>
        <font weight="bold" style="oblique"><font-data ttc="msgothic.ttc" subfont="1"/></font>
      </font-family>
      <font-family name="MS Pゴシック">
        <font><font-data ttc="msgothic.ttc" subfont="2"/></font>
        <font style="oblique"><font-data ttc="msgothic.ttc" subfont="2"/></font>
        <font weight="bold"><font-data ttc="msgothic.ttc" subfont="2"/></font>
        <font weight="bold" style="oblique"><font-data ttc="msgothic.ttc" subfont="2"/></font>
      </font-family>
      <font-family name="MS UI Gothic">
        <font><font-data ttc="msgothic.ttc" subfont="3"/></font>
        <font style="oblique"><font-data ttc="msgothic.ttc" subfont="3"/></font>
        <font weight="bold"><font-data ttc="msgothic.ttc" subfont="3"/></font>
        <font weight="bold" style="oblique"><font-data ttc="msgothic.ttc" subfont="3"/></font>
      </font-family>

      <!-- MS明朝 -->
      <font-family name="MS 明朝">
        <font><font-data ttc="msmincho.ttc" subfont="1"/></font>
        <font style="oblique"><font-data ttc="msmincho.ttc" subfont="1"/></font>
        <font weight="bold"><font-data ttc="msmincho.ttc" subfont="1"/></font>
        <font weight="bold" style="oblique"><font-data ttc="msmincho.ttc" subfont="1"/></font>
      </font-family>
      <font-family name="MS P明朝">
        <font><font-data ttc="msmincho.ttc" subfont="2"/></font>
        <font style="oblique"><font-data ttc="msmincho.ttc" subfont="2"/></font>
        <font weight="bold"><font-data ttc="msmincho.ttc" subfont="2"/></font>
        <font weight="bold" style="oblique"><font-data ttc="msmincho.ttc" subfont="2"/></font>
      </font-family>

      <!-- メイリオ -->
      <font-family name="メイリオ">
        <font><font-data ttc="meiryo.ttc" subfont="1"/></font>
        <font style="oblique"><font-data ttc="meiryo.ttc" subfont="2"/></font>
        <font weight="bold"><font-data ttc="meiryob.ttc" subfont="1"/></font>
        <font weight="bold" style="oblique"><font-data ttc="meiryob.ttc" subfont="2"/></font>
      </font-family>

Windows TrueTypeフォント用のフォントグループ全体だと下のような定義になるかな。

    <font-group xml:base="file:/C:/Windows/Fonts/" label="Windows TrueType" embed="true" subset="true"> 
      <font-family name="Arial">
        <font><font-data ttf="arial.ttf"/></font>
        <font style="oblique"><font-data ttf="ariali.ttf"/></font>
        <font weight="bold"><font-data ttf="arialbd.ttf"/></font>
        <font weight="bold" style="oblique"><font-data ttf="arialbi.ttf"/></font>
      </font-family>

      <font-family name="Times New Roman" ligatures="&#xFB01; &#xFB02;">
        <font><font-data ttf="times.ttf"/></font>
        <font style="italic"><font-data ttf="timesi.ttf"/></font>
        <font weight="bold"><font-data ttf="timesbd.ttf"/></font>
        <font weight="bold" style="italic"><font-data ttf="timesbi.ttf"/></font>
      </font-family>

      <font-family name="Courier New">
        <font><font-data ttf="cour.ttf"/></font>
        <font style="oblique"><font-data ttf="couri.ttf"/></font>
        <font weight="bold"><font-data ttf="courbd.ttf"/></font>
        <font weight="bold" style="oblique"><font-data ttf="courbi.ttf"/></font>
      </font-family>

      <font-family name="Tahoma" embed="true">
        <font><font-data ttf="tahoma.ttf"/></font>
        <font weight="bold"><font-data ttf="tahomabd.ttf"/></font>
      </font-family>

      <font-family name="Verdana" embed="true">
        <font><font-data ttf="verdana.ttf"/></font>
        <font style="oblique"><font-data ttf="verdanai.ttf"/></font>
        <font weight="bold"><font-data ttf="verdanab.ttf"/></font>
        <font weight="bold" style="oblique"><font-data ttf="verdanaz.ttf"/></font>
      </font-family>

      <font-family name="Palatino" embed="true" ligatures="&#xFB00; &#xFB01; &#xFB02; &#xFB03; &#xFB04;">
        <font><font-data ttf="pala.ttf"/></font>
        <font style="italic"><font-data ttf="palai.ttf"/></font>
        <font weight="bold"><font-data ttf="palab.ttf"/></font>
        <font weight="bold" style="italic"><font-data ttf="palabi.ttf"/></font>
      </font-family>

      <!-- MSゴシック -->
      <font-family name="MS ゴシック">
        <font><font-data ttc="msgothic.ttc" subfont="1"/></font>
        <font style="oblique"><font-data ttc="msgothic.ttc" subfont="1"/></font>
        <font weight="bold"><font-data ttc="msgothic.ttc" subfont="1"/></font>
        <font weight="bold" style="oblique"><font-data ttc="msgothic.ttc" subfont="1"/></font>
      </font-family>
      <font-family name="MS Pゴシック">
        <font><font-data ttc="msgothic.ttc" subfont="2"/></font>
        <font style="oblique"><font-data ttc="msgothic.ttc" subfont="2"/></font>
        <font weight="bold"><font-data ttc="msgothic.ttc" subfont="2"/></font>
        <font weight="bold" style="oblique"><font-data ttc="msgothic.ttc" subfont="2"/></font>
      </font-family>
      <font-family name="MS UI Gothic">
        <font><font-data ttc="msgothic.ttc" subfont="3"/></font>
        <font style="oblique"><font-data ttc="msgothic.ttc" subfont="3"/></font>
        <font weight="bold"><font-data ttc="msgothic.ttc" subfont="3"/></font>
        <font weight="bold" style="oblique"><font-data ttc="msgothic.ttc" subfont="3"/></font>
      </font-family>

      <!-- MS明朝 -->
      <font-family name="MS 明朝">
        <font><font-data ttc="msmincho.ttc" subfont="1"/></font>
        <font style="oblique"><font-data ttc="msmincho.ttc" subfont="1"/></font>
        <font weight="bold"><font-data ttc="msmincho.ttc" subfont="1"/></font>
        <font weight="bold" style="oblique"><font-data ttc="msmincho.ttc" subfont="1"/></font>
      </font-family>
      <font-family name="MS P明朝">
        <font><font-data ttc="msmincho.ttc" subfont="2"/></font>
        <font style="oblique"><font-data ttc="msmincho.ttc" subfont="2"/></font>
        <font weight="bold"><font-data ttc="msmincho.ttc" subfont="2"/></font>
        <font weight="bold" style="oblique"><font-data ttc="msmincho.ttc" subfont="2"/></font>
      </font-family>

      <!-- メイリオ -->
      <font-family name="メイリオ">
        <font><font-data ttc="meiryo.ttc" subfont="1"/></font>
        <font style="oblique"><font-data ttc="meiryo.ttc" subfont="2"/></font>
        <font weight="bold"><font-data ttc="meiryob.ttc" subfont="1"/></font>
        <font weight="bold" style="oblique"><font-data ttc="meiryob.ttc" subfont="2"/></font>
      </font-family>
    </font-group>

"x4u"を起動すると設定したものを、目視で確認することができる。フォント設定の中に"MS ゴシック"とかが見えて、ファイル名とか間違ってなければ設定できていると思ってよいと思う。
なお、"x4u"でフォント設定とかいじって保存できるけど、そのさいに、たとえば"Palatino"に設定されている、ligatures="&#xFB00; &#xFB01; &#xFB02; &#xFB03; &#xFB04;"の実体参照なんかが、まんまUnicode文字に置き換えられて保存される。
それはデータとしては問題ないのだろうとは思うけど、表示できない文字もあって文字化けみたいに見えるから、それが嫌なら(俺は嫌)"x4u"に"xep.xml"をいじらせないようにしたほうがいいかも。

*1:"font-family"要素の"name"属性のところは自分の好みで変えてください。または好みの"name"属性をもった"font-family"要素を追加するか。

*2:UTF-8の場合、バイトオーダーは環境に依存しないから、BOM付ける必要がないけど、できたら読み飛ばしてほしいなあ……。

サンプル

XEPで設定ができているか確認するサンプル。ただ、"italic"、"oblique"、"bold"とかって、そういう字形があるかによる。MS Wordとかみたいに、無理矢理斜体や太字にしない。なので、設定しても、基本フォントの字形と変わらない*1。ただ、字詰めが変わるので、それで設定が正しいか確認できるかと思う。

<?xml version="1.0" encoding="UTF-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xml:lang="ja">
	<fo:layout-master-set>
		<fo:simple-page-master master-name="page-master" page-height="297mm" page-width="210mm" margin-top="0mm" margin-right="0mm" margin-bottom="0mm" margin-left="0mm">
			<fo:region-body margin-top="10mm" margin-right="10mm" margin-bottom="10mm" margin-left="10mm"/>
		</fo:simple-page-master>
	</fo:layout-master-set>
	
	<fo:page-sequence master-reference="page-master" initial-page-number="1">
		<fo:flow flow-name="xsl-region-body">
			<fo:block font-family="MS ゴシック" font-size="16pt">MS ゴシック:おはようございます。abcdef!!</fo:block>
			<fo:block font-family="MS ゴシック" font-size="16pt" font-style="oblique">MS ゴシック:こんにちは。abcdef!!</fo:block>
			<fo:block font-family="MS ゴシック" font-size="16pt" font-style="italic">MS ゴシック:こんにちは。abcdef!!</fo:block>
			<fo:block font-family="MS ゴシック" font-size="16pt" font-weight="bold">MS ゴシック:こんにちは。abcdef!!</fo:block>
			<fo:block font-family="MS ゴシック" font-size="16pt" font-weight="bold" font-style="italic">MS ゴシック:こんばんは。abcdef!!</fo:block>

			<fo:block font-family="MS Pゴシック" font-size="16pt">MS Pゴシック:おはようございます。abcdef!!</fo:block>
			<fo:block font-family="MS Pゴシック" font-size="16pt" font-style="oblique">MS Pゴシック:こんにちは。abcdef!!</fo:block>
			<fo:block font-family="MS Pゴシック" font-size="16pt" font-style="italic">MS Pゴシック:こんにちは。abcdef!!</fo:block>
			<fo:block font-family="MS Pゴシック" font-size="16pt" font-weight="bold">MS Pゴシック:こんにちは。abcdef!!</fo:block>
			<fo:block font-family="MS Pゴシック" font-size="16pt" font-weight="bold" font-style="italic">MS Pゴシック:こんばんは。abcdef!!</fo:block>

			<fo:block font-family="MS UI Gothic" font-size="16pt">MS UI Gothic:おはようございます。abcdef!!</fo:block>
			<fo:block font-family="MS UI Gothic" font-size="16pt" font-style="oblique">MS UI Gothic:こんにちは。abcdef!!</fo:block>
			<fo:block font-family="MS UI Gothic" font-size="16pt" font-style="italic">MS UI Gothic:こんにちは。abcdef!!</fo:block>
			<fo:block font-family="MS UI Gothic" font-size="16pt" font-weight="bold">MS UI Gothic:こんにちは。abcdef!!</fo:block>
			<fo:block font-family="MS UI Gothic" font-size="16pt" font-weight="bold" font-style="italic">MS UI Gothic:こんばんは。abcdef!!</fo:block>

			<fo:block font-family="MS 明朝" font-size="16pt">MS 明朝:おはようございます。abcdef!!</fo:block>
			<fo:block font-family="MS 明朝" font-size="16pt" font-style="oblique">MS 明朝:こんにちは。abcdef!!</fo:block>
			<fo:block font-family="MS 明朝" font-size="16pt" font-style="italic">MS 明朝:こんにちは。abcdef!!</fo:block>
			<fo:block font-family="MS 明朝" font-size="16pt" font-weight="bold">MS 明朝:こんにちは。abcdef!!</fo:block>
			<fo:block font-family="MS 明朝" font-size="16pt" font-weight="bold" font-style="italic">MS 明朝:こんばんは。abcdef!!</fo:block>

			<fo:block font-family="MS P明朝" font-size="16pt">MS P明朝:おはようございます。abcdef!!</fo:block>
			<fo:block font-family="MS P明朝" font-size="16pt" font-style="oblique">MS P明朝:こんにちは。abcdef!!</fo:block>
			<fo:block font-family="MS P明朝" font-size="16pt" font-style="italic">MS P明朝:こんにちは。abcdef!!</fo:block>
			<fo:block font-family="MS P明朝" font-size="16pt" font-weight="bold">MS P明朝:こんにちは。abcdef!!</fo:block>
			<fo:block font-family="MS P明朝" font-size="16pt" font-weight="bold" font-style="italic">MS P明朝:こんばんは。abcdef!!</fo:block>

			<fo:block font-family="メイリオ" font-size="16pt">メイリオ:おはようございます。abcdef!!</fo:block>
			<fo:block font-family="メイリオ" font-size="16pt" font-style="oblique">メイリオ:こんにちは。abcdef!!</fo:block>
			<fo:block font-family="メイリオ" font-size="16pt" font-style="italic">メイリオ:こんにちは。abcdef!!</fo:block>
			<fo:block font-family="メイリオ" font-size="16pt" font-weight="bold">メイリオ:こんにちは。abcdef!!</fo:block>
			<fo:block font-family="メイリオ" font-size="16pt" font-weight="bold" font-style="italic">メイリオ:こんばんは。abcdef!!</fo:block>
		</fo:flow>
	</fo:page-sequence>
</fo:root>

*1:boldとitalicを持っているメイリオを除く。ただしメイリオも斜体は一部のみ。"italic"、"oblique"を指定しても英字とか記号が斜体になるだけ。