From: Kouhei S. <ko...@co...> - 2015-01-25 12:05:59
|
須藤です。 In <CA+...@ma...> "[ruby-gnome2-devel-ja] フォント混在の縦方向調整について" on Thu, 22 Jan 2015 11:09:50 +0900, Hiroyuki Sato <hir...@gm...> wrote: > やりたいこと: > 複数フォント使用時に縦方向の位置をあわせたい。 > > サンプルコード > https://gist.github.com/hiroyuki-sato/a0639cc9d4e10acb1bed > > 上記URLの下方にあるpngファイルをご覧ください。 > > 左の文字はIPAex P明朝フォント > 右の文字は源真 ゴシックです。 > > フォントに関しては素人なのですが、文字本体の大きさはどちらも同じようです。 > > しかし、文字の上下にある空白領域がフォントによって異なるようでフォントを > 現在取得しているテキストの高さはそれぞれ値が異なります。そのため、 > 文字の位置がずれてしまいます。 > > 例えば文字の本体情報(メトリック?)を取得して位置を調整する方法はありますでしょうか? context.translate(next_x, 0) としているところを ja = Pango::Language.new("ja") ipa_p_mincho = Pango::FontDescription.new("IPA P明朝 64") genshin_gothic = Pango::FontDescription.new("源真ゴシック 64") ipa_p_mincho_metrics = layout.context.get_metrics(ipa_p_mincho, ja) genshin_gothic_metrics = layout.context.get_metrics(genshin_gothic, ja) ascent_difference = ipa_p_mincho_metrics.ascent - genshin_gothic_metrics.ascent context.translate(next_x, ascent_difference / Pango::SCALE) とするとどうでしょうか。 |