Submission Request to W3C from Vivliostyleについての若干の感想

Current Status of Japanese Typography Using Web Technologies(Submission Request to W3C from Vivliostyle)日本語訳

という文書が1月27日付けで発表されているので、ざっと見てみた。以下に若干の感想を記す。

まず、この文書の中で一番重要なポイントは「Implementations that support pagination, such as EPUB readers or PDF formatters, do need to support such features.」(日本語訳「EPUBリーダーやPDFフォーマッタなどのページネーションをサポートする実装は、そのような機能をサポートする必要があります。」)という点だろう。

もともとJLReqは、紙に印刷する書籍の組版に関して整理したものである。従って、JLReqを議論の前提にする以上、縦横の大きさをもつページの概念が必須である。ページの概念を無視すれはかなりの部分が意味を失ってしまう。

一方において、ブラウザは画面に高速に表示することを目的としている。そしてページサイズの概念はブラウザには必要ない。このため、CSSの勧告仕様または勧告候補だけでは、まだページの大きさを指定できない。CSS Paged Media Module Level 3という仕様にページの大きさを規定する方法があるが、これはまだWorking Draftの段階であり[1]、正式な仕様として参照できる状態ではない。

CSS Paged Media Moduleの歴史は古い。一番最初は1999年にHPのRobert Stevahn氏がWorking Draftを出している。その後、2004年に勧告候補まで行ったが、次の2006年版ではまたWorking Draftに戻ってしまった。CSSを紙への印刷に使おうとするとページの大きさの指定は必須であるのに、正式な仕様ではそれができない状態がもう長いこと続いているわけだ。

現在、リフローのEPUB3を表示するリーダーは、ページ捲りを実装しているものが多い。しかし、これらは各リーダーの独自実装である。ページ捲りの一つとして、例えば、章の見出しを画面の上下・左右中央に配置したいときは縦と横のサイズを指定して、その中央に置くのが素直なはずだ。しかし、CSSではそういう指定はできない。このため、日本語のEPUB3ではトリッキーな指定をせざるを得なくなってしまっている。

このように、紙に限らず、画面表示を前提とするEPUBリーダーやブラウザでページめくりをきちんと実装しようとすればCSS Paged Media Module Level3を実装することが必要になる。

そこまでの理屈は良いとして、CSS Paged Media Moduleがブラウザの世界で受け入れられるかどうかが問題である。なぜならば、CSSの仕様開発作業はブラウザベンダーの主導で進んでいて、ブラウザベンダー以外はほとんど影響力を持っていないからである。さらに言うならば、CSS2.0で勧告になった項目でさえも、ブラウザが実装していないことを理由にCSS 2.1で削除されてしまったものもある。その一例がここで問題にしているページの大きさである。CSS2には@pageというルールがあり、CSS2.0ではそこに’size’プロパティでページの大きさを指定できた。しかし、CSS 2.1では’size’プロパティは削除されてしまった。’size’はCSS Paged Media Moduleに移行した。こうした経緯を知っていれば、CSS Paged Media ModuleをCSS3の勧告にもっていくのが困難なことは予想に難くない。

CSSがサポートしないためにできないことがいろいろあるのは確かである。そしてこれに正面から取り組もうとすると、現状のCSSワーキンググループと長く熾烈な論争になるのは確実である。このサブミッションがどう受け止められるか、興味深いところである。

[1] CSS Paged Media Module Level 3 W3C Working Draft 14 March 2013

EPUB3.1の最終ドラフトが公開されました。EPUB3.1での機能変更は当初期待より大幅に縮小となりました。

追記【】2017年1月にEPUB 3.1はIDPFの勧告仕様となりました。
EPUB 3.1 Recommended Specification 5 January 2017

————以下、元のブログ————
2016年8月1日、EPUB3.1の仕様書最終ドラフトが公開されました(これはEditor’s Draftとのことです。詳しくは下の追記を参照)。今後は新しい機能が追加される予定はなく、新しい要求があっても次のバージョンに持ち越される予定です。

EPUB3.1の開発は、2015年の夏に始まりました。最初の方向検討会議では、非互換をおそれず、EPUB3.1で様々な新機能を盛り込むという話でした[1]。しかし、その後、市場からのフィードバックなどによるものと思いますが、新機能の話は大幅に後退しました。EPUB3.0.1からEPUB3.1への変更の多くは仕様書の文書としてのメンテナンスになり、実質的変更は小さなものとなります。

EPUB3.1 2016年8月1日版の仕様書は次のモジュールからなっています。

EPUB3.1概要
EPUB3.0.1からEPUB3.1への変更点

仕様書の構成は現行バージョンのEPUB3.0.1からかなり変更されています。しかし、これは仕様書としてモジュール間の整合性を整えるために行われたものが多く、仕様の実質的な変更は、それほど多くはないようです。

以下、主に「EPUB3.0.1からEPUB3.1への変更点」を参考にして、変わった項目をざっと紹介します。なお、以下は、すべてを網羅しているわけではありませんので、予めお断り致します。

1.EPUBパッケージ3.1

EPUB Publications 3.0.1は、EPUBパッケージ3.1にタイトルが変更になりました。さらに、EPUB内容文書3.0.1に収容されていたEPUBナビゲーション文書の仕様は、そっくり、EPUBパッケージ3.1に移動しました。これはEPUBでは幾つものHTML文書を一つにパッケージし、それらの文書をナビゲーションすることが重要との判断に基づいています。

EPUBパッケージ3.1では、パッケージ化について記述する.opfファイル(XMLファイル)を規定しています。
(1) .opfファイルのルート要素packageのversion属性に、EPUBのバージョン番号を記述します。これが<package version=”3.0″>から<package version=”3.1″>に変更になります。バージョンを確認しているEPUBリーダーでは読み込まないかもしれません[2]。従って、EPUB3.1形式の出版物をリリースするにはストア毎に対応を確認してからとなるのでしょう。
(2) package要素の子供からguide要素が削除されました。
(3) metadata要素の子供からOPF2_meta要素が削除されました。
a. metadata要素の子供のdc:identifierにopf:scheme (オプション)が追加されました。
b. 同dc:title要素の属性にopf:alt-script(オプション)とopf:file-as(オプション)が追加されました。
c. 同contributor、creator、publisher要素の属性にopf:alt-scriptとopf:file-as(いずれもオプション)が追加されました。contributor、creator要素の属性にopf:role(オプション)が追加されました。
d. 同meta要素の属性にrefinesが置き換え対象[3]となり、代わってopf:alt-script、opf:file-as(オプション)が追加されました。
(4) manifest要素の子供item要素にduration属性(条件によって必須)が追加されました。
(5) bindings要素が削除され、マニフェストfallbackが追加されました。
(6) NCX(EPUB2の目次)は廃止予定[4]となりました。これにともない、spineのtoc属性が廃止予定となりました。

2.EPUB内容文書3.1

EPUB内容文書3.1は、EPUBの内容を記述するHTML5とSVGについて規定します。HTML5にはHTML構文とXHTML構文がありますが、EPUB3.1ではXHTML構文で記述します。ファイル名の拡張子は.xhtmlを使うべきとされています。このあたりは、EPUB3.0.1.から変わっていません。

(1) HTML5、SVGへの参照方法が変わり、HTML5、SVGの仕様が改訂されるとすぐにEPUB3.1に反映されるようになります。
(2) CSSの参照方法が変わり、CSSサポートがより一般的になります。
  EPUB3.0.1で採用されているプレフィックス付のプロパティは、できるだけ早く使わないようにすることが推奨されています。writing-modeプロパティは変更なし。text-orientationはプロパティの値が変更となります。また、特に、-epub-text-combineプロパティは廃止され、text-combine-uprightプロパティとなります。
(3) リーダーのスタイルよりも、著者とユーザーのスタイルを優先するためのガイダンスを追加します。
(4) スクリプトのサポートの明確化。
(5) コンテント切り替え機能(switch要素)を削除します。
(6) オーディオやビデオのようなマルチメディア再生のためのユーザーインターフェイスをマークアップするtrigger要素は削除されます。EPUB3.1ではオーディオやビデオのようなマルチメディア再生はHTML5のaudio要素、video要素でコントロールすることを勧めています。
(7) EPUBリーダーオブジェクトとして、IDL定義を追加。

その他のモジュールは省略します。

[1] EPUB 3.1 開発計画の概要 2015/10/20現在
[2] 例えば、IDPFで準備した仕様書のEPUB 3.1ファイルは、AdobeのDigital Edition3.0.1、iBooks 4.1.1は現在でもEPUB3.1を開くことができます。KindleGen V2.9でkindle mobi形式に変換もできます。packageのバージョンをチェックしているEPUBリーダーは少ないのかもしれません。
[3] superceded。将来廃止されるので使わないようにする。
[4] obsolete。次のバージョンアップで廃止される。
[5]《経過》2016年1月30日のEditor’s Draft初版では、急進的な変化を組み込んだドラフトが発表されました。
  EPUB 3.1 Changes from EPUB 3.0.1 Editor’s Draft 30 January 2016
  その後、2016年4月26日のEditor’s Draft第2版で急進的なアプローチは否定されたようです。
  EPUB 3.1 Changes from EPUB 3.0.1 Editor’s Draft 26 April 2016
  今回の最終ドラフトは4月26日版の延長となります。

[6] 追記(8月17日) 8月16日にIDPFから来たメールによりますと、8月1日に公開されたのは、3回目のEditor’s Draftであり、機能的には完成で、指摘された問題を解決済みのもの。コミュニティでレビューしてもらい、9月の早いうちに正式なパブリックドラフト(formal Public Draft)にする予定だそうです。

EPUB目次自動作成機能を大幅に強化! CAS-UB V2.2 を正式版としました。

11月28日にCAS-UB V2.2を正式版としました。バージョンアップで強化したポイントの一つがEPUB目次の自動生成機能です。

EPUBの目次関連機能には、次の3つがあります。

1.ナビゲーション目次 
2.本文目次
3.ランドマーク

EPUB3に上の3つの目次を用意して、たとえば、Readiumで表示しますと次の図1、図2のようになります。

スライド3
図1 ナビゲーション目次と本文目次を表示

スライド4
図2 ランドマークを表示。ランドマークで本扉を選択

1.ナビゲーション目次について

  • EPUB3の正式な目次(必須)です。
  • ナビゲーション目次の表示方法はEPUBリーダー依存になります。多くのEPUBリーダーは専用のパネルに表示します。
  • ナビゲーション目次にレイアウトを指定したとき、その表示はEPUBリーダー依存です。多くのリーダーは横書きのみですが、例えばiBooksは縦組みでも表示できます。多くのリーダーではナビゲーション目次にはルビや文字の装飾はできません。このようにナビゲーション目次の表示は、EPUBリーダーによって、まったくばらばらです。
  • CAS-UBは、記事のタイトルおよび記事の見出しを集めてナビゲーション目次の内容を作ります。この内容を論理目次と呼びます。(ナビゲーション目次は入れ物であり、論理目次はその内容という考え方です。)
  • 論理目次に、どのレベルの見出しまで含めるかを、「生成」-「一般」のメニュー、記事のタイトルのみ~レベル5の見出しまでの範囲で指定できます。
  • このとき、見出しと目次に、番号を自動的に付与することができます。番号の形式は、「生成」-「その他」で指定します。
  • ナビゲーション目次の内容として、論理目次の代わりに、ランドマーク(後述)を割り当てることもできます。

2.本文目次について

  • 通常の記事と同じ扱いの目次です。
  • レイアウト機能は、本文と同等になりますので、縦組み、ルビ、縦中横、文字の飾りなどは本文同様の指定ができます。EPUB3リーダーであれば、縦組み、ルビなど表示可能でしょう。
  • CAS-UBのV2.2では、本文目次を自動生成する機能を新規に追加しました。本文目次を作るかどうか、また、目次にどのレベルの見出しまで含めるか、などは論理目次の生成と同様です。
  • 本文目次は手作りできます。その場合、「記事の種類」に「ユーザー作成目次」を指定します。但し、手作りの目次(「ユーザー作成目次」を指定した記事)がある場合は、本文目次を「作成する」にしても、実際には作成しないで、手作りの目次を優先します。

3.ランドマークについて

  • ランドマークに設定する項目は決まっていませんが、『EPUB3 Best Practices』(EPUB3の仕様策定者が書いた解説本)によりますと、本の大きな構成部分をあらわすことになっています。
  • ランドマークを表示できるEPUB3リーダーは、Readium位です。あまり多くありません。
  • CAS-UBでは、ランドマークには、カバー(表紙)、本扉(オープニング)、目次(本文目次)、参考文献、索引を指定します。但し、該当する記事が存在しない場合は、指定しません。

1~3によって、EPUB3で指定することのできる目次機能を自動的に作る機能の使いこなしができるようになりました。

あとは、ページリスト・・・。PDFの生成結果とリンクするページ番号を自動的に入れることができると良いのですが、AH Formatterに生成結果のページ番号を出力する機能があったかナ? 忘れてしまいました。 なければ作ってもらうということですが・・・ 

CAS-UB 8月8日のメンテナンスを完了しました。

CAS-UBの8月8日のメンテナンスを完了しました。

1.仕様変更

(1) 画像のマークアップ支援ボタンを強化―画像のマークアップと画像のアップロードが別になっていましたが、画像のアップロードと同時に画像のマークアップを行なうことができるようになりました。(8/1のメンテナンス以前には、テキストフォームの下部にあった機能)。
(2) インクルードのマークアップ支援ボタンの強化―インクルードのマークアップと画像のアップロードが別になっていましたが、インクルードのアップロードと同時にインクルードのマークアップを行なうことができるようになりました。(8/1のメンテナンス以前には、テキストフォームの下部にあった機能)。

2.Wordインポートの変更

(1) Wordのdocxファイルに縦中横が指定されているとき、CAS-UBの縦中横を設定するようにした。
(2) Wordのdocxファイルにアウトラインレベルが設定されているとき、CAS-UBにアウトラインレベルが正しく反映されないことがあったので修正。
(3) Wordのdocxファイルに埋め込まれているイメージファイルが、CAS-UBにインポートされないことがあったので修正。

3.マークアップ処理の修正等

(1) マークアップした表のセルの中に、エスケープした範囲指定(~[~[[)があると[[[以降のテキストが脱落していたのでそれを修正。
(2) 削除した記事をゴミ箱から復活できないことがありましたので修正。
(3) 出版物新規作成:「他の出版物の設定をコピーする」で、書誌情報の発行所と発売元がコピーされていませんでした。
(4) ブロック範囲指定にユーザーID属性をつけても認識されなかったので認識されるようにした。

例)[[[:#u-id-block
divにユーザーIDをつける
]]]

上のようなユーザーIDを正しく処理(’u-id-block’からIDを生成)できるようになりました。

(5) 記事タイトルに入れた画像マークアップに altが指定されていないと、画像ファイル名にimages/ が付加された文字列が、navに使われたので、images/ をださないように修正。
(6) 記事タイトルと見出しが altなし画像と画像以外の文字列のとき、navの目次に画像urlが使われたので画像のurlが出さないように変更。

EPUBのナビゲーション目次とランドマークの使い方の再検討が必要。

従来の紙の本では、目次は通常1箇所、書籍の先頭の方に配置する。目次を読めば書籍の大よその構成を理解することができる。紙の本では現在読んでいるページと目次のページは簡単に行き来できる。

EPUBでは、紙の本における目次と類似の機能は、次の二つを使うことができる。

1.ナビゲーション目次
2.目次ページ

1.ナビゲーション目次

ナビゲーション目次は、EPUB2ではNCX形式で作成した目次である。EPUB3でNCXが廃止となり、HTML5のnav要素を使って同様の内容を表現するようになった。「Kindle Publishingパブリッシング・ガイドライン」などは論理TOCと表現している[1]。

多くのEPUBリーダはナビゲーション目次を表示する専用のパネルまたはウインドウをもっている。

ナビゲーション目次の長所は専用のパネルで表すので、現在開いて読んでいるページから目次ページに遷移することなく表示できることである。但し、これはEPUBリーダによって異なり、例えばiBooks3.1ではナビゲーション目次を表示するときもページを遷移する必要がある。

ナビゲーション目次の欠点はパネルの表示レイアウトがEPUBリーダ毎にてんでんばらばらであることだ。iBooks3.1のように縦書き表示できるものもあるが、Kindleのように横書きしかできないものもある。レイアウト機能は低レベルである。例えば、iBooks3.1は縦書きができるが縦中横は指定できない。また、ルビなどを使えないものも多い。

2.目次ページ

目次ページは本文ページと同様に書籍を前からめくっていくと表示するページである。

この長所は、本文ページと同様のレイアウト指定ができることである。CSSスタイルシートを駆使すればかなり見栄えの良いレイアウトもできる。また、目次ページの見出しと本文ページの見出しに相互のリンクを張るような作り方もできる。

欠点は、目次ページを表示するためには、現在読んでいる本文ページから目次ページに遷移する必要があることだ。
マルチウインドウのEPUBリーダができれば、両方表示できるだろうが、まだマルチウィンドウのEPUBリーダは見当たらない。

3.ランドマーク

EPUB3ではナビゲーション目次と同じファイル中に、ランドマークを記述することもできる。ランドマークとは、表紙、目次、奥付け、などの書籍の構成を表す一般的なパーツの並びを示したものである。

4.サンプルEPUB

次のところにナビゲーション目次、目次ページ、ランドマークを設定したEPUBファイルのサンプルを作成した。

EPUBサンプル3.3 Landmarksを指定したEPUB3を参照。

このEPUBファイルはKindlepreviewerでは次の図のように表示される。

KindleLandmark
※Kindlepreviewer2.9では、NCX表示メニューでナビゲーション目次(epub:type=”toc”)の内容を表示する。

5.ナビゲーション目次に盛り込む項目の再検討が必要

現在販売されているEPUB版電子書籍ではナビゲーション目次と目次ページの扱いが版元によってばらばらになっている。このことは過去にブログでも指摘した[2]。

ナビゲーション目次(epub:type=”toc”)をランドマーク(epub:type=”landmarks”)のように使うことがある。例えば、電子書籍出版社協会の「電書協 EPUB3制作ガイド」(V1.1.2)では次のようになっている。

○ナビゲーション目次(p.26)
・リンク項目やリストの階層構造は作品内容により変更
・版元から特に指示がないかぎり、カバーページ、目次ページ、奥付けページへのリンクのみとする。

ナビゲーション目次の既定値になっている3項目は、EPUB3のランドマークで指定できる項目である。このようにナビゲーション目次にランドマークのみを表示すると、ナビゲーション目次の現在読んでいるページを開いたまま本の全体を目次でみることができるという長所が生きてこない。現在読んでいるページから目次ページに遷移して、そこでさらにEPUBで読みたい箇所にジャンプするということが必要で、ナビゲーション操作が煩雑になり、EPUBを参考資料として使いにくくなる。

EPUBの欠点の一つは柱を表示できないことである。このため、ユーザーは現在どの場所を読んでいるのかが非常に分かりにくい。これを解消するのは今のEPUBの機能のみではなかなか困難であるが、ナビゲーション目次を使うことが一つの解決策となるだろう。

こうした点を考慮するにつれ、ナビゲーション目次に本文のアウトラインを詳しく示す方が良いのではないかと考えている。

カバーページ、目次ページ、奥付けページはランドマークで表すことができるので、ナビゲーション目次を使う必要はない。

EPUBリーダでランドマークの表示機能の充実しているものは、まだ少ないようだが、ナビゲーション目次とランドマークの使い方については考え直す必要があると感じている。

[1] 「Kindle Publishingパブリッシング・ガイドライン」2013年3月版 p.17 3.3.1.1
[2] ナビゲーション文書と目次の使い分けについて検討する―EPUB3をiBooksで読むとき
[3] EPUBのナビゲーションを理解しよう

CAS-UB 5月30日のアップデート。編集画面をできるだけ使い易く改善しました。

5月30日の定期メンテナンスで次の修正を行ないました。

1.生成済みEPUB3をチェックするためのepubcheckを3.0.1に入れ替えました。

2.記事の編集画面で、できるだけ画面全体をスクロールしなくても編集作業ができるように、編集枠の上側の表示内容を減らしました。また、「保存」ボタンをテキスト編集フォームの下にもつけました。

3.編集画面の 索引 マークアップ補助機能で、読みを入力しなかったとき CAS記法に :key= が出ていましたが、読みを入力しなかったときは、:key= を出さないように修正しました。

4.検索で、二重引用符 ” が検索対象のとき、二重引用符を2つ重ねて指定する必要がありましたが、1つだけで検索できるように修正しました。

5.「記事編集」画面と「構成編集」画面で、各種操作の表示内容に、できるだけ改行が入らないように調整しました。

6.構成編集画面で、出版物の種類の画像に実際と合っていない部分があったので、画像を差し替えました。

2~6は編集操作の使いやすさを向上

CAS-SUPPORTのブログ 2013年3月分をEPUBにまとめました

CAS-SUPPORTのブログ 2013年3月分をEPUBにまとめました。
こちらでダウンロードしていただくことができます。

■CAS-UBで作成したPDFとEPUBのサンプルファイルの中の
「3.3 CAS-SUPPORTブログ記事のEPUB版」の項

ブログを月別に整理し始めたのは、昨年の4月分からとなりますので、早いもので、丁度1年を経過しました。

以前のブログもEPUB化したいと思っていますが、なかなか進みません。

CAS-UB 4月4日の改訂内容 EPUBに不要な画像が入らないように。など

1.EPUB3/EPUB2の生成で、記事中で使用されていない画像でも、アップロードされているものすべてが生成物に入るようになっていましたが、使用されている画像のみを生成物に入れるように修正しました。

2.検索で、記事タイトルも検索するようにしました。

3.出版物新規作成で、ひな形の複製チェックボックスの既定値をオフに変更しました。

4.Kindleの生成で、EPUB3 用のテーマを指定したmobiファイルを Kindle で表示すると、目次の2頁目以降でリンクが無効になっていたので修正しました。(Kindleのリーダの問題を回避したものです)。

◎ところで、今日、1年ぶりにEPUB3のSVGの表示確認をしましたところ、iBooks3.1で、Spineに直接指定したSVGが表示できるようになっていたことを発見しました。

EPUB3では、spineに直接SVGを指定することができます。これを使うと、全画面をSVG線画で表すことなどができるようになります。

このCAS-UBでこの機能は既に昨年4月に開発がほぼ完了していたのですが、当時は、SVGを直接Spineに登録しても表示できるリーダがなかったため、公開することを見送っていたものです。

iBooksで表示できるようになったことから、もう一度、チェックを行なったうえで機能を公開したいと考えています。少しずつですが、EPUBリーダの表示機能は進歩しているようです。

『PDFインフラストラクチャ解説』更新、0.28版にしました。

『PDFインフラストラクチャ解説』の内容を更新して0.28版としました。

前回の0.24版から次の箇所を更新しています。

1)第8章のタイトルを「PDFとデータ交換」に変更し、「8-2 PDFにおける情報表現」、「8-3 タグ付きPDF」の節を追加しました。

2)第3章の「13-3 PDFのアクセシビリティ」の内容を記述しました。

PDF版、EPUB3版を次のページから無料で配布しています。記述の内容が正しいかどうか、また、もっと突っ込んでほしいところがありましたらご意見をいただけると嬉しいです。

CAS電子出版の紹介2016年1月本書を正式発売しましたので、無償配布を終了いたしました。詳細は、下の【広告】をご参照ください。

0.24版にしてから1ヶ月弱の時間が経過しましたが、残念ながら進捗振りが思い通りになっていません。

現在、PDFInterstグループのメンバーを中心に、内容を追加したり、内容をみていただいたり、組版レイアウトの評価をしていただいていますが、まだいただいた意見は反映するにいたっておりません。

次の更新ではもう少しピッチをあげたいと考えています。

ナビゲーション文書と目次の使い分けについて検討する―EPUB3をiBooksで読むとき

EPUB3にはナビゲーション文書が必須である。これはHTML5のnav要素を使って作成し、電子書籍リーダのナビゲーション用のパネルに表示するものである。EPUB2のときはNCX形式で作っていたものの後継であり、論理目次という言い方をすることもある。ここでは、EPUB3のnav形式のファイルを「ナビゲーション文書」という[1]。

一方、本文の見出しを取り出してリストにして並べ、リストの各項目から本文の当該見出しへのリンクを張ったXHTML5文書を作成して、この文書をEPUB3の本文内容文書のひとつとして扱うこともできる。これを「目次文書」という。目次文書はEPUB3リーダからみたら本文の一部であるが、読者からみたら目次の役割を果たす。このようなものを視覚的な目次という言い方もできるかもしれない[2]。

ナビゲーション文書はXHTML5形式であり、書籍本文の文書と同じようにspineに登録すれば、「目次」として使うこともできる。つまりナビゲーション文書は目次文書としても使うことができる。そうではなく、目次文書をナビゲーション文書と別に用意することもできる。

そこで、ナビゲーション文書と目次文書の関係について、次の点について調べてまとめてみた。

1.実際のEPUB電子書籍におけるナビゲーション文書と目次文書の使い分けはどうなっている?
2.ナビゲーション文書を目次文書としても使うとすると、ルビや縦中横などのマークアップやCSS指定は使えるのか?
3.ナビゲーション文書に、ルビや縦中横を指定したとき、EPUBリーダではどのように表示されるか?

1.ナビゲーション文書と目次文書の使い分けの実態は?

ナビゲーション文書と目次文書をどのように使い分けたら良いだろうか? ナビゲーション文書と目次を兼用するのが良いのか、それとも違うものにするのが良いのか。これを考えるため、先日開店したiBookstoreで販売されているEPUB版電子書籍のサンプルをダウンロードして調べてみた。今回調べたのは、リフロー型本文縦書きのフィクションとビジネス/マネーに分類されている25種類の電子書籍である。結果は次の通りとなった。

出版社によってナビゲーション文書と目次文書の使い分けがまったくばらばらになっていることがわかる。

(1) ナビゲーション文書が縦組みの書籍は16種、横組みの書籍は9種。

(2) ナビゲーション文書と目次文書の両方があるもの14種、目次文書がない(ナビゲーション文書のみの)もの11種。

(3) 両方がある14種中で、その項目が同じもの4種、異なるもの10種であった。現状では、ナビゲーション文書を目次文書に兼用しているものがあるとしても少数ということになる。

異なるものはナビゲーション文書は書籍の骨格だけ表現し、目次文書でより詳しい項目を表現している。例えばここで調べた中では講談社の電子書籍はnavでは表紙、目次、奥付けといった本の骨格のみを現しており、目次文書の方に詳しい項目を示している。

(4) ナビゲーション文書から目次文書へのリンクの状況は次の表の通りである。

リンク有 リンク無し
同じ 0 4
異なる 6 4

図1 ナビゲーション文書に目次文書へのリンクがある

ここで問題なのは、次の図のようにナビゲーション文書に骨格だけを表現しているにも関わらず、ナビゲーション文書から目次文書へのリンクがないものが4種類あること。このような文書では、本文の途中を読んでいるとき、別の項目に移動しようとするとまず目次文書を探して、目次文書から他の見出しに移動するなどの順序になるので、移動が面倒になる。これは改善する方が良いだろう。

図2 ナビゲーション文書に目次文書へのリンクがない

2.ナビゲーション文書に許されるマークアップやCSS指定は?

仮にナビゲーション文書を目次文書として兼用で使うことを考えるとき、ナビゲーション文書にルビや縦中横その他の指定をすることができるだろうか?

EPUB3.0の仕様をみるとナビゲーション文書には、本文のXHTML5と比べて使える要素やその出現順序に制約があるが、リンクのアンカー(a)要素の内容にはXHTML5の任意のフレーズ内容を含めることができるので目次で表現したいことはできそうである。

実際に、アンカー(a)要素の内容に、ルビ(<ruby>被ルビ文字<rp>(</rp><rt>よみ</rt><rp>)</rp></ruby>)、縦中横(<span class="tcy">XX</span>)、強調(<strong>***</strong>、<em>***</em>)、圏点(<strong class="emark">強調+圏点</strong>)、画像(<img alt="***" src="images/XXX.jpg"/>)を指定して、EPUBCheck3.0で検証してみたが、特にエラーにはならなかった。

3.ナビゲーション文書と目次文書はリーダでどのように表示されるか?

ナビゲーション文書のアンカーの内容にマークアップしたとき、それがEPUBリーダのナビゲーション用のパネルでどのように扱われるか。ナビゲーション文書に2.項の指定をした文書をiBooks3.1のナビゲーション用パネルで表示した結果と、目次文書として表示した結果を比較すると次の結果となった。

マークアップ iBooks3.1 a
専用目次 本文(spine)
縦書き
縦中横 ×
ルビ
強調(Strong) ×
圏点 ×
斜体(em) ×
イメージ(img) ×

図3 ナビゲーション文書の表示

図4 目次文書の表示

ここではナビゲーション文書と目次文書は同じものである。ナビゲーション文書としてみると縦書きとルビしか有効でないが、目次文書として表示するときは本文扱いになり、マークアップとレイアウト指定がすべて有効になる。

アラビア数字に縦中横を指定すると目次文書では指定どおり縦中横になるが、ナビゲーション文書では縦中横が解除されて1文字ずつ正立している。

ナビゲーション文書では1桁または3桁以上のアラビア数字は1文字ずつ正立するものが多い。しかし、横倒しになるものもあり基準が不明である。なお、これらは目次文書ではすべて横倒しになる。

[1] EPUB3のナビゲーション文書が準拠すべき規則は、2.2 EPUB Navigation Documentsにある。簡単なメモはこちら:EPUB ナビゲーション文書の仕様について メモ
[2] EPUBのナビゲーションを理解しよう