『XSL-FOの基礎』(草稿)をFormatter Club会員向けに配布中。

御承知の方も多いかと思いますが、最近、Amazon を始め様々なオンライン書店からプリントオンデマンド(POD)による書籍の販売が始まっています。

PODは、PDFを書店に預けておき、受注の都度、プリントと製本をして届けるという方式です。その方式の特性上、採算を目標とする商業出版にはあまり向かないと思います。しかし、商業出版では採算に合わないような少部数の出版物や、普及啓蒙を目的とする出版で活用できると考えております。

そこで、その実践として、この度、昔「XSL-School」で使用していましたテキストを刷新してPODで販売することを計画しました。このテキストは、2001年~2002年にXSL Formatterの草創の時代に作成したものです。

現在、この内容を見直してPODなどで販売する準備を進めております。本のタイトルは『XSL-FOの基礎』(XML を組版するためのレイアウト仕様)を予定しています。

XSL-FO-Book

本書は、XSL-FO V1.1の仕様をご理解いただくことを目的としています。本書で解説しておりますのは、標準の仕様書の範囲内ですので、アパッチのFOPなどのオープンソースXSL-FOプロセサでも共通であり、弊社AH XSL Formatter V6.3のユーザーでない方でも活用いただけるものです。

当初のテキスト作成時は、XSL-FOプロセサの完成度、XSL-FOの仕様書の実装度合も不十分でした。現在、XSL-FO V1.1の仕様書に沿って内容を見直し、仕様書に書かれた内容をサンプルFOとしてAH XSL Formatter V6.3で作成しています。10数年を経て、XSL Formatterの完成度が高くなっていることが実感できました。

現在、関心をお持ちの方にレビューいただきながら改訂を進めています。本書完成するまでの間、Formatter Clubの会員向けに配布しております。関心をお持ちの方は、ぜひFormatter Clubにご参加いただき、本書へのご意見をお寄せください。

Formatter Clubの参加方法は次のWebページにございます。

AH Formatter:Formatter Clubについて

なお、本書は完成後は、PODで販売を計画しており、無料配布は完成までの期間のみとなります(完成版と同時に無料配布は終了の予定です)。予めご了承くださいますようお願いいたします。

9月17日ライトニング・トーク「AH Formatter V6.2の特徴とFO、CSS」のご紹介

9月17日EDUPUB Tokyo 2014にてライトニング・トークをさせていただきました。そのスライドとナレーション(日本語の原文)です。実は英文は日本語から翻訳してもらったものなのでした。

スライド1
Antenna House(AH)Formatter V6.2はXMLを組版してPDFなどを出力するツールです。

スライド2
2000年11月に最初のバージョンを発売し、その後14年に渡り機能強化を続けています。次にいくつか機能を紹介します。

スライド3
特徴1は多言語サポートです。縦書き文字、アラビア文字、ヘブライ文字のような右から左へ書く文字、チベット文字を除く主なインドの文字、主要な東南アジアの文字を組版できます。

スライド4
特徴2は拡張したフロート機能です。オブジェクト配置を最適化できます。JIS X4051の仕様に従って、図版の位置を自動調整できます。

スライド5
フロート拡張の多くは、IRS(米国財務省の内国歳入庁)の要求で追加されました。
※この写真は納税ガイドとは関係ありません。

スライド6
特徴3はMathML V3.0のサポートです。MathMLV3.0では新しい機能として初等数学(算数)表現が追加されました。

スライド7
レイアウトの指定はXSL-FOまたはCSSのどちらかの方式を用います。どちらを使ったら良いでしょうか?
FOのプロパティはCSS2から引用したものが多いです。また、AH FormatterはFOとCSSを並行して独自に拡張しています。従って、大よそどちらでも同じレイアウトを指定できます。
FOとCSSの主な相違点はスタイルを適用する仕組みです。

スライド8
FOは印刷のための技術であり、サーバー上のバッチ処理を前提とします。印刷対象XMLをXSLTなどでFOに変換します。レイアウト・プロパティを変換後のFOに対して適用します。
XSLTではXPathで要素や属性を指定します。プロパティは属性セットとして用意します。そしてプロパティを適用する条件を厳密にきめ細かく指定できます。XSLTではFOを作るための複雑な処理を記述できます。

スライド9
CSSはWebの技術であり、簡単な指定で、高速な処理、ダイナミック・レイアウトが求められています。
現在のCSSはページ媒体に対するレイアウト指定機能は弱く、W3C CSSの作業グループで、現在、ページ媒体に対するレイアウト指定の方法が議論されています。現時点でAH Formatterのページ媒体出力はAHの独自拡張です。
CSSではレイアウトを適用するXHTMLの要素や属性をselectorで選択します。また、カスケーディング規則とやや複雑な優先順位の規則があります。
この仕組みはレイアウトの適用条件が簡単な場合に向いています。しかし、レイアウト適用条件が複雑になると記述が難しくなります。

スライド10
以上により、Antenna Houseは、高度で複雑なレイアウトの頁を作るにはFO、シンプルなレイアウトの頁を作るにはCSSを用いることを推奨します。

※レイアウトが複雑かどうかということよりも、XMLから組版オブジェクトを作り出すロジックが簡単かどうかということです。CSSのセレクタとカスケードの仕組みでは複雑なロジックを記述するのは不可能でしょう。Javascriptを書いたらどうかという説もありますが、CSSのロジックの弱点をJavascriptで補うのならば、XSLTを学ぶ方が生産的ではないかと思います。

7月8日AH Formatter事例紹介セミナーのお知らせ 参加者募集中(終了しました)

2014年7月8日に「AH Formatter 事例紹介セミナー」を開催します。今回は、XSL-FO の第一人者である Tony Graham 氏をアイルランドから招き、学術情報誌組版への『AH Formatter』の利用経験を踏まえての特別講演(同時通訳付)を行っていただきます!通常の事例紹介セミナーでは聴く機会がないビッグチャンスです。参加費は無料です。是非ともご参加ください。
事例紹介セミナーの詳細とお申し込み方法

AH Formatter事例紹介セミナーは終了しました。

世界の各地で、本を作るための新しい仕組みが登場している

EPUBやKindleなどの電子書籍による出版が広がることで、書籍を編集・制作する仕組みやツールも変わりつつある。

従来の出版では、印刷・製本した書籍を前提とし、編集と制作は印刷するための版面を作ることを第一目標として進められた。こうした枠組みの中で、編集・制作ツールは印刷とコンピュータ技術の発展に伴い、20世紀の終わりに急速な変化を遂げた。1980年代半ばに登場したDTPは21世紀の初頭に最盛期を迎えている。

一方、やはり20世紀の終わりに登場したWebは、紙ではなくコンピュータの画面上で情報をナビゲートすること主眼を目的として発展してきた。

これまでは、紙の書籍で出版する情報をWeb媒体に出したり、その逆にWebの情報を元に、紙の書籍を出版するには、その中間工程で情報の編集・加工を必要とした。長いことワンソース・マルチユースの重要性が唱えられたが、実際にはそれほど普及してこなかった。これは、印刷とWebの起源と発展過程が完全に別のものであったことが大きな理由である。書籍とWebは水と油であった、といって良い。

しかし、EPUB・Kindleによる出版が普及してきたことで、長い伝統をもつ書籍制作の仕組みに革命が始まりつつある。具体的には、次のような仕組みの提供が始まっている。

1.初級・入門的なもの

ブログで書いた内容を、本来のWebに出すのに加えて、PDFとEPUB・Kindle向けに生成する仕組みは既に数えきれないほど提供されている。こうしたブログサービスは書いた記事を羅列するだけのものになるので、簡単な出版物しかつくることができない。

書籍はWebとは違って、多くの情報を組織化し、一定の枠組みでパッケージした形で読者に提供するものである。そのために前書き、本文(章、節、項)、後書き、参考文献、索引などのグローバルな構造をもつ。しかし、ブログサービスでは、書籍のグローバル構造を表すことができないという限界がある。

2.中級

ブログサービスの上位の仕組みとして、次のようなサービスが始まった。

(1) BookTypehttp://www.sourcefabric.org/en/booktype/ チェコのSourcefabricという情報産業向けの非営利ソフトウエア開発団体が提供しているサービスである。

書籍を共同で編集するツールを提供している。ユーザー企業はツールを自社のサーバにインストールして使うこともできるが、Sourcefabricが提供しているWebサービスを使うこともできる。

Webブラウザで、記事を並び替えたりして、はじめに、セクション、章、節、あとがきといった書籍のグローバル構造を編集することができる。セクションは章の集まりとされている。

編集した結果から、Webページ、PDF、EPUBを生成できる。PDFの生成のための組版エンジンとしてWebKitを使っている。ページレイアウトの指定をCSSで行なう。WebKitはグーグルChromeやアップルのSafariなどのブラウザのレンダリングエンジンであり、まだページ組版エンジンとしては実用的ではない。このため、現状ではあまり高度なページレイアウトは指定できない。WebKitはiBooksなどのEPUBリーダのエンジンとしても使われており、ページ組版の強化も行なわれているので、いずれはWebKitをページ組版エンジンとして使うサービスが増えるだろう。

(2) PressBookhttp://pressbooks.com/ 最近、日本語版が発売されて、電子書籍に関心をもつ人々の間で注目を浴びた「マニフェスト 本の未来」(原題:「Book: A Futurists Manifesto」)を編集した、ヒュー・マクガイアが中心になって進めているプロジェクトである。[1]

WordPressをベースとして、その上に書籍のグローバル構造を編集するアドオンツールを載せている。WordPressには、記事の内容にマークアップする仕組みがあるのでその範囲で記事の内容に箇条書き、引用、挿入、プログラムコードなどの指定ができる。

編集した結果から、標準的な本の形式(印刷用のPDF)、EPUB、MOBI(Kindle)、IDML(InDesign用)、XHTML(Web)、WordPress XMLなどを生成できる。

PDFの生成のための組版エンジンにはPrinceXMLを使っている。[2]

BookTypeやPressBookは書籍を制作するための機能として書籍のグローバル構造を編集する機能を備えている。この点で、ブログの記事を寄せ集めて1冊の本にするサービスよりは高度である。しかし、ざっとみたところ、これらのサービスはXML技術をあまり使っていないようだ。

このためプロフェッショナルな書籍を作ることはできないだろう。このことは「マニフェスト 本の未来」がエッセイを寄せ集めた本であることが如実に示している。

3.XML技術を応用した上級システム

プロフェッショナルな書籍に必要な機能としては、索引がその典型である。索引を作るためには、記事の中に索引をマークアップして、これから索引ページを作り出すとともに、索引語を順番にソートする機能が必要である。こうした機能はXML技術を使わないと実現できない。

(1) CAS-UBは、XML技術を活用することでプロフェッショナルな書籍を制作することを狙っている。

(2) O’Reillyは、AsciiDoc[3]という簡易テキストマークアップ記法を基本とするテキスト編集ツールとDocBook[4]を使って書籍を制作する仕組みを構築している。次の図は、O’Reilly MediaのNellie McKessonが最近発表したスライドの1枚である。


図 O’Reilly MediaのNellie McKesson:TOC, Feb 12, 2013におけるスライドより引用

このように索引などを作成するにはXML技術の活用が必要である。また、CAS-UBとO’Reillyが、XMLを直接タグマークアップするのでなく、簡易テキストマークアップ記法を採用していることも今後のトレンドとして注目したい。

もう一つ重要なことはPDF生成のための強力な組版エンジンである。CAS-UBとO’Reilly Mediaのツールは、組版エンジンとしてアンテナハウスのAH Formatter(V6)[5]を用いている。

つまり、高品質・専門的な書籍を作るツールを実現するには、そのインフラストラクチャとして、①マークアップ、②XML(XSLT)、③強力な組版エンジンが必要なのである。

印刷・製本した書籍を先行して制作して、そこからEPUBのような電子版を2次的に作り出すという、従来の方法に代わる新しい方法として、紙版とEPUB版を同時に作り出す制作システムが動き始めている。こうした新しいシステムが従来の仕組みに代わって主流になる日がいずれやってくるのだろう。

[1]「マニフェスト 本の未来」
[2] PrinceXML なお、無料版のPressBookで実際に本(PDF)を作ってダウンロードして調べると、Princeで作っていることが確かめられる(2013年3月22日時点)。しかし、O’Reillyから販売されている「Book: A Futurists Manifesto」(2012/8制作)のプロパティを見ると制作アプリはWikibook XML(http://www.wikipubilisher.org)になっている。「Book: A Futurists Manifesto」の本文には、本書はPressBookで制作したと記述されているので、少し話が食い違っている。無料のPressBookでは市販レベルの書籍は作れそうもないので、PressBookは市販本と無料版でPDFの制作方法を変えているのかもしれない。それとも、PDFの制作方法が2012年8月から現在までの間に変更になったためなのかもしれない。
[3] AsciiDoc
[4] DocBook
[5] AH Formatter

クラウド型EPUB/電子文書リーダ “AH Reader Preview” を公開しました

アンテナハウスは、クラウド型EPUB/電子文書リーダ“AH Reader Preview”を公開しました。AH Readerを使うとEPUBをiPad、iPhone、Android端末やPC画面で読むことができます。お使いいただくには、次のAH Readerについてのページにアクセスして、「AH Reader Preview を使ってみる」をクリック。

○AH Readerについて http://r.cas-ub.com/

次の画面で「読む本を追加」をクリックします。すると次の画面が現れますので、EPUBのファイル名またはURLを指定します。

EPUBを指定して「読む」をクリックするとEPUBの内容を画面に表示します。次はWindowsのPC画面にEPUB表示した画面の例です。

AH Readerは、サーバ側でXML自動組版ソフトAH Formatter[1]のCSS組版機能を使ってEPUBを組版しています。そこで、現在の多くのEPUBリーダよりはかなり高度なページレイアウトを指定した文書を表示することができます。

AH Readerは現在プレビュー版の位置づけですので、今後はCAS-UBを初めとするEPUBソリューションに組み込む形で提供することを予定しています。

関心をお持ちの方は、営業窓口(cas-info@antenna.co.jp)までお問合せください。

[1] AH Formatter

10月22日「縦組み時の文字の向き―その理論とマークアップ方法」の発表予定資料をプレビュー

来週、月曜日(10月22日)開催予定のFormatterClubにおける発表「縦組み時の文字の向き―その理論とマークアップ方法」の資料を用意しました。資料はまだ変更の可能性がありますが、ご参加いただく方々に事前に検討していただき、ご批判を賜るためにここに、プレビュー版として公開します。

FormatterClub定例会の詳細

○プレゼン資料:パワーポイントで作ったPDF (22日1:40更新。22日13:30再更新。23日22:45細かい誤り訂正。説明文追加。)

○実際の書籍におけるグリフの方向調査結果:グリフの方向調査結果(PDF) (23日1:33公開)

この調査は、縦組み書籍24冊(延べ約5000頁)における記号類の向きを調べたものです。記号については網羅しています。しかし、記号以外はあまり網羅的ではありません。また、和文区間における向きであることに注意してください。(欧文区間=横倒し区間は除外しています。)

○AH Formatter V6.1アルファ版による組版例(PDF)

AH Formatter V6.1では縦組みの文字方向について実装する予定です。これについては、現在、UTR#50とCSS3 Writing Modeで仕様の検討が進んでいますが、以下で紹介する例は、UTR#50とCSS3 Writing Modeでできることとは一致していませんのでご注意ください。

以下の例はあくまで文字方向の指定を議論する目的で公開するものです。文字方向の扱いは今後変更の可能性があります。また、文字の揃え方、空きの取り方などはまだ開発の途上のため評価対象外としてください。問題点のご指摘は歓迎です。できるだけ、今後、製品版までに改善致します。

1. 縦組みにSVO(upright)とMVO(mixed-right)の指定による文字方向切り替えの例

(1) 文字方向指定なし

文字方向の設定をしない(デフォルト)と欧数字が寝てしまうことになります。⇒UTR#50はこの方向に向かっています。これは良くないと思いませんか?

(2) SVO(upright)

文書全体の文字方向をSVO(upright)に指定し、数字2桁を自動縦中横[1]とします。⇒これは概ね新聞組版と同じです。

(3) SVO(upright)+MVO

文書全体の文字方向をSVO(upright)、数字2桁を自動縦中横とし、箇条項目5全体にMVO(mixed-right)を指定します。⇒キリル文字はMVOでは横倒しになります。

箇条項目3には、欧数字[2]の正立と横倒しが混在するため、項目全体にMVOを指定できません。そこで次のように指定します。

(4) SVO(upright)+MVO+sideways

文書全体の文字方向をSVO(upright)、数字2桁を自動縦中横とし、箇条項目5全体にMVO(mixed-right)を指定、箇条項目3の英語範囲にsideways(横倒し)を指定します。⇒概ね、現代の書籍の組版に近くなります。

(5) MVO+SVO

文書全体をMVOとして、箇条項目5全体を日本語フォントで正立としました。これはMicrosoft Wordなどでキリル文字に日本語フォントを指定した状態に近くなります。Windowベースのアプリケーションでは通常キリル文字の方向はフォント依存です。この文字方向は、現在の欧米発ソフトウエアのデファクトのアプローチです。UTR#50でMVOがデフォルトに決まると、いままでのやり方とも少し変わることになります。

2. 縦中横

(1) 縦中横事例データ

実際の書籍(15冊)の中で使われている縦中横のパターン、および数文字の長さの欧数字のレイアウトパターンを収集しました。赤字が縦中横、青字は横倒し、黒は1文字ずつ正立です。

(2) SVO+縦中横+MVO設定

文書全体をSVO、縦中横は強制的に縦中横を設定し、ピンクのセルにMVOを指定します。概ね文字の方向は実際の書籍に近くなります。あとは細かい区間で方向を強制的に変更することになります。

(3) 自動縦中横設定例
a. SVO+自動縦中横

文書全体をSVOと数値2桁を自動縦中横とします。

b. SVO+自動縦中横+MVO設定

文書全体をSVOと数値2桁を自動縦中横とします。ピンクのセルにMVOを指定します。(2)との相違は縦中横を強制指定か自動処理かです。自動縦中横でかなり処理できますが、やはりすべては無理でしょう。

c. MVO+自動縦中横

文書全体をMVOにしてしまうと、自動縦中横はうまくいきません。また、ラテン文字が正立したり、横倒しになったりばらばらになります。文書全体の欧数字を横倒しにしてから、個別に立てていくのは手作業やWYSIWYGでは問題なくても、自動処理には向かないのではないかと思います。

3.実際の書籍テキスト例

『新版論文の教室』には縦組み文字方向のパターンが豊富に出てきます[4]。そこで『新版論文の教室』から一部をピックアップして、本文のデフォルト文字方向を(1) MVO(全角文字使用)、(2) MVO(全角文字を使用不使用)、(3) SVOの3通りに設定したテストデータ[5]を作成しました。PDFは、このテストデータを使ってAH Formatter(V6.0の特別版)で組版した結果です。

テストデータのマークアップ方法、ならびにその結果の知見については、当日ご説明いたします。

[10/21追加]

(1)デフォルト MVO(全角文字使用)(PDF)

ルートにMVO(-ah-text-orientation:mixed-right)を設定します。縦組みで正立する文字を全角文字コード(UnicodeのFullwidth variant)で記述し、横倒しになる文字を基本ラテン文字コードで表します。

(2)デフォルトMVO(全角文字使用せず)(PDF)

ルートにMVO(-ah-text-orientation:mixed-right)を設定します。アルファベットとアラビア数字は基本ラテン文字コードで表します。正立する文字範囲に(-ah-text-orientation:upright)を指定します。

(3)デフォルトSVO(PDF)

ルートにSVO(-ah-text-orientation:upright)を設定します。アルファベットとアラビア数字は基本ラテン文字コードで表します。横倒しする文字範囲に(-ah-text-orientation:sidewaysまたはmixed-right)を指定します。

○注
[1] 自動縦中横は現在、アラビア数字とラテンアルファベットのみ対象でテスト的な実装となります。
[2] ここではラテン(基本・拡張)アルファベット、キリル文字、ギリシャ文字、アラビア数字、ローマ数字。および欧文組版用の括弧・記号類を指します。
[3] XHTMLファイル(ZIP)形式:このXHTMLはAH Formatter V6.1を使わないと正しく組版できません。AH Formatter V6.1プレビュー版については、FormtterClubにてご案内がなされる予定です。
[4] 「新版論文の教室」には書籍の縦組みレイアウトパターンと文字の方向パターンの典型例がある
[5] XHTMLファイル(ZIP)形式:このXHTMLはAH Formatter V6.1を使わないと正しく組版できません。AH Formatter V6.1プレビュー版については、FormtterClubにてご案内がなされる予定です。

FormatterClub開催迫るー縦組みにおける文字の方向について

10月22日のFormatter Club定例会の開催があと10日後に迫りました。FormatterClubはAH Formatterに関心をもつ方々を対象とするコアな登録制クラブなのですが、今回は無理にお願いして、一般参加とし、「縦組み時の文字の向き―その理論とマークアップ方法」というちょっと異色のテーマで報告させてもらうことになりました。

UTR#50の件については、この春から土日の大半を使って取り組んできましたが、AH Formatterの次期バージョン(V6.1)に縦組みの文字正立モードを設けてもらって、また自動縦中横機能なども利用可能な形にしたいと考えています。これによって、横組みテキストと縦組みテキストの共通化へむけて前進することができると考えています。

多くの方の、ご参加をお待ちいたします。

○FormatterClub定例会の内容

13:30~ 開会ご挨拶
13:35~ 「インドのおさつで使われているすべての文字の組版を目指す」
「MathMLによる高品質数式処理」
アンテナハウス 村上真雄
14:20~ 質疑応答
14:30~ 「縦組み時の文字の向き―その理論とマークアップ方法」 アンテナハウス 小林徳滋
15:15~ 質疑応答、休憩
15:50~ 「電子文書レイアウトの未来!AHReaderのプレビュー」 アンテナハウス 村上真雄
16:20~ 質疑応答
16:30 閉会

FormatterClubのお申し込み(コクチーズのページ)