Kindle本はでんでんコンバーターを使った

先日、はじめてアマゾンKindleダイレクトパブリッシングで本を出版しました。何を使ってmobiファイルを作ろうかとちょっとだけ試行錯誤しましたが、結局でんでんコンバーターを利用しました。

もともとの希望はpandocを使ってePubファイルを作って、Kindle Previewerでmobiに変換と思っていたのですが、Kindle Previewerで読み込むとエラーはないもののワーニングが出力されてしまいます。

そもそも自分があまり理解してないし、というわけで実績のありそうなでんでんコンバーターを利用することにしました。

でんでんコンバーターの利用はと〜っても簡単です。Markdownで原稿を作ったらカバーデータ、CSSファイル、でんでんコンバーターの設定ファイルをまとめてアップロードします。

用意したファイル

1.png
2.png
...画像ファイル...
cover.jpg
latex_hint_gyo.md
my.css
ddconv.yml

すぐにePubとしてダウンロードされるので、あとはKindle Previewerで読み込めばmobiファイルが生成されるので、アマゾンにアップするだけ。

my.cssはすごくシンプルになりました。

my.css

body {
  text-align: justify;
  text-justify: inter-ideograph;
  font-family: serif;
}

h1, h2, h3, h4, h5, h6 {
  text-align: left;
  font-family: serif;
  font-weight: bold;
  color: inherit;
}

h1 {
  page-break-before: always;
    padding-top: 4%;
    padding-bottom: 4%;
    padding-left: 2%;
    padding-right: 2%;
    line-height: 140%;
    border-left: 10px solid black;
}

h2 {
    padding-top: 3%;
    padding-bottom: 3%;
    padding-left: 2%;
    padding-right: 2%;

    border-left: 13px solid;
    border-left-style: double;
    border-right: 2px solid;
    border-right-style: double;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-color: blue;
}

pre {
  white-space: pre-wrap;
    border: 1px solid blue;
    padding: 2% 2% 1.5% 2%;
    line-height: 1.5;
}

code {
   margin-bottom: 0.5%;
   font-size: 80%;
   font-family: sans-serif;
   line-height: 0.8;
}

img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  border: 1px solid;
}

たったこれだけでいいのかハッキリ言って自信がありませんが、プレビューしてみたり実機で試して大丈夫だったので、このままにしました。

ただ、h2の設定がKindle Paperwhiteではpaddingがうまく効かないみたいで、見出しが下のほうに配置されてしまいます。

0906a

Kindle FireとかAndroidのKindleアプリではちゃんと表示されるので、Kindle Paperwhiteに何が原因があるのかもしれません。

0906b

ついでに、でんでんコンバーターの設定ファイルddconv.ymlも公開しておきます。目次の階層を2にしたくらいで、特別なものはありませんが。

ddconv.yml

# ddconv.yml
# YAMLで記述されたDDconvの設定ファイルです。
# 「#」以降のテキストは無視されます。
# -------------------------------------

# バージョン
ddconvVersion: 1.0 # 必須。この行は編集しないでください。

# 出版物の識別子
#identifiers:
#  - content: d0df4f65-822d-4714-bd24-c53306fe065c # 具体的な識別子を指定します。
#    identifier-type: uuid # 「uuid」または「isbn」を指定します。

# タイトル
titles:
  - content: LaTeXのヒント 別行だての数式で迷わない
    title-type: main

# 作成者等
creators:
  # 作成者1 --------
  - content: satoryo

# 出版物が使用する言語(必須)
language: ja #日本語=ja、英語=enなど

# 出版年月日
#date: 20140901 # YYYYMMDDの形式で指定します。

# ページ送り方向
pageDirection: ltr # 左から右=ltr、右から左=rtl

# EPUB出力オプション
# true: 有効、false: 無効
options:
  titlepage: false # 扉ページを自動生成する true|false
  tocInSpine: true # 目次ページを自動生成する true|false
  tocDisplayDepth: 2 # 目次の階層は2まで
  kepub: false # kobo Touch向け拡張子「.kepub.epub」を利用する true|false

pandocとEmacsでmobiファイルを作ってみる

Kindle用のmobiファイルを作っています。というか試行錯誤しています。

Markdownで原稿を書いてから、(何でもいいのですが)Mouでhtmlに書き出して、pandocでepub、Kindle Previewerでmobiファイルを生成しています。

これで生成できるのですが、ちょっと修正したい箇所があります。

これをどうしようかと思っていたのですが、そういえば以前epubファイルの中の設定ファイルをEmacsで読む記事を自分で書いていたのを思い出しました。

なんで忘れてたんでしょうか。

とりあえず、こんな感じでePubファイルを作っています。以前より進歩?しました。

pandoc --epub-metadata=metadata.xml  -s test.html -o test.epub \
 --epub-stylesheet foo.css --toc --toc-depth=2 \
 --epub-cover-image=cover.jpg

あとは以前の記事のようにtest.epubをEmacsで読み込んで「o」で必要なファイルを開くだけ。

適当に修正して(いまのところ手探りの状態です)、
最後にKindle Previewerで開けばmobiファイルが生成されます。

Kindle本を作る方法を検討中

Kindle本を作ろうと調べてるんですが、いろいろ方法があるようです。とりあえずこんな感じでしょうか。

  1. Calibreのebook-convertを使う方法
  2. pandocでepubを作ってKindle Previewerからmobiにする方法
  3. KindleGenを使う方法

いまのところ2のpandocを使って

pandoc -s foo.html -o foo.epub --epub-stylesheet bar.css

KindlePreviewerで読み込むと目次も作成されるので、これがいちばん便利そうなんですが、目次の体裁を何とかしたいと思うとSigilで開いてゴニョゴニョするんでしょうか。

いまさらSigilでもなさそうなんですが、目次用の設定ファイルをあらかじめ作ってしまえばいいのかな?

いまのところさまよっている状態です。