iBooksのカテゴリ分けには、件名標目表“BISAC(Book Industry Standards and Communications)”が使われている

iBooksのカテゴリ分けには、BISAC(The Book Industry Standards Advisory Committee)が使われています。(マニュアルp18参照)
これはAppleの独自分類ではなく、BISGという米国のNPO団体が定めた分類です。(Book Industry Study Group)大分類はコミック以外にも全部で51の分類があります。
「BIBLES」「STUDY AIDS」「TRUE CRIME」など、日本ではなじみの薄い項目もあります。

  • ANTIQUES & COLLECTIBLES
  • ARCHITECTURE
  • ART
  • BIBLES
  • BIOGRAPHY & AUTOBIOGRAPHY
  • BODY, MIND & SPIRIT
  • BUSINESS & ECONOMICS
  • COMICS & GRAPHIC NOVELS
  • COMPUTERS
  • COOKING
  • CRAFTS & HOBBIES
  • DESIGN
  • DRAMA
  • EDUCATION
  • FAMILY & RELATIONSHIPS
  • FICTION
  • FOREIGN LANGUAGE STUDY
  • GAMES
  • GARDENING
  • HEALTH & FITNESS
  • HISTORY
  • HOUSE & HOME
  • HUMOR
  • JUVENILE FICTION
  • JUVENILE NONFICTION
  • LANGUAGE ARTS & DISCIPLINES
  • LAW
  • LITERARY COLLECTIONS
  • LITERARY CRITICISM
  • MATHEMATICS
  • MEDICAL
  • MUSIC
  • NATURE
  • PERFORMING ARTS
  • PETS
  • PHILOSOPHY
  • PHOTOGRAPHY
  • POETRY
  • POLITICAL SCIENCE
  • PSYCHOLOGY
  • REFERENCE
  • RELIGION
  • SCIENCE
  • SELF-HELP
  • SOCIAL SCIENCE
  • SPORTS & RECREATION
  • STUDY AIDS
  • TECHNOLOGY & ENGINEERING
  • TRANSPORTATION
  • TRAVEL
  • TRUE CRIME

E677 – デューイ十進分類法を採用しない図書館,議論の的に(米国)

iBookStoreへの登録に関しては、@ume_nanminchamp さんのBLOGに記事が出ています。http://blog.chabudai.com/?eid=933444
参考になります。現時点では唯一の日本語情報でしょう。

Appleとの契約の際に、iBookStoreの管理画面などの構成を漏らしたら駄目とNDAを結ばされるので、アカウント削除が怖くて情報発信できない人が多いと思います。

うめさんのようにチャレンジ精神あふれる人が新しい世界を切り開いていくのだと思います。

私もがんばりたいです。

(失敗例)縦書きePub電子書籍を”涅槃”で作ったが、1ページ目しか表示されない

ePubで縦書きを実現しているページがあったので、私もチャレンジしてみました。
以下のページを参考にしました。

びば!もばいる!(+サーバ達)- ルビにCSS、縦書きにJavaScriptでやってみよう(ePub+iBooksでJavaScriptが動いた!)

【実験】「涅槃」を使って、EPUBファイルを縦組みで表示できるか? ≪ ECollab Ltd.

結果は、1ページ目しか表示されず、一部のルビもずれてしまいました。
・画像1にあるように、行の最初に現れるルビは正しい位置なのですが、
行内の2番目に現れるルビは、下にずれてしまっています。
・ページ末尾の”髯貯えぬ丸顔”のあとに”を傾けて「描けども、描けども”
と続くはずですが、ここで表示が終わっています。
画面下のページ番号も、2までしかありません。




ファイルを、 http://bit.ly/bSo2la にアップロードしてみました。

ベースにしたのは、青空文庫のファイルを「青空文庫 (XHTML) -> ePub変換 Bookmarklet
で、明朝体ルビありで変換したファイルです。
夏目漱石の「一夜」を使いました。http://www.aozora.gr.jp/cards/000148/card1086.html

縦書きのキモは、縦書き文庫さんの「涅槃」というJavaScriptです。
https://code.google.com/p/nehan/にあります。

縦書きにしたePubファイル内の構成は以下の通りです。
~/mimetype
~/META-INF/container.xml
~/1086_14935.opf
~/1086_14935.ncx
~/OEBPS/1086_14935.html
~/OEBPS/default.css
~/OEBPS/css/kentenbosen/after/sen/*.png (縦書き用記号のpng画像ファイル)
~/OEBPS/css/kentenbosen/after/ten/*.png (縦書き用記号のpng画像ファイル)
~/OEBPS/images/*.png (表示できない文字のpng画像ファイル)
~/OEBPS/img/*.gif (涅槃用のgif画像ファイル)(今回追加)
~/OEBPS/js/nehan.js (涅槃のJavaScript)(今回追加)
~/OEBPS/js/nehan-min.js (涅槃のJavaScript)(今回追加)
~/OEBPS/js/plugins.js (涅槃のJavaScript)(今回追加)

手順は以下の通りです。

(1)*.epubファイルの拡張子をzipにして展開
(2)涅槃のファイルを上記のように配置
(3)~/1086_14935.opf に、今回追加した画像ファイルとJavaScriptを追記。

<item id=”dash.gif” href=”OEBPS/img/dash.gif” media-type=”image/gif” />
<item id=”nehan.js” href=”OEBPS/js/nehan.js” media-type=”text/javascript” />

(4)~/OEBBPS/1086_14935.html を編集。
</head> の直前に、以下のコードを追加。
・1つめのスクリプトのnehan.js の位置を、htmlファイルから見た相対パスに変更。
・2つめのスクリプトのcharImgRoot を、htmlファイルから見た相対パスに変更。
・フォント名に日本語が入っていると何も表示されなかったので、sans-serifに変更

<script charset=”utf-8″ type=”text/javascript”

src=”./js/nehan.js”></script>

<script type=”text/javascript”>

window.onload = function(){

Nehan.LayoutMapper.start(“div”, {

charImgRoot:”./img”,

fontFamily:”sans-serif”,

filter:”direction”,

noBR: false,

onSeek: function(groupName, seekPercent){ },

onComplete: function(groupName){ },

onCompleteAll: function(){ }

});

};

</script>

(5)<body>タグの直後から、以下のdivタグでくくる。

<div class=”lp-vertical lp-width-450 lp-height-730 lp-font-size-16″>

(6)iTunes経由でiPadに転送し、iBooksで開く。


びば!もばいる!さんのページでは複数ページ表示されているので、
何かファイルか設定が抜けているような気がしています。
また時間を見つけて再チャレンジしてみようと思います。

6/29追記:
びば!もばいる! の hilock702 さんが、ePubs.jp で
縦書きePubファイルを公開してくださいました。
http://bit.ly/bOxD6N

課題も多いですが、縦で読めるのはいわゆる「衝撃」です。

iPad 開発セミナー ~電子書籍アプリケーションを作る~ 参加メモ

MacやiPhone/iPadアプリの開発者が多く集まるmosa で、6/24に
電子書籍アプリケーションを作る開発者向けのセミナーが開催されました。
開発者として、現時点でどこまでできるのか気になったので、参加してきました。
iBooks ではなく、専用アプリとして電子書籍を作るには、
プログラム側ではどう実装するか?という内容で、技術者向けのセミナーでした。

http://www.mosa.gr.jp/?p=3395
【中級】iPad開発セミナー~電子書籍アプリケーションを作る~
MOSAでは、iPad向けアプリ開発をお考えの方を対象に、
電子書籍アプリのプログラミング方法を解説する中級セミナーを開催いたします。

以下は私の気になった点を中心にした参加メモです。

【アジェンダ】
・概要
・CoreTextによるページネーション。文字サイズとリフロー。
・UIScrollViewによるページめくり。三面鏡。
・OpenGLによるページめくり。iBooksみたいなめくり方にしたい!
・コンテンツ管理、セキュリティ。COmmonCryptライブラリとNSDataの新しいメソッド
・ストア。InAppPurchase

それぞれサンプルコードあり。

【概要】
・標準フォーマット vs 独自フォーマット
・作者の思い通りに何でもできる。動画、インタラクティブ、iPadで出来る事なら何でも。
・将来も動作するという安心感を与えるべき(OSやハードウェアのバージョンアップに対応できるのか、などはあらかじめ検討しておく)

・電子書籍アプリの3大機能は、(1)ビューア、(2)コンテンツ管理(含セキュリティ)、(3)ストア(課金)

【CoreTextによるページネーション】
(1)タグ付きファイルから、NSXMLParserでテキストを取り出す
(2)NSAttributedStringオブジェクトで、フォントや行間や左寄せや単語で改行を指定する
(3)CTFrameで領域を決める
(4)領域内に表示する文字の範囲を得る
(5)DrawRect, (CTDrawRect?)で文字を描画する

(Q&Aより)
・禁則処理はデフォルトでサポートしているが、カスタマイズはできないようだ。
・ルビは自前で一行ずつ描画する。ルビ、本文、ルビ、本文、、、
・縦書きは、仕組みはあるが実用的ではない。
・・縦書き用のグリフに変換(カッコやアラビア数字など)
・・点の位置がおかしくなる(?)ので、範囲選択しようとするとおかしくなる。
・CoreGraphicsを使って、自分で描画エンジンを作るという方法もある。

【OpenGLによるページめくり】
・あるとないとでは、アプリの完成度が全く違う。
・UIViewAnimationTransitionCurlUpもあるが、細かい制御ができない
・CALayerでアフィン(線系)変換して積み重ねてもいいが、細かい部分が美しくできない。
・そこで、OpenGLで、描画領域全体を1つの画像にして、OpenGLのテクスチャとして扱い、ポリゴンとして(変形して見えるように)描画する。
・めくれて見える変換アルゴリズムは色々。3Dグラフィックの本を参照。
・ページの表面で円錐を転がす方法の解説。

【コンテンツのセキュリティ】
・ダウンロード型でも、ディスク上にキャッシュしたい。
・スクリーンショット撮影は禁止できない。
・利便性とセキュリティ強度の兼ね合い。説明してお客様と調整。

・Common Crypt ライブラリ。 /use/include/CommomCrypt AES128やRC4などメジャーな暗号をサポートしている。
・CCrypt関数に、NSDataや各パラメタを喰わせる。
・複合先のバッファは、サイズはそれほどかわらないと想定して少し多めに確保。各暗号のアルゴリズムによる。復号もいっしょ。

・NSData writeToFile:option:error: で、option: が増えた。

デモが多く、見ていて楽しかったです。
時間を作って、むかし作った写真集アプリ(サーバ配信型)をiPad対応したいなぁ。。。

ePublishingPort の第1回勉強会に参加しました。「EPUBフォーマットへの変換方法を知ろう!」

6/23に渋谷で行われた、
ePublishingPort 第1回勉強会「EPUBフォーマットへの変換方法を知ろう!」
http://www.epub-port.jp/%e5%8b%89%e5%bc%b7%e4%bc%9a/100/
に参加してきました。

講師の方の話を聞き、最後に質疑応答という流れでした。
講師は様々なセミナーなどで電子書籍に関してお話をされている
学校法人 阿佐ヶ谷学園 高度情報化研究所 所長
境祐司 氏(http://admn.air-nifty.com/about.html)です。
以下、内容のメモです。
電子書籍のフォーマットとその周辺の紹介。
・Epub vs PDF。epubは読みやすさや速読を優先。PDFはレイアウト優先。
・epub作成の商用ツールは、検証用でも80万円とかするらしい。
試しに紙で出す本をepub化してみた時の、作業の流れの話し。
・InDesignで作ってepubファイルに書き出し、Sigilで調整した。
・見映えの確認は、iPad, iPhone, Stanza で行った。
・Safariで、開発メニューから、iPad用のレンダリング・エンジンを選べる(らしい)。xhtmlなので、WEBブラウザでもだいたいは確認できる。

Sigilでやったのは、主に以下の作業。
・CSSに無駄が多く、クラス名が長い物があったので、スリム化。
・章区切りを入れる。ファイルが分割される。必ず改ページされるので、推理小説のように「次ページではんにんが!」のような場合に便利。目次にも反映される(?)
・メタデータを入れる。
Title, Author, Language。
iBooks用に、Subjectタグも入れる。カテゴリの意味である。入れないと「未分類」にされてしまう。

・Sigilで新規ファイルを作成して、それにはめ込む場合は、コードビューにして、bodyタグ?内をコピペで貼り付けて、Imageフォルダ内に画像を突っ込めばよい。

質問タイム。
・StanzaとiPadで余白などの見映えが違う。両対応するためには、両者の中間の値を使った。ブラウザハック的な事はしなかった。今後は統合コンテンツ管理システムがうまく各ビューアむけの調整をしてくれる事を期待している。
・iPadでは画像が大きい場合には、縮小して表示される。サイズは大きめにして、width 100% で指定するとよい。
・DRMの話し。
・InDesignでのepub出力について。 CS3はひどかったという印象。CS4で良くなって、CS5はCS4と同じぐらい。

・iTunes経由でiBooksに入れた時の「本のフォーマットが違います」で読めない件。みた事は無い。手打ちで作らず、ツール(Sigil)を使っている。
(会場のフォロー)
・圧縮時のフォルダ階層に注意。
・MacのZip圧縮はWindowsと違い、圧縮してそのまま拡張子をepub に変えてもダメな場合がある。
・マジックワードを使った判定をするなら、頭の文字や、mimetypeを無圧縮で見えるように配置するなどが必要。
・epubファイルのバリデータがあるので、確認するとよい。
http://threepress.org/document/epub-validate
(コアの部分は BSDライセンス。ローカルに配置すれば、部外秘なepubを検証する時に便利)

最後の、ePubファイルのどこがおかしいかを教えてくれるバリデータのWEBサイトは、
英語表示なものの、ePubファイルを自分で作る人にとっては、とても役に立つサイトだと思います。

iPadで「本のフォーマットエラー」になる時の原因と対処法-(2)対処

前回の記事で、iPadで「本のフォーマットエラー」になる時の原因を紹介しました。
今回の記事は対処方法を示します。

と言ってもWindowsパソコンの場合は、話は簡単です。
ePub作成ツールの「FUSEe」を使って、開いて、書き出すだけ治ります。
株式会社フューズネットワークが開発中の電子書籍オーサリングソフトウェアFUSEeを、
http://development.fusenetwork.co.jp/ からダウンロードしてインストールしてください。
インストールしたら、「本のフォーマットエラー」になるファイルを用意してください。

(1)「ファイル」-「ePubを開く」で、トラブルの出ているePubファイルを開きます。
(2)何も変更せず「ファイル」-「ePubに書き出し」でファイル名をつけて保存します。
 「上書き保存」ではなく「ePubに書き出し」なので注意が必要です。

この2ステップで、無事にiPadのiBooksで見られるようになります。
国産でこういった気のきいたソフトがあるのが嬉しいですね。
おかしい時には、とりあえずFUSEeで「ePubに書き出し」を試す。というのは、
覚えておいて損は無いと思います。

iPadで「本のフォーマットエラー」になる時の原因と対処法-(1)原因

iPadのiBooksにepubファイルを登録して、読もうとした時に
「本のフォーマットエラー この本はフォーマットが認識できないか無効なため開けません。」
と表示されて開けない場合があります。

困るので、その原因を探ってみました。
具体的な修正方法は、次の記事にまとめます。

(1)mimetypeファイルにBOMが付いている
Txt2ePubで変換した場合に発生します。
「mimetype」というファイルに「application/epub+zip」という20文字が入っています。
このファイルにBOMが付いていて、バイナリエディタで見ると、
先頭3バイトに「EF BB BF」がついていました。
(末尾に改行「0D 0A」が入っているのは問題ないようです)

仕様書3.4には、ASCII文字列で書かなければならないとあるので、
BOMは付けないのが正解ぽいです。
(参考)OEBPS Container Format (OCF) 1.0
http://naoki.sato.name/ocf/ocf_1_0_spec_ja.html
http://www.idpf.org/ocf/ocf1.0/download/ocf10.htm

(2)XML宣言で「encoding=”UTF-8″」が抜けている
iBooksのフォーマットエラー対策
http://club100.jp/indies/modules/d3blog/details.php?bid=20

にあるように、

読めない場合:<?xml version=”1.0″?>
読める場合 :<?xml version=”1.0″ encoding=”UTF-8″?>

と、XML宣言で「encoding=”UTF-8″」が抜けているケース。
epubエディタで抜けている物は見たことがありませんが、
メモ帳などで手打ちで作成している場合には、うっかり抜けてしまうかも知れません。

具体的な修正方法は、次の記事にまとめます。