Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Broken text layout at page break when ruby-text font size is larger than usual #1401

Open
MurakamiShinyu opened this issue Oct 24, 2024 · 11 comments · Fixed by #1404 · May be fixed by #1426
Open

Broken text layout at page break when ruby-text font size is larger than usual #1401

MurakamiShinyu opened this issue Oct 24, 2024 · 11 comments · Fixed by #1404 · May be fixed by #1426
Assignees
Labels

Comments

@MurakamiShinyu
Copy link
Member

MurakamiShinyu commented Oct 24, 2024

公式サンプルの『銀河鉄道の夜』を閲覧したとき、何らかの条件によって、改ページされるところで文字間が異常に開く、あるいは一文字だけの行ができるといったテキストレイアウトの異常が発生することがあります。再現する条件を調べたところ、Chromeの「設定」→「デザイン」→「フォントをカスタマイズ」の「最小フォントサイズ」を9以上の値にするとこの現象が起きました。

テスト:
https://vivliostyle.org/viewer/#src=https://vivliostyle.github.io/vivliostyle_doc/samples/gingatetsudo/index.html

追記:最小フォントサイズ設定をしなくても、CSSでルビのフォントサイズを大きめに指定すると再現します。以下はルビのフォントサイズを11pxに指定したテスト:

https://vivliostyle.org/viewer/#src=https://vivliostyle.github.io/vivliostyle_doc/samples/gingatetsudo/index.html&style=data:,/*%3Cviewer%3E*/%0A/*%3C/viewer%3E*/%0Aruby%3Ert%7Bfont-size:11px%7D

スクリーンショット:

Screenshot 2024-10-24 12 06 19

Screenshot 2024-10-24 12 06 42

Screenshot 2024-10-24 12 07 15

Screenshot 2024-10-24 12 07 33

@MurakamiShinyu MurakamiShinyu self-assigned this Oct 24, 2024
@MurakamiShinyu MurakamiShinyu changed the title Broken text layout at page break caused by Chrome's minimum font size setting Broken text layout at page break when ruby-text font size is larger than usual Oct 24, 2024
@skmtjny
Copy link

skmtjny commented Oct 25, 2024

@MurakamiShinyu

インラインでSVGを挿入した際にも似た現象が発生していたのでお知らせします。

image
241025.zip

@MurakamiShinyu
Copy link
Member Author

@skmtjny

インラインでSVGを挿入した際にも似た現象が発生していたのでお知らせします。

ありがとうございます。調べます

@MurakamiShinyu
Copy link
Member Author

ルビによって起きる不具合は v2.30.0 での次の修正に問題があったためでした:

これについては、 PR #1404 でのとりあえずの修正 2bb4d0e で解決します。

しかし、 #1401 (comment) で報告をもらったインラインSVGでの不具合は、別の原因のようです。
v2.19.2 での次の修正に問題があるようです。(この修正をする前のものでは問題が起きない)

この修正を見直します。

@MurakamiShinyu
Copy link
Member Author

インラインSVGでの不具合は別の原因なので、新しいissueに分けました:

@skmtjny
Copy link

skmtjny commented Nov 25, 2024

@MurakamiShinyu さま

確かなことはいえませんが、いくつかテストしてみた範囲では
rubyが連続する場合では不具合が残っているような感じがします。
image

241125.zip

@MurakamiShinyu
Copy link
Member Author

ルビだけの問題ではなくて、行の途中に前方(block-start側)にはみ出しているインライン要素があって、そのインライン要素だけがページ/段の終わりに収まる位置にあるという条件で発生している不具合でした。

<span style="vertical-align: 2rem; font-size: 0.33em">くけこ</span> というインライン要素によってこれが起きる例:

https://gist.githubusercontent.com/MurakamiShinyu/b496dbc2a0e181f34f5ab740f80249b7/raw/test1401c1.html

Test: https://vivliostyle.vercel.app/#src=https://gist.githubusercontent.com/MurakamiShinyu/b496dbc2a0e181f34f5ab740f80249b7/raw/test1401c1.html

Screenshot:
Screenshot 2024-11-27 10 27 29

@skmtjny
Copy link

skmtjny commented Dec 2, 2024

@MurakamiShinyu さま
修正ありがとうございます。

テストしていたところ、崩れが発生するケース、しないケースが見られたため
いくつかサンプルを作ってみました。

影響を与える要素としては確認できたのは以下です。
・rubyタグの連続
・rubyタグが設定されている文字の位置
・rbタグの有無
・段落の文字数

他にもあるかもしれませんが取り急ぎサンプルデータをお送りします。

241202.zip

@MurakamiShinyu
Copy link
Member Author

@skmtjny 調査ありがとうございます。修正がまだ不十分でした。issue再々オープンします。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment