W3C eBooks Workshop、Test The Web Forward、W3C Developer Meetupに参加

この間、電子書籍とWeb標準関連のいくつかのイベントに参加しました。

W3C Workshop on eBooks & i18n

eBooks & i18n: Richer Internationalization for eBooks
Second W3C Workshop on Electronic Books and the Open Web Platform, 4 June 2013, Tokyo, Japan

私(アンテナハウス村上)のプレゼン:International Text and Page Layout for eBooks
現在のEPUBのページレイアウト(特に縦書きの場合)で問題になっていること(縦書きで扉ページを左右センタリングすることや、画像の配置の問題)は、CSSのPaged Media用のレイアウト仕様(CSS3 Paged Media, GCPMなど。AH Formatterはその拡張を実装してる)が利用可能になれば解決する。「日本語組版処理の要件」(JLREQ)「第4章 見出し・注・図版・表・段落の配置処理」もそのために有用。というような話をしました。

しかし、私のこの拙いプレゼンより前に、CSSWGのBert Bossから、CSSとPaged Mediaについてのより詳しい講演がありました。その内容が公開されています:CSS and Paged Media

ところで、IDPFでは EPUB Adaptive Layout という仕様が作られています。CSSの高度なページレイアウトの拡張仕様が -epubx- プレフィックス付きのプロパティで定義されています。これを使えばEPUBで高度なページレイアウトが可能になるが、しかしW3CのCSS標準仕様と別のものになってしまうのではないかと疑問に思っていました。これについて、IDPFのMarkus Gylling(この仕様のエディターのひとりでもある)に話を聞いたところ、EPUB Adaptive Layout仕様は結局使われることはなく撤回。将来W3Cで高度なページレイアウトの仕様が標準化されれば、それをEPUBに採用する方針であるとのこと。納得。

このWorkshopのProgramとPosition papersが公開されてます。各プレゼン資料も。

Test The Web Forward~W3C Developer Meetup

その週末には、Test The Web Forward Tokyoに参加。HTML5やCSSのテストを作るイベント。

私はCSS Text & Writing Modesについてのライトニングトークをすることに。EPUB3で縦書きなど日本語組版ができるようになったのはこの仕様のおかげだが、仕様はまだドラフトで、WebKitでの実装など問題が多くEPUB制作者は苦労している。だからこのテストが重要、というような話をしました。

このTest作りのイベントのあとのW3C Developer Meetup – Tokyoにも参加。いろいろとWeb標準関係の熱い人々と交流ができて貴重な機会でした。


Antenna House Formatter V6.1 の紹介

Antenna House Formatter V6.1 リリースしました! その発表セミナー(2013/05/22)でプレゼンした資料を公開します:

AH Formatter V6.1 の紹介 [PDF]

これは2011年7月「AH Formatter V6 の紹介」にV6.1の新機能を追加して改訂したものです。

内容

  • AH Formatter、XSL-FOとCSS組版について
    • AH Formatterとは
    • XSLとは:XSLTとXSL-FO
    • CSSとXSLを比較
    • XSL-FOのページマスター機能
    • CSS3でのページマスターに相当する機能
    • AH拡張プロパティ
  • フロート拡張
    • CSS2.1とXSL-FO標準のフロート機能
    • AH拡張floatプロパティ
    • ページのフロート
    • 段のフロート
    • 段組のフロート
    • 絶対配置フロートと相対配置フロート
    • フロートを次のページ(または段)に移動するかどうかを指定
    • フロートのさらなる位置指定
    • フロートとテキスト回り込みの調整
  • 日本語組版関連機能
    • ルビ
    • 圏点
    • 縦書きと縦中横~自動縦中横 [V6.1]
    • 約物の処理
    • 和欧文間の空き
  • フォント関連機能
    • font-variant拡張
    • IVS異体字対応
    • Webフォント、WOFFサポート [V6.1]
  • 多言語組版
    • 中東言語(アラビア語やヘブライ語など右から左に書くもの)
    • インド系諸言語 [V6.1]
    • 東南アジアの言語 [V6.1]
  • MathML数式組版
  • 多彩な表現
    • ブロック領域の変形 [V6.1]
    • グラデーション [V6.1]
  • マルチメディア埋込み [V6.1]

このPDFは、XHTML5+CSS(AH拡張入り)で書いたもの(→zipでまとめてダウンロード)を AH Formatter V6.1 で組版したものです。AH (CSS) Formatter V6.1の製品版または評価版で試してみることができます。

AH Formatter V6.1の評価版ダウンロードについて

また、Formatter Clubの会員(無料)には会員向け試用版の提供をしています。通常評価版では出力ページに「すかし」が入りますが、この会員向けはページの下部にAH FormatterのURLが表示されるだけになり、この表示を改変・削除しない限りにおいて、評価用に利用することのほか、個人的に文書作成に利用するなど、非営利目的に限って使用することが可能です。

Formatter Clubについて


クラウド型EPUB/電子文書リーダ“AH Reader Preview”公開!

AH Reader Preview のこと

どうぞよろしく。


CSS3とUnicode仕様の縦書きの文字の向きの議論について

関連資料

「縦組み時の文字の向き―その理論とマークアップ方法」(PDF)は、SVO(英数字を正立、CSS3のtext-orientation:upright)を基本としてMVO(英数字を横倒し、CSS3のtext-orientation:mixed-right)を部分的に使用する文書マークアップ方法を提唱しています。その「マークアップ私案」より引用:

  • SVO、MVOは縦組みの文字スタイルの一種である
    • 文書スタイル毎にフレキシブルな指定を可能にすべき
    • 文字コードの単一規格としてはなじまない
  • SVOは横書きテキスト原稿の縦組みに相性が良い
    • SVOは自動縦中横とも相性が良い。
  • MVOテキストで全角文字コードを使う方式は縦組み専用
    • 自動縦中横も相性が悪い。文書のルートに設定するのは非推奨。
  • UTR#50でMVOをデフォルト規定すると、WebやEPUBの縦組みマークアップはかなり不便になるだろう
  • SVOとMVO協調方式が良い
    • ルートSVO→ノード(ブロック)MVO→区間(スパン)MVO

しかし残念なことに、UTR50最新(draft 7)では、SVOが削除されて、CSS3のtext-orientation:uprightは、“forced upright”(強制正立)ということに変更されました(そのW3C CSSWGの議事録)。

text-orientation:uprightの問題(UTR50 SVO廃止、“forced upright”へ)

括弧類、ハイフンやダッシュ類などは、縦書きで向きを変えないと役に立ちません。すべて正立にする“forced upright”は問題です(図1)。

“forced upright”といっても、実はフォント依存で必ずしも正立にならない文字があるのにも注意が必要です。和文フォントでは和文用・全角幅の括弧類や全角ダッシュなどには回転した形の縦書き字形があるのでそれが有効になります。困るのは、矢印類(上↑など)がuprightの指定で正立させたくてもフォントによっては正立にならないということです(図2)。この仕様のままでは、矢印類を正立にするには、uprightの指定ではなくて、縦中横の指定を使わなくてはなりません。

text-orientation:uprightを役に立つものにするためには、SVOのデータが必要です。つまり、SVO=Rの文字(括弧類、ダッシュ類など)は横倒しとし、SVO=Uの文字(矢印類も含まれる)は必ず正立の字形が使われるようにすることです。

text-orientation:mixed-rightの問題(UTR50 MVO)

‘シングルクオート’と“ダブルクオート”UTR50 MVOのデータではシングルクオート(U+2018/2019)はT(変形可で正立)、ダブルクオート(U+201C/201D)はR(横倒し)です。両方とも横倒しにする意見とダブルクオートを正立にする意見とで議論があります(図3)。

“ダブルクオート”は日本語の縦書きでは一般に使わないことになってます。広告の見出しなどに変形した形で使われることがありますが、標準とはいえません。通常は“ダブルクオート”ではなくて〝ダブルミニュート〟が使われます。したがって横倒しの欧文でしかダブルクオートは使用されないことになるので横倒しとするのが適切であると思います。

双柱 ‖ (U+2016)が正立と決められても、たいていの和文フォントでその縦書き字形が回転したものになっているため仕様と合わない結果になります。欧文フォントが選択されたら正立して、和文フォントが選択されたら横倒しになるというのでは混乱します。

波線 〰 (WAVY DASH U+3030)が正立になってしまう問題については、前回記事で書いたとおりです。

ラテン、ギリシャ、キリルなどアルファベット類(Letter)は横倒しという方針なのに、Unicodeの Letterlike Symbols ブロックにあるLetterが正立(同ブロックにあるMath Symbol系は横倒し、またMathematical Alphanumeric Symbolsブロックの同種の文字も横倒しなのに)というのは整合性に欠けます。同じ種類に見える文字の向きがばらばらになってしまうというのは、問題です(図4)。

そのほか、以前にも議論を紹介してますが、一部の記号類で横倒しとするか正立とするか意見が別れています。©®℗℠™‰‱§¶†‡⁂⁑などです。英数字や欧文用の約物・記号類を横倒しとするMVOではそれらの記号類も横倒しのほうがより自然であり、基本的にすべて正立(英数字も和字扱い)のSVOと使い分ける上で有利と思われます。しかし、SVOではなくてMVOを日本語縦書きのための標準とするUTR50の現ドラフト仕様の考えでは、これらは正立ということのようです。

記号類をひとつひとつ吟味してデフォルトの向き(MVO)を決めるのは難しいから、大雑把にまとめて決めざるを得ないということはあるでしょう。矢印類すべて横倒しというのは、各矢印記号の実際の標準的な使われ方と必ずしも合っていなくて、上向き↑や右肩上がり↗は縦書きで正立させたいことが多いでしょう。一方、三角形類はみな正立とされてますが、上向き三角形▲はそれがよくても、左右方向を指す三角形(◀や▶)は横倒しにしたいことが多いでしょう。しかし記号の種類毎に決めざるをえないため、それで仕方がないかもしれません。意見が別れている記号類も、どこかで線を引いて決める必要があると思います。できるだけ利用者みんなが納得できて、混乱が生じないような仕様になることを願います。


koboのEPUB3縦書きをためしてみた

前回記事ではUTR50(Unicode縦書きの文字の向き仕様)の議論を紹介しましたが、UTR50が何に使われるかというと、まずCSSの縦書き仕様(CSS3 Writing Modes)であり、それを使っているEPUB3の縦書き実装です。そこで最新のEPUB3対応リーダー(とくにkobo Touch)で縦書きの文字の向きがどうなっているか、ためしてみました。

縦書きでの文字の方向をテストするEPUB3サンプルを作りました。

次の画像は、サンプルEpubTextOrientation.kepub.epubをkoboで表示したものとiPadのiBooksで表示したものです。


koboのEPUB3リーダーもiPadのiBooksも、レンダリングエンジンはWebKitがベースです。しかし、koboのほうは縦書きの文字の向きについて手が加えられているようで、iBooksとはだいぶ違います。

気になるダブルクオートの向き

text-orientationがデフォルトの場合がUTR50のMVO (Mixed Vertical Orientation)に相当します。koboでの結果でまず目に付くのが “I’m” のダブルクオート(U+201C/201D)が正立していることです。英語を囲んでいるのにダブルクオート正立はかなり不自然です。それに日本語でもこれでは使えないことは先日ツイートしたとおり:#UTR50 koboの縦書きではdouble quotes “ ” が正立してこんなことに! ノノカギ〝 〟を使えばよいのに。欧文にも和文にも役に立たないダブルクオート正立。(サンプル:青空文庫『愚人の毒』小酒井不木)

text-orientation: uprightでは括弧()も正立!?

text-orientation: uprightの指定は、UTR50のSVO (Stacked Vertical Orientation)に相当するはずです。しかし、いまのWebKitの縦書き実装の制限らしくkoboでもiBooksでも括弧類やダッシュなどSVO=Rである文字でも正立にしてしまうようです。そして、正立した幅の狭い文字は、行の中で左に寄せられて配置されてます。

text-orientation: uprightでの矢印の向きはとても問題では?

MVOの場合、矢印類はR(90度回転)です。したがって上矢印↑は右向きに、右矢印→は下向きに、右上矢印↗は右下を向きます。これに対してSVO (text-orientation: upright)の場合、UTR50現ドラフトではSVO=U(正立)なので、iBooksの結果のほうが正しいように思えるのですが、しかしCSS3 Writing Modesドラフトのここによるとは、SVO=Uであっても縦書き用字形があればそれを適用するということになっています。その結果、矢印類のうち縦書き用字形(vert)が回転したものになっているもの(↑→など)は回転した結果になりMVOと見た目は同じに、それ以外(斜め方向の↗など)は正立ということになります。問題は、縦書き用字形の有無はフォントによるため、選択されるフォントによって矢印の向きが変わってしまうということです。上矢印↑を縦書きでも上を向くようにとuprightの指定をしても、環境によって上を向いたり右を向いたり方向が決まらないということです。これはUTR50よりもCSS3 Writing Modesの問題かと思います。

WAVY DASH〰〰が正立になってしまう問題

WAVY DASH (U+3030)は「キャ〰〰」のように使われるものなので、縦書きで正立ではまずいです。UTR50ドラフトでは、SVO=MVO=Tr (縦書き用字形を使用、もしくは回転)とされています。しかし、koboでもiBooksでも結果は正立です。理由は、CSS3 Writing ModesドラフトではUTR50のTrもUも区別しないでTu(縦書き用字形があれば使用して正立)と同じに扱うためです。そして多くのフォントではWAVY DASH (U+3030)に縦書き用字形はありません。その結果、ただ正立になってしまいます。

-epub-text-orientation: sidewaysという指定はEPUB 3.0仕様に合ってる?

koboのEPUB3縦書きでは、-epub-text-orientation: sideways(あるいは sideways-right)の指定により、日本語の文字も含め横倒しにできます。気になったことは、それは EPUB 3.0 の仕様と合っていないのではないかということです。

EPUB 3.0 の CSS Profile の CSS Writing Modes のところを見ると、-epub- プレフィックスを付けて CSS3 Writing Modesドラフトの2011-04-28版のプロパティ名と構文を使うこととあります。このドラフトでは、text-orientationの値は sideways- ではなくて rotate- でした。だから EPUB 3.0 で、縦書きでの全文字横倒しを指定するのは -epub-text-orientation: rotate-right のはずです。しかし、koboでは、rotate-right は効果がなくて、現在のCSS3 Writing Modesドラフトでの値である sideways-right や sideways が採用されているようです。


UTR50(Unicode縦書きの文字の向き仕様)標準化のために

ツイッターでの議論(ハッシュタグ #UTR50)のまとめサイト:
UTR#50(Unicodeの縦書きの文字の向き)の話題 #UTR50

議論は主に2つあると思います。

SVO(英数字正立)の議論

ひとつはUTR50が定義しようとしている2つの縦書きモード SVO(Stacked Vertical Orientation = 英数字も正立)およびMVO (Mixed Vertical Orientation = 英数字は横倒し)のどちらが日本語の縦書きのデフォルトの文字の方向として便利であるかということ。今朝の @TokKoba (小林徳滋@アンテナハウス)のツイート:

「英数字正立論」を「SVOを基本とするコンテンツマークアップのすすめ」という題名に変更しようかと思案中。横書きした文書を縦書きで表示したとき、できるだけそのまま読め、かつ、マークアップが容易という点で、MVO方式よりSVO方式を基本とするのが優れている、という趣旨。

マークアップが容易というよりマークアップがコンテキスト準拠になるのだ。MVOでは寝た文字を起こすためにマークアップを使うがこれはレイアウト・マークアップだ。SVOでは立ってしまう欧文などを寝かせるためにマークアップするが、これはコンテキスト・マークアップになる。

私は、SVOとMVOを場合によって使い分けることができればよいと思います。MVOをデフォルトとしても、自動縦中横の機能があれば、単独の欧字や2桁までの数字を縦中横・正立にすることができるので、マークアップの手間をなくすことができます。自動縦中横や自動正立の機能を定義するためには、どの文字がデフォルトで横倒しかがはっきりしている必要があるので、MVO仕様は重要です。

MVOの議論(英数字は横倒し、では記号類は?)

MVOは、横書き用の文字(洋数字、ラテン文字など)は縦書きで横倒しにするというものですが、問題になっているのは、横書き用といえるかどうか曖昧さがある記号類です。

WebKitの現在の縦書きの実装では、記号類がほとんど横倒しになってしまいます。丸数字①②③、星★、三角▲、絵文字☎など、みな横倒しで表示されます。和文専用の文字(全角の英数字も含む)だけ正立でほかは横倒しというのは、とても分かりやすい仕様といえますが、これがデフォルトではさすがに使いにくいのではないかと思います。

一方、現在のUTR50ドラフトのMVOは、パーミル‰のような単位や欧文用の記号(たとえば§や¶)が正立であるなど、ほんとうに正立でよいのか議論になっているものがあります。

アドビ山本氏によるUTR50 MVO仕様への提案

MVO仕様を完成させためには、まずMVOの正立・横倒しの基準を明確にすることが大事です。そのために、アドビの山本太郎氏による提案 About the MVO of UTR # 50 (Comments by Taro Yamamoto) が、参考になると思います。とくに次の部分:

3. Symbols and abbreviations
3.1.1. “Would be Upright” Priorities

U3: Symbols and abbreviations that are mere pictures or geometric shapes without any directionality.
(記号類のうち方向性を持たない絵文字や幾何学図形:☎や★や▲は正立)

U4: Western-origin ligatures and abbreviations whose decomposed forms can be represented with ordinary Latin alphabet characters or Arabic numbers or symbols that are −90 degrees rotated in vertical lines.
(欧文由来の合字や略字であっても分解して通常のラテン文字や数字や記号を使って書くことができるものは正立。これにより℃やⅣや¼や№は正立)

3.1.3. “Would be Rotated” Priorities

R4: Symbols and abbreviations that are originated in Western typography or writing systems.
(欧文由来の記号類や略字類は横倒し:これにより©§¶†‰℀などは横倒し)

このような基準によって見直されたMVOのデータが提案文書(PDF)に含まれています。これを、もとのUTR50ドラフトに含まれるデータ(Unicodeデータファイルの形式と、より分かりやすいHTML形式)と同じ形式にして比較しやすくしたものを作ってみました:

HTML形式のほうは、UTR50の現在のデータに対して変更されているところを色付きにしてみました。レビューの参考にしてください。

続きを読む


EPUB3.0とAH Formatter

メインのアンテナハウス公式ブログ I love software!はスタッフの当番制で、今回それが回ってきたもので次の記事を書きました:

既存のEPUBのコンテンツに、CSS3 Paged Mediaの機能を使って柱やノンブルをつけてAH Formatterで組版する方法を解説しました。
本来ならこのCSS組版ブログにこそ、こういう記事をもっと書かなくてはですね。
それではまた。


『W3C技術ノート 日本語組版処理の要件』書籍版、CSS組版の事例としても注目!

W3C技術ノート 日本語組版処理の要件先日、「W3C技術ノート 日本語組版処理の要件」出版記念セミナー〈電子書籍と日本語組版〉というイベントがありました:

このセミナーでの発表のとおり、『W3C技術ノート 日本語組版処理の要件』(JLReq)書籍版の制作には、AH Formatter V6によるCSS組版が使われています。JLReqは基本的にWebで公開されているものなので、(X)HTML+CSSで組版されることは自然なのですが、書籍版はスクロールして読むWebとは違うため、ページを読みやすい体裁にするためにいろいろと工夫が必要で、そのためにAH Formatter V6で拡張されている機能が利用されています。

どうやってJLReq書籍版がAH FormatterのCSS組版で作られているか、詳しくは事例紹介のページをご覧ください:


W3C横浜フォーラムで「CSS3縦書きをサポートする組版エンジンAH Formatterの紹介」

W3C横浜フォーラム(2012年3月6日)
第一部「次世代ブラウザ技術を用いたコンテンツ表現方式」の中でAH FormatterのCSS組版についての話をします。そのプレゼン資料(AH Formatterで作成したPDF)をアップしました:
「CSS3縦書きをサポートする組版エンジンAH Formatterの紹介」
W3C横浜フォーラムについて、直前の案内になりすみません。現時点でまだ少し席が残っているらしいのでエントリー申し込み可能だと思います。どうぞよろしくお願いします。
このイベントでのTwitterハッシュタグは #css2012jp とのことです。
(追記2012-03-05)SlideShareにもアップしてましたが、直接PDFをダウンロードできるように変えました。


Pages: Prev 1 2 3 4 Next