タグ別アーカイブ: AH Formatter

[AH Formatter V7.0 の新機能] BPIL による行分割

2020年2月20日にリリースされた『AH Formatter V7.0』の新機能、今回は行分割についてご紹介します。

『AH Formatter V7.0』では行分割を Knuth-Plass の Breaking Paragraphs into Lines(以降、BPIL)のアルゴリズムに従って行う方法を導入しました。BPIL は、主に欧文組版のためのアルゴリズムで、ブロック全体のバランスを考慮して分割位置を決定します。

BPIL については過去のブログで詳しく触れていますので、こちらもご覧ください。
Breaking Paragraphs into Lines

例えば、『AH Formatter』の従来の行分割では次のように組版されます。
従来の行分割の例

BPIL で組版すると以下のような結果になります。
BPILの行分割の例

全体のバランスが考慮され行末のアキの幅がより均等になります。
※ 行末のアキの幅を分かりやすくするため、あえて justify していません。

BPIL が機能するのは既定値でオプション設定ファイルの bpil で指定されている言語 “Latn Grek Cyrl” または axf:line-break=”bpil” が設定されているブロックです。制御はオプション設定ファイルなどで行え、もちろん従来の行分割になるよう機能を無効にすることも可能です。詳しくは行分割をご覧ください。

新しい行分割アルゴリズムが導入された『AH Formatter V7.0』を非是お試しください。

この記事の画像は公開サンプルを用いたものとなります。実際のデータは公開サンプルのページよりダウンロードいただけます。

評価版は以下よりお申し込みいただけます。
AH Formatter 評価版のお申し込み


2/7のXMLパブリッシング交流会に参加してきました

2020年2月7日、先週の金曜日に開催されたXMLパブリッシング交流会『ウェブ出版と日本語組版の未来』に参加してきました。アンテナハウスもブースを出展していた、page2020のイベントの1つという位置付けでした。

会場到着

会場は池袋サンシャインシティの文化会館7F会議室。最近の技術書典の会場として2F、3Fには来たことがあったので、まあ結構ギリギリの到着でも大丈夫かと高を括っていたのですが、素直にエスカレータを登っていたらスポーツジムに着いてしまい、慌ててエレベータを探しました。

そんなこんなで本当にギリギリの時間に会場に到着すると、席は前方から後方まで割と満遍無く埋まっていました。こくちーずでの申込数上限は80人で、終了後に確認したら登録者数は57人となっていましたね。

以下、スライドや発表に解釈を加えて記述している箇所がありますが、発表者の方の意図に沿えているか分からない箇所もございます。ご了承、ご指摘ください。

木田泰夫氏『JLReqタスクフォース』

Keynote for iCloud上の資料となるので、環境によってはご覧になれないかもしれません。FireFoxやSafariなら見られる筈です。

JLReq Task Force Chairmanの木田氏による、「W3C 日本語組版の処理要件」とその周辺の話となります。

原型としてはJIS X 4051:2004の「日本語文書の組版方法」となり、これを国際的な文書にまとめ直したもの、というのがJLReqの概要となります。

しかし、JLReqはJIS X 4051の単純な移植に留まらない、ということを発表を聴いて改めて意識させられました。

まず、非日本語話者にも要件を伝えるということから、JIS X 4051よりも詳細にその背景や用語の解説や図示が行われているということ。「ルビとはなにか」という説明が、ルビ文化が無い人のために必要になるといった例が挙げられました。

また、世界に向けて日本語組版における要件を発信したJLReqは、様々な言語における要件をまとめていく活動の先駆けとなりました。総称すると「xLReq」とでも言うべきこの活動は、世界が協力し多言語組版を実現していく上での重要なファクターとも言えそうです。

業界的な意味でも、W3Cの専門家と言語の専門家を繋ぐ架け橋としてxLReqがあるということでした。

JLReqTFとしても活動は続けられています。これは公開された活動で、GitHub上にインターフェースがあります。英語での意見投稿はハードルが高いと感じている方も、日本語で投稿した内容をJLReqのチームが拾い上げ、翻訳を行ってくれるとのことなので、積極的な参加を呼びかけておられました。

まず、JLReqの2版に向けた内容のアップデート。これは1版にドラスティックに変更が走るといった類のことではなく、

  •  正誤表の反映
  •  英語での記述の表現をより良くする、
  •  曖昧だった箇所の詳細化(ルビなど)
  •  参照文書としての完成度の向上

といった内容だそうです。

次に、JLReqの機能を滿たすようなCSSが定義されているか、あればその動作の検証の諸々と、そのドキュメント化までを行っているそうです。事前にキーワードとして挙げられていた「gap analysis」ですね。スライドの表にその例示があります。要件があっても実際にそれを実現できる仕組みがないとどうしようもないので、こういった調査を行ってくださっていることに頭の下がる思いです。GitHubで課題、意見の吸上げを行っているので、その整理自体も重要な仕事ということでした。

結びとして、「未来に向けて」という題で幾つかのお話をされました。

紙面とデジタルテキストとの違いということを軸に話されていたものの、多くは組版そのものが持っていた問題のうち、今まで人が都度なんとかしており、また完成したものが紙面など固定されたものであったために表に出ていなかったもの、という印象でした。

人間が監督するものと完全に自動で組版するものとの課題の例として、縦書きで左ルビの行と右ルビの行が隣り合うときの行間制御の例など(大抵は人間が位置をずらすことで対処)、画面サイズで文字の配置が変わる場合などに確かに考えねばならないものです。

また、世界で使われるということは、これまでの和文と欧文の高々2つの関係の独自の世界から、「多言語のうちの1つとしての日本語」ということを意識した要求にしていく必要がある、ということも「xLReq」、そしてインターネットとWebブラウザが登場してより顕在化した事柄ではないでしょうか。

そして、そもそも紙面上での組版の時代でも、媒体の事情に合わせて組版要件が変化していったということも、言われてみればその通りであるのに、見落としがちであった視点であったと思います。パラグラフマーク「¶」が、飾りではなく紙の値段が現在よりも高かったときに段落区切りを余白以外の手法で表していた、という例示がありました。

冊子の持っていた優位性の消失というのも興味深い話でした。ページを捲ることでのランダムアクセス(巻物はシーケンシャルですね)、これはデジタルテキストであればリンク機能で事足ります。新技術が登場するときに旧来の技術・表現を模倣するという視点での「デジタルテキストでの組版とその処理要件」は、どこに自分の立ち位置を合わせるかを考える上で重要なものだと感じました。

そして、参加者からの質問タイム。

「禁則処理や和欧文間のアキがJIS X 4051から引き継いでいるが、この要件を変更する議論はあるのか?」というもの。例えば「四分アキが適当な箇所と適当で無い箇所」といった具合ですね。「Tシャツ」という日本語としての単語の「T」と「シ」のアキが四分だと広すぎる、というような例が挙げられていました。

返答として、議論は行われているということでした。

関連して、和語の単語区切りのアイデアといったものも示されました。Webブラウザ表示では、日本語でも行末が不揃いであることもかなり受け入れられてきているので、今後そういった表現に関しての要件が必要になってくることも納得ですね。

「もっと皆さんに試してみてほしい」という言葉も印象的でした。

最後にされた「JLReqは今後『Rule』になるのか」という質問に対して「要件であり、複数あって良いものである」という姿勢が示されていました。その前にされたアキの変更議論なども含めての回答になっており、大変充実した内容でした。

田嶋淳氏『日本語組版に関連する CSS 規格の策定状況について』

https://speakerdeck.com/juntajima/ri-ben-yu-zu-ban-niguan-lian-surucssgui-ge-falsece-ding-zhuang-kuang-nituite

W3Cの作業草案(Working Draft)から勧告(Recommendation)に至る流れの解説の後、それに則って進められている本題のCSS規格の話へ移ります。

勧告候補まで行っても、状況によっては差し戻しされ議論に戻ることもあるというのは随時チェックする程でない身としてはショックがありました。

最新の仕様を追うならDraftを見ることになりますが、何せ草案なので揺れて怖いという話。

「CSS3」という呼称がCSS2.1までのバージョニングの話とは違うということは

不勉強であまり意識したことがありませんでした。CSS2.1に入っていた仕様をレベル3とし、各モジュールに分けて進行状況をレベルで表すということです。

各Webブラウザでの仕様の実装状況のチェック方法など、初学者に嬉しい内容のスライドとなっていました。

JLReqの発表でもあった、要件と対応するCSSのモジュールに関しても、そのモジュールを勧告まで持っていくには別のレイヤでの議論がある、ということでした。「行どり」のためのモジュールは2つほどあったけれどどちらもポシャってしまった話からも、その難しさが察せられます。

より高度なルビ機能の実装に向けたWebブラウザの動向という例も挙げられていました。FireFoxのみ両側ルビに対応を始めたものの、他ブラウザは行っていないといったズレがあるということでした。

定まっていない仕様が定まると、どのような場合に嬉しいのかということで、

text-spacingが規格化されれば、ぶら下げインデントでの約物の表示挙動が統一されたりする、といった例が挙げられていました。

自動縦中横のアイデアなど、どう実装するのか難しそうな話題もあるようです。

また、ルビと圏点を同時に使った場合の挙動といった、議論が定まっていないものもあります。ところで、Antenna House Formatterではルビと圏点の同時使用に対応しており、挙動としてはルビ文字の上に、親文字に対応する圏点を表示します。ルビ文字に合わせた圏点は行えません。

村上真雄氏『ウェブ出版と日本語組版の未来とCSS組版Vivliostyle』

https://vivliostyle.github.io/vivliostyle.js/viewer/vivliostyle-viewer.html#b=/vivliostyle_doc/ja/events/page2020xpub/&spread=false&renderAllPages=true

発表スライドもVivlioStyle製です。

紙とWebでの出版コンテンツの違いについてから始まりました。

どちらかというとページメディアとスクロールメディアの違いについてと言えなくもない内容でしたが、「CSSの表現力によってコンテンツの表現力が変わる」という主張は恐らくVivlioStyleの開発陣の情熱の起点となるものではないかと感じました。

電子書籍の形態として普及が進むEPUB3の話題も当然深く拘わってきます。EPUB3.0の仕様に縦書き機能が入ったことでも話題になりましたね。これも、W3CにおけるCSS標準化の進みによるもの、JLReqが貢献した1例といえます。

そして提示された「EPUBはウェブ出版といえるか」という疑問に対し、村上さんとしては現状そうではない、という立場のようです。

Web Publications」というそのものズバリなW3C Working Groupの存在と、それが現状停滞してしまっていること。この試みをそのまま形にする筈であったEPUB4.0も現状ではどうなるか分からない、とのこと。

また、メタデータの付与をJSON-LD形式で行うPublication Manifestについての言及もありました。こちらは勧告候補。

通常のWebページにSchema.orgに沿ったJSON-LDを付与することも聞くようになってきましたし、Webを志向する上ではそういった流れなのかもしれませんね。

各Webブラウザが機能を実装するにはとても時間がかかります。CSS Paged Media関連など、通常のWebページを表示するためのWebブラウザとしては後回しになりがちなCSS仕様もあります。一方で「標準化」のためには、いち早くその仕様を実装し、検証し、フィードバックを行うことも必要です。

CSSでの機能標準化をより強く進め、同じソースからCSSによって複数のレイアウトを実現し、印刷、EPUB、Web出版を1つのラインに載せたいという情熱を感じました。

「ここから本題です」と村上氏が発言し、会場に笑いが。確かにまだVivlioStyleの話が全然出ていませんでした。

商用のCSS組版ソフトウェアについても言及。弊社の「Antenna House CSS Formatter」の名前も上がりました。

VivlioStyleはオープンソースのJavaScriptプログラムで、EPUB Adaptive Layoutの機能やPaged Mediaなどの、Webブラウザが対応できていない機能をJavaScriptによって補完するものになります。大きなトピックとして、2019年からJavaScriptからTypeScriptに移行しました。

個人的にはVivlioStyle Flavored Markdownの話が聞きたかったのですが、デモもそこそこに時間終了となってしまいました。デモでは、同じHTMLソースからCSSの設定変更のみでレイアウトを大きく変更する例などを駆け足で紹介していました。

小形克宏氏『CSS組版とVivliostyleの未来』

https://www.slideshare.net/ogwata_1959/cssvivliostyle-227189333

VivlioStyleの沿革から。スライド外の情報としては、もともとInDesignのレイアウトをWebで実現したかったのがEPUB Adaptive Layoutの思想だったということで、驚きました。

開発の活発さをコミットログから見ると、会社時代と法人化以後を比較してもあまり衰えていない様子が表示されました。開発に参加してくれているメンバーなどにアンケートを取ったところ、「VivlioStyleの開発に加わると最新仕様の実装ができる」というところに魅力を感じている方が多いとコアメンバーが驚いたとか。ちなみに、コアメンバーがそのあたりに無自覚的だったことに会場から驚きの声が上がっていました。

開発者会議を現在月1度ほどの頻度で行っており、濃密な場となっているそうです。

そして、これからも開発を継続していくために、現在法人としてのVivlioStyleに欠けている、開発者支援のための費用など用意していくために、VivlioStyleを利用したサービスを構想中ということで、「VivlioStyle Pub」の構想が紹介されました。

VivlioStyleを利用したオンラインエディタ「Viola」を元に、「ブラウザで原稿執筆可能」「PDF/X-1a出力可能」「(独自仕様の)Markdown原稿をサポート」を目玉にサービスを行っていくというもののようです。VivlioStyle Pubとしては技術同人誌出版などを当面のターゲットとし、印刷所との連携などまで持っていくつもりとか。

VivlioStyle開発メンバーでもあるspring-raining氏のCSS組版・パブリッシング交流会でのViolaの発表が去年の6月ごろだったことを考えると、こういったプロジェクトでの歯車が噛み合う瞬間の速度というものの凄まじさを感じずにはいられません。同じく去年のCSS組版・パブリッシング交流会で課題として挙げられていたPDFの規格問題もGhostScriptでのアウトラインフォント埋め込みを実装したメンバーがVivlioStyle開発メンバーに参加したということです。

CSSの未だ定まっていない仕様も、それを実際に実装し、フィードバックしていくシステムを調えていくこともまた重要で、どんな立場からでもその立場なりにできることがあるということを強く印象づけるXMLパブリッシング交流会となりました。


page2020へ出展

からまで開催される「page2020」 にアンテナハウスは今年も出展いたします。

バリアブル印刷や印刷物制作業務の効率化でのAH Formatter、PDF Tool APIの利用方法等を中心にDBとの連携、PDFを作成するだけではなく、今あるPDFの再利用をテーマにご紹介いたします。また、PDF 変換などを行う各種システムコンポーネント製品など、企業内のシステム構築のための様々な支援ツールを、システム開発者、システム・インテグレータ向けにご紹介いたします。

また、弊社ブースへお越しいただき、お名刺の交換をさせていただいた方には、『PDF CookBook 簡易版』をご提供いたします。

■ ご紹介製品

AH Formatter

XSL-FO を忠実に実装し、日本語組版など多くの拡張機能で商品レベルの書籍組版ができます。

PDF Tool API

ページ結合・分割、しおり・注釈編集などのPDF加工機能を提供するAPIです。
ブラウザからの呼び出しでの利用方法をデモします。

Office Server Document Converter

Microsoft Officeがインストールされていない環境でも、Word/Excel/PowerPoint等の文書をPDF/SVG/TIFF/JPEG/PNG/TIFF/INX/XPS ファイルへダイレクトに変換するライブラリです。

その他

PDFをOffice文書やXMLデータに変換、PDF内の画像を抽出する各種ライブラリをご紹介します。

ご来場される際には、是非とも弊社ブースへお立ち寄りください。

■ 展示会詳細とアンテナハウスブース

「page2020」

 日時: 2020年2月5日(水)~7日(金)
会場: サンシャインコンベンションセンター
住所: 東京都豊島区東池袋3丁目1
ブースNO: D-28
イベント詳細ページ: https://page.jagat.or.jp/

〒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 : https://www.antenna.co.jp/


[書籍紹介] MathML 数式組版入門 英語版の販売開始

この度、2019年11月12日に「MathML 数式組版入門」の英語版「An Introduction to MathML Typesetting」の販売を開始いたしました。

AH Formatter

Amazon.com より販売中となっています。
An Introduction to MathML Typesetting

こちらの書籍「An Introduction to MathML Typesetting」は 2017年8月に発売した「MathML 数式組版入門」をベースにしたもので、海外の皆さんにも幅広く利用していただこうと翻訳に着手し販売に至りました。翻訳にあたっては海外の皆さんにご理解いただけるよう表現の全般的な見直しも行いました。

MathMLとは?と思われた方、これまで当ブログで MathML について紹介した記事を以下にまとめていますので、是非ご覧ください!
[AH Formatter] MathML への取り組み

日本語版の「MathML 数式組版入門」の販売も継続しております。
書籍は次の販売店よりお買い求めいただけます。
販売店:
Amazon.co.jp
三省堂書店
楽天ブックス
honto

「MathML 数式組版入門」は全文を PDF形式で無料公開していますので、ご活用ください。
MathML 数式組版入門(PDF形式)
 
 
AH Formatter ロゴ

本書や MathML の組版に使用した『AH Formatter』は以下のページより評価版をお申し込みいただけます。こちらも合わせてお試しください。
AH Formatter 評価版のお申し込み

『AH Formatter』についてお問い合わせがございましたら sis@antenna.co.jp 宛てにご連絡ください。


マークダウン原稿を AH Formatter を使って PDF にする

自動組版を使って製本するにあたって、原稿を何で書くかという選択は後に使う労力を決定する重要な要素です。
その執筆形態はさまざまなものがあります。
例としては XML や HTML がありますが、これらはタグを駆使して書く必要があります。
これらに対して、マークダウンは基本的にタグを使いません。
マークダウンで原稿を書いて、それを製本に使用できれば執筆作業が簡便化されるかもしれません。

マークダウン原稿から AH Formatter 経由で製本用の PDF を作成することが可能です。
あくまで一例なので、この方法が絶対というわけではありません。

その手順の概要としては
1. 原稿をマークダウンで書く。
2. マークダウン原稿を HTML に変換。
3. HTML を XSLT で加工。
4. AH Formatter を使い HTML+CSS で PDF出力。
という手順です。

今回はその手順をごく大まかに説明します。

まず原稿をマークダウンで書きます。
その原稿を Node.js の markdown-it というプラグインを使って HTML化します。
次に目次や索引を XSLT で付与します。
最後に、できた HTML と CSS を使って AH Formatter で組版します。
そうすると冊子本PDF が出来ます。

この手順により冊子本を作成する手段にマークダウンというもう一つの選択肢が出来ました。

今回は個々の手順をまったく掘り下げませんでしたが
アンテナハウスがこの実践を本にまとめたものがあるのでご興味のある方はチェックしていただけると幸いです。
→ 「簡単!Markdown+CSSによる冊子本作り -理論と実践-

販売は PDF版のみですが、300円(税抜)と非常にお求めやすくなっております。
 
 
AH Formatter ロゴ

『AH Formatter』の評価版は以下のページよりお申し込みいただけます。是非、お試しください。
AH Formatter 評価版のお申し込み

『AH Formatter』についてお問い合わせがございましたら sis@antenna.co.jp 宛てにご連絡ください。


ドロップキャップ

ドロップキャップとは段落先頭の文字を大きく組むことで、書籍の組版ではよく行われています。しかし、AH Formatter V6 にはドロップキャップの機能はありません。XSL-FOやCSSに勧告された仕様はありませんが、CSSにはドラフト仕様があります。

4. Initial Letters

そこには次のようなサンプルが最初に示されています。

sample-1
これをFOで強引に組むには、いろいろやり方がありますが、例えば次のようにしなければなりません。

<fo:block>
<fo:float axf:float-x="start" axf:float-wrap="wrap">
<fo:block-container height="5em" margin-top="-1.67em">
<fo:block font-size="5.53095em">É</fo:block>
</fo:block-container>
</fo:float>tudiant (au féminin étudiante) est un mot dérivé du latin ...

ここでは、font-size と margin-top などを手計算で設定して大きさと位置を合わせています。これらは、ドロップキャップが次のように配置されるように計算されています。cap-height や baseline の位置は、使用しているフォントによって決まります。

initial-letters-cap-height
AH Formatter でドロップキャップを自動組版するためには、これらの値を自動的に計算することが必要になります。そして、CSSのドラフトに合わせると次のように指定できればよいでしょう。

<fo:block axf:initial-letters="3">Étudiant (au féminin étudiante) est un mot dérivé du latin ...

これはもっとも単純な例で、実際のドロップキャップはこんな単純ではありません。<fo:float>を利用する実装では、本当の<fo:float>が絡んできたときの制御はとても複雑になります。CSSのドラフトは、行の高さが一定であるという暗黙の前提があります。行の高さが途中で変化するようなケースでは、結果を利用者が予測できず実装も極めて複雑になるでしょう。

ドロップキャップは、次期 AH Formatter で対応される予定です。


海外出展情報 その2

10月14から17日にロンドンで開催された S1000D User Forum は、航空宇宙および防衛分野の技術文書を作成する多くのアンテナハウスのパートナーおよび顧客と会うことができました。アンテナハウスは卓上展示とベンダーとしてのプレゼンテーションを行いました。フォーラムには世界中から300人以上の航空宇宙および防衛分野の専門家が集まりましたが、その出席者の多くに弊社の Antenna House XSL Formatter を使用していただいています。また同じく弊社の製品である Regressions Testing System と、OSDC (Office Server Document Converter) の PDF を SVG に変換する機能に大きな関心が寄せられました。航空宇宙および防衛分野で使用される技術文書においては、依然としてページ出力が非常に重要とされていますが、現在の目標はその文書をタブレット上に表示することです。SVG になぜ関心があるのかというと、そのページを表示する速度にあります。

プレゼンテーションでは Antenna House XSL Formatter を使用してS1000D サンプル文書をフォーマットし、PDF と SVG 出力を作成しました。次に Regressions Testing System のデモンストレーションでは2つのディレクトリにある8つのペアになっている文書(合計で2,000ページ)の内容の比較を行いました。 デモンストレーションでは各ペアの文書の全ての相違点を2分以内に発見することができました。


海外出展情報 その1

10月にAntenna Houseは、Xplor Webinarとロンドンで開催された S1000D User Forum / ILS specification day に参加しました。

今回はXplor Webinarのご紹介をしたいと思います。

10月16日に開催された Xplor International が主催する教育ウェビナーで、弊社のシニアアーキテクトであるトニー・グラハムはAccessibility Mattersを発表しました。多くのアンテナハウスの顧客とパートナーがこのウェビナーに参加し、Xplorのメンバーもこの話題に興味を持っていました。このウェビナーはデジタルの世界においてアクセシビリティがいかに、またなぜ重要であるかを学ぶ絶好の機会でした。

プレゼンテーションの中で、トニーはHTML、Web Content Accessibility Guidelines(WCAG)、およびPDF / UA(Universal Accessibility)標準のアクセシビリティ機能を調査しました。アクセス可能なHTMLやPDFを作成するために必要な情報は、通常ソースXMLに含まれているか、ソースXMLから推測できるため、ユーザーの行動よりもファイル形式に重点を置いて調査しています。ただしXMLそのものをユーザーが目にすることはほとんどありません。このウェビナーでは、神経障害や失読症などの学習障害のある人がアクセスしやすいように、コンテンツのスタイリングが持ついくつかの側面についても調査しました。

プレゼンテーションはこちらのYouTubeからご覧いただくことができます。

https://www.youtube.com/watch?v=X00icPURCvw&feature=youtu.be


Balisageで『Loose-leaf publishing using Antenna House and CSS』の発表 その3

Balisageで『Loose-leaf publishing using Antenna House and CSS』の発表 その2

この記事の続きです。
8月2日(金)米国Washington DCで開催された恒例Balisage会議にて米国の高名なコンサルタントであるEliot Kimber氏より「Loose-leaf publishing using Antenna House and CSS」と題した発表がありました。
原文はこちらにあります:

Loose-leaf publishing using Antenna House and CSS(Balisage: The Markup Conference 2019 July 30 – August 2, 2019)

発表資料ではこれらの課題をどのように解決したかを具体的なサンプルコードを示し説明を行っています。原文の他に、日本語翻訳版もWeb上にご用意いたしました。ぜひご参照いただき、より理解を深めていただければ幸いです。

https://www.antenna.co.jp/AHF/ahf_jirei/pdf/201909/Loose-leafPublishingUsingAntennaHouseAndCSS-J.pdf


Balisageで『Loose-leaf publishing using Antenna House and CSS』の発表 その2

Balisageで『Loose-leaf publishing using Antenna House and CSS』の発表
この記事の続きです。

8月2日(金)米国Washington DCで開催された恒例Balisage会議にて米国の高名なコンサルタントであるEliot Kimber氏より「Loose-leaf publishing using Antenna House and CSS」と題した発表がありました。

原文はこちらにあります:

Loose-leaf publishing using Antenna House and CSS(Balisage: The Markup Conference 2019 July 30 – August 2, 2019)

ルーズリーフ出版とは、以前に印刷された文書のページ番号は変更せずに、内容の更新を行う出版方法です。文書の更新により新しいページが作成されると、それらのページには元のページ番号に修飾子を加えたページ番号、例えば「10.1」、「10.2」などが付与されます。このようなページは「ポイントページ」と呼ばれます。

Eliot Kimber氏の挑戦

ルーズリーフ出版の課題の1つは、文書の2つのバージョン間でどのページが変更されたかを判断することです。Eliot Kimber氏は次の様なパイプラインでルーズリーフ出版を行うことを考えました。

  1. 編集者は、変更されたページの開始と終了のマークを含むXMLソースを準備します。開始は常に、以前のバージョンのページの開始に対応し、終了は変更が終了する場所です。
  2. 入力XMLソースはXHTMLを生成するために前処理し、必要に応じて一般的にはCSSページ組版を可能にし、また具体的には、変更ページの生成を可能にするために拡張されます。
  3. 拡張されたXHTMLは、CSSスタイルを使用してAHFによってレンダリングされ、最初のエリアツリーが生成されます。
  4. 最初のエリアツリーが処理され、ポイントページ番号とそれらのページを参照するページのページ番号が更新されます。変更パッケージが作成されている場合、変更されていないページはすべて除外され、生成された「更新の説明」の節、目次、表紙など、変更されたページとパッケージに必要な他のページのみを反映するエリアツリーが作成されます。
  5. マスターページの履歴データベースが更新され、更新されたバージョンの文書のページの詳細が反映されます。これには開始ページと終了ページのIDを持つ要素からのマッピングが含まれます。
  6. 更新されたエリアツリーはAH FormatterによってPDFにレンダリングされます。

そのためには、変更された一連のページ内のどの場所でポイントページが必要かを知る必要があり、変更パッケージの目次を生成する必要があり、変更パッケージの「更新の説明」と「有効ページのリスト」の節を生成する事が課題となりました。

CSSページ組版の課題

加えて、CSSでページ組版を行う上で、いくつかの課題があります。
CSSページ組版を有効にするために完了しなければいけない事項としては:

  • 目次、巻末索引、および類似のナビゲーション構造の生成。
  • 構造化されたヘッダとフッタを作成するために使用される要素の生成。たとえば書式設定が異なる複数行のヘッダ、またはHTMLの個別の要素を必要とするインライン書式設定など。
  • @class値またはその他の考えられる手がかりを追加して、CSSスタイリングを可能に(先読みして)またはより便利にする。
  • ソースの順序に関係なく表示される要素の並べ替え。たとえば、図のキャプション要素を図の上部から図の下部に移動したり、メタデータ要素または属性を使用して表示されるコンテンツ(著作権ページや各記事または章の著作者など)を合成する。
  • ラッパー構造を追加して特定のフォーマット効果を有効にするか、スタイリングを簡単にする。
  • 作成されたさまざまなマークアップパターンを持つ要素のマークアップを標準化する。たとえば、リスト項目に段落要素を追加してCSSスタイルシートを単純化する。
  • CSSだけでは生成が困難または不可能なテキストを生成する。

またスタイルシートを実装する際、次の様な課題がありました。

  • 特定のレイアウト機能に関連する定義を、関連するW3C仕様の中で見つける。
  • AH Formatterが仕様で定義された特定の機能を実装しているかどうかを判断する。
  • 複雑なレイアウト要件においては、AH Formatterを使用した最適なソリューションを判断する。
  • 改ページを動的にコントロールする。

ほとんどのレイアウト要件では、CSSの開発は通常のCSS技術の範疇の単純な応用で可能でしたが、 次の複雑な要件を満たす必要がありました。

  • ページのfirst またはlast値を反映する必要がある柱 (ランニングヘッダとランニングフッタ) の要素の境界を越えたカウンターと変数の管理。
  • 改ページの管理。 改ページ制御のCSSセマンティクスは、XSL-FOほど明確ではない。特に、CSSには「keep together always」または「keep with next always」コントロールがない。 これにより、ページの下部にあるセクション見出しと、コンテンツが介在しないサブセクションの見出しの間など、残念な改ページが生じることがあった。改ページをより適切にコントロールするには、AHF拡張機能を使用する必要があった。
  • 幅の広いページ端領域のサイズとレイアウトの制御。ページ端領域のCSS設計では、単一の領域が端領域のほとんどまたはすべてを占めることを明確に許可していない。これにより、長いコンテンツ(たとえば、長いセクション見出し)を持つ右揃えまたは左揃えのヘッダを作成することが困難になっている。

Eliot Kimber氏はこれらの課題をCSSページ組版用にXMLを準備し、AH Formatterの拡張機能を用いて、クリアーしていきました。

発表資料ではこれらの課題をどのように解決したかを具体的なサンプルコードを示し説明を行っています。原文の他に、日本語翻訳版もWeb上にご用意でき次第、ここにお知らせいたしますので、ぜひご参照いただければと思います。

その3 >>


Pages: 1 2 3 4 5 6 7 8 9 10 ... 20 21 22 Next