EPUB3の実ページリンクを試してみた

 リフロー型電子書籍における「ページ」は、利用者がドキュメントを開いた際にデバイスの画面サイズや設定された文字のサイズに応じて自動生成されるもので、紙の本における「ページ」のように、固定されたものではありません(従って「○○ページ参照」というような記述が使えないわけです)。ただ、EPUB3には実は元の紙の本のページを記述しておく仕様も定義されており、これは教育系コンテンツでのニーズから出たもののようです。
 まあわかりやすいところで言えば、「教科書の○○ページを開いてください」と先生が言って授業を進める場合に必要になるといったところでしょうか。将来的にはこれは先生と生徒の間でのコンテンツ表示箇所の同期などによって解決されていくのかもしれませんが、当面は紙の教科書との併用も視野に入れなければならず、現状では元の紙の本のページの情報をEPUB内にも記述しておく必要があるというのは理解できるところです。
 現在この機能を利用できるのは、私が観測した範囲ではiOS版のiBooksとMurasakiぐらいのようですが、どんなものなのか試してみましたのでお読みいただければ幸いです。

XHTML内の各ページ区切り箇所にタグを記入

 まず、XHTMLファイル内の各ページの区切り箇所にタグを記入しました。ここの情報によれば、ページ数をコンテンツの一部として記述する記法や、ブロックレベル要素に記述する記法もあるようですが、今回は「Example 2」の記法に従ってコンテンツ内にページ数自体は表示させない形で記入しました。

<p> <span epub:type=”pagebreak” id=”page1″ title=”1″/>ページ1本文入る ページ1本文入る ページ1本文入る ページ1本文入る ページ1本文入る ページ1本文入る ページ1本文入る ページ1本文入る ページ1本文入る ページ1本文入る ページ1本文入る ページ1本文入る ページ1本文入る ページ1本文入る ページ1本文入る ページ1本文入る ページ1本文入る ページ1本文入る ページ1本文入る ページ1本文入る ページ1本文入る ページ1本文入る ページ1本文入る ページ1本文入る ページ1本文入る ページ1本文入る ページ1本文入る ページ1本文入る <span epub:type=”pagebreak” id=”page2″ title=”2″/>ページ2本文入る ページ2本文入る ページ2本文入る ページ2本文入る ページ2本文入る ページ2本文入る ページ2本文入る ページ2本文入る ページ2本文入る ページ2本文入る ページ2本文入る ページ2本文入る ページ2本文入る ページ2本文入る ページ2本文入る ページ2本文入る ページ2本文入る ページ2本文入る ページ2本文入る ページ2本文入る ページ2本文入る ページ2本文入る ページ2本文入る ページ2本文入る ページ2本文入る ページ2本文入る ページ2本文入る ページ2本文入る <span epub:type=”pagebreak” id=”page3″ title=”3″/>ページ3本文入る ページ3本文入る ページ3本文入る ページ3本文入る ページ3本文入る ページ3本文入る ページ3本文入る ページ3本文入る ページ3本文入る ページ3本文入る ページ3本文入る ページ3本文入る ページ3本文入る ページ3本文入る ページ3本文入る ページ3本文入る ページ3本文入る ページ3本文入る ページ3本文入る ページ3本文入る ページ3本文入る ページ3本文入る ページ3本文入る ページ3本文入る ページ3本文入る ページ3本文入る ページ3本文入る ページ3本文入る </p>

 というような感じで、この「<span epub:type=”pagebreak” id=”page××” title=”××”/>」というタグを各ページ区切りの箇所に挿入していきます。「××」の箇所の番号が、表示させるページ番号にあたります。

ページのリストをNAVファイル内に記入

 次に、NAVファイル(電書協ガイドのフォーマットでは「navigation-documents.xhtml」、論理目次の表示用ファイル)内に、ここの情報を参考に各ページのリストを記入しました。ここのリストは各ページに記入したページ区切り用のタグと1対1で対応するものですので、id番号などは厳密に同じにしておく必要があります(通常のページリンクと同様です)。

<nav epub:type=”page-list”>
<ol>
<li><a href=”p-001.xhtml#page1″>1</a></li>
<li><a href=”p-001.xhtml#page2″>2</a></li>
<li><a href=”p-001.xhtml#page3″>3</a></li>
</ol>
</nav>

iBooksで表示してみる

目次ページに切り替え表示 完成したテストファイルをiBooksで表示させてみました。目次のメニューを表示させますと、ページ下部に「プリントされたページ番号を表示するには、タップします」という表示が出ています。これをタップすることで目次内の表示ページ番号が実ページのページ番号に切り替えられ、またコンテンツ内にもページ番号が表示されるようです。

 まあ今回の内容はIDPFの公式ページにしっかり情報がありましたので、そこを見て書けばいいという話ではあるのですが、使用例が少ないせいかソースにたどり着くまでに少々時間がかかりましたので(@lost_and_found氏、情報提供感謝です)、メモ代わりに情報を残しておきます。

テストファイルはこちら
>>

(2014.5.1)

コメント / トラックバック 1 件

  1. Japanese Gap Analysisを読んでみる | IT技術情報局 より:

    […] EPUBでのページ番号に関する話として、実ページリンクの話題がある。これは電子教科書方面でのニーズから策定された規格のようで、リフロー型EPUBのXHTMLの中に紙の本での各ページ開始位置をタグとして記述しておき、RS側の処理でページ番号を表示させるものだ。iBooksでかなり前から使えるほか(参照)、最近はAmazon Kindleもパブリッシングガイドラインで対応を表明した(サーバ側処理が必要なため表示未確認)。専門書などでは底本内にとても多くのページ番号に基づく参照情報があり、その中には外部の他の本に対する参照情報も当然多数含まれる。一方でEPUBには現状外部の他のEPUBパッケージ内の特定の箇所にリンクを貼る手段がない。このため、おそらく専門書のリフローでの電子化を今後進めていくには実ページリンクを広く使っていく必要が出てくるのではないかと考えている(あるいはフィックス型で電子化するかだが・・・)。 […]

コメントをどうぞ

プロフィール
Jun Tajima

こちらにて、電子書籍&Web制作を担当しています。
このブログは、EPUB3をはじめとした電子書籍制作担当オペレータからの、「電子書籍の制作時にたとえばこんな問題が出てきていますよ」的な「現地レポート」です。少しでも早い段階で快適な電子書籍閲覧・制作環境が整うことを願って、現場からの声を発信していこうと目論んでおります。

当ブログ内の記事・資料は、私の所属しております組織の許諾を得て掲載していますが、内容は私個人の見解に基づくものであり、所属する組織の見解を代表するものではありません。また、本ブログの情報・ツールを利用したことにより、直接的あるいは間接的に損害や債務が発生した場合でも、私および私の所属する組織は一切の責任を負いかねます。