Markdown対応テキストエディタ、ファイル整理で手戻りしない!ルビ・画像・表をEPUB変換

Markdown原稿からルビ・画像・表をEPUBへ変換するときは、「EPUBファイルができた」と「中身が正しく変換された」を分けて確認します。受け入れ条件は、パッケージ検査が成功し、出力XHTML内のruby・img・table要素と収録画像が元原稿の一覧に対応することです。

出力ボタンがエラーを返さなくても、必要な画像が収録されていない、表が本文として崩れている、ルビ記法が文字列のまま残る、といった問題は起こりえます。変換後のファイルを開いて数える工程までを、執筆作業に含めます。

二章の原稿を三種類に分けて数える

例はchapters/C01.mdとchapters/C02.mdの二章です。原稿にはルビ挿入6回、本文画像2枚、二列表1件を入れます。表紙画像は本文画像と分け、images/cover.pngとして管理します。

変換前の一覧は次のようにします。

要素 元原稿で期待する数 出力側で見る場所
ルビ 6 章XHTMLのruby要素
本文画像 2 XHTMLのimgとEPUB内画像
表 1 章XHTMLのtable要素
表紙 1 パッケージのcover指定と収録画像

画像記法には、画像が見えない場合にも意味が伝わる代替文を付けます。表は見出し行と二列の対応が原稿上で分かるようにし、単なる空白合わせで作りません。

EPUBを合格にする確認順

  1. 二章のファイル順、作品名、著者、言語、横書き/縦書き、表紙パスを出力前に確認します。
  2. EPUBを生成し、別名の出力ファイルが作られたことを確認します。
  3. EPUBを展開し、nav.xhtml、NCX、パッケージ文書、章XHTML、画像フォルダを確認します。
  4. 章XHTMLを検索し、ruby、img、tableを別々に数えます。元原稿の6・2・1と照合します。
  5. パッケージ検査を行い、欠落画像0、読む順番、validの結果を記録します。

一つでも一致しなければ、変換成功とはしません。入力側に6件あったことは、出力側にruby要素が6件ある証拠にはならないためです。

生成EPUBを6・2・1で照合した結果

専用の横書き設定で、異なる6語へルビを各1回、本文画像を2回、表を1回挿入し、二章と表紙を含むEPUBを出力しました。新しい出力の構造検査はvalid=true、欠落画像0でした。生成XHTMLを直接数えると、rubyが6、rtが6、本文imgが2、tableが1です。6組の本文と読みも、元のルビ操作と一致しました。

この照合では、入力側の操作回数と出力側の要素数を別々に数えています。入力6・2・1をそのまま成功扱いせず、生成XHTML側の6・2・1と本文/読みの組まで突き合わせました。Rune Studioの現行Mac版の公開資料には、ルビ・画像・表などの対応記法をプレビューとEPUB用XHTMLへ変換し、EPUB 3の本文・目次・表紙・パッケージを生成する機能が記載されています。

valid=trueでも残る確認範囲

今回のEPUBは、ローカル構造検査とXHTML要素数の受け入れ条件を満たしました。ただしvalid=trueは、この検査でパッケージ構造が成立したという結果です。販売先で受理されることや、すべての閲覧アプリでルビ・画像・表が同じ見た目になることまでは確認していません。

配布前には、提出先の検査と、実際に使う閲覧アプリでの目視を別に行います。構造が正しいことと、読みやすい表示であることを一つの合格にまとめないためです。

次の出力でも同じ順番で検品する

原稿を直して再出力したら、今回の成功結果を流用せず、valid=true、欠落0、ルビ6、本文画像2、表1、章順一致を取り直します。出力名を変え、どの原稿版から生成したかも記録します。

もし次回valid=trueでもrubyが0なら、パッケージは成立していても記事の中心目的は未達です。逆に三要素が見えてもvalid=falseなら、変換成功とは判断しません。

Markdown対応テキストエディタを選ぶ基準

対応記法の範囲を明記し、原稿順・画像・目次・表紙を出力前に確認でき、生成後のEPUBを別に検査できる環境が向いています。Rune StudioはCommonMarkの全仕様を実装する汎用エンジンではなく、公開資料に記載した執筆・EPUB向け記法を対象としています。現行Mac版はRune Studio公式サイトで確認できます。

再出力の記録には、元原稿のハッシュや出力名だけでなく、直した項目を一つ書きます。たとえば「画像参照を修正」「表記法を対応形式へ変更」のように原因を一つに絞れば、次の検査結果と結び付けられます。複数の修正を同時に行うと、valid=trueになっても、どの変更が効いたのか分からなくなります。

結論として、今回の記録では、EPUBのローカル構造検査がvalid=true、欠落画像0となり、生成XHTMLでもルビ6、本文画像2、表1を直接照合できました。ルビ・画像・表を変換したと言えるのは、このように入力操作と出力要素を分けて数えた場合です。販売先受理と閲覧アプリでの見た目は、次の確認として残します。

Markdown原稿からEPUBを作る機能を詳しく見る方は、Rune Studioの商品ページで現行Mac版の案内を確認できます。