親父(元教員)が自分の書いた論文を電子出版したいと言ってきたので、父親が作成したWordファイルを基に EPUB に変換して電子出版した。 EPUB の実態はHTML+CSSだったので、簡単に変換することが出来た。
- 大きな流れ
- WordファイルからMarkdownへの変換
- Markdownの感想
- Markdown から EPUBの変換
- EPUBファイルの編集
- EPUBファイルのビルド
- EPUBにおける日本語固有の処理
- 構文チェック
- Amazonへの登録
- まとめ
大きな流れ
今回の作業の肝は、文章を構造化することである。構造化とは、文書の要素に対して、引用や見出しのレベルを指定するものである。こうすることで、コンピューターが処理しやすくなる。例えば、引用の箇所は、30ポイント左の空白を一律で空けるといったようなことが簡単に出来る。また、見出しを基に自動的に目次を生成することが可能になる。
親父から送られてきたWordファイルは、次のようなものであった。
- 引用だけスタイルが指定してある。見出しは強調しているだけで、自身でナンバリングしている。Wordの場合、見出しに章の番号を自動で振るのは複雑なのでこうなるのもよくわかる。
- 傍点・圏点、ルビを利用している
- セルを結合している複雑な表がある
今回の作業は、Pandocを利用して次のように変換を行った。Markdownに変換後、構造化を行った。EPUBの編集の際には、GitHub上で親父と修正作業を行った。
Google DocumentがEPUB形式の書き出しが出来ると聞き、Wordファイルを取り込んでみたが、ルビや圏点・傍点に対応していないことが判明したために利用を見送った。Google Documentが利用できると、親父と簡単に共同作業ができるため、ありがたかったのだが。
WordファイルからMarkdownへの変換
pandoc を利用し、次のコマンドで変換を行った。
$ pandoc input_file.docx -t markdown-raw_html-native_divs-native_spans -o output_file.md
Markdownの感想
WordからMarkdownへ変換を行っているが、本来は不要な工程だ。 docxファイルから変換できる数少ないフォーマットて、電子書籍に関する巷のノウハウが一番存在するのがMarkdownだったため、消極的な理由から利用していた。次に述べるように、日本語の電子書籍に用いるには、ベターだがベストではないソリューションであると感じた。
Markdownの利点
- テキストファイルなのでGitを用いた構成管理が可能
- 対応しているエディタが多く、編集作業が行いやすい。プレビューを見ながらの編集が行えたり、文法のチェックが簡単に行える。
- 文法がシンプルなため、習得が用意
Markdownの欠点
- セルの結合など複雑な表に対応できない。ただし、HTMLで記載すれば対応できるので、問題なし。
- ルビ、圏点・傍点などが対応していない。ただし、HTMLで記載すれば対応できるので、問題なし。
- 強調するのに分かち書きが必須ではないようだが、利用していたMarkdownエディタだと認識してくれない。
Markdown から EPUBの変換
pandocでEPUBファイルに変換後、そのままではGitで管理できないため、構成管理できるようにした。
pandocのコマンドは、メモし忘れた。
構成管理できるように、.epub ファイルの拡張子を .zip に変更し、解凍し、Gitに追加した。ルートファイルは次のようになる。
EPUBファイルの編集
単なるHTML+CSSファイルのため、お好きなエディタで編集すればよい。 親父とは、GitHub上でやりとりをした。ITエンジニアではないが、文書の修正はやってもらえた。
EPUBファイルのビルド
Gitに格納されているのは、解凍された状態なので、圧縮して .epub の拡張子のファイルを生成する必要がある。
次のようなMakefileを作成し、適宜makeコマンドを実行した。
all: rm main.epub;cd epub;zip -X0 ../main.epub mimetype;zip -9 -r ../main.epub META-INF OEBPS
$ make
EPUBにおける日本語固有の処理
ルビ
漢字等のよみを表示する。
例:規範秩序
<ruby>規範<rt>ノモ</rt>秩序<rt>ス</rt></ruby>
圏点・傍点
文字の上に「・」が表示されるもの。強調を意味する。
あらゆる創造を<span class="emph-dot">になう</span>。
span.emph-dot { text-emphasis-style: dot; -epub-text-emphasis-style: dot; -webkit-text-emphasis-style : dot; }
構文チェック
epubcheckを利用した。
Amazonへの登録
省略