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

[書籍のご案内] XSL-FO の基礎 – XML を組版するためのレイアウト仕様

この度、弊社執筆による「XSL-FO の基礎」のプリントオンデマンド(POD)による紙版が発売になりました。

XSL-FO の基礎
目次の一覧は、こちらでご覧ください。

本書は、主として XSL-FOドキュメントを印刷するソフトである XSL-FOプロセサを利用する人に向けた解説書です。解説は、標準の仕様書(Extensible Stylesheet Language (XSL) Version 1.1)の範囲内ですので、アパッチの FOP などのオープンソース XSL-FOプロセサでも共通であり、『AH Formatter』のユーザでない方でも活用いただけます。

なお、本書は、弊社が開発しているクラウドで書籍を制作・編集し、そのデータから PDF と EPUB、Kindle といった様々な形式の書籍を一元的に作成できる Webサービス『CAS-UB』を利用して作成しました。『CAS-UB』では内部的に XHTML から XSL-FO を利用して PDF を生成しています。

本書は、Amazon.co.jp三省堂オンデマンド(「オンデマンド和書(その他出版社)」の項)などからご注文いただけます。

本著が皆様の XSL-FO 活用のお役に立つよう、心より願っております。

 




瞬簡PDF 変換 2024
PDFをOffice文書へ高精度変換


HTML on Word
WebページをWordで作る!

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

前回に引き続き、参照エリアとインデントについて説明します。

ブロック(段落)全体に対するインデントは段落ブロックに対するmargin-*で表すことができますが、start-indent, end-indentの方が便利です。

start-indent、end-indentは参照エリアの内容辺を基準にして、指定したFOの内容辺までの距離を指定します。

次の例では、本文区画(基本版面)の内容辺から、章の内容への間隔を20pt(2文字分)とり、引用段落を10pt(1文字)字下げ)、表は基本版面一杯に設定する例です。それぞれ、start-indent=”20pt”、start-indent=”30pt”、start-indent=”0pt”と指定します。

<fo:block start-indent=”20pt” text-indent=”1em”>
<fo:block font-size=”16pt”>第1章</fo:block>
<fo:block background-color=”#EAEAEA”>
<fo:block font-size=”14pt” space-before=”0.5em”>節1</fo:block>
<fo:block>章や節の見出しなどからページの柱(ランニングヘッダーやランニングフッター)を設定したり、辞書のページの辺に最初の単語と最後の単語を示したりできる。</fo:block>
<fo:block text-indent=”0em” background-color=”white” start-indent=”30pt” >どれもみんな肥料や薪炭をやりとりするさびしい家だ。街道のところどころにちらばって黒い小さいさびしい家だ。(宮沢 賢治『秋田街 道』)</fo:block>
</fo:block>
<fo:block background-color=”#DDDDDD”>
<fo:block font-size=”14pt” space-before=”0.5em”>節2</fo:block>
<fo:block>章や節の見出しなどからページの柱(ランニングヘッダーやランニングフッター)を設定したり、辞書のページの辺に最初 の単語と最後の単語を示したりできる。</fo:block>
<fo:table start-indent=”0pt” z-index=”2″ background-color=”yellow”>
<fo:table-column column-number=”1″ column-width=”proportional-column-width(1)”></fo:table-column>
<fo:table-column column-number=”2″ column-width=”proportional-column-width(2)+2pc”></fo:table-column>
<fo:table-column column-number=”3″ column-width=”72pt”></fo:table-column>
<fo:table-body>
<fo:table-row height=”20pt”>
<fo:table-cell column-number=”1″ display-align=”before”>
<fo:block>Cell 1 </fo:block>
</fo:table-cell>
<fo:table-cell column-number=”2″ display-align=”center” text-align=”center”>
<fo:block>Cell 2 </fo:block>
</fo:table-cell>
<fo:table-cell column-number=”3″ text-align=”center”>
<fo:block>Cell 3 </fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:block>
<fo:block background-color=”#EEEEEE” z-index=”0″>
<fo:block font-size=”14pt” space-before=”0.5em”>節3</fo:block>
<fo:block>章や節の見出しなどからページの柱(ランニングヘッダーやランニングフッター)を設定したり、辞書のページの辺に最初 の単語と最後の単語を示したりできる。同じエリアの中で同じ種類が指定されていたり、空のときはエラーである。</fo:block>
</fo:block>

本文区画は参照エリアであり、インデントの指定はすべて、本文区画の辺からの距離となります。その結果レイアウトは次のようになります。

start-indent-sample1

同じFOのstart-indentの箇所に、代わりにmargin-leftを指定すると、次のようになります。マージンは、親のブロックの内容辺を基準に自分のブロックのボーダーまでの距離になるため、内側に積み重なってしまうのです。

start-indent-sample2

このようにインデントは参照エリアを基準にして、FOのネストの如何に関わらず、指定されたFOの内容エリアまでの距離を指定します。

XSL-FOでもCSSでも、基本はブロック/エリアという玉ねぎの皮のような入れ子レイアウトモデルです。このため入れ子にならない字下げ配置の指定は厄介です。インデントを使うことで、その厄介な配置を簡単に指定できます。

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




アウトライナー
PDFを解析して しおり・目次を自動生成


瞬簡PDF 編集 2024
かんたん操作でPDFを自由自在に編集

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 を組版するためのレイアウト仕様』(近日発売)




HTML on Word
WebページをWordで作る!


瞬簡PDF 変換 2024
PDFをOffice文書へ高精度変換

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組版のリスクは、文章はとっつきやすいけど規定が曖昧なことでしょうね。




HTML on Word
WebページをWordで作る!


瞬簡PDF 編集 2024
かんたん操作でPDFを自由自在に編集

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 に追い出しをマークし対応することとなりました。

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




瞬簡PDF 変換 2024
PDFをOffice文書へ高精度変換


瞬簡PDF 作成 2024
ドラッグ&ドロップでPDF作成

アンテナハウス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



アウトライナー
PDFを解析して しおり・目次を自動生成


瞬簡PDF 変換 2024
PDFをOffice文書へ高精度変換

『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)




瞬簡PDF 作成 2024
ドラッグ&ドロップでPDF作成


アウトライナー
PDFを解析して しおり・目次を自動生成

「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 ワンデーセミナー・ハンズオンワークショップ」開催のお知らせ

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




瞬簡PDF 書けまっせ 2024
PDFに文字が書ける! 入力欄を自動認識


瞬簡PDF 編集 2024
かんたん操作でPDFを自由自在に編集

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 評価版のお申し込み

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




アウトライナー
PDFを解析して しおり・目次を自動生成


HTML on Word
WebページをWordで作る!

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

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

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

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

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

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




瞬簡PDF 統合版 2024
アンテナハウスPDFソフトの統合製品!


HTML on Word
WebページをWordで作る!
Pages: Prev 1 2 3 ... 13 14 15 16 17 18 19 ... 25 26 27 Next