実務メモ / リリースガイド
Markdown で書いた技術書を Amazon KDP で出すまでの手順。
時間を取られるのは執筆でも申請フォームでもなく、pandoc が吐いた EPUB を「Kindle が壊さない形」に直すところです。崩れ方は実機でしか出ないうえ、原因はほぼ決まっています。
| 対象 | Markdown で原稿を持っていて、これから Kindle 個人出版(KDP)に出す人 |
|---|---|
| 前提 | pandoc で EPUB をビルドする構成を例に書きます。Word / Kindle Create で作る場合も STEP 5 以降は同じです |
| 実績 | 『チームに溶け込む AI エージェント開発』をこの手順で公開。後続の 2 冊も同じパイプラインで運用中 |
| 時点 | 2026-08-15 時点の KDP の仕様にもとづく |
| 最終更新 | 2026-08-15 |
| 注意 | 価格帯・ロイヤリティ・審査基準は変わります。税務・法務の助言ではありません |
| 関連 | 生成AIでつくった画像と著作権 / Claude Codeと働く1年目の教科書(書籍ノート) |
KDP の登録フォームは 1 時間で終わります。実際に効くのは EPUB の後処理で、pandoc の標準出力をそのまま上げると 目次が中表紙より前に出る・章をまたぐリンクが死ぬ・表のセルが上下中央に浮く といった崩れが Kindle 実機でだけ現れます。直し方は決まっているので、スクリプトにして毎ビルド自動で通すのが正解です(STEP 3)。
もうひとつ、後処理では直らず原稿側で決まってしまう制約が 3 つあります ——コード 1 行の長さ・タスクリスト記法・罫線図。これは書いている最中から意識しないと、全章の書き直しになります(STEP 4)。
原稿が固まってから公開までは、うまくいけば 2〜3 日(うち審査が最大 72 時間)です。表紙の用意と税務情報の入力は先に済ませておくと、待ち時間が重なりません。
各ステップの下に「詳しい手順を開く」があります。開くと、実際のコマンド・入力欄の名前・踏んだ地雷まで書いてあります。
Kindle(EPUB)とペーパーバック(PDF)は、KDP では別タイトルとして登録し、あとで同じ商品ページに紐づけます。原稿が Markdown なら本文は同じソースから両方生成できますが、進め方の制約が 1 つあります。
ペーパーバックの表紙は、本文のページ数が確定しないと作れません。背幅がページ数で決まるからです。本文が固まる前に表紙を作り込むと、章を 1 つ足しただけで作り直しになります。
最短。初めてならこちら。
EPUB と表紙画像 1 枚で完結します。改訂も差し替えるだけ。ペーパーバックは後から同じタイトルに追加できるので、先に電子だけ出して反応を見る順序に不利はありません。
本文を完全に凍結してから着手する。
PDF の組版(判型・ノドの余白)、見開き 1 枚の表紙 PDF、ISBN の判断が追加で必要です。本文確定 → ページ数確定 → 背幅計算 → 表紙作成の順を崩さないこと。
ペーパーバックの仕様(判型・背幅・ISBN)は、このページ下部の「ペーパーバックも出す場合」にまとめてあります。
章ごとの Markdown を pandoc で 1 つの EPUB に束ねます。手で並べ替えると事故るので、ファイルの並び順はビルドスクリプトの配列で持つのが確実です。目次は --toc --toc-depth=2 で自動生成させます。
brew install pandoc # 3.x を使う
./build.sh # 章を結合 → EPUB 出力 → KDP 後処理まで一気に
LANG=ja_JP.UTF-8 pandoc \
--metadata-file=metadata.yaml \
--css=style.epub.css \
--epub-cover-image=cover.png \
--epub-title-page=false \
--toc --toc-depth=2 \
--metadata=toc-title:"目次" \
--syntax-highlighting=tango \
-o "書名.epub" \
000-中表紙.md 00-はじめに.md 01-*.md ... 奥付.md
--epub-title-page=false を付けているのは、pandoc が自動生成するタイトルページを止めて、自分で書いた中表紙(Markdown)を使うためです。自動生成のものはレイアウトを制御できません。
| 項目 | 入れる値 | 効き先 |
|---|---|---|
| title / subtitle | 書名・副題 | 端末の書誌情報・ライブラリ表示 |
| creator | 著者名(role: author を添える) | 著者名の表示 |
| lang | ja | これが無いと日本語の禁則・字送りが崩れる |
| date / rights | 発行日・著作権表記 | 書誌情報 |
| identifier | 任意の一意な文字列(UUID 可) | EPUB の必須項目。無いと警告が出る |
| publisher | レーベル名。使わないなら書かない | 空タグで残すと後処理で削る羽目になる(STEP 3) |
Mermaid のコードブロックは Kindle ではただのテキストとして出ます。ビルドの前処理で mmdc を通して PNG にし、 に置換してから pandoc に渡します。変換に失敗したらコードブロックのまま残す(ビルドは止めない)ようにしておくと、図がまだ無い段階でも確認を進められます。
unzip -l "書名.epub" | head -30 # 構造と章ファイル数を確認
ls -lh "書名.epub" # サイズ(配信コストに効く。STEP 8)
pandoc の出力は汎用 EPUB としては正しいが、KDP 向けには最適ではありません。手で直すと再ビルドのたびに消えるので、ビルドスクリプトの最後に後処理を固定で挟みます。実際に踏んで潰した 6 点+再パックの作法が以下です。
| 症状 | 原因 | 直し方 |
|---|---|---|
| KDP の変換で表示が乱れる | content.opf に pandoc が付けた prefix="ibooks:…" が残っている |
属性ごと削除する。Apple Books 用の名前空間で、KDP には不要 |
| Apple 専用ファイルが混ざる | META-INF/com.apple.ibooks.display-options.xml が同梱される |
削除する |
| メタデータの警告が出る | 空の <dc:publisher></dc:publisher> が残っている |
空タグを削除する(そもそも metadata に書かない) |
| 目次が中表紙より前に出る | pandoc は目次(nav)を表紙の直後に置く。Kindle は linear="no" でも順序どおり表示する |
nav に linear="no" を付けたうえで、spine 上で中表紙の後ろへ移動する。狙いは 表紙 → 中表紙 → 目次 → 本文 |
| 章をまたぐリンクが効かない | pandoc は章ごとに別 XHTML に割る。href="#ch05" は同じファイル内にしか届かない |
全 XHTML の id を集めて対応表を作り、href="ch05.xhtml#ch05" に書き換える |
| 表のセルが上下中央に浮く | Kindle は外部 CSS の vertical-align を無視することがある。行の高い表で見出し列だけ中央に見える |
td / th に HTML 属性 valign="top" と style="vertical-align:top" の両方を付ける |
| EPUB として認識されない | 展開 → 修正 → 再 zip したときに mimetype が圧縮されている/先頭に無い |
mimetype を最初に無圧縮(ZIP_STORED)で書き、残りを圧縮して追記する |
上表の 5 番目です。PDF は 1 ファイルなのでアンカーがそのまま解決しますが、EPUB は章ごとに分割されるため同じ Markdown・同じリンク記法でも EPUB でだけ死にます。相互参照の多い本ほど気づきにくく、Previewer で 1 つずつタップして初めて分かります。後処理で機械的に解決するのが唯一まともな対処です。
EPUB は zip なので、展開 → テキストとして直す → 規則どおりに再パックで足ります。Python 標準ライブラリだけで完結します。
import zipfile, re, os, shutil, tempfile
tmp = tempfile.mkdtemp()
with zipfile.ZipFile(epub) as z:
z.extractall(tmp)
# 1) OPF を直す
opf = open(f"{tmp}/EPUB/content.opf", encoding="utf-8").read()
opf = re.sub(r'\s*prefix="ibooks:[^"]*"', '', opf)
opf = re.sub(r'\s*<dc:publisher>\s*</dc:publisher>', '', opf)
opf = opf.replace('<itemref idref="nav" />',
'<itemref idref="nav" linear="no" />')
# nav と直後の itemref(=中表紙)を入れ替える
opf = re.sub(r'(<itemref idref="nav" linear="no"\s*/>)(\s*)(<itemref idref="[^"]+"\s*/>)',
r'\3\2\1', opf, count=1)
# 2) 全 XHTML を走査:id→ファイル名の表を作り、href="#id" を書き換え
# 3) td/th に valign="top" と inline style を付与
# 4) Apple 専用ファイルを削除
# 5) 再パック:mimetype だけ無圧縮で先頭に
with zipfile.ZipFile(out, "w", zipfile.ZIP_STORED) as z:
z.write(f"{tmp}/mimetype", "mimetype")
with zipfile.ZipFile(out, "a", zipfile.ZIP_DEFLATED) as z:
... # 残りを追記
手で走らせると必ず忘れます。ビルドスクリプトの最後で無条件に呼ぶようにして、「ビルドした EPUB は常に後処理済み」という状態を保ちます。
# build.sh の末尾
python3 fix_epub_for_kdp.py "$OUTPUT"
KDP は EPUB を独自形式に変換して配信するため、CSS で細かく作り込んでも端末側で効かないものが多いです。後処理で触るのは「構造」と「Kindle が無視する指定の代替」に留め、見た目の調整は Previewer で確認しながら最小限にします。
Amazon 公式の無料ツールで、KDP が実際に行う変換を通した状態を見られます。ブラウザや macOS のプレビューで EPUB を開いても、ここで出る崩れは分かりません。提出前に必ず 1 周するのが前提です。
下の表が、実際に潰した崩れの一覧です。上 3 つは後処理では直りません(原稿側の書き方で決まる)。
| 症状 | 原因 | 対処 |
|---|---|---|
| コードブロックが右端で切れる | Kindle は横幅が狭く、長い行を折り返さず切り捨てる | 原稿側で 1 行 60 文字以内に折る。長いコマンドは \ で改行、JSON は整形して分割 |
チェックボックスが [ ] のまま出る |
Kindle は Markdown のタスクリスト記法に対応しない | ビルド前処理で通常の箇条書きに変換する(sed 's/^- \[ \] /- /') |
| 罫線図(│ ─ └)がガタガタに折れる | 等幅前提の図が折り返される・行間が開いて縦線が途切れる | 図ブロックだけ専用クラスを付け、折り返し無効・行間を詰める CSS を当てる |
| 表が横にはみ出す | 列が多い/1 列目が長い | 3 列以内に削る。定義表は 1 列目の幅を内容幅に寄せる |
| 図が粗い・出ない | SVG やコードブロック由来の図をそのまま置いている | PNG に変換して埋め込む。文字が入る図は拡大表示に耐える解像度で出力する |
| フォント最大で段組が壊れる | 固定幅・固定余白を CSS で指定している | 相対単位に直す。最小・最大の両方で 1 周見る |
# 60 文字を超える行を全 Markdown から拾う
grep -n '.\{61\}' *.md | head -40
散文の行は折り返されるので問題ありません。コードブロック内だけを見ます。ここを最初に片付けておくと、以降の改稿で崩れが再発しません。
Previewer は変換結果の再現度が高い一方、実機のページ送りの速さ・目次の使い勝手までは分かりません。公開後、自分の端末で 1 冊分読み通すと、章の切れ目や図の入れ場所の粗が見えます。改訂で直せるので、そこは公開を止める理由にしません。
Kindle の表紙は比率 1:1.6・長辺 2560 px が推奨です。中途半端な比率(例: 1:1.49)で作ると、ストアのサムネイルや端末のライブラリで余白が付いたり切れたりします。最初からこの比率でレイアウトを組むのが確実です。
| 項目 | 要件 |
|---|---|
| 推奨サイズ | 1600 × 2560 px(縦長・比率 1:1.6) |
| 形式 | JPEG または TIFF |
| カラー | RGB(CMYK で作ると色が転ぶ) |
| 解像度 | 300 dpi 相当以上を推奨 |
| ファイルサイズ | 50 MB 以下 |
| 文字 | 画像に焼き込む。サムネイルで読めるのはタイトル 1 行だけという前提で組む |
KDP には AI 生成コンテンツの申告欄があり、本文・画像・翻訳それぞれについて「AI-Generated(AI が生成)/AI-Assisted(AI で補助)」を申告します。申告自体は出版の可否に直結しませんが、正しく申告することが規約上の前提です。権利面の考え方(独占できるか・侵害しないか・商用に使えるか)は別の実務メモに整理しました。
画像生成にタイトル文字まで描かせると品質が安定しません。絵は生成 AI、文字とレイアウトはスクリプトかデザインツールで合成する分担にすると、改題や版数変更のたびに作り直せます。
# 絵(背景)+タイトル文字を合成して 1600×2560 で書き出す
python3 gen_cover.py
合成をスクリプト化しておく利点は、「自分の創作的寄与」の手順が記録として残ることでもあります。プロンプト・生成日・加工内容を一緒に残しておきます。
電子の表紙は「表 1 だけ」の 1 枚画像ですが、ペーパーバックは表 4・背表紙・表 1 が地続きの 1 枚 PDF です。共用できません(下部のペーパーバックの節)。
kdp.amazon.co.jp に Amazon アカウントでログインし、出版者情報・税務情報・振込口座を登録します。原稿より先に済ませておくと、審査待ちと重ならずに済みます。
KDP は米国の会社が支払元になるため、税務情報を出していないと米国で 30% が源泉徴収されます。日本在住者はオンラインの税務インタビューでマイナンバー(個人番号)または法人番号を申告すると、日米租税条約にもとづき源泉徴収率 0% を選べます。ここを空欄のまま出版すると、印税から 3 割引かれた状態で振り込まれます。
売上は約 60 日後に月次で支払われます(マーケットプレイスごとに最低支払額あり)。公開直後に振り込まれるものではないので、収支の期待値だけ合わせておきます。
税務の扱いは個々の状況で変わります。ここに書いたのは KDP の入力欄の話であり、確定申告や所得区分の判断は税理士・税務署に確認してください。
KDP の「新しい Kindle 本を作成」から入力します。日本語書籍で戸惑うのは、タイトル・サブタイトル・著者名・レーベルのそれぞれに「フリガナ(カタカナ)」と「ローマ字」を求められることです。空欄では先に進めません。
| 入力欄 | 入れる値と注意 |
|---|---|
| 本のタイトル | 書名。フリガナは数字の読みまで自分で決める(「1年目」→ イチネンメ) |
| サブタイトル | 任意。付けると検索に載る語が増える。フリガナ・ローマ字も同様に必要 |
| ローマ字表記 | ヘボン式・長音記号なし(Sōjūseki → Sojuseki)。ダッシュ — は半角 - に置換 |
| シリーズ | 続刊がある場合のみ。1 冊目で作った名前が正になるので表記を固定する |
| レーベル | 出版社欄に出る。個人でも屋号・レーベル名を名乗れる |
| 内容紹介 | HTML 可・最大 4000 文字。<h2> <p> <ul> <strong> <br> 程度は通る |
| キーワード | 7 個まで。タイトルに入っている語を重複させない(枠の無駄) |
| カテゴリー | 3 つまで。「コンピュータ・IT → 人工知能/プログラミング」など |
| ページめくり方向 | 横書きの技術書なら左から右 |
| DRM | 公開後に変更できない。ここだけは決めてから押す |
| 出版地域 | 権利を持っているなら「全世界」 |
| ISBN | Kindle 版は不要。ASIN が自動で付く |
フォームに直接書くと、改訂のたびに手元との差分が分からなくなります。提出項目を 1 枚の Markdown にまとめてリポジトリに置くと、2 冊目以降も同じ表を埋めるだけで済みます。フリガナ・ローマ字・内容紹介の HTML・キーワード・カテゴリを列挙しておきます。
ストアでは最初の 2〜3 行しか展開されずに表示されます。冒頭に「誰の何を解決する本か」を置き、目次の羅列は後ろに回します。技術書なら、対象読者と前提知識を明記しておくと返品・低評価が減ります。
タイトルとサブタイトルに含まれる語は、キーワードに入れなくても検索対象です。本文の中身を表すが書名に無い語(想定ツール名・関連分野・読者の職種)に 7 枠を使います。
本文・画像・翻訳それぞれについて、AI を使ったかを申告する欄があります。表紙を生成 AI で作ったなら画像側で申告します(STEP 5)。
ロイヤリティは 70% と 35% の 2 択ですが、70% を選べるのは価格が ¥250〜¥1,250 の範囲にあるときだけです。¥1,300 にした瞬間に 35% へ落ちるので、¥1,250 の壁を意識して決めます。
| 70% | 35% | |
|---|---|---|
| 選べる価格帯(日本) | ¥250〜¥1,250 | これより広い範囲を設定できる |
| 配信コスト | 差し引かれる(ファイルサイズ課金) | 差し引かれない |
| 向くケース | 個人の技術書はほぼこちら | 高額な専門書・図版が非常に多い本 |
70% ではファイルサイズに応じた配信コストが印税から引かれます。図を PNG で大量に入れた本はここが効くので、ls -lh で EPUB のサイズを確認してから価格を決めます。サイズを削りたいときは、まず図の解像度と枚数を見直します。
KDP セレクトに登録すると Kindle Unlimited(読み放題)の対象になり、読まれたページ数に応じた分配を受けられます。代わりに 90 日間の独占が条件で、同じ本を他所(技術書典・BOOTH・Zenn・自サイトの PDF 配布など)で配れなくなります。
90 日ごとの自動更新なので、更新のタイミングで見直せます。1 冊目は入れてみて反応を見る、という決め方でも取り返しはつきます。
個人の技術書は ¥500〜¥1,250 に集まります。ページ数より「読者が浮かせられる時間」で決めるほうが納得感が出ます。公開後に価格は変更できるので、初値で悩みすぎないことです。
EPUB と表紙をアップロードし、プレビューを確認して「Kindle 本を出版」を押します。審査は通常 72 時間以内。完了するとメールが届き、ストアに並びます。
https://www.amazon.co.jp/dp/<ASIN> で直リンクできます。自分のサイトや告知はこの URL を使います。mimetype の再パック事故(STEP 3)。予約注文として日付を指定できます。ただし予約設定には締切があり、その後は原稿を差し替えられない期間が生じます。急ぎでなければ、審査を通してからそのまま公開するほうが単純です。
誤字修正から章の追加まで、同じ手順で差し替えます。Markdown を直す → 再ビルド → 後処理 → KDP でコンテンツを差し替え → 再審査。ここまで自動化してあると、改訂の心理的コストがほぼゼロになります。
本文を差し替えても、すでに買った読者の端末が自動で新版に更新されるとは限りません。大幅な改訂をしたときは KDP サポートに更新の連絡をするか、SNS・自サイトで告知します。「買ってくれた人に届く前提」で改訂計画を立てないことです。
| 変えるもの | 反映 |
|---|---|
| 価格 | 比較的早い(数時間〜) |
| 内容紹介・キーワード・カテゴリ | 審査を挟むが本文より早い |
| 本文(EPUB)・表紙 | 再審査。最大 72 時間 |
同じ Markdown から PDF を組んで、紙でも出せます(印刷は注文ごとのオンデマンド)。電子と決定的に違うのは、ページ数が寸法に直結することです。本文が 1 ページ増えれば背幅が変わり、表紙を作り直すことになります。
| 項目 | 内容 |
|---|---|
| 本文ファイル | PDF。フォントは必ず埋め込む |
| 判型(Trim Size) | 技術書なら A5(148 × 210 mm)が扱いやすい |
| 余白 | 最小 6.35 mm。ノド側はページ数に応じて厚く取る(例: 上20 / 下20 / 外18 / ノド24 mm) |
| 背幅 | ページ数 × 0.002252 inch(白色用紙・モノクロ)。189 ページなら約 10.8 mm |
| 背文字 | 100 ページ未満は入れられない |
| 表紙 | 表 4 + 背 + 表 1 の見開き 1 枚 PDF。裁ち落とし 3.175 mm を足した寸法で作る |
| ISBN | KDP の無料 ISBN を使うか、自前で取得する(下記) |
本文確定 → ページ数確定 → 背幅計算 → 表紙 PDF 作成。この順を崩すと必ずやり直します。表紙の総寸法は KDP の Cover Calculator に「判型・ページ数・用紙」を入れて出た値を採用します(自分で計算した値ではなく、出力されたテンプレートに合わせる)。
電子版(Kindle)には ISBN は不要です。紙だけの判断になります。
症状から引けるように 4 つだけ。いずれも「原稿は正しいのに Kindle でだけ変」という形で現れます。
→ 再パック時に mimetype を圧縮してしまっている
EPUB を展開して手で直し、zip -r で固め直すとこれをやります。mimetype だけは最初のエントリに無圧縮で書くのが仕様です。後処理をスクリプト化するときの最初の関門でもあります。
→ pandoc は nav を表紙直後に置き、Kindle は linear="no" を無視して順に表示する
linear="no" を付けただけでは直りません。spine 上で nav を中表紙の後ろへ動かす必要があります。「非表示にする指定」ではなく「並び順そのもの」を直すのが正解でした。
→ Kindle が外部 CSS の vertical-align を無視している
CSS を強くしても効きません。HTML 属性の valign="top" とインライン style の両方を各セルに直接付けて解決しました。CSS の指定だけを信じないのが Kindle 対応の基本姿勢です。
→ 章ごとに XHTML が分割され、href="#id" が同一ファイル内で解決されない
PDF では動くので、PDF で確認して満足していると気づけません。id とファイル名の対応表を作って一括で書き換えます。参照の多い本ほど効くので、後処理の中でいちばん価値がありました。
チェック状態はこのブラウザに保存されます。
grep -n '.\{61\}' *.md で確認本ページは 2026-08-15 時点で実際に出版した際の手順を整理したものです。KDP の仕様・価格帯・審査基準は予告なく変わります。税務および権利に関する記述は一般的な情報の整理であり、法的・税務的助言ではありません。重要な判断は KDP の最新ヘルプおよび専門家に確認してください。