一般的な Adobe Myriad Pro フォントがインストールされています。これらには、ミリアド プロ レギュラー、ミリアド プロ ボールド、ミリアド プロ セミボールドが含まれます。CTFontRef baseFontMyriad Pro Regular を指す があり、必要なフォント サイズが であるとしsizeます。次のコードを実行します。
CTFontRef boldFont = CTFontCreateCopyWithSymbolicTraits(baseFont, size, NULL, kCTFontBoldTrait, kCTFontBoldTrait);
返されるフォントは Myriad Pro Bold ではなく、Myriad Pro Semibold です。
名前付きスタイル 'Bold' を要求する以外に、代わりに Myriad Pro Bold を返すように強制する方法はありますか? 私は、このコードを完全に一般的なスタイル名にすることなく、完全に汎用的なものにしたかったのです。
最初にフォントを作成するときに属性ディクショナリの一部として太字の特性を渡すなど、さまざまな順列でこれを試しました。また、フォント自体を少しいじりました。太字フォントの太さは表で 700 で<OS/2>、半太字フォントの太さは 600 です。PANOSE の太さはこれに対応しています。ただし、セミボールド フォントとボールド フォントmacStyleの表のフィールドには両方ともボールド フラグが設定されているため、おそらくこれが Core Text で使用されているものです。<head>しかし、それをより差別的にする方法はありますか?