見出し画像

楽天Koboで販売する電子書籍をマークダウン+Pandocで作成する

 楽天Kobo(Kobo Writing Life:以下Kobo)で電子書籍を販売しています。こういうの(アフィリンクではありません)

 Koboの特徴として入稿フォーマットがePub3に限定されており、フォーマットチェックもそこそこ厳密であるためそれなりに手間が掛かります。
 (一方でAmazon KDPはプレーンテキストで入稿できますが、手軽さ故のデメリットが多くなりました。本稿の趣旨とは外れるのでKDPへの言及はこれだけにします。)

 本稿ではKoboへ入稿する電子書籍ファイルをできるだけ手間を抑えて作成する方法を紹介します。


概要

 大まかな流れは以下の通りです。

  1. マークダウン書式で原稿を作成する

  2. Pandocを使ってePub3形式に変換する

  3. epub-checkerでチェックする

  4. 特定のファイルを修正する

  5. 手動でePub3形式に変換する

 事前にフォーマットコンバータのPandocとePub3チェッカーのepub-checkerをダウンロードしておきます。どちらも無償ソフトです。

  • Pandoc: https://pandoc.org/

  • epub-checker: https://pagina.gmbh/startseite/leistungen/publishing-softwareloesungen/epub-checker/

1. マークダウン書式で原稿を作成する

 何はともあれ原稿が必要なのでマークダウン書式で作成します。マークダウン書式の詳細はPandocのチュートリアルを読んで下さい。一般的なマークダウン書式です。当然他にもあります。

# 見出し1

## 見出し2

**太字**

2. Pandocを使ってePub3形式に変換する

 変換方法はいくつかありますが自分は以下のようにしています。作成が必要なファイルは以下の通りです。

  • text.md:原稿

  • style.css:スタイル

  • metadata.yaml:メタデータ

  • cover.jpg:表紙

 yaml形式で書籍情報を作成する必要があります。これはテキストファイルなので以下のように作れば良いです。

---
title: タイトル
creater: hogehoge
language: ja
publication: 2023/10
rights: Copyright by hogehoge
---

 cssは説明するまでもないので省略します。なくても問題ありません。

 コマンドラインで作業フォルダまで移動してから以下を実行します。

pandoc.exe text.md  -t epub3 -o output.epub -f markdown+east_asian_line_breaks --epub-cover-image cover.jpg --toc --toc-depth=3 --metadata-file metadata.yaml --css style.css -N

 表紙、メタデータ、スタイルシートの設定は分かると思いますが他のオプションは以下の通りです。

  • -f markdown+east_asian_line_breaks:マークダウン書式であることと良い感じに改行するおまじない

  • --toc --toc-depth=3:目次を見出しレベル3まで表示

  • -N:セクションごとにナンバリングする

3. epub-checkerでチェックする

 Pandocで出力されたePubファイルをepub-checkderへD&DするとNG部分が表示されるので必要に応じて修正します。
 最終的に以下のようなエラーだけになると思います。

FATAL (RSC-016) FATAL_preposition 
"output.epub/EPUB/text/ch005.xhtml" (行数 25, 桁数 28):
ファイル解析時の致命的なエラー: 
An invalid XML character (Unicode: 0x1a) was found in the element content of the document.

4. 特定のファイルを修正する

 特定のファイルになぜか制御コードが紛れ込むようなのでそれを取り除く必要があります。

 制御コードが付与されたファイルはチェッカーで表示されるのでそれを参考にepubファイル(という名のzipファイル)を解凍してからファイルを開いて該当部分を削除し保存します。

 使用するテキストエディタによって表示は異なりますがWindowsメモ帳では以下のように表示されます。
 この「□」を削除します。

5.手動でePub3形式に変換する

 修正完了後は再度ePub3形式に戻す必要がありますが、ここが一筋縄ではいきません。

 単にzipファイルに圧縮してリネームするだけでは「zipファイルの先頭にmimetypeファイルを配置する」というePub3要件を満たさないことがあります。

 ではどのような手順で圧縮するかというと以下の通りです。Windows以外でのやり方は分かりません。

  1. mimetypeファイルを「右クリック→ZIPファイルに圧縮する」からzipファイルに圧縮する

  2. EPUBフォルダとMETA-INFフォルダを選択して「コピー」

  3. 1.でできたzipファイルを「右クリック→プログラムから開く→エクスプローラー」で開く

  4. エクスプローラーで開いたzipファイルの中で「貼り付け」

  5. mimetypeファイル、EPUBフォルダ、META-INFフォルダが一つのフォルダ内にできたら終了

  6. zipファイルの拡張子をepubに変更する(必要に応じてファイル名を変更する)

 要するに「mimetypeファイルだけを最初にzip圧縮することでzipファイル内の先頭にして、そのあと他のファイル/フォルダを追加」しています。バッチファイルなどを作っても良いと思います。

6. epub-checkerでチェックする

 最後に念のためチェックします。
 問題なければ以下のようになります。

まとめ

  • Pandocは良いぞ

以上。

この記事が気に入ったらサポートをしてみませんか?