
EPUB(イーパブ)とは電子書籍ファイルのオープンな仕様です。
「ePub」や「ePUB」などと表記される場合もあります。
EPUBとPDFとの比較
EPUBには通常のEPUBと固定レイアウト(詳細は後述)があり、性格が大きく異なります。
それら2種類のEPUBを同じく電子書籍(電子文書)のオープンな仕様であるPDFと比較したのが下表です。
EPUB | |||
---|---|---|---|
通常 | 固定レイアウト | ||
基盤技術 | HTML | ? | PostScript |
レイアウト | リフロー | 固定 | |
アプリ出力 | EPUB出力が必要 | 画像出力が必要 | 印刷できれば可 |
テキストエディタ で手書き | 可能 | 意味無し | 事実上不可能 |
著作権保護 | 独自実装が必要 | 可能 | |
再編集 | ZIP解凍だけで可能 | 画像出力アプリが必要 | PDFアプリが必要 |
全文検索 (Windows/Mac /Evernote) | × | ◯ |
PDFは固定レイアウトの完成形
PDF(Portable Document Format)とは1993年に誕生した印刷イメージを画面上で再現するためのファイルの仕様です。
PDFファイルにはプリンタードライバーが出力する情報(プリンター言語の1つであるPostScriptを簡略化したもの)が格納されています。
どんなアプリでも印刷機能さえあえば印刷先として「PDFファイル」を指定するだけでPDFファイルを作成できます。
どんなデバイス(パソコンやスマホなど)でもPDFなら印刷イメージを忠実に表示できます。
登場から30年近くなる現在でもPDFは現役であり、少なくとも「固定レイアウト」の電子書籍(電子文書)の仕様としては完成形と言えそうです。
全文検索に対応
Windowsのエクスプローラー、Macのファインダー、EvernoteなどはPDF内の文字列をインデックス化する全文検索に対応しています。
そのため、PDFであればそうしたOSやアプリですぐに検索できるメリットがあります。
EPUB内の文字列も技術的にはインデックス化できるはずが、対応されてはいません。
EPUBのメリットはリフロー
EPUBはPDFから約15年後の2007年に誕生しました。
PDFにないEPUBのメリットは「リフロー」です。
リフローとは本の内容をデバイスやユーザー設定に合わせて表示することです。
例えばPDFのB5版の雑誌をスマホで表示すると画面が小さすぎて、縦横スクロールと拡大縮小の繰り返しが必要でまともに読めません。
それに対し、EPUBの雑誌であればスマホの小さい画面に合わせて表示されるため問題なく読めます。
EPUBではリフローを実現するために基盤技術としてHTML(Hyper Text Markup Language)を採用しています。
HTMLとはウェブページを記述するための「タグ」によって文章の構造を表現する言語です。
タグとは以下のような「<」と「>」とで囲まれた部分です。
<h1>吾輩は猫である</h1> <h2>夏目漱石</h2> 吾輩は猫である。名前はまだ無い。<br/> どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩はここで始めて人間というものを見た。
ウェブブラウザはこの内容を画面に表示します。
1行に何文字表示されるかは画面の横幅やユーザーが設定した文字の大きさなどによって変わります。
パソコンのような大きな画面では1行に多くの文字が表示され、スマホのような小さな画面では1行の文字数は少なくなります。
ただし、上の例の<br/>では必ず改行されます。
EPUBファイルを表示するEPUBリーダーは「ページ」の概念がある以外はブラウザとほとんど同じです。
ブラウザは「スクロール」で読み進めますが、EPUBリーダーは「ページめくり」で読み進めます。
EPUBリーダーが1ページに何文字表示するかは画面の大きさやユーザーが設定した文字の大きさや行間隔などによって変わります。
つまり、HTMLを使うEPUBには以下のようなメリットがあります。
- リフローできる。
- ウェブページ作成の技術を電子書籍作成に流用できる。
- ウェブページ表示の技術をEPUBリーダーに流用できる。
XHTMLの問題
HTML言語はHTML 1.0からバージョンアップを重ね、現在主流となっているのはHTML5です。
ではEPUBではどのバージョンのHTMLを使うかというとXHTMLなのです。
XHTMLとはHTML 4.01をXML(eXtensible Markup Language)という規則で再定義した言語です。
しかし、XMLに則った厳密な記述が強制されるXHTMLはまったく普及せず、XHTMLは廃止されてしまいました。
EPUBがなぜXHTMLを採用したのかわかりませんが、それによってEPUBコンテンツの記述(XHTMLの記述)はHTML4やHTML5に比べて面倒なものになってしまいました。
せっかく汎用的なウェブページ作成技術を使っているのに残念な話です。
ZIPで1つのファイルにする
ウェブページで画像を表示する場合、以下のようにimgタグが使われます。
<img decoding="async" alt="挿絵1" src="sashie1.jpg" />
この例では「sashie1.jpg」が画像ファイルです。
つまり、ウェブページは複数ファイルで構成されます。
ウェブサーバーにファイルを置くならそれでもいいのですが電子書籍ファイルとしては扱いづらいため、複数のファイルをZIP圧縮して1つのファイルにします。
ZIPとは複数のファイルを圧縮して1つにまとめるためによく使われている技術です。
通常、ZIP圧縮ファイルの拡張子は「.zip」ですが、それではEPUBファイルだとわからないため拡張子を「.epub」にします。
つまり、EPUBを一言で言えば「HTMLをZIP圧縮して拡張子を.epubにしたファイル」です。
自炊本のファイル形式としてよく使われているCBZも同じようにスキャンした画像ファイル群をZIP圧縮し、拡張子を「.cbz」に変更したものです。
非圧縮ファイルの問題
ではいつも使っているZIPアプリでEPUBファイルが作れるかというと実は作れません。
EPUBでは「mimetype」というファイルだけを非圧縮でZIPファイルに含める必要があります。
それを実現するにはZIPコマンドをインストールし、コマンドプロンプトから操作するかEPUB専用のZIP圧縮を行う専用アプリを使う必要があります。
せっかくZIPという汎用的な技術を使っているのに残念な話です。
固定レイアウトEPUBという矛盾
HTMLでは日本語の縦書きやルビはもちろん、アラビア語やヘブライ語のような右から左に書く言語も記述できます。
そうした記述はすでに開発されているブラウザでサポートされていますから、その技術を流用するEPUBリーダーで実現するのも簡単です。
しかし、EPUBにはそうしたHTMLには概念すらない「固定レイアウト」という仕様があります。
固定レイアウトのEPUBではPDFのように画面サイズが大きくても小さくても、縦長画面でも横長画面でも同じ表示になります。
もちろんPDFと同様にパソコンの横長で大きな画面を想定して作成された固定レイアウトのEPUBをスマホの縦長で小さな画面を見ると非常に見づらくなります。
だからといってPDFのようにどんなアプリでも印刷さえできれば作成できるわけではありません。
そもそもEPUBの基盤技術であるHTMLはリフローを前提に設計されているため、固定レイアウトで電子書籍を記述するのは困難です。
そのためか書籍の各ページをまるごと画像化し、HTMLは単にその画像を表示するだけという作りの固定レイアウトEPUBが多いようです。
つまり、HTMLは事実上使われておらず、EPUBである意味がよくわからなくなります。
PDFという固定レイアウトの完成形があったにもかかわらず、なぜEPUBの仕様に固定レイアウトが追加されたのかはよくわかりません。
KindleがEPUBをサポート
Kindleのファイル形式はMOBIという独自のものだったのですが、ついにEPUBがサポートされました。
これによってEPUB作成が身近なものになるでしょうか。
コメント