Re:VIEWで生成したEPUBファイルを閲覧すると、1ページ目が”Document is empty”エラーになる
はじめに
いつもブログをご覧いただきありがとうございます。
ミジンコに転生したIPUSIRONです😀
問題
Re:VIEWでEPUBファイルを出力しました。
そのファイルをEPUBビューアー(ここでは「超縦書ビューア」を使った)で開いたところ、1ページ目に以下の画像のような"Document is empty"エラーが出ていました。

原因
免責事項や目次よりも前に表示されていることから、これは大扉の生成に失敗していることを意味しています。
そういえば、大扉のタイトルを任意の位置で改行できるようにするために、カスタマイズした大扉用のファイル("title.tex")を用意し、"config.yml"から読み込ませていたのでした。
【対応策】"title.xhtml"ファイルを作成し、"config.yml"ファイルから読み込む
EPUB出力時にカスタマイズした大扉用ファイルを使用する場合は、TEXファイルではなくHTMLファイルを指定する必要があります。
1:以下の"title.xhtml"ファイルを作成し、articlesフォルダー内に配置します。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<title>シーザー暗号の解読法 簡易版</title>
<meta charset="UTF-8" />
<style type="text/css">
body {
text-align: center;
margin-top: 20%;
font-family: serif;
}
h1 {
font-size: 2.2em;
line-height: 1.5em;
}
.author {
margin-top: 2em;
font-size: 1.5em;
font-weight: bold;
}
</style>
</head>
<body>
<h1>
シーザー暗号の解読法 簡易版
</h1>
<div class="author">IPUSIRON 著</div>
</body>
</html>
2:"config.yml"ファイルで以下の記述を追加します。
titlefile: title.xhtml

3:改めてreview-epubmakerコマンドでEPUBファイルを出力します。
※以下はWSL(Ubuntu)で実行した例です。各々のビルド環境に合わせて読み替えてください。
# docker run --rm -v `pwd`:/work vvakame/review:5.8 /bin/sh -c "gem install unicode-display_width && cd /work && review-epubmaker config.yml"
4:出力されたEPUBファイルをEPUBビューアーで開いて内容を確認します。
エラーが表示されず、大扉の内容が正しく表示されれば成功です。

タイトルや著者名のフォントを変更したい場合は、"title.xhtml"ファイル内のスタイルを調整してください。