パワーポイント・スライド(PDFファイル)次は講演のために用意したノートを少し改訂したものです(当日は、ノートを見ないでお話ししましたので、話の内容と若干のずれがあることをお断りします)。最初に、印刷用の書籍の作成と、電子書籍の制作のワークフローは本質的に異なっているが、これを両立させる必要があることを述べる。それを解決するにはどうしたら良いかを述べる。システム(CAS-UB)」について、デモを交えて紹介する。当社の会社概要、事業所などを説明する。当社事業の中で、XML関係の事業の概要について述べる。出版は情報伝達、まとまった思想や考えを普及する手段として社会が発展するための重要な仕組みである。自分達の言語で、自由にものを表現し、それを多くの人に伝えることができるのは民主主義社会ならではのことでもある。出版産業は、書籍と雑誌を加えても合計2兆円足らずであり、自動車メーカ1社の売上にも足りないが、社会的な重要性は自動車産業に勝るとも劣らないだろう。克美、筑摩書房、11月10日)という本には日本の人口は歴史上始めて大幅に減少し始めているという話が紹介されていた。人口の減少は出版のような複製頒布の数が利益に直結する産業には大きな負のインパクトがある。製造業やソフトウェア産業では、人口減対策として海外進出も考えられるが、出版は日本語という言語依存なので国際化は難しい。このままではいずれ日本語の書籍を出すこと自体が段々と難しくなると考えられる。CAS-UBは、もっと多くの著者や編集者が、自分達の考えを、多様な電子書籍の形式で、自由に簡単に発行することを可能にして、日本の社会に貢献したいと考えている。EPUB概要:おさらいEPUBの仕組みを簡単に説明する。EPUB2.0は記事コンテンツを主にXHTMLで表現し、CSSでレイアウトを指定する。XHTMLで規定されている要素(タグ)のうちEPUB対応Readerがサポートすべき要素、属性、さらにCSS2.0の中でサポートすべきプロパティが決まっている。XHTMLもCSSもWebの標準であり、EPUB記事の制作は、Webページの制作にかなり近い。EPUB3.0ではXHTMLがXHTML5に変わり、CSSはレベル3の一部が採用されレイアウト表現能力が高まる。目次の形式も変更になるといわれている。今日の話はEPUB2を前提とするが、EPUB3になっても適用できる。EPUBとWebとの違いEPUBはWebと異なる面もある。次に違いを幾つか説明する。目次をNCXファイルという階層化したXML形式で表現する。EPUBReaderはNCXを読んで、目次を独自画面に表示し、目次の項目から本文にジャンプすることができる。ひとつの書籍は多数の記事から構成する。各記事はXHTMLファイルである。EPUBReaderには廉価な専用端末もあり、例えばSonyReaderは大きなXHTMLを送り込むと破綻してしまうようだ。そこでXHTMLファイルは小さな単位に分けておく必要がある。記事を読む順番をSpineという形式でリスト化する。EPUBReaderはSpineに記述された順番にXHTMLファイルをたどって見ていくことになる。OPF形式でパッケージ化されており、zipでアーカイブされる。EPUBはWebに接続していない環境で読むために、パッケージの中で閉じているべきである。そこで、リンクや参照は相対的な記述が望ましく絶対リンクは表示できないことがある。OPF、Spine、NCXなどを手作業で作るのは難しいのでEPUB専用ツールを使う。手作業ではSigilのようなEPUB作成ツールを使うことが多いだろう。書籍の制作は、現在、InDesignなどのDTPを使って行なっていることが多いだろう。境祐司氏の「電子書籍の作り方」(技術評論社)という本ではEPUBを電子書籍の形式として推奨している。この本で紹介しているEPUB作成ワークフローは、1InDesignで作成した書籍データをスタートにする。2InDesignからDreamweaver(Web編集ツール)にデータを移して、DeamweaverでXHTMLの形を整える。3次に各XHTMLの内容をコピー&ペーストでSigilに移してEPUBを作成する、というものである。DTPデータからEPUBを作るには、このように手作業によるデータ加工が必要になる。いう手作業でコピー&ペーストをするワークフローでは生産性が良くないことは明らかである。作り方はDTPによるWYSIWYG制作方式が全盛である。WYSIWYGとは、画面上のレイアウトと、紙に印刷した結果を同一にするものである。印刷では固定されたサイズのページの上にレイアウトを設計し、その上にオブジェクトを綺麗に配置する。仕上がりの判型を先に決める。するとページのサイズも決まり、その上にテキスト・画像・表などのオブジェクトを配置する。した作業の出来上がりページ数は固定となり、目次・索引などはページ番号によるナビゲーションとなる。それだけではなく記事中の相互参照もページ番号を使うことが多い。このように印刷では常に固定ページサイズを前提とする。EPUBはページ媒体ではない印刷書籍とEPUBの本質的な違いは、EPUBはページサイズ固定ではないということである。EPUBは閲読端末を使って読む。コンテンツを表示可能な領域の大きさは、閲読端末の解像度、1画面の縦横比によって異なる。EPUBReaderでは、表示するときのフォントサイズを変更することができる。フォントのサイズを変更すれば、1画面に表示できる文字数は変わり、そうすると出来上がりの総ページ数が変わる。従って、ページ数は一意に決まらない。このためEPUBではページの上に緻密なレイアウトをしても表示する際に崩れてしまう。何ページ参照というようなナビゲーション支援は無意味である。EPUB制作ではページサイズに依存しないレイアウトでコンテンツを用意する。それをEPUBReaderが表示用の機器の上でレイアウトして表示する。EPUBではCSS2でレイアウトするので、レイアウト指定機能はCSS2に依存する。CSS2でできるレイアウトの一部しか指定できないし、EPUBReaderがCSS2で指定したレイアウトをどこまで綺麗に表示できるかにも依存する。このようにレイアウトに関する考え方を、印刷レイアウトとは抜本的に転換しなければならない。上に述べたように紙に印刷する書籍とEPUBではレイアウト特性が全く異なっている。従って、制作のワークフローはかなり違う。出版の収益は、紙がまだしばらく主流になると思われる。従って、EPUBだけを対象にして、紙と独立の新しい制作ワークフローを作ってもそれだけでは収益化は難しいだろう。そこで紙とEPUBの制作を両立させる、すなわち、この二つのメディアに対して最小コストで同時に出力できる仕組みの構築が必要である。したら良いかを考えてみる。これは概念的にはXMLを使ってコンテンツとレイアウトを分離することで解決できる。ここで述べた課題は、XMLドキュメント制作技術の得意分野なのである。XMLドキュメント制作システムはこれまではあまり普及していない。このようなシステムは開発に多額のお金がかかり、システムの規模が大きくなるため、大企業のマニュアル制作システムのような大規模な投資ができる場合しか実現できなかったからである。いままでは書籍分野にXMLドキュメントシステムのような大掛かりなものを適用するのはあまり適切でないと考えていた。EPUBの登場により書籍分野にもXMLドキュメント技術を応用できるようになったと考える。CAS-UBはXML技術を駆使した書籍編集・制作のソリューションである。汎用書籍とは紙の書籍とEPUBを作り出すための書籍の元を汎用書籍という。汎用書籍とは大雑把には次のようなものである。書籍は多数の記事から構成する。コンポーネント化した記事をエントリーと言い、エントリーの内容はXHTML(の要素の一部)と属性を拡張して表す。多数の記事エントリーからマップを使って書籍を組み立てる。記事エントリーから書籍を組み立てるために出版物クラスという考え方を導入する。簡単な出版物クラスを「book1」クラスと呼ぶが、これは前付け、本文、後付けの大構造からなり、さらに本文が章、節構造から成る出版物である。記事のオーサリングXML化の第一関門は、XML原稿のオーサリングの難しさにある。XMLではテキストを要素と属性を使ってマークアップする。この考え方・概念を中々理解できない。XMLマークアップはテキストエディタでもできると言われるが、要素や属性をテキストエディタで正しく入力する作業はかなり煩雑である。そこで、XMetalのようなグラフィックス・ユーザインターフェイスをもつエディタを使いたいが、こうしたツールは高価であり、しかも、恐らく訓練を受けないと使いこなせないだろう。そこで、CAS-UBは、コンテンツ・マークアップにWiki記法を使うことを提案する。Wikiの適用例はWikiペディアである。Wikiペディアの記事はWiki記法で書かれている。Wiki記法は簡単なので、さまざまなオレオレ仕様が提案されている。これを標準化する運動としてWikiCreoleというものがある。WikiCreoleだけでは、書籍を作るためのマークアップ機能が不足している。そこでCAS-UBでWikiCreoleをベースとして拡張した独自記法(CAS記法と仮に呼ぶ)で入力する。CAS記法で書いた記事から拡張したXHTMLに変換する。これはCAS記法でXMLマークアップを行なっていることに相当する。CAS記法は格段に簡単である。Webで書籍の骨組み構造を作る書籍は前付け、本文、後付けのような大きな構造をもつ。本文は部-章-節のような階層構造をもつ。書籍を作ろうとすると、こうした骨組み構造の設計と指定が必要である。XMLでは構造をツリーで表す。XHTMLはツリー構造の概念はもっていないフラットな文書である。HTML5にはsectionという文書構造要素が導入される。section要素を使って、文書のツリー構造化ができるようになるだろう。このツリー構造を理解してXMLでツリー構造をマークアップするのは、初心者にはとても難しい。そこで、CAS-UBではWebブラウザで章・節のツリーを操作して構造マークアップを行なうこととした。書籍の骨組みの雛形として出版物クラスという考え方を導入して、構造マークアップを支援する。Architecture)から学んだ。DITAでは記事をトピックで表し、トピックをマップという仕組みを使って組み立てる。EPUBもDITAに似ている。記事はXHTMLであり、OPF、Spine、NCXで構造を表しているのである。スタイルシートで出力レイアウト指定XML化の第3の関門はレイアウト指定である。XMLドキュメントは、レイアウトのないコンテンツなので、出力媒体に応じたレイアウトをスタイルシートによって付加する。スタイルシートは、EPUBではCSSを使い、印刷用PDFではXSL-FOを使う。CAS-UBではレイアウトのテーマをレディーメイドで用意し、必要に応じてカスタマイズも可能とする。コンテンツの共同編集CAS-UBでは、独自の付加価値として、Webベースでの共同編集機能を組み込む予定である。文書のバージョンを全部管理し、多人数による共同編集を可能としたり、過去のバージョンや差分を取り出したりできるようにする。共同編集機能は、まだサポートしていないが、現サービスでも内部にバージョン管理システム(SVN)を組み込んでおり、用意はできている。書籍には、様々な閲読支援の情報が付加されている。次の二つの出力形式をサポートする。PDF(印刷用、配布用)EPUB当面EPUB2.0を作成するが、EPUB3.0が決まれば3.0に移行するのは簡単である。類似システムとの比較CAS-UBを設計するにあたって参考にしたサービスには次のようなものがある。Publishersこれらと、CAS-UBとの違いは次の通りである。書籍を作るための章節構造を定義できない。索引・ルビ・注等の処理をしたくても、ブログは文章をテキストで表すだけなので無理。IdeoType)TeXとHTMLベース。優れていると思うがTeXは旧世代のバッチ処理、TeXはコンテンツとレイアウト分離の考えがない。Word2EPUB編集をWordで行ないXML化する方式がある。WordはWYSIWYGなので、DTPと同じような問題がある。PublisherDITAでコンテンツを編集し、それをPDFとEPUB、Mobipocketなどに出力するオープンソース・プロジェクトである。DITAは複雑すぎるので書籍には向かないと考えた。プロダクションなどあとは、個人で著者になりたい人、編集したい人が対象となるだろう。今後、次のような機能の強化を予定している。