タグ別アーカイブ: AH Formatter

ドロップキャップ

ドロップキャップとは段落先頭の文字を大きく組むことで、書籍の組版ではよく行われています。しかし、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 で対応される予定です。


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


[AH Formatter] コマンドラインインターフェイスの小ネタ

今回は『AH Formatter』の
コマンドラインインターフェイスについて
ちょっとした機能(パラメータ)を紹介させていただきます。

ちなみに『AH Formatter』のコマンドライン実行は、Windows版では次のようにします。

> cd [Install directory]
> AHFCmd -d samples\sample.fo -o tmp\sample.pdf

パラメータ -d は組版対象のドキュメント、-o は出力ファイルの指定です。

指定できるパラメータは多くありますが、
簡単なページ作成の進捗状況を見る -pgbar というものがあります。
次の画像は実際に -pgbar を指定して実行した画面です。

実際に -pgbar を指定して実行した画面

“.” は組版の、”-” は出力の 1ページごとの進捗を示します。
ページ数の多いドキュメントを実行した場合の進捗状況、
何らかのトラブルが発生したページ数の特定などいろいろと活用できます。

また、次のようなパラメータもあります。

・AHFCmd -v
ご利用の『AH Formatter』の詳細バージョン、シリアル番号などが表示されます。
お問い合わせをいただく際に簡単にそれらの情報をご確認いただけます。

・AHFCmd -h または -?
コマンドラインインターフェイスのパラメータの簡単な解説を表示されます。
 
 
AH Formatter ロゴ

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

XSL-FO の基本仕様と『AH Formatter』の拡張機能をお試しいただけるよう「サンプル FO 集」もご用意しています。

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


「技術書典7」に出展いたします。

来週 9月22日(日)に開催される「技術書典」(主催:TechBooster / 達人出版会)に向けて、最近、組版界隈で話題の Markdown(と CSS)を用いて、実際に技術同人誌『簡単!Markdown+CSSによる冊子本作り ―理論と実践―』を作成いたしました。当日販売いたしますので、ぜひお手にとってご覧ください。

『簡単!Markdown+CSSによる冊子本作り ―理論と実践―』の表紙

本書籍の内容については、先日、弊社ブログでご紹介しております。ご関心ございましたらご覧ください。
Markdown+CSS組版で冊子本(PDF)を作ってみる

◆ 技術書典概要
・開催日時:2019年9月22日(日) 11:00~17:00
・開催場所:池袋サンシャインシティ2/3F 展示ホールC/D(文化会館ビル2/3F)
・サークル名とブース番号:アンテナハウスCAS電子出版(き45D)
販売書籍
技術書典7

◆技術書典ご来場予定の方に

一般参加者は13時まで有償の整理券が必要です。ご注意ください。

整理券のご案内

整理券は1,000円で、3種類あります。

(1) Cホール(3階)から入場 11時~
(2) Dホール(2階)から入場 11時~
(3) Dホール(2階)から入場 12時~

弊サークルの場所は、展示ホールD(2F):き45Dです。

アンテナハウスCAS電子出版(き45D)

入場が13時過ぎると無償(ただし、待機列解消後)になります。Markdown本はたくさん印刷しましたので、まず売り切れはないと思いますので、遅くてもたぶん大丈夫なはずです。


[AH Formatter] MathML への取り組み

当ブログでこれまでも何度か話題として取り上げていますが、改めて『AH Formatter』の MathML への取り組みに触れたいと思います。

まず、MathML(マスエムエル)とは?
MathML は、Mathematical Markup Language の略であり、XML形式で数式などの数学的記述を表現するための言語です。
数式「x+2」であれば次のような記述で表現されます。

数式「x+2」

<mi> は変数など識別名、<mo> は +, – などの演算子、<mn> は数値を表します。

『AH Formatter』は MathML を描画するためのエンジンを独自開発、特に V6.2 では MathML描画エンジンの刷新と合わせ、W3C による「MathML 3.0」に対応し PDF中へのイメージを高い解像度で描画することが可能になりました。その後も MathML 3.0 2nd Edition に対応、最新 V6.6 では数式用の OpenTypeフォントに含まれる、MATHフィーチャへ対応するなど改良を続けています。

製品ページ、関連するブログ記事により詳細な情報を掲載しています!

・製品ページ:MathML で記述した数式を PDF に変換
[AH Formatter] MathML 3.0 2nd Edition 対応
[AH Formatter V6.6] OpenType の MATHフィーチャに対応

製品以外でも MathML を使って数式組版を行うための入門書「MathML 数式組版入門」の販売や公開、描画エンジンの性能の一端をご覧いただくため W3C の MathML仕様書を『AH Formatter』で組版、PDF出力したものを公開するなど MathML の普及のため活動を行っています。

[書籍紹介] MathML 数式組版入門
AH Formatter の CSS組版例「MathML 3.0 2nd Edition」

「MathML 数式組版入門」は、PDF版を公開しています。興味を持たれた方には是非ご覧になっていただきたい内容です。
PDF版
 
 
AH Formatter ロゴ

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

XSL-FO の基本仕様と『AH Formatter』の拡張機能を気軽にお試しいただくため「サンプル FO 集」もご用意しています。

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


[AH Formatter] Markdown形式の原稿を CSS組版により PDF文書に変換するための事例紹介

AH Formatter の導入事例紹介ページに有限会社フェリックス・スタイル様の事例「AH Formatter を用いた Markdown-PDF 変換事例紹介」を掲載しております。

事例紹介ページにある PDF文書では、Markdown形式の原稿を『AH Formatter』の CSS組版により、表紙や目次、ノンブルなどを備えた PDF文書へと変換するフローが詳解されております。

また、この事例紹介の PDF文書も Markdown原稿から作成されており、その作成に用いたソースファイル一式も GitHub にて公開しておりますので、実際に Markdown原稿から CSS組版を利用した PDF へのビルドをご体験いただけます。是非ご覧ください。

なお、主に海外の方に向けて、ソースファイルは英語版もご用意しております。
Markdown-PDF
https://github.com/2SC1815J/md2pdf/tree/en (English Version)
 
 
AH Formatter ロゴ

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

XSL-FO の基本仕様と『AH Formatter』の拡張機能をお試しいただけるよう「サンプル FO 集」もご用意しています。

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


DITAをPDFに(PDF5-ML)

昨日 は DITA を docx に変換する DITA-OT プラグインのことを書きましたが、やはりいまだにマニュアル系は PDF が主流です。

DITA-OT には DITA で書かれたインスタンスを PDF にするためのスタイルシート(プラグイン)が標準で入っているのですが、残念ながら機能的にしょぼくて、あまり積極的に使いたいと思うようなものではありません。多くの人がまず「日本語が文字化けするんだけど」という問題にぶつかります。

アンテナハウスはこれに替わるプラグインを公開しました。”PDF5-ML”といいます。
https://github.com/AntennaHouse/pdf5-ml

“ML”というのは”Multiple Language”の略で、その名のとおり多言語対応を得意としています。
ひとつの DITA トピックファイルの中に複数言語が混在することがありますが、このような場合でも言語毎のフォント選択をきっちり行うことができます。
DITA 採用時にぜひお試しいただければと思います。

アンテナハウスはこのプラグインのカスタマイズ作業も請け負っております。PDF 生成でお悩みの方はご一報下されば幸いです。


DITAからWord(docx)への変換

最近「DITA から Word へ変換することはできないか」というお問い合わせをいただくようになりました。
日本で英語マニュアルを作って、それを各国の販社に送り、販社側でローカライズするには Word が便利なのでしょう。

Word へ変換する DITA OTプラグインはあるにはあります。
https://github.com/jelovirt/com.elovirta.ooxml
しかし、もう2年くらいメンテナンスがされておらず、ちょっと商用では使えないレベルのものです。docx の仕様があまりにも難しいというのが理由のひとつだと思われます。
XSL-FO の仕様は PDF にすると500ページ程度に対して、Word の Open XML File Format の仕様は PDF でなんと6700ページ。全部読み切った人はいるのでしょうか(^^;

ところがところが、昨年アンテナハウスはこの変換プラグインを開発しちゃいました。しかもオープンソースで、どなたでも自由にお使いいただくことができます。
https://github.com/AntennaHouse/ah-wml

そして、来る3月6日に DITAコンソーシアムジャパン主催の「DITA Festa 京都」の開催が計画されているようで、その中で上記のようなことをテーマにしたセッションがあるみたいです。
関西方面でご興味がある方は今のうちに予定に入れておいてください。

DITA


アンテナハウス製品におけるJava 11以降の動作確認と動作保証

2019年1月でJava 8のサポートが切れます。
そして、2018年9月下旬、Java 11が予定通り出荷され、お客様からの問い合わせが入っていますので、アンテナハウス製品におけるJava 11以降の動作確認、動作保証について、現段階での方針をお知らせします。

Oracleが、これまで無償で配布してきたJDKのサポートを有償化するという話が出て、いろいろと混乱した話が飛び交いましたが、OpenJDKを使えば、無償で使えます。
OpenJDKは、OracleからJDKのソースコードの提供を受けて、いろんな企業や団体がビルドして無償で配布しているもので、企業や団体によって、有償サポートがあったりなかったり、サポート料やサポート期間もマチマチです。
この辺は、Linuxに各種のディストリビューションがあるのと似ています。
詳しい話は、参考に挙げた記事やサイトをお読みください。

アンテナハウスは、OpenJDKの中でも、LTS(Long Term Support)バージョンのOpenJDKを、無償で、最低4年間は、セキュリティやバグフィックスのアップデートを提供するといっているAdoptOpenJDKによって、動作確認と動作保証を始めています。
AdoptOpenJDKのJava 11は、最低、2022年9月までアップデートが提供される予定です。

AdoptOpenJDK

AdoptOpenJDK Support

First Availability End of Availability [1]
Java 8 (LTS) March 2014 At Least Sep 2023 [2]
Java 9 Sept 2017 March 2018
Java 10 March 2018 Sept 2018
Java 11 (LTS) Sept 2018 At Least Sept 2022 [2]

AdoptOpenJDKでダウンロードできるバイナリのうち、アンテナハウスが動作確認、動作保証の対象とするJava 11は、「OpenJDK 11 Hotspot」です。
Hotspotは、元々Sun(Javaの本家)が作ったJVM(Java仮想マシン)です。Oracleがメンテナンスや機能拡張をしています。これがリファレンスと考えてよいので、このJVMのみ動作保証対象にする予定です。
理由は、JVMは多くの実装があるので、やり出したら、きりがないからです。
たとえば、上記サイトには、Java 11でも、
「OpenJDK 11 with Eclipse OpenJ9」
がありますが、OpenJ9は、IBMが開発したJVMです。これは動作保証の対象にはしない予定です。
アンテナハウス自身が、動作確認、動作保証をするJVMを限定することについては、何卒、ご了承ください。

現在、アンテナハウス製品で使われているJavaのコードは、Java 8のコンパイラでビルドして出荷していますが、動作確認を始めた製品では、いずれも、問題なくJava 11で動いています。
アンテナハウスの製品のうち、Javaを使っている製品については、いずれ、各製品のウェブページで、動作確認が取れたことをお知らせしていく予定です。
なお、Java 8のコンパイラからJava 11のコンパイラに切り替える時期は未定です。
Java 11のコンパイラでビルドすると、Java 11の実行環境が必要になり、Java 8では動かなくなることが予想されます。
2019年1月でJava 8のサポートが切れるといっても、すぐ、Java 11に乗り換えられるお客様は、そんなに多くないだろうと考えていますので、2019年早々のコンパイラの切り替えは考えていません。
Javaを使っているアンテナハウス製品のリリース時期によりますが、今後、1年から数年をかけて、コンパイラを切り替えていくことになるでしょう。

参考:
【GlassFish勉強会レポート】各JDKベンダの動向を知ってJava 11に備えよう
2018年10月5日
杉山貴章

Javaは今も無償です

Oracle Java SE サポート・ロードマップ
(2018年 9月25日更新)

Time to look beyond Oracle’s JDK
Monday, 3 September 2018


Pages: 1 2 3 4 5 6 7 8 9 10 ... 18 19 20 Next