EPUB3の実ページリンクを試してみた
2014/04/29 リフロー型電子書籍における「ページ」は、利用者がドキュメントを開いた際にデバイスの画面サイズや設定された文字のサイズに応じて自動生成されるもので、紙の本における「ページ」のように、固定されたものではありません(従って「○○ページ参照」というような記述が使えないわけです)。ただ、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氏、情報提供感謝です)、メモ代わりに情報を残しておきます。
テストファイルはこちら
>>PrintPageLinkTest.zip
1 file(s) 35.35 KB
(2014.5.1)