─グーテンベルクの遙か彼方へ─このブログはEPUB3をはじめとした電子書籍制作の現場からの「現地レポート」を目指しています。電子書籍制作、アプリケーション開発など、多方面の方々からの積極的なご意見をお待ちしております。※『InDesign→EPUB3用XHTML作成ワークフロー』は通常エントリに移動しました。『ジャンル別まとめ/ダウンロード』からアクセスできます。CS5→JBasic08準拠のEPUB3.0用xhtml変換ワークフローです。こちらの詳細版になります。ご好評いただいたので一部補筆して再公開させていただきます。テンプレート/変換スクリプト/サンプルコンテンツは以下のリンクからダウンロードしていただけます。MBDownloadまた、JBasicの資料はepubcaféよりあらかじめダウンロードした上でお読みください。Vistaにて動作確認済)。ワークフロー/スクリプトを参照したことによって発生したコンテンツの破損等に関して弊社では責任を負いかねますのでご了承ください。画像はクリックでポップアップ拡大表示されます。CS5で開き、別名保存して準備を整えておきます。すべてのスタイルをインポートします段落スタイルパレットもしくは文字スタイルパレットのメニューから「すべてのテキストスタイルの読み込み」を選択し、段落/文字スタイルテンプレート「ID5XML2JBASIC08_StyleTemplate.indd」からすべてのスタイルをインポートします。InDesignドキュメントを整備します以下の形でInDesignドキュメントを整備します。全ての行に段落スタイルを適用します。下に置かれている見出しか」をcssが判断して決定する方針のようですので、部・章・節、どの見出しであっても全て同一の「見出し」スタイルをあてて構いません。カバー見出し、本扉見出し、メイン見出しの脇にサブ見出しがある場合などはそれぞれ別のスタイルをあてておき、JBasic08資料P22を参考に6でxml整形処理します。本文で複数のスタイルが混在するような場合は、適宜別のスタイルを作成して割り当てておきます。InDesignの段落/文字スタイル設定でのインデント/文字修飾等の各種定義要素は書き出したコンテンツに反映されませんので、極論しますと「スタイルが当たっていさえすればよい」のですが、EPUB作成にInDesignを用いることの大きなメリットは「実際にどういった見かけになるか確認しながら作業を進められる」ことにあると思いますので、ある程度最終イメージに近い形でスタイル要素を定義しておくことをおすすめします。必要ならばルビをつけ直します。ルビに関しては文字スタイルをつける必要はありません。熟語ルビは自動処理で連続6文字までの置換に対応しました。6文字を越える場合は適宜分割してルビをふってください。圏点/下線/下付き文字/上付き文字など文字修飾要素にそれぞれ文字スタイルを適用してください。文字サイズ・フォントなどを変更する部分にもそれぞれ文字スタイルを適用してください(全ての文字装飾に文字スタイルを当てます)。文字パレット等を用いてInDesign内で個々の文字に文字修飾を加えても、タグの割り当てをしない限り書き出したxhtmlファイルには文字修飾効果が反映されませんので、必ず「文字スタイル」を用いて文字修飾を適用するようにしてください。画像は「ファイル名」を拡張子込みで記述し、段落スタイルを当てます。(/OEBPS/images内に画像が収納されていることを前提に10でパスを付加します)外字は「ファイル名」を拡張子込みで挿入部分に記述し、文字スタイルを当てます。(/OEBPS/images内に画像が収納されていることを前提に10でパスを付加します)改ページ行は改ページ用の段落スタイルを当てておきます。10で変換した際、div.pagebreakタグを割り当てられた部分のテキストは10で電子書籍/webブラウザ上で表示されないコメント文に置換しますので、わかりやすく行内に「■改ページ(書籍○○ページ)■」などと入力しておいても構いません。InDesignの仕様上同じ文字に複数の文字スタイルを適用できない部分に関しては、7で処理します。ここでは外側の要素(前述例の「太字」にあたる要素)のスタイルのみを当てておきます。タグテンプレートからタグを読み込みます「タグ」パレットメニューから「タグの読み込み」を選択し、タグテンプレート「ID5XML2JBASIC08_TagTemplate.xml」からタグを読み込みます。スタイルに自動でタグを割り当てます「タグ」パレットメニューから「スタイルをタグにマップ」を選択し、全ての段落スタイル及び文字スタイルに自動でタグを割り当てます。各スタイルに適合するタグがなかった場合は適宜作成した上で割り当てます。「section.chapter」「p.authorname」のように「基本タグ+区切り文字+class名」の書式でタグ名を書くことで、10の変換時に自動処理で「class」および「epub:type」が付加されるようにスクリプト処理します。区切り文字には「.」および「-」および「_」が使用可能です。class名は任意ですが、可能な限りJbasic08内で規定されている値を用いることとします。互換性を考えると全角文字は使わない方が無難です。「構造」ウィンドウでsectionなどを割り当てますInDesignの「構造」ウィンドウを表示させ、sectionなどの構造タグを割り当てていきます。ウィンドウ内に一覧表示されたタグ内で目的の構造タグに含めたいタグを全て選択し、「構造」ウィンドウのドロップダウンメニューもしくはコンテキストメニューから「新規親要素」を選択して割り当てます。構造タグの種類そのものを変更したい場合は、「タグの要素」を選択して変更できます。構造タグを削除したい場合は「要素のタグを取り除く」を選択して削除できます。テキストの中身を確認しながらタグを付加したい場合には「ストーリーエディタ」を使うことで効率的に作業を行うことができます。ストーリーエディタはテキストフレーム内にカーソルを表示させた状態で「編集」メニュー→「ストーリーエディタで編集」で呼び出すことができます。ストーリーエディタ上でタグを付加したい部分を選択し、「タグ」パレットで付加したいタグをクリックすることで構造タグ付けが行えます。ストーリーエディタ上で誤ってタグを付加してしまった場合には、あらかじめ該当部分のテキストを選択した状態で、コンテキストメニューから「テキストのタグを取り除く」を選択することでタグを削除できます。文字スタイルを重ねて適用できなかった箇所にタグを割り当てます太字部分内の縦注横、行間注内の圏点などは、InDesignの仕様上同じ文字に複数の文字スタイルを適用できないため、4で自動でタグ付けができません。xml属性を割り当てます。ここまでの情報を適用済のサンプルドキュメント(TaggingSampleDocument.indd)を同梱しておきますので、ご参照ください。ファイルを書き出します「ファイル」メニュー「書き出し」→フォーマット「XML」でXMLファイルを書き出します。書き出し時のオプションは以下の通りです。再マップ」をチェック、他の全てチェックボックスは全てチェックしないでください。再マップ」をチェックしないとテキスト内の変な位置で改行されてしまい後処理に手間がかかりますので、チェックして改行なしで出力しスクリプトで改行を処理します。『画像』タブ全てチェックしないでください。『オプション』タブ「ルビをXMLとして書き出し」をチェックしてください。書き出したファイルを変換しますWindowsマシン上でスクリプトと同一のフォルダに入れたバッチファイル「ID5XML2Jbasic08.bat」に9で作成したxmlファイルをドラッグ&ドロップするとJBasic08準拠のxhtml元データに変換されます。(複数ファイルのドラッグ&ドロップには対応させていませんのでひとつずつ変換してください。)ルビ等はここでEPUB3準拠のタグ形式に置換されます。フリーのWindows用Perl環境、ActivePerlのインストールが別途必要となります。Downloadsと進んでください)。追記:Mac環境用置換スクリプトも作成しました。フリーで利用できるテキストエディタ「mi」にて作成したxmlファイルを開き、スクリプトを実行することでタグが置換されます。2.1.11r1にてテスト済です。スクリプトは以下のリンクよりダウンロードしていただけます。β」(フューズネットワーク)にテンプレートとして含まれていますので、そちらを利用してepub3.0コンテンツの作成を行うことができます。chromeで発生します。style=”text-indent:0”>としてtext-indentによる字下げを打ち消し、全角スペースで行頭字下げを行うことで回避できます。xhtml内にcssを記述するのはあくまで緊急回避措置で、表示と構造を分離するというcss/xhtml本来の意義からも、多用することは避けた方が賢明と考えています。追記2:外字イメージにルビをふるのは自動では無理ですので、テキストエディタにて後処理してください。スクリプト改訂により対応しました。追記3:リンク対照文字にルビが振られているとリンクが正常に働かない現象がsafariで起きます。注へのリンクを合印で行うことでとりあえずは回避可能です。1.8.1では熟語ルビが正常に表示されません(1文字目のルビだけ表示される)。全てモノルビとして処理することで回避できます。外字イメージ上のルビも表示されないようです。明朝体で表示するためには、META-INFに「com.apple.ibooks.display-options.xml」を入れる必要があります。(2011.12時点での情報です)◇InDesignはCS3以降でEPUBの直接書き出しにも対応しているのですが、正直書き出されるXHTMLやCSSが綺麗とは言い難く、後編集の手間がかなり大変です。他のEPUB3簡易制作ソフトも試しましたが、ほぼ似たような状況です。Sigil、Fusie等を使用して手でタグを打ち込めばそのあたりの問題はクリアされますが、HTML/CSSの知識が個々に求められることになりますので、印刷系のオペレータにとってはかなり敷居が高くなってしまいます。可能であればすでに各オペレータが習熟済みのInDesign等を利用し、ワープロに近い感覚でEPUBを制作できれば良いと考えました。そこで、InDesignのXML書き出し機能とPerlを組み合わせて、テキストエディタでの後編集の必要がほとんどない形に整形されたXHTMLのソースを取得し、別に用意しておいたCSSのファイルと組み合わせてEPUB3のコンテンツを作成する形でEPUB3を制作するフローチャートを考案してみたのがこちらになります。整形されたXHTMLでEPUBを制作しておきませんと後々データの再利用の際に途方に暮れることにもなりそうですので、本気でビジネスとしてEPUB3コンテンツの制作を考えるならば、おそらくそのあたりは結構重要かと思います。EPUBに限らず、電子フォーマットはフォーマットとしての「賞味期限」は短いと考えた方が良いため、書籍のような長期間にわたって販売されるコンテンツの場合はデータ再利用を最初から頭に入れておくことが必要になると感じております。InDesignのXML書き出し機能を利用する方式のメリットとして、「書き出せるのはEPUB用XHTMLに限らない」ということが挙げられます。XMDFなど他の電子書籍形式も内部的には全てXMLですので、読み込むテンプレートと置換スクリプトを差し替えるだけで全て同じ流れでコンテンツを制作できます(テスト済みです)。オーサリングソフトで最終的な編集は必要なのですが、かなりの省力化が可能です。2012年4月に発足する出版デジタル機構向けの中間フォーマットもこの流れで作成可能なのではないかと考えております(3月末現在、まだ仕様未公開のため確かなことは言えませんが・・・)。InCopy」で行うことができそうです。InCopyは1ライセンス新規購入でも3万円程度のソフトですので、InDesignと組み合わせて用いることで比較的安く多人数での電子書籍制作環境を構築できるかも知れません。InDesignとInCopyを連携させたXHTMLデータの制作については、いずれこのブログ内でレポートするつもりでおります。(2012.3.27)InDesignで一度ルビを入力した後、ルビを削除すると残ってしまう「空のルビタグ」を削除するためにスクリプトを改訂いたしました。(2012.4.24)外字のルビ処理に対応するためにスクリプトを改訂いたしました。ドキュメント内外字ファイル名にグループルビを振っておくことで、外字ルビとして自動置換出力します。(2012.8.07)Mac用置換スクリプトで「<p.indent>〜」等の記述が正常に変換されないケースがあった問題を修正しました。(2012.9.06)step2でスタイルを読み込む際に、スタイルパレットサブメニューの「すべてのテキストスタイルの読み込み」ではなく、「タグ」パレットサブメニューの「スタイルをタグにマップ」内の「読み込み」ボタンを利用して読み込むことで、段落・文字スタイル情報/タグ情報/各スタイルとタグの紐付け情報が一括で読み込まれるようです。テンプレートに多数のスタイル・タグを設定している場合かなりの時間節約になります。(2012.10.10)収録サンプルを改訂しました。電書協仕様のサンプルを併録しました。フィードで購読することができます。コメントを残すか、ご自分のサイトからトラックバックすることができます。スパム防止のためコメントは承認制とさせていただいております。10:56大変申し訳ありません。InDesignで一度ルビを入力した後、ルビを削除すると残ってしまう「空のルビタグ」を削除するためにスクリプトを改訂いたしました。探しているのですが、どこに置いてあるのか、探してもよくわかりませんでした......。12:04ページ上部のダウンロードリンクからダウンロード可能なスクリプトを改訂済みです。そちらからダウンロードの上、ご使用ください。Mac用スクリプトにつきましてはSTEP10のところにダウンロードリンクがあります。12:21ありがとうございます!お忙しいところ、大変申し訳ありませんでした。ダウンロードして、チャレンジさせて頂きます。CS6からEPUB3に変換したくて調べたら、この記事にたどり着きました。貴重な記事、有り難うございます。下記の条件で、mi用スクリプトを動かしてみました。2.1.12r4「0以外の状況でコマンドが終了しました」というエラーが出て、変換できませんでした。環境が変わって、変換できないのでしょうか。16:50ほぼ同一の環境で試してみましたが、変換できました。エラーメッセージはなんだか見覚えはあります(思い出せませんが)。条件を変えて試してみていただけますと幸いです。Tajimaこちらにて、電子書籍&Web制作を担当しています。このブログは、EPUB3をはじめとした電子書籍制作担当オペレータからの、「電子書籍の制作時にたとえばこんな問題が出てきていますよ」的な「現地レポート」です。整うことを願って、現場からの声を発信していこうと目論んでおります。当ブログ内の記事・資料は、私の所属しております組織の許諾を得て掲載していますが、内容は私個人の見解に基づくものであり、所属する組織の見解を代表するものではありません。本ブログの情報・ツールを利用したことにより、直接的あるいは間接的に損害や債務が発生した場合でも、私および私の所属する組織は一切の責任を負いかねます。License.『電書魂』のコンテンツはクリエイティブ・コモンズによりライセンスされています。記事名の記載と、記事へのリンクを貼って頂ければ、コンテンツを自由にご利用いただくことができます。