From: "5.5" <5.5@...> Date: 2016-03-28T12:00:51+09:00 Subject: [ruby-list:50292] Windows の Pango でフォントサイズが丸められる 5.5 です。 既出かどうか分かりませんが,Windows の Pango でフォントサイズ が丸められる現象があります。 たとえば,5.5 pt にしようと思って 5.5 * Pango::SCALE * 0.75 を指定してやると,実際には 6 pt の大きさになってしまいます。 いろいろ実験すると,どうも pt 単位で四捨五入されるようです。 以下の環境で現象を確認しました。 Windows 7 ruby 2.2.4p230 (2015-12-16 revision 53155) [i386-mingw32] cairo (1.14.3 x86-mingw32) pango (3.0.7 x86-mingw32, 2.2.5 x86-mingw32) 一方,以下の環境では起こりませんでした。 CentOS release 6.7 (Final) cairo (1.14.1) pango (2.2.5) ※Ruby バージョンは記録を忘れましたが,2.1.5 あたりだったと  思います。 再現コードは下記のとおりです。 Cairo::Context#show_text と Pango とを比較しています。 Pango のほうは丸めが起こっているが一目瞭然です。 require 'pango' Pango::CairoFontMap.default = Pango::CairoFontMap.create(:freetype) surface = Cairo::PDFSurface.new __FILE__+".pdf", 500, 500 context = Cairo::Context.new surface str = "春夏秋冬東西南北" font = "IPAexGothic" context.select_font_face font context.translate 50, 50 x1 = 30 # show_text の X 座標 x2 = 120 # show_pango_layout の X 座標 8.step(10, 0.125).with_index do |font_size, i| y = 20 * i layout = context.create_pango_layout pango_size = (font_size * Pango::SCALE * 0.75).round attr_list, text = Pango.parse_markup %|#{str}| layout.attributes = attr_list layout.text = text # フォントサイズを表示 context.set_font_size 8 context.move_to 0, y + 7 context.show_text font_size.to_s # show_text 版 context.move_to x1, y + font_size * 0.88 context.set_font_size font_size context.show_text str # Pango 版 context.move_to x2, y context.show_pango_layout layout end surface.finish -- 5.5@moji.gr.jp