From: Kouhei Sutou Date: 2013-05-13T23:01:27+09:00 Subject: [ruby-list:49354] Re: Pango で縦組ができない 須藤です。 In <5190B878.3020607@moji.gr.jp> "[ruby-list:49352] Pango で縦組ができない" on Mon, 13 May 2013 20:15:17 +0900, "5.5" <5.5@moji.gr.jp> wrote: > Pango で縦組をやらせたいのですが,base_gravity に :east を与える > と,フォントが見つけられないと言って死にます。 > > 再現コードはこのメールの末尾に。 再現コードがあって助かります。 Debian GNU/Linux sidで動かしてみたところ、とくにエラーも警告 も出ずに最後まで実行できました。生成された画像を確認したとこ ろ、:eastの方は(横に寝た)縦書きになっていました。 バージョン: ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux] pango gem 2.0.0 Pango本体 1.30.0 cairo gem 1.12.4 cairo本体 1.12.14 Pangoとcairoはフォントを処理するモジュールを取り替えられるよ うになっているので、それが違うのかもしれません。以下のスクリ プトを実行すると何が出力されるか教えてもらえませんか? require "pango" Cairo::ImageSurface.new(:argb32, 1, 1) do |surface| Cairo::Context.new(surface) do |context| font_map = context.create_pango_layout.context.font_map p font_map.class p font_map.gtype end end 手元では以下が出力されました。 Pango::CairoFcFontMap GLib::Type["PangoCairoFcFontMap"] 「PangoCairoCoreTextFont」というのが出力されるんじゃないかと 予想しています。もしそうなら layout=context.create_pango_layout の後に layout=context.create_pango_layout layout.context.font_map=Pango::CairoFcFontMap.new を入れれば動くようになるかもしれません。