紙のページと電子デバイスの画面の相違がもたらす、現在のEPUB制作とリーダー開発の難点。

EPUB3には紙のページと同じようなページに関することを指定する仕様は少ない。

紙のページでは次のことができる。

・ページの大きさ(絶対寸法)がある。
・版面の大きさと、版面の位置を指定できる。
・版面の中で左右中央、上下中央、右上、左上という絶対方向を指定しての配置ができる。
・柱やノンブルを配置できる。
・文字の大きさ(絶対寸法)、1ページの行数、1ページの文字数を指定できる。
・左右ページがある。
・横組では左開き(左から右へ)進行、縦組では右開き(右から左へ進行)。
・横組・縦組の混在。
・改ページと改丁を指定できる。
・見開きがある。
・ページシーケンスの偶数開始の指定ができる。

もっと細かいこともあるけれどもそれらはとりあえず省略するとして。

紙のページならできることの中で、EPUB3の仕様で規定されているのは、改ページと進行方向(右開きか左開きかということ)ぐらいである。

上に挙げた紙のページ指定の中には、紙の物的特性と製本という処理に由来するものが多い。そうした特性の多くは、紙を媒体として使うことからくる制約である。そうした制約は、電子デバイスの画面では必要ないか、またはあまり意味のないことが多い。

だから、EPUB3の仕様にページに関する規定がすくないのは自然であるとも言える。

紙には裏表があり、本は背中で製本されているので、本を読む行為はページ捲りの動作と密接に結びついている。しかし、電子デバイスではページ捲りよりもスクロールの方が使い易い。

現在、多くのEPUBリーダーは画面をページのように見立てて、ページめくりっぽいインターフェイスを用意している。これは紙で作った本のイメージを継承するためのギミックである。こうして、EPUB3の仕様に規定されていないページの概念を持ち込んでしまったところに、EPUB制作上の問題、EPUBリーダー開発の難しさが生まれてしまったように思う。

『XSL-FOの基礎- XML を組版するためのレイアウト仕様』

注目

XSL-FO本書は、主として XSL-FOドキュメントを印刷するソフトである XSL-FOプロセサ(弊社『AH Formatter』やアパッチの FOP など)を利用する人向けの解説書です。解説は、標準の仕様書の範囲内ですので、FOP などのオープンソース XSL-FOプロセサでも共通であり、『AH Formatter』のユーザでない方でも活用いただけます。詳しい情報

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

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)にする予定だそうです。