Ticket #28380

Foxit ReaderでRyumin-LightがMS Pゴシックになる

Open Date: 2012-05-13 18:43 Last Update: 2012-05-15 20:11

Reporter:
Owner:
(None)
Type:
Status:
Closed
Component:
(None)
MileStone:
(None)
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
Fixed
File:
None

Details

こんにちは。 「#28187: SumatraPDFでRyumin-LightがMSゴシックになる」とよく似た現象ですが、原因が異なるようなので別にチケットを立てました。

Foxit Readerでフォントを埋め込んでいないPDFを表示させると、Ryumin-Lightの部分がMS Pゴシックで代替されてしまいます。 手元で調べたところ、この問題はLuaTeX-jaリポジトリへの4/24のコミットが原因で発生しているようです。

commit 26319d93b104d5743794813c33e52c77e602998aの時点で作成したPDFでは、Ryumin-Lightは明朝体で代替されますが、commit 461d8c39f2899acf0bb251f638bbe118845828bcの時点で作成したPDFでは、ゴシック体で代替されるようになっています。 おそらくこのコミットでエンバグされたものだと思いますが、ltj-rmlgbm.luaの差分を見てもこの変更がどうして影響するのか私には分かりません。

手元ではとりあえずcommit 263~までrevertして対応していますが、もし原因が分かるようでしたら修正をお願いします。

※なお、SumatraPDFではcommit 461~以前の版で作成したPDFでもゴシック体で表示されているので、先のチケットとは別の問題だと考えられます。

Ticket History (3/8 Histories)

2012-05-13 18:43 Updated by: sirakaba
  • New Ticket "Foxit ReaderでRyumin-LightがMS Pゴシックになる" created
2012-05-13 19:33 Updated by: h7k
Comment

報告ありがとうございます.

commit 461d8c3 と 26319d9 の差分では,ltj-rmlgbm.lua の他に,ltj-cid-adobe-{japan1,korea1,gb1,cns1}.lua の 4 ファイルも変わっています. 非埋込フォント Ryumin-Light, GothicBBB-Medium などを(仮想的に)作る場合,これらのファイル内部の情報(今は日本語なので ltj-cid-adobe-japan1.lua)を利用します.

とりあえず,ltj-cid-adobe-japan1.lua だけを 26319d9 のバージョンに差し替えてみたらどうなるでしょうか?

2012-05-13 20:04 Updated by: h7k
Comment

h7k への返信

Foxit Reader 5.1.4 を使って,ltj-cid-*.lua のみを 26319d9 のものに置き換えて確認してみました.

ltj-cid-*.luaRyumin-LightGothicBBB-MediumHeiseiMin-W3HeiseiKakuGo-W5
最新MS PゴシックMS ゴシックMS 明朝MS Pゴシック
26319d9MS P明朝MS ゴシックMS 明朝MS P明朝

じゃあ,HeiseiMin-W3 を使えばよいか,というとそうでもなく,Adobe Reader だとMS Pゴシックで表示されるようです.

2012-05-15 11:15 Updated by: sirakaba
Comment

私の手元でもltj-cid-adobe-japan1.luaのみをcommit 26319d9のものに置き換えてみましたが、これだと問題なくFoxit Readerで表示できます。 結局、原因となっているのはcommit 4c1e00f6fdc9b96f2468fbebe5ffa40afd1d95fcの方であるようですが、可能であればこのRemoved gpos data from non-embedded fonts.の修正を戻すか、適切に表示できるよう直していただけると嬉しいです。 フォントを埋め込んでいない日本語PDFをFoxit Readerで表示するというのはマイナーな状況かもしれませんが、よろしくお願いします。

2012-05-15 12:00 Updated by: h7k
Comment

可能であればこのRemoved gpos data from non-embedded fonts.の修正を戻すか、適切に表示できるよう直していただけると嬉しいです。

ひとまず ltj-cid-adobe-*.lua を戻しておきました.

2012-05-15 16:08 Updated by: h7k
Comment

commit a81784d で新しい ltj-cid-adobe-*.lua を作ってみました.wine 上の Foxit Readerではうまく動いていますが,そちらではどうでしょうか.

よくわかりませんが, <U+0080 の文字の幅を上書きしていたのがいけないようです.

2012-05-15 18:59 Updated by: h7k
Comment

よくわかりませんが, <U+0080 の文字の幅を上書きしていたのがいけないようです.

pdf を比較して調べてみました.普通は中身が圧縮されていますが, \pdfcompresslevel=0 で非圧縮にできます.

pdf 中には

<</Type/FontDescriptor/FontName/Ryumin-Light/Flags 4/FontBBox[0 -120 1000 880]/Ascent 880/CapHeight 880/Descent -120/ItalicAngle 0/StemV 73/XHeight 503>> % 5 0 obj
のような行があります.この /StemV キーの値が,

  • commit a81784d, 26319d9 由来の pdf だと /StemV 73
  • commit 461d8c3 由来の pdf では /StemV 333← 1/3 全角!

となっています.Ryumin-Light がゴシック体で代用された原因はここかな,と考えています. Foxit Reader に「明朝体にしては /StemV が大きすぎる」と思われたのでしょうか?


ここから細かい話になります(一応備忘録として書いておきます). /StemV キーの値を決めている場所を探したところ,LuaTeX のソース luatexdir/pdf/writefont.w に

static void preset_fontmetrics(fd_entry * fd, internal_font_number f)
{
    (中略)
    fd->font_dim[STEMV_CODE].val =
        divide_scaled(char_width(f, '.') / 3, font_size(f), 3);
    (後略)
}
というコードを見つけました.半角ピリオドの文字幅の 1/3 として決めているようです. commit 461d8c3 では,確かに半角ピリオドを確かに全角幅扱いにしてました.

2012-05-15 20:11 Updated by: sirakaba
  • Resolution Update from None to Fixed
  • Status Update from Open to Closed
  • Ticket Close date is changed to 2012-05-15 20:11
Comment

wine 上の Foxit Readerではうまく動いていますが,そちらではどうでしょうか.

こちらでも、commit a81784dで問題なく表示できました。 一応原因(と思しきもの)も判明しましたし、チケットは修正済み・完了に変更しておきますね。

迅速な対応、ありがとうございました。

Attachment File List

No attachments

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login