epubのエラー対策

前のエントリで書いたように、narou.rbとAozoraEpub3を使用して作ったepubGoogle Play ブックスにアップロードすると、epubのエラーでうまくいかない。エラーは3種類あって、一応の対応方法は見つけたけれど、たぶん正しい方法ではないと思う。それぞれの作者に相談して修正してもらう方が良いとは思うのだけど、自信が無いのでとりあえずここに書いておく。素人が適当にやっているので、参考程度に。実行するのは自己責任でお願いします。

nav.xhtmlの"title-page"

1つ目、epubをunzipするとディレクトリ2つ(META-INFOPS)とmimetypeってファイルが出てくるのですが、このOPSの下の/xhtml/nav.xhtmlの問題。title-pageが定義されていないって言うんだけど…。何が正解かわからない。とりあえず、ハイフンを削除してtitlepageに修正すれば通るのでこれで行く。

AozoraEpub3-1.1.0b38/template/OPS/xhtml/xhtml_nav.vm の52行目

<li><a epub:type="title-page" href="title.xhtml">扉</a></li>

<li><a epub:type="titlepage" href="title.xhtml">扉</a></li>

へ修正。

nav.xhtmlのelement "ol"

2つ目、同じくnav.xhtmlの問題。<li>タグのすぐ後ろに<ol>タグが来るのはepub3ではNGらしい。<a>か<span>タグを間に入れろってことだと思う。一々修正してもいいけど、面倒くさいのでネストしないようにする。

AozoraEpub3-1.1.0b38/AozoraEpub3.ini (このファイルはnarou.rbでinitするとコピーされてくる)の58行目 NavNest=1 を NavNest=0 に修正

濁点フォント

3つ目、narou.rbは必要に応じて「あ”」見たいな表現用のフォントを入れてくれるのだけど、このフォントに関する問題。フォントが使用されている場合、manifestで定義されていないってエラーが出る。フォントが使用されていない場合、/OPS/css/vertical_font.css に記載されたフォントがepubパッケージに入っていないってエラーが出る。対応としては、このフォントを使わないか、常に入れてしまう。

 濁点フォントを使わない場合

 narou.rb側で、以下のコマンドを実行。

narou setting force.enable_dakuten_font=false

AozoraEpub3-1.1.0b38/template/OPS/css_custom/vertical_font.css の28行目から36行目までを削除。

濁点フォントを常に入れてしまう場合

AozoraEpub3-1.1.0b38/template/OPS/package.vm の47行目<manifest>から104行目</manifest>の間で邪魔にならないところ(例えば104行の前)に以下を挿入。

<item id="epub.embedded.font.1" href="fonts/DMincho.ttf" media-type="font/opentype"/>

gems/narou-2.1.0/lib/novelconverter.rb の147行目以下の行をコメントアウト

stash_aozora_fonts_directory unless use_dakuten_font

# stash_aozora_fonts_directory unless use_dakuten_font

で行けるはず。

蛇足

上記の変更を何もしないままで、作成されたepubを修正するスクリプトも作ったのでそれも別のエントリでアップします。