では、Study Room CS4 No.24で記述したように、テキストには必ず段落スタイルを適用し、日本語のフォント名が付いたフォントを使用せず、さらにスタイル名には日本語を使用しないでドキュメントを作成すれば、きちんとテキストのスタイルが反映されたePubファイルが作成されるのでしょうか。実は、まだまだ問題点があります。
上図は、InDesign上で上の行に「FOT-マティスProN M」、下の行に「FOT-マティスProN B」を使用してePubファイルに書き出したものです。ところが、Adobe Degital Editionsで開くと、2行とも「FOT-マティスProN B」で表示されています。
ePubファイル内の「Fonts」フォルダ内には、きちんと2つのフォントがコピーされているのですが、cssファイルを見てみると、各スタイルにフォントのウエイトまでは記述されておらず、それが原因で1つのフォントしか認識できていないのではないかと思われます(下図参照)。
では、文字スタイルはきちんと反映されるのでしょうか。
段落スタイルを適用したテキストの一部に(カラーやフォントを変更した)文字スタイルを適用し、ePub形式に書き出してみました(下図参照)。
カラーの変更はきちんと反映されていましたが、フォントに関しては問題がありました。フォントの種類は合っているのですが、ウエイトが異なって(BoldがRegularで)表示されています。色々なウエイトで試してみましたが、すべてRegularとして書き出されてしまいました。原因は分かりませんが、文字スタイルでフォントを変更している場合には注意が必要かもしれません。
また、段落スタイル同様、スタイル名にも注意が必要です。文字スタイル名を日本語のみで付けている場合、文字スタイルはすべて削除された状態で書き出されます(下図参照)。
では、先頭文字スタイルや正規表現スタイルはどうでしょうか。これらのスタイルは、段落スタイル内の属性として指定できるため、反映されるかもと思い試してみましたが、残念ながら反映されませんでした。
先頭文字スタイルや正規表現スタイルが正常に書き出されないのはしょうがないとしても、段落スタイルや文字スタイルが異なるフォントで書き出されては困ります。そこで、直接ePub内をいじって正常に表示できるよう修正を加えたいと思います。
1.まず、書き出されたePubファイルの拡張子を「epub」から「zip」に手動で変更します。
2.次に、このファイルを解凍します。私は「StuffIt Expander.app」を使用しました。
3.解凍すると下図のようなフォルダができます。
※ここでは、フォルダの名前を「sample」に変更しています。
「OEBPS」フォルダ内の「Fonts」フォルダには、ドキュメントで使用したフォントがコピーされているので、間違ってコピーされたフォントや文字化けしたフォントがあったら、正しいものと差し替えます(下図参照)。
次に「OEBPS」フォルダ内の「template.css」を開き、フォント名等を修正します(下図参照)。
ここでは、ウエイト名を追加しています。
あとは保存して、zip圧縮すればOKですが、OS Xのファイルメニューから圧縮しても、正常に開くことのできるePubファイルは作成できません。
そこで、まずは「ターミナル」を起動します(下図参照)。
ターミナルが起動したら、cdと半角スペースを入力し、zip圧縮したいフォルダ(ここではsample)の場所を指定し、returnキーを押します。cdと半角スペースを入力したあとに、目的のフォルダをターミナルのウィンドウ上にドラッグしてもかまいません。
次に、
zip -0 /Users/yuji/Desktop/sample.epub mimetype
と入力し、returnキーを押します。
※「/Users/yuji/Desktop/sample.epub」の部分には、書き出したいファイル名とその場所を指定してください。
さらに、
zip -r /Users/yuji/Desktop/sample.epub * -x mimetype
と入力し、returnキーを押します。
※「/Users/yuji/Desktop/sample.epub」の部分には、書き出したいファイル名とその場所を指定してください。
すると、ePubファイル(ここではsample.epub)が作成されるので、Adobe Digital Editionsで開くと、正常に表示されるようになります(下図参照)。このように、ePubファイルの中身を直接いじることで、どのように表示させるかをコントロールすることができます。
※内容に誤りがありましたらお知らせいただけると助かります。
私自身、まだまだePub形式をよく分かっていないので……