2 返信 最新の回答 日時: Feb 1, 2003 8:57 AM ユーザー:(kumaochan)

    異体字情報の取得について

      書式->文字パレットで異体字を選択すると黄色いポップアップで文字コードと"全異体字(aalt)"などと出ますよね。たとえば小塚明朝Proの"誠"(グリフIDが13871の方)にはこ れがでます。IAltGlyphAttrインタフェースを使えば旧字体/エキスパート字形/JIS78/半角等の情報は取得できますが、この字形情報と異体字情報とは別物なのでしょうか?この "誠"の異体字をkAltGlyphAttrBossとIAttrReportを使ってDescriptionを表示すると" + 異体字: 標準字形"となってしまい、異体字情報は取得できません。どのインターフェースを利用すると取得できますか?
        • 1. Re: 異体字情報の取得について
          OpenTypeの異体字情報を獲得するAPIは、IAltGlyphAttr::GetFeatureList()のような気がします。OpenTypeFeatureList構造体が返さ れますが、OneOTFeatureのK2Vectorなので、OneOTFeatureの定義を見ると、const char* OneOTFeature::GetFeature() const なんてメソッドがありますね。
          その"Feature"はOpenTypeの機能のことをさしているようですが、ここに機能リストらしきものを見つけました。

          http://partners.adobe.com/asn/developer/opentype/appendices/feattags.html

          'aalt'もきちんと記載されてます。

          OpenType機能を設定したいときは、「逆」をすればよいのではないでしょうか。

          しかし、OpenTypeフォントの異体字ではない場合、プレースホルダ文字(kTextChar_SpecialGlyphまたは kTextChar_NonRomanSpecialGlyph)を入れて、その文字にグリフIDを保存するkTextAttrSpecialGlyphBossの属性をあてるという手もあ るようです。

          どこかにInsertGaiji()だかInsertItaiji()というメソッドがついたサンプルがあった記憶があります。。。
          • 2. Re: 異体字情報の取得について
            Level 1
            伊佐桑さん、ありがとうございます。
            早速調べました。異体字の場合はIAltGlyphAttr::GetFeatureListが1になっているので、これからOneOTFeatureを取得したら[aalt]と取得できまし た。
            Feature Tagsというんですか。初めて聞きました。ここらへんでグリフIDを管理するなどしてるんですね、多分。
            さらにaaltから日本語の"全異体字"を取得する方法と、異体字を挿入する方法(InsertGaiji...気になります)も質問させていただこうと思ったのですが、もう少し勉強してから にします。まずはご報告まで。