ePubの仕様について
ePubは電子書籍の形式の一つです。
ePub形式の電子書籍は、zip圧縮内の最初のファイルがmimetypeファイルである、拡張子が.epubである単一のzip圧縮ファイルです。
ePub形式の電子書籍に認められているzip圧縮アルゴリズムは無圧縮(STORED)か、DEFLATEDだけです。
そのため、.epubファイルを作成するにはzip圧縮しますが、
Windowsの場合は、mimetypeファイルだけzip圧縮した後、mimetype以外の全ファイルをmimetypeのzipファイルにドラッグ アンド ドロップしたりしなければなりません。
そうしてから、zipファイルの名前を電子書籍のタイトル.epubなどに変えます。
mimetypeファイルの内容はapplication/epub+zipでなければなりません。
mimetype
―――――――――――
application/epub+zip
―――――――――――
電子書籍(ePub)にはMETA-INFディレクトリとMETA-INF/container.xmlファイルがなければなりません。
META-INF/container.xmlの例は、次のように成ります。
META-INF/container.xml
―――――――――――――――――――――――――――
<?xml version="1.0" encoding="UTF-8"?>
<container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
<rootfiles>
<rootfile full-path="xxx.opf" media-type="application/oebps-package+xml"/>
</rootfiles>
</container>
―――――――――――――――――――――――――――
META-INF/container.xmlは.opfファイルの場所を指定します。
.opfファイルの最小の例は、次のように成ります。
xxx.opf
―――――――――――――――――――――――――――
<?xml version="1.0" encoding="UTF-8"?>
<package unique-identifier="pub-id" version="3.0" xmlns="http://www.idpf.org/2007/opf">
<metadata xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:identifier id="pub-id">urn:uuid:27D78B51-D315-3B84-940B-7071A5387E95</dc:identifier><!-- UUID -->
<dc:title>電子書籍のタイトル</dc:title>
<dc:language>ja</dc:language>
<meta property="dcterms:modified">2001-02-03T04:05:06Z</meta><!-- 最終更新日時 -->
</metadata>
<manifest>
<item id="css" href="common.css" media-type="text/css"/>
<item id="nav" href="nav.xhtml" media-type="application/xhtml+xml" properties="nav"/>
<item id="cover" href="cover.jpeg" media-type="image/jpeg" properties="cover-image"/>
<item id="index1" href="index1.xhtml" media-type="application/xhtml+xml"/>
<item id="index2" href="index2.xhtml" media-type="application/xhtml+xml"/>
<item id="episode2image1" href="episode2image1.jpeg" media-type="image/jpeg"/>
<item id="episode2image2" href="episode2image2.png" media-type="image/png"/>
</manifest>
<spine>
<itemref idref="index1"/>
<itemref idref="index2"/>
</spine>
</package>
―――――――――――――――――――――――――――
ePub3.2でも、packageタグのversion属性値は3.0のようです。
UUIDは、UUIDバージョン4のように乱数で作成すると重複する可能性が無視できるほど小さい、重複し難い番号のような物です。
UUIDバージョン4でUUIDを生成してくれる無料のウェブサービスが存在します。
UUID 生成 というキーワードで検索してみてください。
電子書籍(ePub)の仕様ではUUIDが重複しても問題無いです。
著者の名前を設定したい場合は次のような記述を<metadata>と</metadata>の間に追加します。
―――――――――――――――――――――――――――
<dc:creator id="creator1">著者</dc:creator><!-- 著者の名前 -->
<meta refines="#creator1" property="role" scheme="marc:relators" id="role">aut</meta>
―――――――――――――――――――――――――――
イラストレーターの名前を設定したい場合は次のような記述を<metadata>と</metadata>の間に追加するようです。
―――――――――――――――――――――――――――
<dc:creator id="creator2">イラストレーター</dc:creator><!-- イラストレーターの名前 -->
<meta refines="#creator2" property="role" scheme="marc:relators">ill</meta>
―――――――――――――――――――――――――――
出版者か出版社を設定したい場合は次のような記述を<metadata>と</metadata>の間に追加します。
―――――――――――――――――――――――――――
<dc:publisher>出版者</dc:publisher><!-- 出版者か出版社 -->
―――――――――――――――――――――――――――
出版日を設定したい場合は次のような記述を<metadata>と</metadata>の間に追加します。
―――――――――――――――――――――――――――
<dc:date>2001-02-03T04:05:06Z</dc:date><!-- 出版日 -->
―――――――――――――――――――――――――――
校正者といった貢献者の名前を設定したい場合は次のような記述を<metadata>と</metadata>の間に追加するようです。
―――――――――――――――――――――――――――
<dc:contributor>校正者</dc:contributor><!-- 校正者といった貢献者 -->
―――――――――――――――――――――――――――
著作権表示を設定したい場合は次のような記述を<metadata>と</metadata>の間に追加するようです。
―――――――――――――――――――――――――――
<dc:rights>© 2001 著作権者</dc:rights><!-- 著作権表示 -->
―――――――――――――――――――――――――――
nav.xhtmlの例は、次のように成ります。
nav.xhtml
―――――――――――――――――――――――――――
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" lang="ja" xml:lang="ja">
<head>
<title>目次</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<nav epub:type="toc">
<ol>
<li><a href="index1.xhtml#episode1">第1話</a></li>
<li><a href="index2.xhtml#episode2">第2話</a></li>
</ol>
</nav>
</body>
</html>
―――――――――――――――――――――――――――
nav.xhtmlは電子書籍リーダーが目次機能で表示する目次に成ります。
ePubでは電子書籍の内容の文書はXHTMLであり、複数のXHTMLに分割できます。
各、電子書籍リーダーの独特の仕様で、例えば二百数十キロバイトを超えないように電子書籍の内容の文書を複数のXHTMLに分割したりします。
各、電子書籍リーダーの独特の仕様で、有効なHTMLタグやCSSには制限が有ります。
例えば-epub-writing-mode: vertical-rl;のように、CSS3のプロパティ名には接頭辞-epub-を付ける必要が有るそうです。
ePub3.3の仕様では、電子書籍の内容である.epubファイル内の.xhtmlファイルの仕様は、旧「XHTML5」、2024年時点の現「HTML Living Standard」の「XML syntax」、「XML構文」だそうです。
このため、ePub3.3の仕様では、電子書籍の内容である.epubファイル内の.xhtmlファイルを、電子書籍の内容の断片と見なしているのかもしれないですね。
ちなみに、旧「HTML5」の仕様を策定していた2つの団体間の仕様の差異が大きく成って一方の団体の仕様へ一本化されたため、用語、名称が変化したらしいです。
2024年時点の現「HTML Living Standard」の「XML構文」の仕様では、必要な場合は、「<!DOCTYPE html>」を書いても良いそうです。
つまり、ePub3.3の仕様では、「<!DOCTYPE html>」を省略できるようです。
そのため、当文書では「<!DOCTYPE html>」を省略しております。
一方、2024年時点の現「HTML Living Standard」の、「XML構文」ではなく、「HTML構文」の仕様では、「<!DOCTYPE html>」は全て英大文字である必要が有り、必ず書く必要が有ります。