カテゴリー別アーカイブ: AH Formatter

XSL-FOの便利な機能、参照エリアとインデントとはどんなもの?(1)

先日、XSL-FO仕様の難しさ、CSS組版のリスクで、XSL-FOとフロートの違いを説明しましたが、もう少し翻ってみますと、XSL-FOとCSSには基本的な相違がいろいろあります。

XSL-FOもCSSもレイアウトの基本は次のようなモデルです。内容領域にテキストを配置、その周りにパディング領域があり、そのまわりにボーダー領域があり、その周囲にマージンがあるというモデルです。

border-model

これをCSSではボックスといい、XSL-FOではエリアといいます。ボックスとエリアは用語の違いはあるにしても、類似です。一つの要素はエリアにレイアウトされます。そして、その要素の子供は親要素の内容にレイアウトされます。XSL-FOでは要素(FOと言います)がページの境界で分割されることがありますので、FOとエリアは1対1ではなく、1つのFOから複数のエリアができます。

また、前回も説明しましたが、XSL-FOでは絶対方向に加えて論理方向による指定も使えます。これは縦組などに対応するために用意されたものです。

さて、XSL-FOは印刷レイアウトを想定していますので、エリアモデルにはCSSのボックスモデルにはない基本概念が導入されています。

参照エリアという種類のエリアです。参照エリアは、座標系の基準になるエリアで、普通のエリアと違って次の特徴があります。

  • 参照エリアはインデントの基準になります。
  • 参照エリアの一部では回転を指定できます。回転を指定すると内容が回転します。
  • 参照エリアの一部にはライティングモードを指定できます。参照エリア単位で縦組などを指定できます。

ひとつのページの本文を配置する区画(fo:region-body)は参照エリアになります。fo:region-bodyに縦組を指定して、本文全体を縦組にできます。なお、縦組でも柱は横組ですので、柱を置く区画(fo:region-before)は、普通、横組指定となります。

それだけではなくページの中の矩形の領域や、行内の一部を部分的に回転したり、縦書きにもできます。

さて、XSL-FOにあって、CSSにないのがブロック単位のインデントです。ブロック単位のインデントとはどんなものでしょうか?

ワープロなども共通ですが、インデントには次の2種類があります。両者は混同しがちですが、別物です。

(a) 段落全体の左端を行の開始位置から数文字分ずらす。日本語組版では字上げ・字下げといいます。引用文を本文とは別の行とする場合、本文との区別のために字下げするなどの用途で使われます。これがブロック単位のインデントです。ブロック単位のインデントは、引用以外では、次のようなレイアウト用途に使われます。

・注記の字下げ
・箇条書きの先頭を揃える
・ブロックの数式の先頭位置揃え

CSSでは(横書なら) margin-left、margin-rightで指定します。XSL-FOでは(横書なら)margin-left、margin-rightも使えますが、むしろ、start-indent(行の開始側)、end-indent(行の終了側)で指定すると便利です。

(b) 段落の先頭行の最初を1文字(日本語)あるいは数文字(ラテン)分空けます。昔の作文では、段落の書き出しを1文字空白にする、と教わりました。いまでもそのような書き方をする人は多いですが、Microsoft Wordなどの欧文ワープロを初め、CSSでもXSL-FOでも段落の先頭行の字下げは空白ではなく、text-indentで設定します。

段落の先頭行だけを1文字字下げするのは、段落の区切りを判りやすくするためです。

英語の組版では段落の先頭を字下げするのは二つ目以降のみで、最初の段落は字下げしないことも多いのです。最初の段落の前には章や節の見出しがあり、また見出しとの間に空きがありますので字下げの必要はありません。また、図版の直後で始まる段落は字下げしないという規則もあります。先頭行を字下げしたり、しなかったりするので空白文字を入れてしまうと不都合があります。

また、行間を空けて、段落の先頭を字下げしないスタイルもあります。これは電子メールなどでお馴染みですね。

このように、欧文組版では段落スタイルが何通りか選択できますので、段落の開始に空白文字を入れるのは行われません。

さて、戻りますが、start-indent(行の開始側)、end-indent(行の終了側)が、どのように便利かは、次回に説明したいと思います。

『XSL-FOの基礎 – XML を組版するためのレイアウト仕様』(近日発売)


XSL-FO仕様の難しさ、CSS組版のリスク

2001年~2002年頃にかけて、XSL-FO(当時はV1.0)について学びました。10数年を経て、この2か月ほど、再び、XSL-FO(今度は V1.1)と格闘しています。先日ブログで紹介した、『XSL-FOの基礎』を完成するために。

いまは、フロートについて調べています。フロートは、本文の文脈中に記述する要素です。但し、組版処理を行ったとき、本文の流れとは切り離して配置します。XSL-FOとCSSには、類似のフロート関連機能があります。では、XSL-FOとCSSのフロートの違いはなんでしょうか? まず、フロート関連の機能をざっくりと比較してみましょう。

1.フロート

(1)適用対象オブジェクト

・XSL-FOではfo:floatという組版オブジェクトを規定し、フロートの処理方向をかなり詳しく書いてあります。また、フロート組版オブジェクトを配置できる(スキーマ上の)位置も規定しています。フロート配置したいオブジェクトはfo:floatの中に置きます。

・CSS2.0では、フロートという組版オブジェクトはありません。floatプロパティのみ規定しています。そして、floatプロパティは、絶対位置指定のボックスと生成されたボックス以外であれば何でも適用できる、とされています(CSS2.1では生成されたボックスにも適用できるようです)。つまり、HTMLの様々な要素にfloatプロパティを指定できます。

(2) floatプロパティ

・XSL-FOではfo:float組版オブジェクトに対するfloatプロパティで、浮動のさせ方を規定しています。floatプロパティは、before、 start、end、 left、right、inside、outside、noneがあります。

・CSS2では、left、right、noneの三つです。

XSL-FOは前方フロートを新設しています。また、サイドフロートという分類があります。前方、後方というのは行の進行方向を基準とします。横組なら前方は上、縦組なら前方は右です。

・beforeは前方フロートで横組ならページの上、縦組ならページの右に浮動させて配置します。例えば、<fo:float float=”before”>テキストや画像を含むブロックFOオブジェクト</fo:float>と指定すると、テキストや画像を含むブロックFOオブジェクトは、横組ならばページの上部に配置されます。

・start、end、 left、right、inside、outsideはサイドフロートで、それぞれ行の開始側、行の終了側、左、右、のど側、小口側への配置を指定します。サイドフロートは、CSS2のfloatプロパティの形式上の拡張になっています。厳密にいうとモデルのずれがありますので、形式上と表現しておきます。

2.フロートのクリア

フロートされたオブジェクトが先行するとき、その後方のオブジェクトのボーダーの前方辺がフロートされたオブジェクトのマージンの後方辺よりも後ろになるように空きを入れることをフロートをクリアすると言います。XSL-FO、CSSの組版モデルでは、オブジェクトの領域を内容、パディング、ボーダー、マージンという4層の玉ねぎ構造で規定しています。クリアは解除と訳されることが多いですが、厳密には解除では無くて前方マージンを広げることです。

(1)適用対象オブジェクト

・XSL-FOでは、clearプロパティはブロックレベルのFOとfo:floatに適用できます。

・CSS2では、clearプロパティはブロックレベルの要素に適用できます。

(2) clearプロパティ

・XSL-FOでは、start、end、left、right、inside、outside、both、noneがあります。前方フロートのクリアはありません。

・CSS2ではnone、left、right、 bothです。

3.侵入による移動

フロートが配置されると、本文はフロートが配置された分だけ移動して、フロートを回り込みます。

XSL-FOでは、侵入による移動(intrusion-displace)というプロパティで本文の移動の仕方を指定できます。このプロパティは、ブロックレベルのFOと、fo:table-caption、fo:list-itemに指定できます。

intrusion-displace=”line”とするとCSS2のフロートの回り込みと同じとなり、それ以外に、auto、none、indent、blockを指定できます。

CSS2には、侵入による移動の仕方を指定する機能はありません。

◎まとめ

XSL-FOでは印刷を意識してフロートの処理を比較的詳しく説明し、製本のため、小口・のどなどの方向拡張をしています。縦組でも破たんしないように前方・後方、行の開始・終了で方向を指定できます。一方、CSS2のフロート動作は、簡単な説明なので判りやすいですが、あまり厳密ではありません。さらに、適用する要素が広範なため、様々なHTML要素にfloatプロパティを指定したとき、その組版処理結果がどのようなレイアウトになるかが曖昧になりそうです。

XSL-FOのclear、intrusion-displaceなどの説明は、英語の文章がセンテンスがながく、関係代名詞の使いまくり、未定義の用語 (ネィティブには定義する必要がない?)が一杯でてきて難しく、理解するのに難儀しています。XSL-FOの難しさは、まず、第一に仕様書の文章の難しさです。そ の先にまだあるかもしれませんが・・・第一の関門を突破しないとわかりません。ただし、仕様書にかかれている制約条件は、XSL-FOプロセサがきちんと処理してくれればユーザーが理解していなくても支障ありません。XSL-FOプロセサを開発する立場では、きちんと処理結果を保証しなければなりませんので、そうはいかないのです。

CSS3でフロートがどのように強化されているかまでは、まだ調べていません。CSS3ではCSS2の機能と互換になるように拡張しなければならないでしょうが、どうなるのでしょうかね。CSS組版のリスクは、文章はとっつきやすいけど規定が曖昧なことでしょうね。


AHFormatter の float 拡張

AHFormatter はV6で大幅な float の拡張を行いました。

  1. float がページから出たときの振る舞い
    以前は float がページから出てしまうと、アンカーと一緒に本文テキストが次のページに送られました。
    そのため、ページに空白ができてしまうことがありました。
    V6 からは、float だけを追い出し、あいたスペースに本文テキストが入ります。
    また、float が少し出るだけなら float をページに入れ、本文テキストを次ページに送ることも指定できます(axf:float-move=”auto-move”)。
  2. float の配置位置の指定
    V6 からは float をページの下部に配置するなどの指定ができるようになりました。
    配置する場所 (axf:float-reference=”page”) 、位置 (axf:float-y=”bottom”) が指定できます。
    これで、参照する表などをページの下部などにまとめて配置できるようになりました。

これらの拡張により、V6 での表現力がアップしました。
興味のあるかたは 評価版 をお試しください。

プログラマの愚痴

予想外の使い方をするユーザ様がいます。
大きな表などを何でも float で表現します。それを複数連続して挿入します。
当然、追い出され、追い出され、複数ページ分の追い出しが起きます。
追い出されても、次の本文をいれるため、float は追い出し状態としページが完成するまでフォーマットは継続されます。
結局本文はなく終了。追い出された float のページを追加しフォーマット終了となります。
追い出し状態の float のメモリと処理時間が大きくなるだけでした。
float にする必要がないのではないか?
追い出すための連続改ページ処理に障害が見つかり対応することとなりました。

処理の把握が足りないこともありました。
最後のページに float がありフォーマット終了。
最後のページで page-master の変更がありました。
新しい page-master でページを作成し、本文を移動する。このとき元のページについている float が移動せず欠落。
page-master の変更処理まで把握できていませんでした。
障害となり、float に追い出しをマークし対応することとなりました。

障害との格闘で日々すごしています。


アンテナハウスCAS電子出版

皆様、おはようございます。
本日と明日19日は、電子出版サービスグループがお届けいたします。

本日のお題は、
アンテナハウスCAS電子出版です。

アンテナハウスCAS電子出版とは、アンテナハウスが自社サービスCAS-UBを使って書籍を出版する際に用いるブランド名です。

現在、アンテナハウスが出版している書籍は10タイトルあります。また、無料で配布しているものは9冊、CAS電子出版の紹介で紹介しています。

最近は、POD(プリントオンデマンド)出版にも手を伸ばし始めました。
POD出版したものは次の通りです。

「PDFインフラストラクチャ解説-電子の紙PDFとその周辺技術を語り尽す-

表紙イメージ
「ビジネスを強化する リーディング・プレゼンテーションの技法」

表紙イメージ

これから出版予定のもの:レビュー募集中!

現在、アンテナハウスCAS電子出版では、次のPOD出版を進めています。
次回出版予定は、「XSL-FOの基礎」です。

表紙イメージ

XSL-FO の仕様書というのはとかく難解な長文(英語)で、翻訳されても難しくてよく分からないというのが現状です。本書は、主として XSL-FOドキュメントを印刷するソフトである XSL-FOプロセサを利用するための人向けの解説書として出版を予定しています。

現在は原稿を編集中で、アンテナハウスが主催する「Formatter Club」の会員様向けに無料配布して、レビューを募っています(完成時点で終了)。

Formatter Clubの詳細は、Formatter Clubについてをご覧ください。また、参加のお申込みは、下記のお申込用紙に必要事項をご記入のうえ、FAXまたはe-mailでお申し込みください。

  • 参加申込書用 PDF
  • メールアドレス:naganawa@antenna.co.jp(Fomatter Club 担当)
  • FAX 番号:03-5829-9024

『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で販売を計画しており、無料配布は完成までの期間のみとなります(完成版と同時に無料配布は終了の予定です)。予めご了承くださいますようお願いいたします。

※ 無料配布は終了しました。ご協力よろしくありがとうございました。(2016/5/23)


「DITA ワンデーセミナー・ハンズオンワークショップ」を開催します!

2016年3月15日(火)に「DITA ワンデーセミナー・ハンズオンワークショップ」をインフォパース株式会社と合同で開催します!
ゲストスピーカーとして海外より DITA 技術委員会創設メンバーであり、DITA 仕様策定メンバーの 1人でもある Eliot Kimber(エリオット・キンバー)氏をお招きし、「DITA for Small Teams」の講義および実習を行います。DITA 対応の CMS などを使用しないローコストの実践ですので、初めて DITA に取り組む方にもお薦めです。
※ 「DITA for Small Teams」とはオープンソースと必要最小限の商用ソフトを使用して、DITA によるドキュメント制作をスモールスタートで行うための方法です。

AH Formatter 組版例
– セミナーのタイムスケジュール –

セミナーの詳細及びお申し込み等は、次のページをご覧ください。
「DITA ワンデーセミナー・ハンズオンワークショップ」開催のお知らせ

皆様のご参加をお待ちしております。


AH Formatter V6.3 のご紹介:Data Matrix と PDF417 など(バーコードジェネレータオプション)

AH Formatter V6.3』では、『バーコードジェネレータオプション』を使用することにより、ISO/IEC 16022:2006 で規格制定されている Data Matrix と、JIS X 0508:2010 または ISO/IEC 15438:2006 で規格制定されている PDF417 が指定可能になりました。

AH Formatter 組版例
– Data Matrix と PDF417 の組版例 –

また、ご要望の多かったバーコードの色指定や、QR バーコードの余白(クワイエットゾーン)の変更が可能になりました。

AH Formatter 組版例
– バーコードに色指定した組版例 –

サンプルページには、
本機能が確認できる「バーコードの見本」を掲載しております。

『AH Formatter』にご興味のある方は評価版を次のページよりお申し込みいただけます。
AH Formatter 評価版のお申し込み

弊社では検討中のお客様向けに技術相談会を行っております。お気軽にお問い合わせください。
アンテナハウス システム製品技術相談会


AH Formatter V6.3 のご紹介:見開きページマスタ

AH Formatter V6.3』では、見開きページをひとつの単位と判断できるようになり、2ページにまたがる見開き領域を定義することができるようになりました。タイトルが 2ページにまたがる場合、画像または表の幅が 1ページより広い場合、縁なし背景の画像が 2ページにまたがる場合などに本機能をご使用いただけます。
見開きページマスタ拡張(オンラインマニュアル)

AH Formatter 組版例
– 見開きページにひとつの背景を定義した組版例 –

サンプルページには、
本機能が確認できる「見開きページマスタの設定例」を掲載しております。

『AH Formatter』にご興味のある方は評価版を次のページよりお申し込みいただけます。
AH Formatter 評価版のお申し込み

弊社では検討中のお客様向けに技術相談会を行っております。お気軽にお問い合わせください。
アンテナハウス システム製品技術相談会


AH Formatter V6.3 のご紹介:強化された多言語対応

AH Formatter』は、『AH Formatter V6.2』リリース以降、ビルマ語(ミャンマー語)やシンハラ語のスクリプトに対応し、『AH Formatter V6.3』が対応する言語はいよいよ 70以上になりました。
対応スクリプトと言語(オンラインマニュアル)

AH Formatter 組版例
– シンハラ語とミャンマー語の組版例 –

『AH Formatter』は、Unicode で扱えるほとんどの文字を扱うことができ、サロゲートペアにも対応しています。縦書きや、アラビア語などの右から左への文章も記述でき、これらを混在させた文書も容易に作成することができます。また、ハイフネーション処理や、言語によって異なる約物前後の空白の調整、独自のカウンタスタイルの定義なども自由に行うことができます。『AH Formatter V6.3』は、40言語以上のハイフネーション処理を行うことができます。このため、多国語対応の文書の生成などに最適です。

サンプルページには、
多言語組版機能の見本」を掲載しております。

『AH Formatter』にご興味のある方は評価版を次のページよりお申し込みいただけます。
AH Formatter 評価版のお申し込み

弊社では検討中のお客様向けに技術相談会を行っております。お気軽にお問い合わせください。
アンテナハウス システム製品技術相談会

 


Server Based Converter の活用法

■ Antenna House Formatter と組み合わせた文書配信システム

Server Based Converter は、Microsoft Office 文書だけではなく、PDF からも画像、SVG, Flash といった形式のファイルを生成できます。 企業ユーザ様、特にグローバル企業では、マニュアルを製作するときに、DITA という規格によって XML 文書を作り、それから PDF を生成することが行われています。

DITA 規格の XML 文書から PDF を生成する際に、欧米のグローバル企業からも非常に高い評価を得ている Antenna House Formatter を使います。 こうして出来上がった PDF は、Server Based Converter で、さまざま形式に変換して配信することができます。

PC に配信する場合は、PDF のままで配信できますが、モバイル端末、携帯電話では、PDF が表示できない場合があります。また、PDF が表示できるスマートフォンでも、画像や SVG, Flash といった形式が都合がいい場合があります。その場合、端末の特性、能力に合わせて、画像、SVG、Flash に変換することで、文書を配信するのです。

システムのイメージは、
サーバベース・コンバーター 活用例
にある
携帯電話閲覧用コンバータ
です。

実際に、このように Antenna House Formatter と Server Based Converter を組み合わせて、数多くのPDFを生成し、生成されたPDFから必要な部分を抜き出し、Server Based Converter で変換して、毎日、数千ページものページを、配信するシステムを構築しているお客様がいらっしゃいます。

Antenna House Formatter に関する詳しい情報は、
Antenna House Formatter
をご覧ください。

アンテナハウスでは、DITA に関するサービスやコンサルティングも行っています。詳しくは、
DITA
をご覧ください。

〒103-0004
東京都中央区東日本橋2-1-6 東日本橋藤和ビル5F
アンテナハウス株式会社
◆ご購入に関するお問い合わせ(祝日を除く月~金曜日9:30~18:00)
TEL : 03-5829-9021
FAX : 03-5829-9023
E-mail: sis@antenna.co.jp
URL : http://www.antenna.co.jp/

Server Based Converter は、Microsoft Office, PDF などのファイルを、PDF, Flash, SVG, 各種画像形式にダイレクトに変換する変換エンジンです。 ダイレクト変換の意味は、たとえば、Microsoft Office がない環境でも、ファイルさえあれば、それをダイレクトに内容を見える形式に変換できるのです。ダイレクト変換には、Microsoft Office のライセンスも不要です。
Server Based Converter は、ダイレクト変換というユニークさが評価され、多くのウェブサービス、パブリッククラウド、プライベートクラウドなどで利用されています。

Server Based Converter に関する詳しい情報は、
Server Based Converter
を、ぜひ、ご覧ください。

評価版もご用意しております。
サーバベース・コンバーター 評価版のお申し込み
から、お申し込みください。


Pages: Prev 1 2 3 4 5 6 7 8 9 10 ... 13 14 15 Next