■ ご注意(続き)
(2) ZapfDingbats
雑談になりますが、font-mappings.xmlの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>➤</character>
<character>★</character>
</character-set>
</alphabet>
<alphabet char-set="Symbols">
<character-set>
<!-- I don't like this value, let's arrive at an official char -->
<character>➤</character>
<character>★</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>
<font-entry file="ZD______.AFM"
glyph-list="zapfdingbats.txt"/>
</font-folder>