SlideShare a Scribd company logo
1 of 72
Copyright © 2012 Hiroshi Takase.
EPUBってさぁ
HTMLとCSSを
zipでまとめた
だけの
フォーマットでしょ?

     Copyright © 2012 Hiroshi Takase.
このプレゼンが
終わる頃には
そんな理解は
変わってるわよ!

Copyright © 2012 Hiroshi Takase.
• 高瀬 拓史
• @lost_and_found / ろす
•   http://d.hatena.ne.jp/lost_and_found/
• ブログでEPUB2仕様を翻訳公開し
  てる人
• イースト株式会社勤務
• “EPUB日本語拡張仕様策定”プ
  ロジェクトに参加
• eBookジャーナル(マイナビ)
• 「EPUB定点観測」を連載⇨了


                                   登場人物
Copyright © 2012 Hiroshi Takase.
• 電書ちゃん
• ろすのブログのマスコットキャラ
• 電子書籍の世界の案内役という初
  期設定だったはず…
• 性格キツめ
• 立ち絵が少ないのが弱点
• © (有)JCN & Garakuta



                                           登場人物
        Copyright © 2012 Hiroshi Takase.
• EPUBはIDPF(国際電子出版フォーラム)が提唱
  する電子出版物の配布・フォーマットの標準
• オープンな標準で制約なく利用できる
• XMLとウェブコンテンツをベースとしている
• スクリーンや文字サイズによって、行の折り返
  しが変わる、リフローを特徴としている
• 2011年10月に最新のEPUB3が確定した
• このプレゼンではこのEPUB3の仕様を追えるだ
  け追ってみます。

                                             はじめに
          Copyright © 2012 Hiroshi Takase.
• 公開場所は http://idpf.org/epub/30/
• 具体的な技術は次の文書で触れている
  –   EPUB   Publications 3.0
  –   EPUB   Content Documents 3.0
  –   EPUB   Open Container Format (OCF) 3.0
  –   EPUB   Media Overlays 3.0
  –   EPUB   Canonical Fragment Identifier
• それではスタート



                EPUB3.0の仕様
                     Copyright © 2012 Hiroshi Takase.
Open Container Format
      (OCF) 3.0

       Copyright © 2012 Hiroshi Takase.
• EPUBは複数のファイルで構成されており、zipで圧縮さ
  れている
• EPUBを構成するファイルが入った入れ物を仕様では
  EPUBコンテナ (EPUB Container)と呼ぶ
• zipで圧縮されているため簡単に展開して、中身を取り出
  すことができる
• 暗号化(パス付き)zipはダメよ
• 一部のファイルとディレクトリの配置に、“お約束”が
  ある


                               Open Container Format 3.0
                            EPUBコンテナ
           Copyright © 2012 Hiroshi Takase.
パッケージ文書
               コンテンツ文書
                     ナビゲーション文書




     EPUBコンテナ
                                  Open Container Format 3.0

ちょ~シンプルなEPUBの構成例
     Copyright © 2012 Hiroshi Takase.
この辺のお話です




      EPUBコンテナ
                          Open Container Format 3.0
       仕様が定義する対象
      Copyright © 2012 Hiroshi Takase.
• EPUBのメディアタイプを記述した一行だけの短いテキスト
  ファイル
• このファイルはEPUBコンテナの先頭に、位置しなければなら
  ない
• 圧縮、暗号化不可
• なので展開したファイルをEPUBに戻すのは、ちょっと面倒
• ↓中身

 application/epub+zip




                                        Open Container Format 3.0
                                                   mimetype
                    Copyright © 2012 Hiroshi Takase.
• EPUBコンテナに関するメタデータを格納する必須ディ
  レクトリ
• 出版物に関するメタデータじゃないよ
• ここに格納するファイルは役割によって名前が予約され
  ている
• 必須ファイルはcontainer.xml。あとはオプショナル




                               Open Container Format 3.0
                                          META-INF
           Copyright © 2012 Hiroshi Takase.
• 出版物のルートファイルの位置とメディアタイプを示すXML
  文書。圧縮、暗号化不可
• EPUBのルートファイルはパッケージ文書(.opf)
• EPUBではmimetype、META-INF以外は自由なファイル・ディ
  レクトリ構成が可能→ビューワに最初にどのファイルを見に
  ゆけばよいか示す必要がある
  <?xml version="1.0"?>
  <container version="1.0“
  xmlns="urn:oasis:names:tc:opendocument:xmlns:containe
  r">
    <rootfiles>
      <rootfile full-path=“mybook.opf"
        media-type="application/oebps-package+xml"/>
    </rootfiles>
  </container>
                                        Open Container Format 3.0
    META-INF/container.xml
                    Copyright © 2012 Hiroshi Takase.
なんでわざわざ
      パッケージ文書の
      メディアタイプを
      指定するわけ?
      EPUBの中には
      EPUBのルートファ
      イルがあるに決まって
      んじゃんJK
Copyright © 2012 Hiroshi Takase.
OCFは汎用的な
コンテナとして
開発されてます。
EPUBコンテナの中に
別のフォーマットを
入れることも許容されて
ます(いちおー)。

     Copyright © 2012 Hiroshi Takase.
• EPUBに他のフォーマットや複数のパッケージ文書を同梱する
  ことも仕様上は可能(ただし選択する条件を記述できる仕様
  になってない)
• 将来の改版で条件指定ができるようになりそうな気配

 <?xml version="1.0"?>
 <container version="1.0"
 xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
   <rootfiles>
     <rootfile full-path="OEBPS/Great Expectations.opf"
        media-type="application/oebps-package+xml" />
     <rootfile full-path="PDF/Great Expectations.pdf"
        media-type="application/pdf" />
    </rootfiles>
 </container>
                                       Open Container Format 3.0
   META-INF/container.xml
                   Copyright © 2012 Hiroshi Takase.
ファイル名             用途                               備考

encryption.xml   暗号化                    暗号化したファイルと方式を記述

manifest.xml     マニフェスト                 仕様にはコード例すらないし、
                                        使われてるの見たことない。
                                        ぶっちゃけ要らない

metadata.xml     メタデータ                  コンテナレベルのメタデータを記
                                        述する。
                                        使われてるの見たことない…

rights.xml       著作権情報                  必要なDRM情報を記述。DRM方式
                                        自体は任意。
signatures.xml   デジタル署名                 署名したファイルと方式を記述


                                                Open Container Format 3.0

      META-INF/にあるその他の面々
                   Copyright © 2012 Hiroshi Takase.
暗号化とか署名とか
DRMとか…
はっきり
書いちゃったら
破られるんじゃない?


     Copyright © 2012 Hiroshi Takase.
方式は記述するけど
 秘密鍵の場所など
 復号に必要な情報は
 書かれていません。
 早い話が実装依存ね。


Copyright © 2012 Hiroshi Takase.
• Font Obfuscation
• EPUBにはフォントファイルを同梱できるが、暗号化されてい
  なければ、高価な商用フォントであっても中から取り出すの
  は容易。フォントメーカーの懸念材料となる
• そのため出版物の識別子をキーにして、フォントファイルの
  先頭1040 byteを変換するアルゴリズムが仕様化
• 制作者はこのアルゴリズムでフォントを変換し、ビューワは
  閲覧の際にこのアルゴリズムでフォントを復号化する
• フォントが流用されるリスクを少し下げる程度の機構
• 仕様上はEPUB3ビューワへの実装が必須
  iBooksやRMSDK系ビューワでサポート
  制作ツールではSigilが対応。
                               Open Container Format 3.0
                            フォント難読化
           Copyright © 2012 Hiroshi Takase.
EPUB Publications 3.0

       Copyright © 2012 Hiroshi Takase.
この辺のお話です
     パッケージ文書




                               EPUB Publications 3.0
  仕様が定義する対象
 Copyright © 2012 Hiroshi Takase.
•   書誌情報(メタデータ)や読み順等を記述したXML文書。
•   圧縮、暗号化不可。
•   拡張子.opf メディアタイプ application/oebps-package+xml
•   EPUBの核となるファイルと言ってよい(これがなければ単なる
    zipped webと変わらない)
•   ルート要素であるpackage要素と、子要素であるmetadata、manifest、
    spineで構成される。
•   spineの次にguide、bindingsというオプショナルな子要素を持つ場
    合もある。
    <package>
        <metadata /><!–- メタデータを書く -->
        <manifest /><!–- ファイル一覧 -->
        <spine />   <!-- 読み順 -->
        <guide />   <!–- 本のセマンティクス -->
        <bindings /><!-- 特殊なフォールバック -->
    </package>                      EPUB               Publications 3.0
                                        パッケージ文書
                    Copyright © 2012 Hiroshi Takase.
•   パッケージ文書のルート要素
•   http://www.idpf.org/2007/opfの名前空間に属する
•   次の属性指定が必須
•   version属性。EPUBのバージョン。これが3.0だとEPUB3
•   unique-identifier属性。出版物の識別子。metadataに書いてあ
    る識別子をID参照する
    <package
      xmlns="http://www.idpf.org/2007/opf"
      version="3.0"
      unique-identifier="bookid">
      <metadata ...>
        <dc:identifier id=“bookid”>...</dc:identifier>
      </metadata>
      ...
    </package>
                                                    EPUB Publications 3.0
        パッケージ文書 - package
                      Copyright © 2012 Hiroshi Takase.
• (出版物レベルの)メタデータを記述する要素
• 基本は Dublin Core Metadata Element Setで記述する
• 最低限必要なのは、識別子(dc:identifier)、タイトル
  (dc:title)、言語(dc:language)、更新日時(dcterms:modified)

 <metadata
   xmlns:dc="http://purl.org/dc/elements/1.1/">
   <dc:identifier id=“bookid”>
     urn:uuid:966a8a88-75c6-414c-bb3e-d29f0f07069b
   </dc:identifier>
   <dc:title id=“title”>いいパブッ!!</dc:title>
   <dc:language id=“language”>ja</dc:language>
   <meta property="dcterms:modified">
      2012-02-10T04:00:00Z</meta>
 </metadata>                       EPUB Publications   3.0
    パッケージ文書 - metadata
                   Copyright © 2012 Hiroshi Takase.
• その出版物を表すユニークな識別子
• UUID(v4)を生成するオーサリングツールが多いが、特に
  規定はない
• 複数保持可
• package要素のunique-identifier属性から一つだけID参照
  する

 <package ... unique-identifier=“bookid”>
 <metadata
   xmlns:dc="http://purl.org/dc/elements/1.1/">
   <dc:identifier id=“bookid”>
     urn:uuid:966a8a88-75c6-414c-bb3e-d29f0f07069b
   </dc:identifier>
 </metadata>
                                                       EPUB Publications 3.0

  パッケージ文書 – dc:identifier
                    Copyright © 2012 Hiroshi Takase.
EPUBの内容を
       編集したら
       識別子は
       変えなきゃダメ?


Copyright © 2012 Hiroshi Takase.
マイナーな
リビジョンで
識別子を
変えるべきでは
ありません。
細かい差異は更新日時
で識別します。

     Copyright © 2012 Hiroshi Takase.
•   出版物が最後に変更された時間を記述するmeta要素。
•   内容は CCYY-MM-DDThh:mm:ssZ の dateTime形式
•   UTCで記述するので日本は+9時間
•   出版物の識別は“識別子@更新日時”で行う
    <metadata
      xmlns:dc="http://purl.org/dc/elements/1.1/">
      <dc:identifier id=“bookid”>
        urn:uuid:966a8a88-75c6-414c-bb3e-d29f0f07069b
      </dc:identifier>
      <meta property="dcterms:modified">
         2012-02-10T04:00:00Z</meta>
    </metadata>

    urn:uuid:966a8a88-75c6-414c-bb3e-d29f0f07069b@2012-
    02-10T04:00:00Z
                                                          EPUB Publications 3.0

       パッケージ文書 – dcterms:modified
                       Copyright © 2012 Hiroshi Takase.
• dc:title その出版物のタイトル表す要素
• dc:language その出版物が使用する言語を表す要素。内
  容は言語コードで指定する。英語はen、日本語はja。国
  コードまで付けるならja-JP。

 <metadata
   xmlns:dc="http://purl.org/dc/elements/1.1/">
   <dc:title id=“title”>いいパブッ!!</dc:title>
   <dc:language id=“language”>ja</dc:language>
 </metadata>




                                                      EPUB Publications 3.0

パッケージ文書 – dc:title、dc:language
                   Copyright © 2012 Hiroshi Takase.
うーん、この本の正確な
タイトルは
「痛プレゼン シリー
ズ 1 いいパブッ!! よ
くわかるEPUB3 」
なんだけど…



         Copyright © 2012 Hiroshi Takase.
……(呆)

Copyright © 2012 Hiroshi Takase.
• refines属性を持ったmeta要素と組み合わせて、メタデー
  タを詳細に記述する仕組みがある
• どこまで運用するかは出版社、プラットフォーマー次第
  か
 <dc:title id=“title”>いいパブッ!!</dc:title>
 <meta refines="#title" property="title-
 type">main</meta>
 <dc:title id=“subtitle”>よくわかるEPUB3</dc:title>
 <meta refines="#subtitle" property="title-
 type">subtitle</meta>
 <dc:title id=“collection”>痛プレゼンシリーズ</dc:title>
 <meta refines="#collection" property="title-
 type">collection</meta>
 <meta refines="#collection" property="group-
 position">1</meta>
                                        EPUB Publications 3.0

  パッケージ文書 – メタデータの拡張
                    Copyright © 2012 Hiroshi Takase.
• dc:creator その出版物の責任者≒制作者を表す要素
• オプショナルな要素だが、大抵使うはず。
• 役割を詳細に記述するなら meta要素とMARC Code List
  for Relatorsを組み合わせる方法がある。
  <dc:creator id=“creator1”>
    lost_and_found
  </dc:creator>
  <meta refines=“#creator1” property="role"
  scheme="marc:relators" id="role">aut</meta>
  <dc:creator id=“creator2”>
    電書ちゃん
  </dc:creator>
  <meta refines=“#creator2” property="role"
  scheme="marc:relators" id="role">aut</meta>
                                                       EPUB Publications 3.0

      パッケージ文書 – dc:creator
                    Copyright © 2012 Hiroshi Takase.
• http://www.loc.gov/marc/relators/
• リソースの関係者を記述するためのコードで書誌情報の
  記録に利用する
• The Library of Congress (米議会図書館)がメンテナンス
• 出版物のみならず音楽・演劇など幅広い分野をカバーし
  223種類のコードを定義
• アルファベット3文字で表記できる
• 日本語で読める資料超少ない><
   aut: Author 著者
   edt: Editor 編集者
   ill: Illustrator イラストレーター
   ...etc.


 補足 - MARC Code List for Relators
                 Copyright © 2012 Hiroshi Takase.
• 出版物のコンテンツが利用するリソースの一覧を記述し
  た要素
• 利用するすべてのリソースをitem要素に記述する
• item要素にはid、href、media-type属性が必須
 <manifest>
   <item id=“foo” href=“foo.jpg”
     media-type=”image/jpg” />
   <item id=“bar” href=“bar.xhtml”
     media-type=”application/xhtml+xml” />
   <item id=“baz” href=“baz.xhtml”
     media-type=”application/xhtml+xml” />
 </manifest>


                                                  EPUB Publications 3.0
     パッケージ文書 - manifest
                    Copyright © 2012 Hiroshi Takase.
• item要素には内容を説明するproperties属性が必要とな
  る場合がある
• cover-image:表紙画像、nav:ナビゲーション文書、
  scripted:javascriptかformタグの利用、math:MathMLの利
  用、svg:インラインSVGの利用
 <item id=“foo” href=“foo.jpg”
     properies=“cover-image”
     media-type=”image/jpg” />
 <item id=“bar” href=“bar.xhtml”
     properies=“nav”
     media-type=”application/xhtml+xml” />
 <item id=“baz” href=“baz.xhtml”
     properies=“scripted math svg”
     media-type=”application/xhtml+xml” />
                                                  EPUB Publications 3.0
     パッケージ文書 - manifest
                    Copyright © 2012 Hiroshi Takase.
• EPUB Core Media Types
• EPUBの中でfallbackなしで利用してよいリソース
• ここにないリソースはコアメディアタイプへのfallback
  を提供しなければならない
• ビューワにとって全てがサポート必須ではなく、サポー
  トに条件が設けられているリソースもある
• 例: 読み上げ機能を持つビューワはPLS文書をサポー
  トしなければならない...etc.




                                         EPUB Publications 3.0
            コアメディアタイプ
           Copyright © 2012 Hiroshi Takase.
• fallback chain mechanism
• manifestのitem要素にはfallback属性で、代替リソースを
  指定できる。
・fallbackのfallbackのfallback…と幾つも重ねてよいが、コ
アメディアタイプが一つ含まれている必要がある
  <manifest>
   <item id=“foo” href=“foo.foo”
      fallback=“bar” media-type=“applicaion/foo” />
   <item id=“bar” href=“bar.bar”
      fallback=“baz” media-type=“application/bar” />
   <item id=“baz” href=“baz.xhtml”
      ... media-type=“applicaion/xhtml+xml” />
    ...
  </manifest>
                                                 EPUB Publications 3.0
      manifest level fallback
                   Copyright © 2012 Hiroshi Takase.
分類      名称                    メディアタイプ                              EPUB3   EPUB 2.0.1
画像      GIF                   image/gif                            ○       ○
        JPEG                  image/jpeg                           ○       ○
        PNG                   image/png                            ○       ○
        SVG                   image/svg                            ○       ○
XML文書   XHTML                 application/xhtml+xml                ○       ○
        NCX                   application/x-dtbncx+xml             ○       ○
        EPUB Media Overlays   application/smil+xml                 ○       ―
        TTS発音辞書               application/pls+xml                  ○       ―
フォント    OpenTypeフォント          application/vnd.ms-opentype          ○       ―
        WOFFフォント              application/font-woff                ○       ―
音声      MP3                   audio/mpeg                           ○       ―
        MP4 AAC LC            audio/aac                            ○       ―
テキスト    スタイルシート               text/css                             ○       ○
        Java Script           text/javascript                      ○       ―


                                                              EPUB Publications 3.0
                      コアメディアタイプ一覧
                                Copyright © 2012 Hiroshi Takase.
あれ、
       動画がないよ。
       EPUB3は動画
       埋め込めるんじゃ
       なかったっけ?


Copyright © 2012 Hiroshi Takase.
ブラウザ戦争の煽りで、
動画はコアメディアタイプに
入らなかったの。
ビューワは少なくとも
H.264かVP8の
どちらかのコーデックは
サポートしましょうと
NOTEに小さく書いて
あるわ…

      Copyright © 2012 Hiroshi Takase.
• spine = 本の「背」のこと
• コンテンツ文書の読み順を指定する要素
• 紙のページを綴じる代わりにspineに文書を綴じる感じ




 <spine>
     <itemref idref=“cover.xhtml” />
     <itemref idref=“chapter01.xhtml” />
     <itemref idref=“chapter02.xhtml” />
     …
 </spine>                          EPUB               Publications 3.0
            パッケージ文書 - spine
                   Copyright © 2012 Hiroshi Takase.
• 本の綴じ方向はspine要素にpage-progression-direction属
  性で指定する
• ltr は左綴じ(横書きの本)で初期値。rtl が右綴じ(縦書
  きの本)
• HTML+CSSでは文書間の進行方向を指定できないため、
  導入した属性


               <spine
                 page-progression-direction=“rtl”>



                                             EPUB Publications 3.0
          パッケージ文書 - spine
               Copyright © 2012 Hiroshi Takase.
時間が限られて
いるので
プレゼンでは
次のguideと
bindingsは
割愛します…

    Copyright © 2012 Hiroshi Takase.
• 本のセマンティクスを記述するオプショナルな要素
• EPUB3では非推奨の扱い。ナビゲーション文書の<nav
  epub:type="landmarks"> で代替できる
  <guide>
     <reference href="cover.xhtml"
       title="Cover" type="cover" />
  </guide>
同じ内容をナビゲーション文書に書くとこうなる
 <nav epub:type=“landmarks”>
  <ol>
   <li>
    <a epub:type=“cover“ href”cover.xhtml”>表紙</a>
   </li>
  </ol>
                                  EPUB Publications   3.0
 </nav>
            パッケージ文書 - guide
                   Copyright © 2012 Hiroshi Takase.
• 特殊なフォールバックを実現するオプショナルな要素
• 子要素にmediaType要素を持ち、そこにはmedia-type属
  性とhandler属性がある。
• media-type属性のメディアタイプを持つリソースの
  フォールバック先となるリソースをhandler属性でID参
  照する。
• 結果次のフォールバック順序となる
1. カスタムリソース
2. handlerが参照するリソース
3. HTML5タグ固有のフォールバックリソース
• 一体誰が使うんだぜ?
                      EPUB Publications 3.0
     パッケージ文書 - bindings
               Copyright © 2012 Hiroshi Takase.
<!-- こんなHTML5のコンテンツ文書があるとする -->
<object data=“foo.xml” type=“application/foo”>
  <img src=“bar.ipg” />
</object>

<!-- パッケージ文書にはこう書いてある -->
<manifest>
  <item id=“baz” href=“baz.xhtml”                        フォールバック順序
    properies=“scripted”
    type=“application/xhtml+xml” />
                                                         1. foo.xml
    ...                                                  2. baz.xhtml
</manifest>                                              3. bar.jpg
...
<bindings>
  <mediaType handler=“baz"
      media-type="application/foo"/>
</bindings>
                                                    EPUB Publications 3.0
        パッケージ文書 - bindings
                      Copyright © 2012 Hiroshi Takase.
EPUB Content
Documents 3.0

   Copyright © 2012 Hiroshi Takase.
この辺のお話です
(あとCSSとかいろいろ)
                                  コンテンツ文書
                                        ナビゲーション文書




                        EPUB Content Documents 3.0
          仕様が定義する対象
         Copyright © 2012 Hiroshi Takase.
• 本の内容を記述した文書。XHTML5またはSVGで記述す
  る
• XHTML5なら拡張子は.xhtmlとする
• XHTML5を採用したおかげで、audioやvideoタグが利用
  できるようになった。あとルビも。
• EPUB2ではXHTML1.1で記述し、scriptやformなどの利用
  に制約があったが、EPUB3では利用可能。XHTML5のタ
  グについて特に制約は設けていない
• その他epub:switchやepub:triggerといった独自のタグが
  幾つか存在する(ほとんどはアクセシビリティ目的)


                             EPUB Content Documents 3.0
                               コンテンツ文書
              Copyright © 2012 Hiroshi Takase.
せっかくのHTML5の
勉強会なのにHTML5への
言及が少ないわね~



      仕様でも単に参照してるだけだから
      それほどHTML5ついてあれこれ
      言ってるわけじゃないのよ
      それに僕もHTML5勉強中なので
      あんまり詳しく語れない(泣)

       Copyright © 2012 Hiroshi Takase.
• 目次の役割を果たす特殊なXHTMLコンテンツ文書
• EPUBファイルの中にナビゲーション文書は必須
• 目次は<nav epub:type="toc">の中に番号リスト(ol、li)とハ
  イパーリンク(a)などで記述する
• EPUB2では目次をNCXというXML文書で記述していた

 <html ...
   xmlns:epub="http://www.idpf.org/2007/ops">
 ...
 <nav epub:type=“toc”>
  <ol>
   <li><a href=“c1.xhtml”>Chapter.1</a></li>
   <li><a href=“c1.xhtml#sub1”>Chapter.1-1</a></li>
   <li><a href=“c1.xhtml#sub2”>Chapter.1-2</a></li>
   ...
  </ol>
 </nav>                     EPUB Content Documents    3.0
                    ナビゲーション文書
                   Copyright © 2012 Hiroshi Takase.
• EPUBで利用するスタイルシートをEPUBスタイルシート
  と呼ぶ
• CSS 2.1とCSS3のプロパティで構成される
• ただし、ビューワは全てのプロパティを実装しなければ
  ならないわけではない
• 参照しているCSS3モジュールは以下のとおり
 –   CSS 3.0 Speech
 –   CSS Fonts Level 3
 –   CSS Text Level 3
 –   CSS Writing Modes
 –   Media Queries
 –   CSS Namespaces
 –   CSS Multi-Column Layout
                                     EPUB Content Documents 3.0
                  EPUBスタイルシート
                      Copyright © 2012 Hiroshi Takase.
• CSS3からはまだWD、ED等安定していないステータスの
  モジュールも参照している。
• これらのプロパティには –epub-の接頭辞を付ける
• -epub-が必要なプロパティは仕様の中で明示してある
• ちなみに、WebKitでは-epub-は-webkit-のエイリアスと
  して動作する
• CSS Text Level 3やCSS Writing Modesは2011年4月11日
  時点でのドラフトに従う。
 html {
   -epub-writing-mide: vertical-rl;
   writing-mode: vertical-rl;
 }
                                   EPUB Content Documents 3.0
                EPUBスタイルシート
                    Copyright © 2012 Hiroshi Takase.
EPUB Canonical
Fragment Identifier

      Copyright © 2012 Hiroshi Takase.
• 出版物の中の任意の位置を参照するための識別子
• テキストだけではなく様々なメディアの時間や空間も指
  定できる
• 読みかけの場所の保持、ハイライト、メモ、注釈など用
  途は様々
• 人に厳しく機械に優しい構文><
 mybook.epub#epubcfi(/6/4[chap01ref]!/4[body01]/10/1:3)

 →“mybook.epubの中のパッケージ文書の3番目の子ノードの2番目の子ノード
 かつid=“chap01ref”のノードが参照するコンテンツ文書の中にある2番目の
 子ノードかつid=“body01”のノードの5番目のノードの子ノードであるテキスト
 ノードの3文字目の直後” という意味。解説は省略!

                     EPUB Canonical Fragment Identifier
                                                      epubcfi
                   Copyright © 2012 Hiroshi Takase.
Accessibility

    Copyright © 2012 Hiroshi Takase.
• EPUB3のマルチメディア対応はアクセシ
  ビリティ向上の目的もある
• 録音済み音声とテキストの同期
 – メディアオーバーレイ文書を利用する
• 音声読み上げ(Text to Speech)
 – PLS文書を同梱する
 – コンテンツにSSML属性を記述する
 – CSS Speech Moduleを利用する



            聴覚的な読書の実現
           Copyright © 2012 Hiroshi Takase.
• Synchronized Multimedia Integration Language (SMIL
  3.0) のサブセット
• http://www.w3.org/TR/SMIL/ ←SMIL
• オーディオ再生とテキストの同期に利用する
• オーサリング環境が少なく作るのがキツい><
• 拡張子 .smil メディアタイプ application/smil+xml
• 好みの声優さんに朗読して貰えたら…ゲフンゲフン
   <par>
       <text src="chapter1.xhtml#sentence1"/>
       <audio src="chapter1_audio.mp3"
            clipBegin="23s“
            clipEnd="30s"/>
   </par>

                                              EPUB Media Overlays 3.0
          メディアオーバーレイ文書
                    Copyright © 2012 Hiroshi Takase.
• Media Overlaysを体験するにはiBooksで“Yellow
  Submarine”を読んでみるのがお奨め
• EPUB2ベースだが、マルチメディア、スクリプティング
  などEPUB3の新機能のショーケースに近い
• Appleの独自拡張部分も少なからずあるので注意




                                       EPUB Media Overlays 3.0
      メディアオーバーレイ文書
             Copyright © 2012 Hiroshi Takase.
• Pronunciation Lexicon Specification Version 1.0
• http://www.w3.org/TR/pronunciation-lexicon/
• 音声認識と音声合成エンジンが利用する
  発音情報辞書を記述したXML文書…らしいです(汗
• 拡張子 .pls メディアタイプ application/pls+xml


   <lexeme>
     <grapheme>nihongo</grapheme>
     <grapheme>日本語</grapheme>
     <grapheme>にほんご</grapheme>
     <phoneme>ɲihoŋo</phoneme><!-- 国際音声記号(IPA) -->
   </lexeme>



                                              補足 - PLS
                   Copyright © 2012 Hiroshi Takase.
• Speech Synthesis Markup Language Version 1.1
• http://www.w3.org/TR/speech-synthesis11/
• 音声合成エンジンを制御するマークアップ言語
                                     …らしいです(汗
• EPUB3ではコンテンツ文書の要素に属性として
  発音情報を指定するのに利用する
  <html ...
  xmlns:ssml="http://www.w3.org/2001/10/synthesis">
  ...
  <p><span ssml:alphabet="ipa“ ssml:ph=“ɲihoŋo”
  >日本語</span>は難しい。</p>




                                   補足 - SSML
                   Copyright © 2012 Hiroshi Takase.
• 紙の読書に困難を抱える人のための国際標準フォーマッ
  トDAISY(=ANSI/NISO z39.86)を開発する非営利団体
• IDPFの古参かつ中核メンバー
• DAISYはDigital Accessible Information SYstemの略
• 米国や北欧などで電子教科書のフォーマットとして採用
  されている
• 紙の本をセマンティックに記述するタグが豊富
• EPUB2にも影響を与えた(NCX, DTBook)
• 次期DAISY4は記述・交換フォーマットに特化。
  EPUB3、点字本、PDFなどに変換して閲覧する。


    補足 – DAISY Consortium
                 Copyright © 2012 Hiroshi Takase.
まあEPUBって
ウェブ技術を
パクリ
参照しまくり
だよね

      Copyright © 2012 Hiroshi Takase.
既にあるものを
使うのは悪いことじゃ
ないし、
参照しっぱなし
でもないわよ!

Copyright © 2012 Hiroshi Takase.
• EPUBの日本語レイアウト対応を契機として策定
  が前進したもの
 – CSS Text Level 3
 – CSS Writing Modes Module Level 3
• EPUBのレイアウト向上を視野にCSSモジュール
  化が進められているもの
 – CSS Regions Module Level 3
 – CSS Exclusions and Shapes Module Level 3
 – (CSS Page Templates )?



         EPUBからW3C CSSへ
                  Copyright © 2012 Hiroshi Takase.
• EPUBのどこがウェブと同じでどこが違うのか見えてき
  たものはありましたでしょうか?
• EPUBが独自に補っているものには、ウェブをよりよく
  するヒントもあるかもしれません。
• 出版業界はしばらくCSS組版にドハマリしながらEPUBを
  作ることになりそうですが、すでにウェブの世界に馴染
  みのある方々からは、本のメタファに縛られないあっと
  驚くEPUBコンテンツが生まれてこないか期待していま
  す。
• ウェブ技術の浸透はこれまで縁のなかった業界や人に新
  しい出会いを生んでいます。是非、電子出版にも触手を
  伸ばしてみてください。

                                             おわりに
          Copyright © 2012 Hiroshi Takase.
ギャルゲーでわかるEPUB3
  → 無理ゲーでした


ボツ企画
   Copyright © 2012 Hiroshi Takase.
Copyright © 2012 Hiroshi Takase.
ご清聴
       ありがとう
      ございました

                         Fin.
Copyright © 2012 Hiroshi Takase.

More Related Content

What's hot

Memcachedの仕組みと設定
Memcachedの仕組みと設定Memcachedの仕組みと設定
Memcachedの仕組みと設定Tatsuya Akashi
 
WindowsのCP932に苦闘している件
WindowsのCP932に苦闘している件WindowsのCP932に苦闘している件
WindowsのCP932に苦闘している件Hidetoshi Hirokawa
 
ZabbixでDockerも監視
ZabbixでDockerも監視 ZabbixでDockerも監視
ZabbixでDockerも監視 Atsushi Tanaka
 
Snowflake Architecture and Performance
Snowflake Architecture and PerformanceSnowflake Architecture and Performance
Snowflake Architecture and PerformanceMineaki Motohashi
 
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹CODE BLUE
 
Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Yuki Gonda
 
Snowflake Architecture and Performance
Snowflake Architecture and PerformanceSnowflake Architecture and Performance
Snowflake Architecture and PerformanceMineaki Motohashi
 
Microsoft Azure Storage 概要
Microsoft Azure Storage 概要Microsoft Azure Storage 概要
Microsoft Azure Storage 概要Takeshi Fukuhara
 
CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料SECCON Beginners
 
実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いたAkihiro Kuwano
 
React-konvaで絵を描いてみる話
React-konvaで絵を描いてみる話React-konvaで絵を描いてみる話
React-konvaで絵を描いてみる話iPride Co., Ltd.
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Amazon Web Services Japan
 
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)NTT DATA Technology & Innovation
 
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPFShuji Yamada
 
Data Processing behind LINE Game Platform
Data Processing behind LINE Game PlatformData Processing behind LINE Game Platform
Data Processing behind LINE Game PlatformLINE Corporation
 

What's hot (20)

Memcachedの仕組みと設定
Memcachedの仕組みと設定Memcachedの仕組みと設定
Memcachedの仕組みと設定
 
WindowsのCP932に苦闘している件
WindowsのCP932に苦闘している件WindowsのCP932に苦闘している件
WindowsのCP932に苦闘している件
 
ZabbixでDockerも監視
ZabbixでDockerも監視 ZabbixでDockerも監視
ZabbixでDockerも監視
 
Snowflake Architecture and Performance
Snowflake Architecture and PerformanceSnowflake Architecture and Performance
Snowflake Architecture and Performance
 
AWS Black Belt Techシリーズ Amazon EBS
AWS Black Belt Techシリーズ  Amazon EBSAWS Black Belt Techシリーズ  Amazon EBS
AWS Black Belt Techシリーズ Amazon EBS
 
Zabbix概論
Zabbix概論Zabbix概論
Zabbix概論
 
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
 
Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-
 
Snowflake Architecture and Performance
Snowflake Architecture and PerformanceSnowflake Architecture and Performance
Snowflake Architecture and Performance
 
Microsoft Azure Storage 概要
Microsoft Azure Storage 概要Microsoft Azure Storage 概要
Microsoft Azure Storage 概要
 
CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料
 
RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」
 
実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた
 
React-konvaで絵を描いてみる話
React-konvaで絵を描いてみる話React-konvaで絵を描いてみる話
React-konvaで絵を描いてみる話
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
 
AWS Database Migration Service ご紹介
AWS Database Migration Service ご紹介AWS Database Migration Service ご紹介
AWS Database Migration Service ご紹介
 
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
 
Hadoop入門
Hadoop入門Hadoop入門
Hadoop入門
 
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
 
Data Processing behind LINE Game Platform
Data Processing behind LINE Game PlatformData Processing behind LINE Game Platform
Data Processing behind LINE Game Platform
 

Similar to いいパブッ!! - よくわかるEPUB 3

いいパブッ!! はじめてのEPUB 3
いいパブッ!! はじめてのEPUB 3いいパブッ!! はじめてのEPUB 3
いいパブッ!! はじめてのEPUB 3Hiroshi Takase
 
EPUB Media Overlays 3.0とFixed Layout(固定レイアウト)
EPUB Media Overlays 3.0とFixed Layout(固定レイアウト)EPUB Media Overlays 3.0とFixed Layout(固定レイアウト)
EPUB Media Overlays 3.0とFixed Layout(固定レイアウト)Youji Sakai
 
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」ericsagnes
 
電書ラボ公開セミナー2016年10月「EPUBの構造を詳細に見てみる」
電書ラボ公開セミナー2016年10月「EPUBの構造を詳細に見てみる」電書ラボ公開セミナー2016年10月「EPUBの構造を詳細に見てみる」
電書ラボ公開セミナー2016年10月「EPUBの構造を詳細に見てみる」Jun Tajima
 
JEPA 4月度定例会資料 0412
JEPA 4月度定例会資料 0412JEPA 4月度定例会資料 0412
JEPA 4月度定例会資料 0412Takuya Hayashi
 
JEPA 11月度定例会資料
JEPA 11月度定例会資料JEPA 11月度定例会資料
JEPA 11月度定例会資料Takuya Hayashi
 
JEPA 4月度定例会資料0409a
JEPA 4月度定例会資料0409aJEPA 4月度定例会資料0409a
JEPA 4月度定例会資料0409aTakuya Hayashi
 
『RESTful Web サービス』読書会 第4回 9章 説明資料
『RESTful Web サービス』読書会 第4回 9章 説明資料『RESTful Web サービス』読書会 第4回 9章 説明資料
『RESTful Web サービス』読書会 第4回 9章 説明資料Siena. N
 
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)Toru Kawamura
 
Drupal のコア要素を知る ~構築を支える道具立て~
Drupal のコア要素を知る ~構築を支える道具立て~Drupal のコア要素を知る ~構築を支える道具立て~
Drupal のコア要素を知る ~構築を支える道具立て~Kenji Shirane
 
【学習メモ#5th】12ステップで作る組込みOS自作入門
【学習メモ#5th】12ステップで作る組込みOS自作入門【学習メモ#5th】12ステップで作る組込みOS自作入門
【学習メモ#5th】12ステップで作る組込みOS自作入門sandai
 
OSS開発勉強会-01B
OSS開発勉強会-01BOSS開発勉強会-01B
OSS開発勉強会-01BKohei KaiGai
 
かたログッ!! - 本をネットに解き放て
かたログッ!! - 本をネットに解き放てかたログッ!! - 本をネットに解き放て
かたログッ!! - 本をネットに解き放てHiroshi Takase
 
20021127 ku-librarians勉強会 #38 : Where can I go? : OpenURLによる状況判断型リンク(SFXを中心として)
20021127 ku-librarians勉強会 #38 : Where can I go? : OpenURLによる状況判断型リンク(SFXを中心として)20021127 ku-librarians勉強会 #38 : Where can I go? : OpenURLによる状況判断型リンク(SFXを中心として)
20021127 ku-librarians勉強会 #38 : Where can I go? : OpenURLによる状況判断型リンク(SFXを中心として)kulibrarians
 
Mizuno buddypress-plugin
Mizuno buddypress-pluginMizuno buddypress-plugin
Mizuno buddypress-pluginIkuko Kanada
 
Mizuno buddypress-plugin
Mizuno buddypress-pluginMizuno buddypress-plugin
Mizuno buddypress-pluginFumito Mizuno
 
PHP基礎勉強会
PHP基礎勉強会PHP基礎勉強会
PHP基礎勉強会Yuji Otani
 
Drupalテーマとthemingの基礎
Drupalテーマとthemingの基礎Drupalテーマとthemingの基礎
Drupalテーマとthemingの基礎Kenji Shirane
 

Similar to いいパブッ!! - よくわかるEPUB 3 (20)

いいパブッ!! はじめてのEPUB 3
いいパブッ!! はじめてのEPUB 3いいパブッ!! はじめてのEPUB 3
いいパブッ!! はじめてのEPUB 3
 
EPUB Media Overlays 3.0とFixed Layout(固定レイアウト)
EPUB Media Overlays 3.0とFixed Layout(固定レイアウト)EPUB Media Overlays 3.0とFixed Layout(固定レイアウト)
EPUB Media Overlays 3.0とFixed Layout(固定レイアウト)
 
20121024 sakai epubsem_accessibility
20121024 sakai epubsem_accessibility20121024 sakai epubsem_accessibility
20121024 sakai epubsem_accessibility
 
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
 
電書ラボ公開セミナー2016年10月「EPUBの構造を詳細に見てみる」
電書ラボ公開セミナー2016年10月「EPUBの構造を詳細に見てみる」電書ラボ公開セミナー2016年10月「EPUBの構造を詳細に見てみる」
電書ラボ公開セミナー2016年10月「EPUBの構造を詳細に見てみる」
 
JEPA 4月度定例会資料 0412
JEPA 4月度定例会資料 0412JEPA 4月度定例会資料 0412
JEPA 4月度定例会資料 0412
 
Sphinx/reST
Sphinx/reSTSphinx/reST
Sphinx/reST
 
JEPA 11月度定例会資料
JEPA 11月度定例会資料JEPA 11月度定例会資料
JEPA 11月度定例会資料
 
JEPA 4月度定例会資料0409a
JEPA 4月度定例会資料0409aJEPA 4月度定例会資料0409a
JEPA 4月度定例会資料0409a
 
『RESTful Web サービス』読書会 第4回 9章 説明資料
『RESTful Web サービス』読書会 第4回 9章 説明資料『RESTful Web サービス』読書会 第4回 9章 説明資料
『RESTful Web サービス』読書会 第4回 9章 説明資料
 
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
 
Drupal のコア要素を知る ~構築を支える道具立て~
Drupal のコア要素を知る ~構築を支える道具立て~Drupal のコア要素を知る ~構築を支える道具立て~
Drupal のコア要素を知る ~構築を支える道具立て~
 
【学習メモ#5th】12ステップで作る組込みOS自作入門
【学習メモ#5th】12ステップで作る組込みOS自作入門【学習メモ#5th】12ステップで作る組込みOS自作入門
【学習メモ#5th】12ステップで作る組込みOS自作入門
 
OSS開発勉強会-01B
OSS開発勉強会-01BOSS開発勉強会-01B
OSS開発勉強会-01B
 
かたログッ!! - 本をネットに解き放て
かたログッ!! - 本をネットに解き放てかたログッ!! - 本をネットに解き放て
かたログッ!! - 本をネットに解き放て
 
20021127 ku-librarians勉強会 #38 : Where can I go? : OpenURLによる状況判断型リンク(SFXを中心として)
20021127 ku-librarians勉強会 #38 : Where can I go? : OpenURLによる状況判断型リンク(SFXを中心として)20021127 ku-librarians勉強会 #38 : Where can I go? : OpenURLによる状況判断型リンク(SFXを中心として)
20021127 ku-librarians勉強会 #38 : Where can I go? : OpenURLによる状況判断型リンク(SFXを中心として)
 
Mizuno buddypress-plugin
Mizuno buddypress-pluginMizuno buddypress-plugin
Mizuno buddypress-plugin
 
Mizuno buddypress-plugin
Mizuno buddypress-pluginMizuno buddypress-plugin
Mizuno buddypress-plugin
 
PHP基礎勉強会
PHP基礎勉強会PHP基礎勉強会
PHP基礎勉強会
 
Drupalテーマとthemingの基礎
Drupalテーマとthemingの基礎Drupalテーマとthemingの基礎
Drupalテーマとthemingの基礎
 

More from Hiroshi Takase

IMS/GLC 2015 東京セミナー報告とCaliper 1.0
IMS/GLC 2015 東京セミナー報告とCaliper 1.0IMS/GLC 2015 東京セミナー報告とCaliper 1.0
IMS/GLC 2015 東京セミナー報告とCaliper 1.0Hiroshi Takase
 
つながる本 つながる人 - HTML Conference 2015
つながる本 つながる人 - HTML Conference 2015つながる本 つながる人 - HTML Conference 2015
つながる本 つながる人 - HTML Conference 2015Hiroshi Takase
 
でんでんコンバーターによるEPUB制作
でんでんコンバーターによるEPUB制作でんでんコンバーターによるEPUB制作
でんでんコンバーターによるEPUB制作Hiroshi Takase
 
書籍解説 “What is EPUB 3?” & “Accessible EPUB 3”
書籍解説 “What is EPUB 3?” & “Accessible EPUB 3”書籍解説 “What is EPUB 3?” & “Accessible EPUB 3”
書籍解説 “What is EPUB 3?” & “Accessible EPUB 3”Hiroshi Takase
 
Internet Explorer 10 の日本語組版
Internet Explorer 10 の日本語組版Internet Explorer 10 の日本語組版
Internet Explorer 10 の日本語組版Hiroshi Takase
 

More from Hiroshi Takase (7)

IMS/GLC 2015 東京セミナー報告とCaliper 1.0
IMS/GLC 2015 東京セミナー報告とCaliper 1.0IMS/GLC 2015 東京セミナー報告とCaliper 1.0
IMS/GLC 2015 東京セミナー報告とCaliper 1.0
 
EDUPUB Profile解説
EDUPUB Profile解説EDUPUB Profile解説
EDUPUB Profile解説
 
つながる本 つながる人 - HTML Conference 2015
つながる本 つながる人 - HTML Conference 2015つながる本 つながる人 - HTML Conference 2015
つながる本 つながる人 - HTML Conference 2015
 
IMS/GLC Caliper
IMS/GLC CaliperIMS/GLC Caliper
IMS/GLC Caliper
 
でんでんコンバーターによるEPUB制作
でんでんコンバーターによるEPUB制作でんでんコンバーターによるEPUB制作
でんでんコンバーターによるEPUB制作
 
書籍解説 “What is EPUB 3?” & “Accessible EPUB 3”
書籍解説 “What is EPUB 3?” & “Accessible EPUB 3”書籍解説 “What is EPUB 3?” & “Accessible EPUB 3”
書籍解説 “What is EPUB 3?” & “Accessible EPUB 3”
 
Internet Explorer 10 の日本語組版
Internet Explorer 10 の日本語組版Internet Explorer 10 の日本語組版
Internet Explorer 10 の日本語組版
 

Recently uploaded

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 

Recently uploaded (10)

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 

いいパブッ!! - よくわかるEPUB 3

  • 1. Copyright © 2012 Hiroshi Takase.
  • 4. • 高瀬 拓史 • @lost_and_found / ろす • http://d.hatena.ne.jp/lost_and_found/ • ブログでEPUB2仕様を翻訳公開し てる人 • イースト株式会社勤務 • “EPUB日本語拡張仕様策定”プ ロジェクトに参加 • eBookジャーナル(マイナビ) • 「EPUB定点観測」を連載⇨了 登場人物 Copyright © 2012 Hiroshi Takase.
  • 5. • 電書ちゃん • ろすのブログのマスコットキャラ • 電子書籍の世界の案内役という初 期設定だったはず… • 性格キツめ • 立ち絵が少ないのが弱点 • © (有)JCN & Garakuta 登場人物 Copyright © 2012 Hiroshi Takase.
  • 6. • EPUBはIDPF(国際電子出版フォーラム)が提唱 する電子出版物の配布・フォーマットの標準 • オープンな標準で制約なく利用できる • XMLとウェブコンテンツをベースとしている • スクリーンや文字サイズによって、行の折り返 しが変わる、リフローを特徴としている • 2011年10月に最新のEPUB3が確定した • このプレゼンではこのEPUB3の仕様を追えるだ け追ってみます。 はじめに Copyright © 2012 Hiroshi Takase.
  • 7. • 公開場所は http://idpf.org/epub/30/ • 具体的な技術は次の文書で触れている – EPUB Publications 3.0 – EPUB Content Documents 3.0 – EPUB Open Container Format (OCF) 3.0 – EPUB Media Overlays 3.0 – EPUB Canonical Fragment Identifier • それではスタート EPUB3.0の仕様 Copyright © 2012 Hiroshi Takase.
  • 8. Open Container Format (OCF) 3.0 Copyright © 2012 Hiroshi Takase.
  • 9. • EPUBは複数のファイルで構成されており、zipで圧縮さ れている • EPUBを構成するファイルが入った入れ物を仕様では EPUBコンテナ (EPUB Container)と呼ぶ • zipで圧縮されているため簡単に展開して、中身を取り出 すことができる • 暗号化(パス付き)zipはダメよ • 一部のファイルとディレクトリの配置に、“お約束”が ある Open Container Format 3.0 EPUBコンテナ Copyright © 2012 Hiroshi Takase.
  • 10. パッケージ文書 コンテンツ文書 ナビゲーション文書 EPUBコンテナ Open Container Format 3.0 ちょ~シンプルなEPUBの構成例 Copyright © 2012 Hiroshi Takase.
  • 11. この辺のお話です EPUBコンテナ Open Container Format 3.0 仕様が定義する対象 Copyright © 2012 Hiroshi Takase.
  • 12. • EPUBのメディアタイプを記述した一行だけの短いテキスト ファイル • このファイルはEPUBコンテナの先頭に、位置しなければなら ない • 圧縮、暗号化不可 • なので展開したファイルをEPUBに戻すのは、ちょっと面倒 • ↓中身 application/epub+zip Open Container Format 3.0 mimetype Copyright © 2012 Hiroshi Takase.
  • 13. • EPUBコンテナに関するメタデータを格納する必須ディ レクトリ • 出版物に関するメタデータじゃないよ • ここに格納するファイルは役割によって名前が予約され ている • 必須ファイルはcontainer.xml。あとはオプショナル Open Container Format 3.0 META-INF Copyright © 2012 Hiroshi Takase.
  • 14. • 出版物のルートファイルの位置とメディアタイプを示すXML 文書。圧縮、暗号化不可 • EPUBのルートファイルはパッケージ文書(.opf) • EPUBではmimetype、META-INF以外は自由なファイル・ディ レクトリ構成が可能→ビューワに最初にどのファイルを見に ゆけばよいか示す必要がある <?xml version="1.0"?> <container version="1.0“ xmlns="urn:oasis:names:tc:opendocument:xmlns:containe r"> <rootfiles> <rootfile full-path=“mybook.opf" media-type="application/oebps-package+xml"/> </rootfiles> </container> Open Container Format 3.0 META-INF/container.xml Copyright © 2012 Hiroshi Takase.
  • 15. なんでわざわざ パッケージ文書の メディアタイプを 指定するわけ? EPUBの中には EPUBのルートファ イルがあるに決まって んじゃんJK Copyright © 2012 Hiroshi Takase.
  • 17. • EPUBに他のフォーマットや複数のパッケージ文書を同梱する ことも仕様上は可能(ただし選択する条件を記述できる仕様 になってない) • 将来の改版で条件指定ができるようになりそうな気配 <?xml version="1.0"?> <container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container"> <rootfiles> <rootfile full-path="OEBPS/Great Expectations.opf" media-type="application/oebps-package+xml" /> <rootfile full-path="PDF/Great Expectations.pdf" media-type="application/pdf" /> </rootfiles> </container> Open Container Format 3.0 META-INF/container.xml Copyright © 2012 Hiroshi Takase.
  • 18. ファイル名 用途 備考 encryption.xml 暗号化 暗号化したファイルと方式を記述 manifest.xml マニフェスト 仕様にはコード例すらないし、 使われてるの見たことない。 ぶっちゃけ要らない metadata.xml メタデータ コンテナレベルのメタデータを記 述する。 使われてるの見たことない… rights.xml 著作権情報 必要なDRM情報を記述。DRM方式 自体は任意。 signatures.xml デジタル署名 署名したファイルと方式を記述 Open Container Format 3.0 META-INF/にあるその他の面々 Copyright © 2012 Hiroshi Takase.
  • 20. 方式は記述するけど 秘密鍵の場所など 復号に必要な情報は 書かれていません。 早い話が実装依存ね。 Copyright © 2012 Hiroshi Takase.
  • 21. • Font Obfuscation • EPUBにはフォントファイルを同梱できるが、暗号化されてい なければ、高価な商用フォントであっても中から取り出すの は容易。フォントメーカーの懸念材料となる • そのため出版物の識別子をキーにして、フォントファイルの 先頭1040 byteを変換するアルゴリズムが仕様化 • 制作者はこのアルゴリズムでフォントを変換し、ビューワは 閲覧の際にこのアルゴリズムでフォントを復号化する • フォントが流用されるリスクを少し下げる程度の機構 • 仕様上はEPUB3ビューワへの実装が必須 iBooksやRMSDK系ビューワでサポート 制作ツールではSigilが対応。 Open Container Format 3.0 フォント難読化 Copyright © 2012 Hiroshi Takase.
  • 22. EPUB Publications 3.0 Copyright © 2012 Hiroshi Takase.
  • 23. この辺のお話です パッケージ文書 EPUB Publications 3.0 仕様が定義する対象 Copyright © 2012 Hiroshi Takase.
  • 24. 書誌情報(メタデータ)や読み順等を記述したXML文書。 • 圧縮、暗号化不可。 • 拡張子.opf メディアタイプ application/oebps-package+xml • EPUBの核となるファイルと言ってよい(これがなければ単なる zipped webと変わらない) • ルート要素であるpackage要素と、子要素であるmetadata、manifest、 spineで構成される。 • spineの次にguide、bindingsというオプショナルな子要素を持つ場 合もある。 <package> <metadata /><!–- メタデータを書く --> <manifest /><!–- ファイル一覧 --> <spine /> <!-- 読み順 --> <guide /> <!–- 本のセマンティクス --> <bindings /><!-- 特殊なフォールバック --> </package> EPUB Publications 3.0 パッケージ文書 Copyright © 2012 Hiroshi Takase.
  • 25. パッケージ文書のルート要素 • http://www.idpf.org/2007/opfの名前空間に属する • 次の属性指定が必須 • version属性。EPUBのバージョン。これが3.0だとEPUB3 • unique-identifier属性。出版物の識別子。metadataに書いてあ る識別子をID参照する <package xmlns="http://www.idpf.org/2007/opf" version="3.0" unique-identifier="bookid"> <metadata ...> <dc:identifier id=“bookid”>...</dc:identifier> </metadata> ... </package> EPUB Publications 3.0 パッケージ文書 - package Copyright © 2012 Hiroshi Takase.
  • 26. • (出版物レベルの)メタデータを記述する要素 • 基本は Dublin Core Metadata Element Setで記述する • 最低限必要なのは、識別子(dc:identifier)、タイトル (dc:title)、言語(dc:language)、更新日時(dcterms:modified) <metadata xmlns:dc="http://purl.org/dc/elements/1.1/"> <dc:identifier id=“bookid”> urn:uuid:966a8a88-75c6-414c-bb3e-d29f0f07069b </dc:identifier> <dc:title id=“title”>いいパブッ!!</dc:title> <dc:language id=“language”>ja</dc:language> <meta property="dcterms:modified"> 2012-02-10T04:00:00Z</meta> </metadata> EPUB Publications 3.0 パッケージ文書 - metadata Copyright © 2012 Hiroshi Takase.
  • 27. • その出版物を表すユニークな識別子 • UUID(v4)を生成するオーサリングツールが多いが、特に 規定はない • 複数保持可 • package要素のunique-identifier属性から一つだけID参照 する <package ... unique-identifier=“bookid”> <metadata xmlns:dc="http://purl.org/dc/elements/1.1/"> <dc:identifier id=“bookid”> urn:uuid:966a8a88-75c6-414c-bb3e-d29f0f07069b </dc:identifier> </metadata> EPUB Publications 3.0 パッケージ文書 – dc:identifier Copyright © 2012 Hiroshi Takase.
  • 28. EPUBの内容を 編集したら 識別子は 変えなきゃダメ? Copyright © 2012 Hiroshi Takase.
  • 30. 出版物が最後に変更された時間を記述するmeta要素。 • 内容は CCYY-MM-DDThh:mm:ssZ の dateTime形式 • UTCで記述するので日本は+9時間 • 出版物の識別は“識別子@更新日時”で行う <metadata xmlns:dc="http://purl.org/dc/elements/1.1/"> <dc:identifier id=“bookid”> urn:uuid:966a8a88-75c6-414c-bb3e-d29f0f07069b </dc:identifier> <meta property="dcterms:modified"> 2012-02-10T04:00:00Z</meta> </metadata> urn:uuid:966a8a88-75c6-414c-bb3e-d29f0f07069b@2012- 02-10T04:00:00Z EPUB Publications 3.0 パッケージ文書 – dcterms:modified Copyright © 2012 Hiroshi Takase.
  • 31. • dc:title その出版物のタイトル表す要素 • dc:language その出版物が使用する言語を表す要素。内 容は言語コードで指定する。英語はen、日本語はja。国 コードまで付けるならja-JP。 <metadata xmlns:dc="http://purl.org/dc/elements/1.1/"> <dc:title id=“title”>いいパブッ!!</dc:title> <dc:language id=“language”>ja</dc:language> </metadata> EPUB Publications 3.0 パッケージ文書 – dc:title、dc:language Copyright © 2012 Hiroshi Takase.
  • 32. うーん、この本の正確な タイトルは 「痛プレゼン シリー ズ 1 いいパブッ!! よ くわかるEPUB3 」 なんだけど… Copyright © 2012 Hiroshi Takase.
  • 33. ……(呆) Copyright © 2012 Hiroshi Takase.
  • 34. • refines属性を持ったmeta要素と組み合わせて、メタデー タを詳細に記述する仕組みがある • どこまで運用するかは出版社、プラットフォーマー次第 か <dc:title id=“title”>いいパブッ!!</dc:title> <meta refines="#title" property="title- type">main</meta> <dc:title id=“subtitle”>よくわかるEPUB3</dc:title> <meta refines="#subtitle" property="title- type">subtitle</meta> <dc:title id=“collection”>痛プレゼンシリーズ</dc:title> <meta refines="#collection" property="title- type">collection</meta> <meta refines="#collection" property="group- position">1</meta> EPUB Publications 3.0 パッケージ文書 – メタデータの拡張 Copyright © 2012 Hiroshi Takase.
  • 35. • dc:creator その出版物の責任者≒制作者を表す要素 • オプショナルな要素だが、大抵使うはず。 • 役割を詳細に記述するなら meta要素とMARC Code List for Relatorsを組み合わせる方法がある。 <dc:creator id=“creator1”> lost_and_found </dc:creator> <meta refines=“#creator1” property="role" scheme="marc:relators" id="role">aut</meta> <dc:creator id=“creator2”> 電書ちゃん </dc:creator> <meta refines=“#creator2” property="role" scheme="marc:relators" id="role">aut</meta> EPUB Publications 3.0 パッケージ文書 – dc:creator Copyright © 2012 Hiroshi Takase.
  • 36. • http://www.loc.gov/marc/relators/ • リソースの関係者を記述するためのコードで書誌情報の 記録に利用する • The Library of Congress (米議会図書館)がメンテナンス • 出版物のみならず音楽・演劇など幅広い分野をカバーし 223種類のコードを定義 • アルファベット3文字で表記できる • 日本語で読める資料超少ない>< aut: Author 著者 edt: Editor 編集者 ill: Illustrator イラストレーター ...etc. 補足 - MARC Code List for Relators Copyright © 2012 Hiroshi Takase.
  • 37. • 出版物のコンテンツが利用するリソースの一覧を記述し た要素 • 利用するすべてのリソースをitem要素に記述する • item要素にはid、href、media-type属性が必須 <manifest> <item id=“foo” href=“foo.jpg” media-type=”image/jpg” /> <item id=“bar” href=“bar.xhtml” media-type=”application/xhtml+xml” /> <item id=“baz” href=“baz.xhtml” media-type=”application/xhtml+xml” /> </manifest> EPUB Publications 3.0 パッケージ文書 - manifest Copyright © 2012 Hiroshi Takase.
  • 38. • item要素には内容を説明するproperties属性が必要とな る場合がある • cover-image:表紙画像、nav:ナビゲーション文書、 scripted:javascriptかformタグの利用、math:MathMLの利 用、svg:インラインSVGの利用 <item id=“foo” href=“foo.jpg” properies=“cover-image” media-type=”image/jpg” /> <item id=“bar” href=“bar.xhtml” properies=“nav” media-type=”application/xhtml+xml” /> <item id=“baz” href=“baz.xhtml” properies=“scripted math svg” media-type=”application/xhtml+xml” /> EPUB Publications 3.0 パッケージ文書 - manifest Copyright © 2012 Hiroshi Takase.
  • 39. • EPUB Core Media Types • EPUBの中でfallbackなしで利用してよいリソース • ここにないリソースはコアメディアタイプへのfallback を提供しなければならない • ビューワにとって全てがサポート必須ではなく、サポー トに条件が設けられているリソースもある • 例: 読み上げ機能を持つビューワはPLS文書をサポー トしなければならない...etc. EPUB Publications 3.0 コアメディアタイプ Copyright © 2012 Hiroshi Takase.
  • 40. • fallback chain mechanism • manifestのitem要素にはfallback属性で、代替リソースを 指定できる。 ・fallbackのfallbackのfallback…と幾つも重ねてよいが、コ アメディアタイプが一つ含まれている必要がある <manifest> <item id=“foo” href=“foo.foo” fallback=“bar” media-type=“applicaion/foo” /> <item id=“bar” href=“bar.bar” fallback=“baz” media-type=“application/bar” /> <item id=“baz” href=“baz.xhtml” ... media-type=“applicaion/xhtml+xml” /> ... </manifest> EPUB Publications 3.0 manifest level fallback Copyright © 2012 Hiroshi Takase.
  • 41. 分類 名称 メディアタイプ EPUB3 EPUB 2.0.1 画像 GIF image/gif ○ ○ JPEG image/jpeg ○ ○ PNG image/png ○ ○ SVG image/svg ○ ○ XML文書 XHTML application/xhtml+xml ○ ○ NCX application/x-dtbncx+xml ○ ○ EPUB Media Overlays application/smil+xml ○ ― TTS発音辞書 application/pls+xml ○ ― フォント OpenTypeフォント application/vnd.ms-opentype ○ ― WOFFフォント application/font-woff ○ ― 音声 MP3 audio/mpeg ○ ― MP4 AAC LC audio/aac ○ ― テキスト スタイルシート text/css ○ ○ Java Script text/javascript ○ ― EPUB Publications 3.0 コアメディアタイプ一覧 Copyright © 2012 Hiroshi Takase.
  • 42. あれ、 動画がないよ。 EPUB3は動画 埋め込めるんじゃ なかったっけ? Copyright © 2012 Hiroshi Takase.
  • 44. • spine = 本の「背」のこと • コンテンツ文書の読み順を指定する要素 • 紙のページを綴じる代わりにspineに文書を綴じる感じ <spine> <itemref idref=“cover.xhtml” /> <itemref idref=“chapter01.xhtml” /> <itemref idref=“chapter02.xhtml” /> … </spine> EPUB Publications 3.0 パッケージ文書 - spine Copyright © 2012 Hiroshi Takase.
  • 45. • 本の綴じ方向はspine要素にpage-progression-direction属 性で指定する • ltr は左綴じ(横書きの本)で初期値。rtl が右綴じ(縦書 きの本) • HTML+CSSでは文書間の進行方向を指定できないため、 導入した属性 <spine page-progression-direction=“rtl”> EPUB Publications 3.0 パッケージ文書 - spine Copyright © 2012 Hiroshi Takase.
  • 47. • 本のセマンティクスを記述するオプショナルな要素 • EPUB3では非推奨の扱い。ナビゲーション文書の<nav epub:type="landmarks"> で代替できる <guide> <reference href="cover.xhtml" title="Cover" type="cover" /> </guide> 同じ内容をナビゲーション文書に書くとこうなる <nav epub:type=“landmarks”> <ol> <li> <a epub:type=“cover“ href”cover.xhtml”>表紙</a> </li> </ol> EPUB Publications 3.0 </nav> パッケージ文書 - guide Copyright © 2012 Hiroshi Takase.
  • 48. • 特殊なフォールバックを実現するオプショナルな要素 • 子要素にmediaType要素を持ち、そこにはmedia-type属 性とhandler属性がある。 • media-type属性のメディアタイプを持つリソースの フォールバック先となるリソースをhandler属性でID参 照する。 • 結果次のフォールバック順序となる 1. カスタムリソース 2. handlerが参照するリソース 3. HTML5タグ固有のフォールバックリソース • 一体誰が使うんだぜ? EPUB Publications 3.0 パッケージ文書 - bindings Copyright © 2012 Hiroshi Takase.
  • 49. <!-- こんなHTML5のコンテンツ文書があるとする --> <object data=“foo.xml” type=“application/foo”> <img src=“bar.ipg” /> </object> <!-- パッケージ文書にはこう書いてある --> <manifest> <item id=“baz” href=“baz.xhtml” フォールバック順序 properies=“scripted” type=“application/xhtml+xml” /> 1. foo.xml ... 2. baz.xhtml </manifest> 3. bar.jpg ... <bindings> <mediaType handler=“baz" media-type="application/foo"/> </bindings> EPUB Publications 3.0 パッケージ文書 - bindings Copyright © 2012 Hiroshi Takase.
  • 50. EPUB Content Documents 3.0 Copyright © 2012 Hiroshi Takase.
  • 51. この辺のお話です (あとCSSとかいろいろ) コンテンツ文書 ナビゲーション文書 EPUB Content Documents 3.0 仕様が定義する対象 Copyright © 2012 Hiroshi Takase.
  • 52. • 本の内容を記述した文書。XHTML5またはSVGで記述す る • XHTML5なら拡張子は.xhtmlとする • XHTML5を採用したおかげで、audioやvideoタグが利用 できるようになった。あとルビも。 • EPUB2ではXHTML1.1で記述し、scriptやformなどの利用 に制約があったが、EPUB3では利用可能。XHTML5のタ グについて特に制約は設けていない • その他epub:switchやepub:triggerといった独自のタグが 幾つか存在する(ほとんどはアクセシビリティ目的) EPUB Content Documents 3.0 コンテンツ文書 Copyright © 2012 Hiroshi Takase.
  • 53. せっかくのHTML5の 勉強会なのにHTML5への 言及が少ないわね~ 仕様でも単に参照してるだけだから それほどHTML5ついてあれこれ 言ってるわけじゃないのよ それに僕もHTML5勉強中なので あんまり詳しく語れない(泣) Copyright © 2012 Hiroshi Takase.
  • 54. • 目次の役割を果たす特殊なXHTMLコンテンツ文書 • EPUBファイルの中にナビゲーション文書は必須 • 目次は<nav epub:type="toc">の中に番号リスト(ol、li)とハ イパーリンク(a)などで記述する • EPUB2では目次をNCXというXML文書で記述していた <html ... xmlns:epub="http://www.idpf.org/2007/ops"> ... <nav epub:type=“toc”> <ol> <li><a href=“c1.xhtml”>Chapter.1</a></li> <li><a href=“c1.xhtml#sub1”>Chapter.1-1</a></li> <li><a href=“c1.xhtml#sub2”>Chapter.1-2</a></li> ... </ol> </nav> EPUB Content Documents 3.0 ナビゲーション文書 Copyright © 2012 Hiroshi Takase.
  • 55. • EPUBで利用するスタイルシートをEPUBスタイルシート と呼ぶ • CSS 2.1とCSS3のプロパティで構成される • ただし、ビューワは全てのプロパティを実装しなければ ならないわけではない • 参照しているCSS3モジュールは以下のとおり – CSS 3.0 Speech – CSS Fonts Level 3 – CSS Text Level 3 – CSS Writing Modes – Media Queries – CSS Namespaces – CSS Multi-Column Layout EPUB Content Documents 3.0 EPUBスタイルシート Copyright © 2012 Hiroshi Takase.
  • 56. • CSS3からはまだWD、ED等安定していないステータスの モジュールも参照している。 • これらのプロパティには –epub-の接頭辞を付ける • -epub-が必要なプロパティは仕様の中で明示してある • ちなみに、WebKitでは-epub-は-webkit-のエイリアスと して動作する • CSS Text Level 3やCSS Writing Modesは2011年4月11日 時点でのドラフトに従う。 html { -epub-writing-mide: vertical-rl; writing-mode: vertical-rl; } EPUB Content Documents 3.0 EPUBスタイルシート Copyright © 2012 Hiroshi Takase.
  • 57. EPUB Canonical Fragment Identifier Copyright © 2012 Hiroshi Takase.
  • 58. • 出版物の中の任意の位置を参照するための識別子 • テキストだけではなく様々なメディアの時間や空間も指 定できる • 読みかけの場所の保持、ハイライト、メモ、注釈など用 途は様々 • 人に厳しく機械に優しい構文>< mybook.epub#epubcfi(/6/4[chap01ref]!/4[body01]/10/1:3) →“mybook.epubの中のパッケージ文書の3番目の子ノードの2番目の子ノード かつid=“chap01ref”のノードが参照するコンテンツ文書の中にある2番目の 子ノードかつid=“body01”のノードの5番目のノードの子ノードであるテキスト ノードの3文字目の直後” という意味。解説は省略! EPUB Canonical Fragment Identifier epubcfi Copyright © 2012 Hiroshi Takase.
  • 59. Accessibility Copyright © 2012 Hiroshi Takase.
  • 60. • EPUB3のマルチメディア対応はアクセシ ビリティ向上の目的もある • 録音済み音声とテキストの同期 – メディアオーバーレイ文書を利用する • 音声読み上げ(Text to Speech) – PLS文書を同梱する – コンテンツにSSML属性を記述する – CSS Speech Moduleを利用する 聴覚的な読書の実現 Copyright © 2012 Hiroshi Takase.
  • 61. • Synchronized Multimedia Integration Language (SMIL 3.0) のサブセット • http://www.w3.org/TR/SMIL/ ←SMIL • オーディオ再生とテキストの同期に利用する • オーサリング環境が少なく作るのがキツい>< • 拡張子 .smil メディアタイプ application/smil+xml • 好みの声優さんに朗読して貰えたら…ゲフンゲフン <par> <text src="chapter1.xhtml#sentence1"/> <audio src="chapter1_audio.mp3" clipBegin="23s“ clipEnd="30s"/> </par> EPUB Media Overlays 3.0 メディアオーバーレイ文書 Copyright © 2012 Hiroshi Takase.
  • 62. • Media Overlaysを体験するにはiBooksで“Yellow Submarine”を読んでみるのがお奨め • EPUB2ベースだが、マルチメディア、スクリプティング などEPUB3の新機能のショーケースに近い • Appleの独自拡張部分も少なからずあるので注意 EPUB Media Overlays 3.0 メディアオーバーレイ文書 Copyright © 2012 Hiroshi Takase.
  • 63. • Pronunciation Lexicon Specification Version 1.0 • http://www.w3.org/TR/pronunciation-lexicon/ • 音声認識と音声合成エンジンが利用する 発音情報辞書を記述したXML文書…らしいです(汗 • 拡張子 .pls メディアタイプ application/pls+xml <lexeme> <grapheme>nihongo</grapheme> <grapheme>日本語</grapheme> <grapheme>にほんご</grapheme> <phoneme>ɲihoŋo</phoneme><!-- 国際音声記号(IPA) --> </lexeme> 補足 - PLS Copyright © 2012 Hiroshi Takase.
  • 64. • Speech Synthesis Markup Language Version 1.1 • http://www.w3.org/TR/speech-synthesis11/ • 音声合成エンジンを制御するマークアップ言語 …らしいです(汗 • EPUB3ではコンテンツ文書の要素に属性として 発音情報を指定するのに利用する <html ... xmlns:ssml="http://www.w3.org/2001/10/synthesis"> ... <p><span ssml:alphabet="ipa“ ssml:ph=“ɲihoŋo” >日本語</span>は難しい。</p> 補足 - SSML Copyright © 2012 Hiroshi Takase.
  • 65. • 紙の読書に困難を抱える人のための国際標準フォーマッ トDAISY(=ANSI/NISO z39.86)を開発する非営利団体 • IDPFの古参かつ中核メンバー • DAISYはDigital Accessible Information SYstemの略 • 米国や北欧などで電子教科書のフォーマットとして採用 されている • 紙の本をセマンティックに記述するタグが豊富 • EPUB2にも影響を与えた(NCX, DTBook) • 次期DAISY4は記述・交換フォーマットに特化。 EPUB3、点字本、PDFなどに変換して閲覧する。 補足 – DAISY Consortium Copyright © 2012 Hiroshi Takase.
  • 68. • EPUBの日本語レイアウト対応を契機として策定 が前進したもの – CSS Text Level 3 – CSS Writing Modes Module Level 3 • EPUBのレイアウト向上を視野にCSSモジュール 化が進められているもの – CSS Regions Module Level 3 – CSS Exclusions and Shapes Module Level 3 – (CSS Page Templates )? EPUBからW3C CSSへ Copyright © 2012 Hiroshi Takase.
  • 69. • EPUBのどこがウェブと同じでどこが違うのか見えてき たものはありましたでしょうか? • EPUBが独自に補っているものには、ウェブをよりよく するヒントもあるかもしれません。 • 出版業界はしばらくCSS組版にドハマリしながらEPUBを 作ることになりそうですが、すでにウェブの世界に馴染 みのある方々からは、本のメタファに縛られないあっと 驚くEPUBコンテンツが生まれてこないか期待していま す。 • ウェブ技術の浸透はこれまで縁のなかった業界や人に新 しい出会いを生んでいます。是非、電子出版にも触手を 伸ばしてみてください。 おわりに Copyright © 2012 Hiroshi Takase.
  • 70. ギャルゲーでわかるEPUB3 → 無理ゲーでした ボツ企画 Copyright © 2012 Hiroshi Takase.
  • 71. Copyright © 2012 Hiroshi Takase.
  • 72. ご清聴 ありがとう ございました Fin. Copyright © 2012 Hiroshi Takase.