一太郎で電子書籍を作ろうとして、上手くいかなかったこと

公開:
更新:

この記事は「一太郎2014 徹」でKindle本の制作を行ったときのトラブルについて書いています。現在は新しい版になっているため同様の問題は起こらない可能性があります。

使い方が良くないか、一太郎の仕様なのか、またはその両方が原因かよくわからないけれど、一太郎で電子書籍をつくることは断念。解決方法は示せませんが、トラブルの原因を知る一助になれば幸いです。

一太郎2014「徹」バージョン:24.0.1を使用。
version2401

制作した本

これがあまりにも特殊な本であれば一太郎では無理だろ!と思われるかもしれないので、説明しておきます。日本語の縦書きで、文章の間に写真画像がある、リフロー型の電子書籍です。

[追記]現在は販売を停止しています。

Fireタブレットで表示させたページ。
v1000-layout

画像レイアウトが一太郎と実機で異なる

確認提出確認フェーズでは、実際のレイアウトを確認することができるはずなのですが……。

提出確認の画面。画像を配置(枠の基準:行、文字よけ:配置しない)した状態
確認フェーズ = 枠の基準:行、文字よけ:配置しない
提出確認の画面。上記画像の全ページ表示
確認フェーズ = 枠の基準:行、文字よけ:配置しない

画像を文章の間に配置して(画像挿入だけ)、作業フェーズの提出確認で見た状態と、出力したmobiデータをFireで表示した画面が異なる!

ディスプレイを横にした場合、画像が表示されない(表示される時もある)。
よこ画面で見たとき
ディスプレイを縦にした場合は、画像が表示されるが、配置される位置が画像の縦横比率によって異なる。
たて画面で見たとき

上記画像は検証のために再作成したものです。本の制作中は画像が100%表示されない(縦位置の画像の長さが短くなる)現象が発生して、原因がわからず困った。今回はその症状がでないのが謎。

画像に対して位置指定をしていないにも関わらず、配置される位置が画像によって変わってくるのが不思議。何を基準に画像の位置が決まるのか分からない。

縦組み書籍を iOSで表示させると横組みになる

iOS機だけであるが、縦組みの書籍の場合、ファイル名の付け方で縦組み/横組みが変わる。

ePubデータからazkを生成して、iOS機(iPad)で表示すると、英数字ファイル名の場合は正しく縦組みで表示されるが、日本語ファイル名だと横組みで表示されてしまう。

なお、Kindleプレビュアと Kindle Fireでの表示は、ファイル名が英数字/日本語どちらでも正しく表示でき、iOS機でも、ePubのファイル名が英語では正常だった。

一太郎で出力したePubを Kindleプレビュアで mobiと azkに変換
azk-english-name
上記の azkデータを iPadのKindleアプリ(横向き画面)で表示 → 正しく縦組みになる
epub-azk-ipad 縦組み

上記と同じePubデータのファイル名を日本語にすると、azkのみ表示が変わる。

一太郎で出力したePub(日本語ファイル名)を Kindleプレビュアで mobiと azkに変換
azk-japanese-name
上記の日本語ファイル名のazkデータを iPadのKindleアプリ(横向き画面)で表示 → 横組みになる
epub-azk-ipad 横組み

この「iOS機だけ横組みで表示されてしまう問題」は、一太郎で出力したデータをiOS機で表示させる時だけの問題なので、「そうなるもの」という認識を持っていれば対策が立てられる。

実際に出版した書籍で、どのように表示されるかは不明だが、おそらくKindleプレビュアと同じ表示になるのではないだろうか。

一太郎から出力されるePubデータに、縦組み、横組み、両方のCSSファイルが残っているのが、原因ではないかと思う。この現象は、一太郎、あるいは変換に使っている Kindleプレビュアのバージョンアップで解消される可能性がある。

メモリ不足でePubの作成に失敗

空きメモリ不足のため実行できません。
メモリ不足
EPUBファイルの作成に失敗しました。
ePub作成失敗

一太郎のデータサイズが 80MBあたりを超えると、mobi出力 → 「空きメモリ不足のため実行できません」、ePub出力 → 「EPUBファイルの作成に失敗しました」のエラー表示がでて、データ作成に失敗するようになった。

搭載メモリは24GBあるので、少ないことはないと思うが……。少ないのかな?

画像配置の問題を回避するために、出力したePubデータを元にして、ePubエディタのSigilで画像配置のソースコード部分を書き直そうとしたのだけど、一太郎からのePubが出力できなかった。そのため、初めからSigilで作り直すことにした。