Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

電書ラボ公開セミナー2016年10月「EPUBの構造を詳細に見てみる」

1,471 views

Published on

電書ラボ公開セミナー2016年10月/田嶋担当分のスライドです

Published in: Software
  • Be the first to comment

電書ラボ公開セミナー2016年10月「EPUBの構造を詳細に見てみる」

  1. 1. EPUBの構造を詳細に見てみる (株)三陽社 メディア開発室 田嶋 淳 http://densyodamasii.com/
  2. 2. http://densyodamasii.com/
  3. 3. 会社でのおしごと • 主にDTPデータからのEPUB作成(オーダーメイド 的な案件が多い) • マニュアル作成/社内EPUB作成業務用アプリ制作 • 外部での宣伝活動etc
  4. 4. 本日の概要 • EPUBの内容を詳細に見てみる • EPUBを解凍してみる • OPFの内容を見てみる • InDesignデータからのXML→XHTMLの生成 • XHTMLファイルを効率的に編集する • テキストエディタでの正規表現 • Perlを利用した置換処理
  5. 5. EPUBの内容を詳細に見てみる
  6. 6. zip -0 -X ../出力ファイル名.epub mimetype;zip -r ../出力ファイ ル名.epub * -x mimetype */.DS_Store */*/.DS_Store */*/*/.DS_Store'; EPUBは解凍は簡単だが圧縮して作成するのはちょっと大変 ターミナルでのEPUB圧縮コマンド例は以下
  7. 7. 電書協ガイド仕様のEPUBのファイル構成
  8. 8. itemフォルダの内容
  9. 9. OPF内部の構成 ヘ ッ ダ 書 誌 情 報 ManifestSpine
  10. 10. 実験① manifestの項目をひとつ消したらどうなるか
  11. 11. 実験② spineの並び順を変えたらどうなるか
  12. 12. InDesignデータからの XML→XHTMLの生成
  13. 13. 作業フロー全体の中のここ
  14. 14. →デモをご覧ください
  15. 15. XHTMLファイルを効率的に編集する
  16. 16. テキストエディタでの正規表現
  17. 17. 基礎的な正規表現パターンマッチの例 font-[0-9][0-9][0-9]per 「font-085per」「font-050per」「font-100per」 など「font-」「per」で挟まれた3桁の数字のパターン全てにマッチする
  18. 18. 見出しの体裁を正規表現で一括変更 検索文字列:>([0-9]).([0-9]).([0-9]) (.*?)</h3> 置換文字列:>$1-$2-$3<span class="font-120per mfont">▶$4</span></h3> 検索文字列のそれぞれの「(〜)」でマッチした部分を記憶しておき( キャプチャ)、置換文字列の「$1〜$4」に代入。 一括で同様の<h3>見出しのテキスト全てが置き換わる ↓
  19. 19. 正規表現の肯定/否定先読み [0-9]+(?=[年月日]) 肯定先読み:連続する半角数字のうち直後に「年/月/日」があるものにマッチ [0-9]+(?![年月日]) 否定先読み:連続する半角数字のうち直後に「年/月/日」がないものにマッチ 直前に指定の文字列があるもの/ないものにマッチさせる記法(後読 み)もあるが、miは非対応。Perlなどの中では使える。
  20. 20. miの「マルチファイル検索」 検索結果が下に一覧で出る。クリックでファイルを開き、該当箇所に飛ぶ
  21. 21. Perlを利用した置換処理
  22. 22. Perlを使った相互リンクの注の連番処理記述例 my $num = 1; while (/<a class="cyu" href="#ref-c1-2-XX"><span class="key" id="key-c1-2-XX"> [▶XX]/){ my $mynum = sprintf("%02d", $num); s/<a class="cyu" href="#ref-c1-2-XX"><span class="key" id="key-c1-2-XX">[▶XX ]/<a class="cyu" href="#ref-c1-2-$mynum"><span class="key" id="key-c1-2- $mynum">[▶$mynum]/; $num++; } my $num = 1; while (/<p id="ref-c1-2-XX"><a class="cyu" href="#key-c1-2-XX">[▶XX]/){ my $mynum = sprintf("%02d", $num); s/<p id="ref-c1-2-XX"><a class="cyu" href="#key-c1-2-XX">[▶XX]/<p id="ref- c1-2-$mynum"><a class="cyu" href="#key-c1-2-$mynum">[▶$mynum]/; $num++; }
  23. 23. Perlのtr構文を使った「禁じられた遊び」 tr/ぁ-ん/ァ-ン/;
  24. 24. tr構文の実用的な使用例 Pro書体などJIS90字形のものにInDesignの「印刷標準字体」の機能で 字形補正をかけているパターンの補正用。BMP内の置換のみ。 tr/侠倶剥呑唖嘘噛嚢填屏屡幷痩繋漣煉溺/俠俱剝吞啞噓嚙囊塡屛屢幷瘦繫漣煉溺/;
  25. 25. ご静聴ありがとうございました

×