出版のワークフローは、ブラウザベースのCSS組版エンジンで変わるか? その1 発表の概要紹介

2015年8月11日~14日にワシントンDCで開催されたBalisageマークアップカンファレンスで、Vivliostyleの村上真雄氏とJohannes Wilm氏の共著による“Vivliostyle – Open source, web browser based CSS typesetting engine”という発表が行われた。

Twitterやメーリングリストを見るとこの発表はかなり人気をあつめたようである[2]

早速、一読したが、なかなか興味深い発表である。まず大筋を紹介する。次の回でいくつかの問題について一緒に検討してみたい。

(追記) レビュー: HTMLを主なコンテンツ形式にすること

Ⅰ 発表文の要約

オリジナル発表文はCC BY 4.0で公開されているので、最初に英語に詳しくない読者のために適当に要約する。詳しい方はぜひ原文をお読みいただきたい。なお、番号は次回以降で検討を加えるために段落毎に私が付加したものである。

1.マルチメディア出版のワークフローを促進する

(1) テキスト中心の内容を、印刷した本、電子書籍、Webなどのメディアで出版しようとすると多数の挑戦に直面する。ほとんどの出版のワークフローは、一般的な出版ワークフローの一部または全部を合体している。

(a) 小規模の商業出版では、原稿を主にMicrosoft Wordで書き、HTMLにエクスポートしている。Web版ではそれをクリーンアップし、テキストを埋め込むサイトで使うタグ、属性、クラスに変換する。EPUBにするときはHTMLファイルをさらに変換する。印刷版を作るときはテキストをInDesignのようなDTPに取り込んで設定する。WordでPDFにするかもしれない。

(b) 小規模の学術出版では、LaTeXとpdfTeXのようなツールでPDFを作る。LaTeXは参考文献の管理や数式に強い。EPUBやWebを作るときは、最初にTeXからHTMLに変換する段階がある。この変換は完全にはできないので大抵手作業が必要である。同じような問題は入力でも起きる。原稿がWordで書かれているとTeXにするのが大変だ。

(c) 大きな出版社や組織ではXMLを経由する。WordからXMLに変換し、手作業でクリーンにする。次に各種の変換ツールでPDF、HTML、EPUBにする。PDFは例えばXSLTでXSL-FOに変換し、フォーマッタで解釈してPDFにする。Webは他のXSLTでHTMLに変換して得る。HTMLからEPUBを変換して得る。理論的には、これらのプロセスは完全自動化が可能だが、実際には沢山の手作業と手による編集が必要である。それは、内容には出版物の種類に特化した要素を含んでおり、そうした要素が変換ソフトの作者が予期しなかった、ためである。

(d) XMLを中核とする他のワークフローでは、XMLを直接変換する代わりに、InDesignにインポートして印刷用に調整する。このときは、XMLが変更されたらInDesignでの変更が再度必要になるという問題がある。

(2) 上記の変換システムの問題は、手作業が多いこと、異なる出力媒体毎に異なるワークフローのステップが必要なことだ。XMLを含む専門的なソリューションでは理論的にはワンソースでできるはずだ。しかし、XMLは編集し難い。また、XHTMLはXML準拠でないHTML5に置き換えられつつあるようだ。

(3) XMLをスタイル化するもっとも一般的な方法はXSL-FOである。XSL-FOを使う出版物は依然として増えており、CSSよりも進んだ機能をまだ持っている。しかし、XSL-FOの標準化への関心は少なく、W3CはCSSがXSL-FOを置き換えると信じたため無期限に停止されたという問題がある。

2. Webベースのコンテンツソリューションの必要性

(1) 出版の既存ソリューションは一つとして完全に動いていないし、自動化もされていない。また、多くの出版のワークフローの中心部にはXMLが置かれているが、それはHTMLがXHTMLに置き換えられようとした20世紀末の歴史的な人工遺物である。XMLは最終出版形式ではなく、Webには存在しない。XMLをWYSIWYGで編集できるエディタはHTMLについてよりも少ないので、不必要な変換プロセスが多く必要である。

(2) HTMLを主なコンテンツ形式にすれば変換プロセスは少なくなるか、完全になくなるだろう。

(a) EPUBはHTMLの制限付きのバージョンであり、スタイル付けは限定的なCSSである。従って、HTMLソースファイルからEPUBへの変換は多くの場合自動的にできるだろう。もし、タグ、属性、CSSの規則を制限するならば、変換プロセスは完全に自動化できるだろう。

(b) Webに出版するときは、ソースファイルはそのままで良い。さらに追加が必要であれば単純なコンバータを追加できるだろう。

(3) WebやEPUBの出版では、変更は必要ないかもしれないが、印刷の状況はかなり異なる。標準的な印刷組版はどれもHTMLを中心としてその周りに作られていない。ソースファイルはMicrosoft Word, Adobe InDesign, XMLファイルである。

(4) 多くの出版社はワークフローをHTMLに変更することでメリットがあるだろう。また、XSL-FOで定義されるスタイリングをCSS組版に切り替える利益があるだろう。なぜならば、すべての出力形式のために類似のスタイル定義を使えるからである。

3.既存のHTML中心のプリント組版

(1) AH FormatterとPrinceXMLというHTML/CSSを使う二つの組版ソフトがある。

(2) 両社はCSSとHTMLを入力とするスタンドアロン版である。少なくとも二つの大きな出版社(O’Reilly MediaとHachette Book Group)が採用している。組版ソフトは普通に使うHTML要素を受け付けるが、両者の実装は少し異なる。Webベースのコンテンツ制作者や編集者は、Webの仕様に準拠するだけでなく、普通のWebブラウザの実装に従う必要がある。さらにWebのコンテンツがブラウザで問題なく可視化できるとしても、上記のCSS組版ソフトで組版する前に余計な注意を払う必要がある。組版ソフトは、ブラウザとは多少違うし、そのCSS仕様の実装は比較的ゆっくりしている。これが現在の印刷出版業界が直面している問題の一つである。他の問題は標準CSSが、本のスタイル付けのために必要な規則のすべてを実装しているわけではなく、本の出版のためのスタイル付け機能の開発は始まったばかりであることだ。

4. WebブラウザとJavaScriptを印刷出力作成のために使う

(1) 2012-14年に開発されたPagenation.jp, simplePagenation.jsの二つは、ブラウザで走るHTMLベースの印刷レイアウトシステムである。JavaScriptで書かれており、印刷する本に特有のスタイルを付けることができる。但し、ブラウザのprint-to-pdf機能を使っておりApple Safariでしか動かない。

(2) 二つのJavaScriptパッケージはすべてのページを通じて特別なルールに従って繰り返す一般的な本の印刷専用である。雑誌やページ毎のレイアウトをする本用ではない。

(3) 二つのJavaScriptパッケージはコンセプト実装であり、特別なレイアウトタイプの本には良いが、応用性がない。

5.必要なこと:印刷のための共通のスタイル仕様

(1) 我々の焦点の一部は、印刷や他のページ媒体だけに重要な余分の要素をWebの仕様として定義して、他のプロジェクトと相互運用可能にすることである。

(2) 重要な仕様の一つはCSS Paged Media仕様である。これはAH Formatter、PrinceXMLを含む幾つかの組版エンジンがCSS Paged Mediaを実装している。

(3) ブラウザは、PDFを作る方法を実装しているが、主要なブラウザはCSS Paged Mediaを実装していない。電子書籍リーダーの多くも同じである。

(4) 補足すると、CSS Paged Media仕様を実装する組版エンジンはベンダー間で非互換の独自拡張をサポートしており、ソースファイルをエンジン間で移すのが困難である。

(5) Vivliostyleプロジェクトでは、Web標準を進めることを優先しており、Vivliostyle.jsが他のまた未来のWebペース印刷エンジンと相互運用可能になるようにする。

(6) W3Cと一緒の作業を始めており、CSS Paged Mediaや他のCSS Page Floats, CSS Generated Content for Paged Media仕様を推進する。

6. 必要なこと:JavaScriptベースの一般的な印刷レイアウトの実装

(1) 一般的な印刷レイアウトのためのJavaScriptベースのソリューションが必要である。すべての主要なブラウザの上で動き、付随するページレイアウトを定義するCSSを読み、レイアウトを完全にCSSで定義できるようにする。印刷のためのWebコンテンツを準備したり、ブラウザを電子書籍のリーダーにするのに使える。

(2) 半年ほどVivliostyle.jsのコーディングしてきており、開発を継続している。ページに関係するCSSプロパティをパースする。脚注、ページ番号、ページヘッダを含む基本的なページスタイルが可能である。

(3) W3Cの仕様のかたちで標準化途中の新しい機能をJavaScriptで実装するのはExtensible Web Manifestにふさわしい。JavaScriptでどのように動くかを試すことで、関連する仕様を推進できる。うまく行けば、印刷に関連するCSS仕様の完成とブラウザが印刷関連の仕様を実装するのを支援できる。

7. 結論

テキスト出版の世界は分断されている。これを統合する試みはいくつかあり、XMLが長い間もっとも見込みがあった。出版業界では労働力集中型のDTPベースのワークフローの代替、インプットから最終出力までできるだけ少ないステップで、コンテンツの変換を自動化する印刷ソリューションを探している。ここに示したように、CSSとHTMLの組み合わせは、出版のワークフローの統合に置いてもっとも見込みがある。CSSとHTMLがもっと多くの出版社のための実行可能な代替手段になるためには、CSS標準の開発とJavaScriptの早期実装が必要である。

Ⅱ 感想
この発表は、異なる種類の課題を一緒くたに詰め込んで議論しており突っ込みどころが多い。また、著者は現実世界の問題の本質をあまり理解していないように感じる。次回にこうした点について検討を加えてみる。

[1] Vivliostyle – Open source, web browser based CSS typesetting engine Shinyu Murakami, Johannes Wilm (Vivliostyle Inc.)
[2] Great responses after I presented our paper on @Vivliostyle at #balisage today! Thnx! http://www.balisage.net/Proceedings/vol15/html/Wilm01/BalisageVol15-Wilm01.html
[3] XHTML is simple, but also other XML-formats such as DocBook/DITA can be styled with CSS via XSLT transform to HTML or directly. @AntennaInfo