vivliostyle/vivliostyle.js

writing-mode on `@page` not inherited properly to margin boxes

Closed this issue · 1 comments

継承プロパティであるwriting-modeは、ルート要素→@page→マージンボックスへと継承されるので、ルート要素に縦書きの指定(writing-mode: vertical-rl;)をするとマージンボックス内も縦書きになる。本文を縦書きにしてもマージンボックス内は横書きにしたい場合、@page { writing-mode: horizontal-tb; } と指定すると @page内の各マージンボックスに継承されて、マージンボックス内が横書きになるべきである。ところが、Vivliostyleでそれを試すと、ルートに縦書き、@pageに横書きの指定をした場合、マージンボックス内が横書きにならない不具合が見つかった。

テストサンプル(ルートに縦書き、@pageに横書きの指定):
https://gist.githubusercontent.com/MurakamiShinyu/8b8e7ffd13152cf1af10133e6b1d1aa6/raw/writing-mode-on-root-and-page.html

Vivliostyle Viewer (v2.30.4) でテスト:
https://vivliostyle.github.io/viewer/v2.30.4/#src=https://gist.githubusercontent.com/MurakamiShinyu/8b8e7ffd13152cf1af10133e6b1d1aa6/raw/writing-mode-on-root-and-page.html

テスト結果のスクリーンショット(問題あり):
Screenshot 2024-10-16 0 13 00

@pageではなくて、マージンボックスに直接 writing-mode: horizontal-tb; を指定すると、問題なくマージンボックス内が横書きになる。

ルートに縦書き、マージンボックスに横書きの指定をした場合のテストサンプル:
https://gist.githubusercontent.com/MurakamiShinyu/8b8e7ffd13152cf1af10133e6b1d1aa6/raw/writing-mode-on-root-and-margin-boxes.html

Vivliostyle Viewer (v2.30.4) でテスト:
https://vivliostyle.github.io/viewer/v2.30.4/#src=https://gist.githubusercontent.com/MurakamiShinyu/8b8e7ffd13152cf1af10133e6b1d1aa6/raw/writing-mode-on-root-and-margin-boxes.html

テスト結果のスクリーンショット(問題なし):
Screenshot 2024-10-16 0 13 09

この問題はCSSページ仕様の次のissueに関連してVivliostyleをテストしたときに見つかったものであり、テストサンプルはこのissueにあったものを元にしている: