FO Plug-inでFormatterを使う (続き)

■ ご注意(続き)
(2) ZapfDingbats
雑談になりますが、font-mappings.xmlのZapfDingbatsはそのまま残してあります.このフォントを使う契機は次の一箇所だけです.
    <!-- [DITA-OT]\demo\fo\cfg\fo\i18n\ja_JP.xml-->
    <alphabet char-set="Symbols">
        <character-set>
            <!-- I don't like this value, let's arrive at an official char -->
            <character>&#x27A4;</character>
            <character>&#x2605;</character>
        </character-set>
    </alphabet>
U+27A4は右矢印の先端(のようなもの)、U+2605は"★"です.作者が何を意図しているのかわかりませんが、この2文字だけはZapfDingbatsを選択するようになっています.
 
ところが、ZapfDingbatsというType1フォントはPDFの基本14フォントの一つですがなかなかの曲者です.通常、Windowsにインストールするには、ZD______.PFB、ZD______.PFMのペアで使用しますが、これをやってしまうと、U+27A4、U+2605からマッピングできません.Latin1からのマッピングになってしまいます.
 
うまく使うためには、ZD______.PFM、とZD______.AFMのペアを使わねばなりませんが、話はまだややこしくなります.通常Type1フォントは、Unicodeのコードポイント→AGL(Adobe Glyph Listのグリフ名)→当該フォントのグリフ番号という順でマッピングします.
 
例えばU+0023の"#"は、U+0023→AGLの"numbersign"にマッピングされます.それから、Helveticaを使うならHelvetica.afmで"numbersign"からHelvetica.pfbの35番目のグリフにマッピングされます.つまりUnicodeからのマッピングにはUnicodeとグリフ名の対応を定義したAGL(http://partners.adobe.com/public/developer/en/opentype/glyphlist.txt)がとても重要な役割を果たすのですが、ZapfDingbatsのグリフ名は、"a1","a2","a202"というように特殊で、AGLには載っていません.AdobeはZapfDingbats専用のグリフ名とUnicodeマッピング表を公開していて(http://partners.adobe.com/public/developer/en/opentype/zapfdingbats.txt)、これをFormtterにして指定してやらねばなりません.例えばfont-config.xmlに次のように指定します.
 
  <font-folder path="...">
      <font-entry file="ZD______.AFM"
          glyph-list="zapfdingbats.txt"/>
  </font-folder>
 
ところが手元のWindows64bit版のFormatterで試してみましたが、どうしてもこの2文字はZapfDingbatsではなくてMS P明朝マッピングされてしまいました.とりあえずグリフがでるから良いといえば良いのですが...この件はまたあとで調べてみたいと思います.