41

EPUBの日本語レイアウト できること/苦手なこと

Embed Size (px)

DESCRIPTION

INDD 2012 Tokyo B-2 EPUBの概要・事例 発表資料

Citation preview

Page 1: EPUBの日本語レイアウト できること/苦手なこと
Page 2: EPUBの日本語レイアウト できること/苦手なこと

EPUBの日本語レイアウトできること/苦手なこと

高瀬 拓史(イースト株式会社)[email protected]

INDD 2012 【B2】EPUB概要 事例20 July 2012

Page 3: EPUBの日本語レイアウト できること/苦手なこと

自己紹介• 高瀬 拓史(たかせ ひろし)• イースト株式会社勤務• EPUB普及を公私に渡ってお手伝い。• JEPA「Minimal Requirements on EPUB

for Japanese Text Layout」• 電子出版環境整備事業「EPUB日本語拡張仕様策定」

• a.k.a. ろす/@lost_and_found

Page 4: EPUBの日本語レイアウト できること/苦手なこと

今日お話しすること

• EPUB 3では新たに様々な日本語テキストの表現が可能となった。• では、どんな表現ができるの? どんな表現が苦手なの?• 仕様とビューワの対応状況から見てゆきましょう。

Page 5: EPUBの日本語レイアウト できること/苦手なこと

前提知識:仕様編• コンテンツのレイアウトはCSSで指定するのが基本。

• EPUB 3の仕様では(ビューワが対応すべき)CSSのプロパティや制約が定義されている。→ EPUB 3 CSS Profile

• CSS2.1 + CSS3の一部で構成される。

• 策定途上にある不安定なプロパティや値には、“-epub-”の接頭辞を付けた利用が推奨される。例: html{-epub-writing-mode:vertical-rl;}

CSS2.1

CSS3

EPUB 3 CSS Profile

Page 6: EPUBの日本語レイアウト できること/苦手なこと

前提知識:ビューワ編• ビューワが採用する描画エンジンの主要なものに、WebKit と RMSDK(Adobe Reader Mobile SDK) がある。• WebKit

• Appleが中心となって進めるオープンソースのエンジン。• ChromeなどのブラウザやiBooks、Readium、NetFront

Book Reader EPUB Edition、Kindle Fireなどが採用。• RMSDK

• Adobeが販売するビューワ開発キット。• Sony ReaderやNook、OverdriveなどのEPUBビューワで採用。

• EPUB 2のエンジンにEPUB 3の日本語レイアウトをサポートしたもの。

• WebKitとRMSDKの両方を搭載したビューワもある。

Page 7: EPUBの日本語レイアウト できること/苦手なこと

チェック内容• 出版社が重視する日本語組版表現は電書協「EPUB3.0日本語組版要望表」によくまとまっています。

• …が、時間的な制約により、項目は 超基本的なものにとどめます。

• HTMLとCSSに関する項目にとどめます。

• 対象はWebKit(r122778)for Mac OS XとAdobe Digital Editions 1.8 Preview4 for Mac OS Xだけです。

• 私の独断と偏見で以下の判定します。飽くまで現時点のものです。

使える 注意が必要 厳しい

Page 8: EPUBの日本語レイアウト できること/苦手なこと

(単純な)縦書き• CSS Writing Mode Level 3のwriting-modeプロパティを利用する。

• horizontal-tb: 横書き• vertical-rl: 行が右から左に送られる縦書き。=日本語の縦書き

• vertical-lr: 行が左から右に送られる縦書き。WebKit NB

r122778 (Mac OS X)

Adobe Digital Editions1.8 prev4

(Mac OS X)

使える 使える

Page 9: EPUBの日本語レイアウト できること/苦手なこと

• いずれのエンジンでも縦書きで文章を表示できる。• 縦書き固有のグリフにも対応している。

WebKit RMSDK

Page 10: EPUBの日本語レイアウト できること/苦手なこと

テキストの縦横混在• 一つのページの中で縦書きと横書きのテキストが混在するケース。• 縦書きの書籍でも表やキャプションなどは横書きの場合がある。• 幾つかのブロックにそれぞれ異なる

writing-modeを指定して検証。WebKit NB

r122778 (Mac OS X)

Adobe Digital Editions1.8 prev4

(Mac OS X)

注意が必要 厳しい

Page 11: EPUBの日本語レイアウト できること/苦手なこと

WebKit RMSDKWebKit

• WebKitでは全てのwriting-modeをサポート。ただしページ表現するビューワではリフローの結果レイアウトが破綻する可能性もある。

• RMSDKではwiriting-modeを指定できるのがhtml要素のみであるため、混在は不可能。

• RMSDKを前提とした場合、ページ内での縦横の混在は断念せざるをえない。

Page 13: EPUBの日本語レイアウト できること/苦手なこと

縦中横• CSS Writing Mode Level 3にあったtext-

combineプロパティを利用して表現する。• このプロパティは現在のCSSの草稿にはもはや存在せず、text-combine-horizontalとtext-combine-modeに置き換わっている。

• まだ安定していないプロパティと言える。WebKit NB

r122778 (Mac OS X)

Adobe Digital Editions1.8 prev4

(Mac OS X)

注意が必要 注意が必要

Page 14: EPUBの日本語レイアウト できること/苦手なこと

• エンジンによって文字の収め方、行内に収まらない場合の挙動が異なる。

• WebKitは小さいグリフを用い、収まらない場合は縦中横を解除。RMSDKはグリフは変化せず、収まらない場合は隣接する行に重なる。

• 行高(line-height)は十分に確保すること。

• 3桁以上の縦中横は利用する必然性を吟味し、代替表現も検討すること。

WebKit RMSDK

Page 15: EPUBの日本語レイアウト できること/苦手なこと

text-combine*CSS3 Writing Mode

20120301WDEPUB 3 CSS Profile(=20110428WD)

WebKit NBr122778

(Mac OS X)

Adobe Digital Editions1.8 prev4

(Mac OS X)

property text-combine-horizontal -epub-text-combine -webkit-text-combine-epub-text-combine

-epub-text-combine

value

none none none none

value

all ― ― ―

value

numeric ― ― ―

valuedigits ― ― ―

valuealpha ― ― ―

value

latin ― ― ―

value

alphanumeric ― ― ―

value

― horizontal <number>? horizontal horizontal

property text-combine-mode ― ― ―

value

auto ― ― ―

valuecompress ― ― ―

valueno-compress ― ― ―

value

use-glyphs ― ― ―

Page 16: EPUBの日本語レイアウト できること/苦手なこと

縦書きの文字の向き• 正立、横倒し(時計回り90度回転)など文字の向きを指定するには、CSS Writing Mode Level 3のtext-orientationプロパティを利用する。• 最新のCSSの草稿とEPUBが参照する草稿では値が異なっている。

WebKit NBr122778

(Mac OS X)

Adobe Digital Editions1.8 prev4

(Mac OS X)

注意が必要 厳しい

Page 17: EPUBの日本語レイアウト できること/苦手なこと

WebKit

RMSDK

• 基本的に正立と横倒しの使い分けができれば十分。

• WebKitはvertical-rightとuprightをサポート

• 正立させたからといって行の中心に文字が来るとは限らない。

• RMSDKはこのプロパティをサポートしていないため、半角/全角の使い分けや縦中横で代用する他ないだろう。

• RMSDKの文字化けした記号類はWindows版では表示された。利用するフォントの違い。

Page 19: EPUBの日本語レイアウト できること/苦手なこと

ルビ• HTML5の標準のタグに含まれている。• モノルビ、グループルビ、(モノルビをベースにした)熟語ルビを記述できる。• 両側ルビは記述できない。

WebKit NBr122778

(Mac OS X)

Adobe Digital Editions1.8 prev4

(Mac OS X)

使える 注意が必要

Page 20: EPUBの日本語レイアウト できること/苦手なこと

• RMSDKでは先頭のrt要素のルビ文字しか表示されない。すべての親文字をrb要素で囲めば全てのルビ文字を表示できるが、rb要素はHTML5に含まれていないため、正しいHTML5にならない。<ruby><rb>鬼</rb><rt>き</rt><rb>門</rb><rt>もん</rt></ruby>

• 行高が十分に確保されない場合、WebKitでは行を後ろずらしてルビ文字を収める。RMSDKでは隣接する行にルビ文字が重なる。

WebKit RMSDK

Page 21: EPUBの日本語レイアウト できること/苦手なこと

圏点

• CSS Text Level 3のtext-emphasis系プロパティを使って指定する。• キーワードを組み合わせて10種類+αの圏点の形状を指定する。

WebKit NBr122778

(Mac OS X)

Adobe Digital Editions1.8 prev4

(Mac OS X)

使える 使える

Page 22: EPUBの日本語レイアウト できること/苦手なこと

WebKit RMSDK

• WebKitは仕様に忠実な実装。

• RMSDKはユーザ指定の圏点が利用できない。塗りのみを指定した構文をサポートしていない。短縮構文をサポートしていない。色を指定できない。表示する側を指定できるといったの特徴があるが、実用できるレベルには達している。

Page 23: EPUBの日本語レイアウト できること/苦手なこと

text-emphasis*CSS3 Text

20120119WDEPUB 3 CSS Profile(=20110412WD)

WebKit NBr122778

(Mac OS X)

Adobe Digital Editions1.8 prev4

(Mac OS X)

property text-emphasis-style -epub-text-emphasis-style -webkit-text-emphasis-style-epub-text-emphasis-style -epub-text-emphasis-style

value

none none none none

value

filled filled filled filled

value

open open open open

value

dot dot dot dot

value circle circle circle circlevalue

double-circle double-circle double-circle double-circle

value

triangle triangle triangle triangle

value

sesame sesame sesame sesame

value

<string> <string> <string> ―

Page 24: EPUBの日本語レイアウト できること/苦手なこと

text-emphasis*CSS3 Text

20120119WDEPUB 3 CSS Profile(=20110412WD)

WebKit NBr122778

(Mac OS X)

Adobe Digital Editions1.8 prev4

(Mac OS X)

property text-emphasis-color -epub-text-emphasis-color -webkit-text-emphasis-color-epub-text-emphasis-color ―

value <color> <color> <color> ―

property text-emphasis-position ― ― -adobe-text-emphasis-position

value

above ― ― above

valuebelow ― ― below

valueright ― ― right

value

left ― ― left

property text-emphasis -epub-text-emphasis -webkit-text-emphasis-epub-text-emphasis ―

Page 25: EPUBの日本語レイアウト できること/苦手なこと

ひとまずまとめ• 紙面のデザインでできることに比べるとかなり物足りないかもしれませんが、シンプルな出版物は十分に表現可能です。むしろシンプルに作るのがコツ。

• 各分野の関係者の尽力により、EPUBの日本語表現は年々確実に良いものとなっています。

• 特にWebKitに更なる改良を加えたACCESS社のReadiumや Book Reader EPUB Editionへの取り組みは注目です。

• EPUBが一過性のブームではなく、より良い日本語表現の場として育ってゆくよう、これからも見守ってください。

Page 26: EPUBの日本語レイアウト できること/苦手なこと

超おまけ• 時間上の制約により、ここから先の内容はお話しない予定の資料です。

Page 27: EPUBの日本語レイアウト できること/苦手なこと

禁則ルール• WebKit、RMSDKともに禁則処理がなされる。

• 細かい禁則ルールはCSS Text Level 3のline-breakプロパティで指定する。

• WebKit、RMSDKともに緩い禁則(loose)には対応していない。

WebKit NBr122778

(Mac OS X)

Adobe Digital Editions1.8 prev4

(Mac OS X)

注意が必要 注意が必要

Page 29: EPUBの日本語レイアウト できること/苦手なこと

句読点ぶら下げ• 行頭に句読点が来た時、その句読点を前の行の基本版面の外にぶら下げることがある。

• CSS Text Level 3ではこれを実現するhanging-punctuationプロパティがある。

• …が、EPUB 3 CSS Profileには含まれていない。• WebKit、RMSDKともに実装されていない。

WebKit NBr122778

(Mac OS X)

Adobe Digital Editions1.8 prev4

(Mac OS X)

厳しい 厳しい

Page 31: EPUBの日本語レイアウト できること/苦手なこと

均等割り• 字間を均等に空け,文字列の両端を行頭及び行末に揃える方法。

• CSS Text Level 3ではこれを実現するtext-align-lastプロパティがある。

• WebKit、RMSDKともに実装されていない。• ブラウザではInternet ExplorerやFireFoxが実装している。

WebKit NBr122778

(Mac OS X)

Adobe Digital Editions1.8 prev4

(Mac OS X)

厳しい 厳しい

Page 33: EPUBの日本語レイアウト できること/苦手なこと

文字の変換• EPUBではCSS Text Level 3のtext-transformプロパティによって次の変換ができるとしている。

• -epub-fullwidth 半角文字→全角文字• -epub-fullsize-kana 小書きの仮名→通常の仮名• …が、これらの値はWebKit、RMSDKともに実装していない。

WebKit NBr122778

(Mac OS X)

Adobe Digital Editions1.8 prev4

(Mac OS X)

厳しい 厳しい

Page 35: EPUBの日本語レイアウト できること/苦手なこと

ルビのスタイリング• CSS 3 Ruby Moduleではルビ文字の上付き、中付き、下付きや前後の文字へのルビかけルールなどを指定できるが、EPUB 3 CSS Profileには含まれていない。

• RMSDKでは“-adobe-”接頭辞付きのプロパティで先行実装している。

WebKit NBr122778

(Mac OS X)

Adobe Digital Editions1.8 prev4

(Mac OS X)

厳しい 使える

Page 36: EPUBの日本語レイアウト できること/苦手なこと

CSS3 Ruby ModuleCSS3 Ruby

20110630WDEPUB 3 CSS Profile

WebKit NBr122778

(Mac OS X)

Adobe Digital Editions1.8 prev4

(Mac OS X)property ruby-position -epub-ruby-position ― -epub-ruby-position

value

before over ― over

valueafter under ― under

valueinter-character inter-character ― ―

value

inline ― ― ―property ruby-align ― ― -adobe-ruby-align

value

auto ― ― auto

value

start ― ― start

value

left ― ― left

value

center ― ― center

value end ― ― endvalue

right ― ― right

value

distribute-letter ― ― distribute-letter

value

distribute-space ― ― distribute-space

value

line-edge ― ― line-edge

property ruby-overhang ― ― -adobe-ruby-overhang

value

auto ― ― auto

valuestart ― ― ―

valueend ― ― ―

value

none ― ― none

Page 37: EPUBの日本語レイアウト できること/苦手なこと

段組み• 段組みはCSS Multi-column Layout Moduleで指定する。

• WebKit自体は幾つかのプロパティをサポートしているが、ページ表示するビューワに組み込んでリフローと共存させるのは極めて難しい。

• RMSDKはプロパティをサポートしておらず、 制作者が指定することはできないものの、ウィンドウ幅や文字サイズによって自動的に段組表示を行う。

WebKit NBr122778

(Mac OS X)

Adobe Digital Editions1.8 prev4

(Mac OS X)

厳しい 厳しい

Page 38: EPUBの日本語レイアウト できること/苦手なこと

CSS Multi-column Layout ModuleCSS3 Multicol20110630CR EPUB 3 CSS Profile

WebKit NBr122778

(Mac OS X)

Adobe Digital Editions1.8 prev4

(Mac OS X)

property column-width column-width -webkit-column-width ―

value<length> <length> <length> ―

valueauto auto auto ―

property column-count column-count -webkit-column-count ―

value<integer> <integer> <integer> ―

valueauto auto auto ―

property columns columns columns ―

property column-gap column-gap -webkit-column-gap ―

value<length> <length> <length> ―

valuenormal normal normal ―

property column-rule-color column-rule-color column-rule-color ―

value <color> <color> <color> ―

property column-rule-style column-rule-style column-rule-style ―

value <border-style> <border-style> <border-style> ―

property column-rule-width column-rule-width column-rule-width ―

value <border-width> <border-width> <border-width> ―

property column-rule column-rule column-rule ―

Page 39: EPUBの日本語レイアウト できること/苦手なこと

CSS3 Multicol20110630CR EPUB 3 CSS Profile

WebKit NBr122778

(Mac OS X)

Adobe Digital Editions1.8 prev4

(Mac OS X)

property break-before break-before ― ―

value

auto auto ― ―

value

always always ― ―

value

avoid avoid ― ―

value

left left ― ―value right right ― ―value

page page ― ―value

column column ― ―

value

avoid-page avoid-page ― ―

value

avoid-column avoid-column ― ―property break-after break-after ― ―

value

auto auto ― ―

value

always always ― ―

value

avoid avoid ― ―

value

left left ― ―value right right ― ―value

page page ― ―value

column column ― ―

value

avoid-page avoid-page ― ―

value

avoid-column avoid-column ― ―

CSS Multi-column Layout Module

Page 40: EPUBの日本語レイアウト できること/苦手なこと

CSS Multi-column Layout Module

CSS3 Multicol20110630CR EPUB 3 CSS Profile

WebKit NBr122778

(Mac OS X)

Adobe Digital Editions1.8 prev4

(Mac OS X)

property break-inside break-inside ― ―

value

auto auto ― ―

valueavoid avoid ― ―

valueavoid-page avoid-page ― ―

value

avoid-column avoid-column ― ―

property column-span ― -webkit-column-span ―

valuenone ― ― ―

valueall ― all ―

property column-fill column-fill ― ―

valueauto auto ― ―

valuebalance balance ― ―

Page 41: EPUBの日本語レイアウト できること/苦手なこと

ご清聴ありがとうございました。