Leopard で BDF UM+ が使えない? (2)

いろいろ試したけどダメだった記録。
まず、Font Book の「フォントを検証」で【"name" テーブルの使用性】で問題が出たので、name テーブルについて調べてみた。

どうやら name テーブルには、プラットフォームや言語設定などのプロパティを記述するらしい。
次に、実際の name テーブルを見てみることにしてみた。利用したのは、Apple の Font Tools。パッケージには複数のコマンドラインツールが含まれており、今回は ftxdumperfuser を利用した。
使い方は、Apple Font Tool Suite Manual (pdf)ヘチマch:Kanmon続き を参考に、

#
# (1) bdfUMplus.ttf から name テーブルを取り出し、name.xml に出力する
#
$ ftxdumperfuser -t name -o name.xml bdfUMplus.ttf

#
# (2) bdfUMplus.ttf に name.xml で指定した name テーブルを書き込む
#
$ ftxdumperfuser -t name -d name.xml bdfUMplus.ttf

のようにした。
(1) の段階で name.xml は、下記のように出力された。

?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE nameTable [
<!ELEMENT nameTable (nameTableEntry+)>
<!ELEMENT nameTableEntry (localizedName+)><!ELEMENT localizedName (#PCDATA)>
<!ATTLIST nameTableEntry nameTypeID CDATA #REQUIRED
  nameTypeName CDATA #IMPLIED>
<!ATTLIST nameTable fontName CDATA #IMPLIED>
<!ATTLIST localizedName platformID CDATA #REQUIRED
  platformName CDATA #IMPLIED
  scriptID CDATA #REQUIRED
  scriptName CDATA #IMPLIED
  languageID CDATA #REQUIRED
  languageName CDATA #IMPLIED
  isRawHex CDATA #IMPLIED
>
]>

<!--

  Data generated  Sat Oct 18 14:25:34 2008

  Generated by ftxdumperfuser, version 1.3.4
  FTXVersion 1.2.8
-->

<nameTable>
  <nameTableEntry nameTypeID="0" nameTypeName="Copyright">
    <localizedName platformID="1" platformName="Macintosh" scriptID="0" scriptName="Roman"  languageID="11" languageName="Japanese" isRawHex="NO">(C) 2002-6 underforest design/KaoriYa</localizedName>
    <localizedName platformID="3" platformName="Microsoft" scriptID="1" scriptName="Unicode"  languageID="1033" isRawHex="NO">(C) 2002-6 underforest design/KaoriYa</localizedName>
    <localizedName platformID="3" platformName="Microsoft" scriptID="1" scriptName="Unicode"  languageID="1041" isRawHex="NO">(C) 2002-6 underforest design/香り屋</localizedName>
  </nameTableEntry>
  <nameTableEntry nameTypeID="1" nameTypeName="Family">
    <localizedName platformID="1" platformName="Macintosh" scriptID="0" scriptName="Roman"  languageID="11" languageName="Japanese" isRawHex="NO">BDF UM+</localizedName>
    <localizedName platformID="3" platformName="Microsoft" scriptID="1" scriptName="Unicode"  languageID="1033" isRawHex="NO">BDF UM+</localizedName>
    <localizedName platformID="3" platformName="Microsoft" scriptID="1" scriptName="Unicode"  languageID="1041" isRawHex="NO">BDF UM+</localizedName>
  </nameTableEntry>
  <nameTableEntry nameTypeID="2" nameTypeName="Style">
    <localizedName platformID="1" platformName="Macintosh" scriptID="0" scriptName="Roman"  languageID="11" languageName="Japanese" isRawHex="NO">Regular</localizedName>
    <localizedName platformID="3" platformName="Microsoft" scriptID="1" scriptName="Unicode"  languageID="1033" isRawHex="NO">Regular</localizedName>
    <localizedName platformID="3" platformName="Microsoft" scriptID="1" scriptName="Unicode"  languageID="1041" isRawHex="NO">Regular</localizedName>
  </nameTableEntry>
  <nameTableEntry nameTypeID="3" nameTypeName="Unique">
    <localizedName platformID="1" platformName="Macintosh" scriptID="0" scriptName="Roman"  languageID="11" languageName="Japanese" isRawHex="NO">BDF UM+</localizedName>
    <localizedName platformID="3" platformName="Microsoft" scriptID="1" scriptName="Unicode"  languageID="1033" isRawHex="NO">BDF UM+</localizedName>
    <localizedName platformID="3" platformName="Microsoft" scriptID="1" scriptName="Unicode"  languageID="1041" isRawHex="NO">BDF UM+</localizedName>
  </nameTableEntry>
  <nameTableEntry nameTypeID="4" nameTypeName="Full">
    <localizedName platformID="1" platformName="Macintosh" scriptID="0" scriptName="Roman"  languageID="11" languageName="Japanese" isRawHex="NO">BDF UM+</localizedName>
    <localizedName platformID="3" platformName="Microsoft" scriptID="1" scriptName="Unicode"  languageID="1033" isRawHex="NO">BDF UM+</localizedName>
    <localizedName platformID="3" platformName="Microsoft" scriptID="1" scriptName="Unicode"  languageID="1041" isRawHex="NO">BDF UM+</localizedName>
  </nameTableEntry>
  <nameTableEntry nameTypeID="5" nameTypeName="Version">
    <localizedName platformID="1" platformName="Macintosh" scriptID="0" scriptName="Roman"  languageID="11" languageName="Japanese" isRawHex="NO">2006.06.05</localizedName>
    <localizedName platformID="3" platformName="Microsoft" scriptID="1" scriptName="Unicode"  languageID="1033" isRawHex="NO">2006.06.05</localizedName>
    <localizedName platformID="3" platformName="Microsoft" scriptID="1" scriptName="Unicode"  languageID="1041" isRawHex="NO">2006.06.05</localizedName>
  </nameTableEntry>
  <nameTableEntry nameTypeID="6" nameTypeName="PostScript">
    <localizedName platformID="1" platformName="Macintosh" scriptID="0" scriptName="Roman"  languageID="11" languageName="Japanese" isRawHex="NO">BDF UM+</localizedName>
    <localizedName platformID="3" platformName="Microsoft" scriptID="1" scriptName="Unicode"  languageID="1033" isRawHex="NO">BDF UM+</localizedName>
    <localizedName platformID="3" platformName="Microsoft" scriptID="1" scriptName="Unicode"  languageID="1041" isRawHex="NO">BDF UM+</localizedName>
  </nameTableEntry>
  <nameTableEntry nameTypeID="7" nameTypeName="Trademark">
    <localizedName platformID="1" platformName="Macintosh" scriptID="0" scriptName="Roman"  languageID="11" languageName="Japanese" isRawHex="NO">UM+ (tm)</localizedName>
    <localizedName platformID="3" platformName="Microsoft" scriptID="1" scriptName="Unicode"  languageID="1033" isRawHex="NO">UM+ (tm)</localizedName>
    <localizedName platformID="3" platformName="Microsoft" scriptID="1" scriptName="Unicode"  languageID="1041" isRawHex="NO">UM+ (tm)</localizedName>
  </nameTableEntry>
</nameTable>

この name.xml について、正常に表示される M+ 1c black フォントの name テーブル出力を参考に

  • すべての nameTableEntry の子供にある「localizedName ... languageID="1041"」の行をまるごと消す
  • 「languageID="11" languageName="Japanese"」を「languageID="0" languageName="English"」に置き換える
  • M+ 1c black の name テーブルをそのまま書き込む

の 3 つの方法でいじくってみたのですが、結果はダメ。フォントプレビューが真っ白で表示されませんでした。おしまい(泣)。
・・・問題は name テーブルではないのかもしれないです。