EPUB 日本語組版拡張仕様の試案を公開しました

村上です。

村田真さんと私による EPUB 日本語組版拡張仕様の試案を公開しました:

EPUB仕様の日本語組版拡張を目指して(Version 0.8)
http://nadita.com/murakami/epub/epub_JapaneseTextLayout_ja.html

この試案で、最も議論になるだろうところは、次のところかと思います。

3. 縦書きと横書きに共通のスタイル指定
3.1 論理的方向指定
3.2 論理的プロパティ
3.2.1 論理的 margin プロパティ: margin-before, margin-after, margin-start, margin-end
3.2.2 論理的 padding プロパティ: padding-before, padding-after, padding-start, padding-end
3.2.3 論理的 border プロパティ: border-before, border-after, border-start, border-end, etc.
3.2.4 論理的 width/height プロパティ: logical-width, logical-height, min-logical-width, etc.

CSS3 Text Layout 仕様で標準化を目指している論理的プロパティを使う
としています。

この議論については前にも紹介しています:
http://lists.w3.org/Archives/Public/public-html-ig-jp/2010May/0020.html

また、今も www-style@w3.org ML 上で議論が続いています:

Re: [css3-text-layout] New editor's draft - margin-before/after/start/end etc. 
http://lists.w3.org/Archives/Public/www-style/2010May/thread.html#msg33
http://lists.w3.org/Archives/Public/www-style/2010Jun/thread.html#msg3

ホーコン・リー氏と同じく CSS 仕様に margin-before, margin-after,
margin-start, margin-end, ... などたくさんのプロパティを追加するなんて
無茶だと思う人もいるかと思います。しかし、これが CSS 標準で縦書きを
使えるものにするためには不可欠のものだと私は思っています。

(縦書きだけではなく、アラビア語やヘブライ語のような右から左に書く
言語のスタイル指定においても、絶対方向指定しかできない今の CSS 仕様は
問題があり、そのために *-start/end についてはずっと前から提案されていて、
WebKit と Mozilla では独自拡張として実装されてます)

最近出てきている縦書き対応のEPUBビューワーなどを試すと、
どれも縦書きモードでは margin-top が右を指すという90度回転方式
がとられていて、このままではそのような非標準CSS実装が、日本だけで
ひろまるということが起きそうです。
(EPUB仕様は XHTML と CSS を使うものなので、そのビューワーは、
Webブラウザと同じで (X)HTML+CSS の組版エンジンからなります)

W3C CSS WG では、margin-top は縦書きだろうが絶対に上を指すという
ことが前から決定しています。
(そのことが再確認された3月のCSS WGの議事録)
[CSSWG] Minutes and Resolutions 2010-03-24
http://lists.w3.org/Archives/Public/www-style/2010Mar/0539.html
(この議事録でも、ホーコン・リー氏(howcome)と他の人々による *-start
などの議論があり、興味深いです)

ですので、margin-top が右マージンになるような縦書きの実装は CSS 標準
から外れて問題なのですが、margin-before などが使えない現状では、
過渡的な縦書き実装として、やむを得ないものではあると思います。

そのような縦書き実装のひとつで「ブログ出版局」による実装を最近知りました。
公開されているそのドキュメントには、CSSのプロパティの設定を90度回転
させるということが書かれています。

ブログ出版局サポートサイト - 本文スタイルの反映(HTML, CSS)
http://blog.print.cssj.jp/?itemid=197
引用:
	……また、単に本文が縦書きになるだけでなく、スタイルが90度回転
	されます。例えば、<div style="border-top: 1px solid">... のよう
	にCSSで上に境界線が指定されたボックスがあった場合、縦書きレイア
	ウトでは境界線は右側に表示されます。この規則はテーブルの境界線や、
	幅、高さ、マージン、パディング、にも適用されます。そのため、横書
	きのスタイル指定の趣旨を壊さずに、縦書きにすることが出来ます。

これは、現時点で HTML+CSS で縦書きを実現するための、現実的な方法だとは
思います。縦書き用に、スタイルシートを、margin/border/padding など方向が
関係するところをすべて直して作りなおさなければ、縦書きにできないという
のであっては、あまりにも不便だからです。

もしも margin-before など論理的プロパティの標準化ができなければ、
90度回転方式の非標準CSS縦書きのEPUB実装が永続化することになります。
そうするとCSS3の縦書きの標準化は破綻します。
CSS3 ドラフトの writing-mode プロパティでの縦書きの指定は、
top/bottom/left/right の方向を変えるということは意図されてません。
writing-mode: rl-tb (direction: rtl と同じ)で left が右側になったり
しないのに writing-mode: tb-rl で left が上を指すようになるのでは
仕様の整合性がなくなります。

私は、margin-before など論理的プロパティが標準化されて、実装も進み
いずれそれを使ってスタイルシートが書くことが普通になることを
願っています。
90度回転方式での縦書きは、それまでの過渡的なものとしての役割であれば
よいなと思います。


-- 
村上 真雄 (MURAKAMI Shinyu)
http://twitter.com/MurakamiShinyu
Antenna House Formatter:
http://www.antenna.co.jp/AHF/
http://www.antennahouse.com

Received on Tuesday, 1 June 2010 08:54:46 UTC