カテゴリー別アーカイブ: XSL-FO・CSS

「MathML 数式組版入門」の大学図書館への寄贈についてのお知らせ

2017年12月から弊社では数式など数学的記述をコンピュータ上で表現するための言語 MathML(マスエムエル)の普及・啓蒙のため、数式組版を行うための入門書「MathML 数式組版入門」を全国の大学図書館に寄贈する案内を計画、問い合わせを行ってまいりました。

これまでに 456 の大学図書館へご案内を送り、199 の図書館よりご返答をいただきました。寄贈のご希望は 66 の図書館よりいただき、それぞれの図書館へ発送いたしました。ご返答いただいた図書館の 3割以上に受け入れていただき、MathML へ関心の高さを感じました。今後も情報発信など積極的な活動を行います。

「MathML 数式組版入門」の寄贈は現在も引き続き行っています。ご希望の図書館は、xml-info@antenna.co.jp までご連絡ください。

なお、本書は全文を PDF形式で無料公開もしています。是非、ご活用ください。
MathML 数式組版入門(PDF形式)

組版に使用した『AH Formatter』の評価版は以下のページよりお申し込みいただけます。また、『AH Formatter』についてお問い合わせがございましたら、弊社システム営業グループ(sis@antenna.co.jp)までお問い合わせください。
AH Formatter 評価版のお申し込み

◆ MathML の組版について

『AH Formatter』は MathML を独自開発したエンジンにより描画します。そのため、MathML が記述された FO や HTML は事前に変換する必要はなく、そのまま組版可能です。MathML の組版については、「MathML 描画エンジン」をご覧ください。

 


[AH Formatter] HTML+LaTeX から HTML+SVG への変換

HTML の中に数式が LaTeX で記述されているとき、『AH Formatter』で数式を含めて PDF 出力したいというご要望を実現するため、弊社では HTML に記述された LaTeX部分を MathJax(※)で SVG に変換して、HTML と SVG にしてから『AH Formatter』で組版することをお勧めしています。
MathJax とは、MathML・TeX・ASCIImath で記述された数式をブラウザ上でレンダリングする JavaScript エンジンです。閲覧者は数式の表示のためにブラウザにアドオンのインストールや、フォントの用意などをすることなく、数式を表示できます。

この HTML+LaTeX から HTML+SVG の変換を実現するために弊社では SlimerJS / PhantomJS用のスクリプト「mathjaxToSVG.js」をご用意しました。次のようなコマンドラインで HTML+LaTeX を HTML+SVG にすることが可能です。(推奨環境:Linux+SlimerJS+Firefox)

使用例(入力ファイル input.html、出力ファイル output.html):

$ slimerjs mathjaxToSVG.js input.html > output.html
または
$ phantomjs mathjaxToSVG.js input.html > output.html

次のように中間生成物の HTMLファイルを出力せずに、PDFを出力することも可能です。

$ slimerjs mathjaxToSVG.js input.html | AHFCmd -d @STDIN -x 3 -o output.pdf
または
$ phantomjs mathjaxToSVG.js input.html | AHFCmd -d @STDIN -x 3 -o output.pdf

◆ mathjaxToSVG.js のお問い合わせ

SlimerJS / PhantomJS用のスクリプト「mathjaxToSVG.js」をお試しご希望の方、また、『AH Formatter』についてお問い合わせがございましたら、弊社システム営業グループ(sis@antenna.co.jp)までお問い合わせください。

◆ MathML の組版

なお、MathML については『AH Formatter』は独自開発したエンジンにより描画します。そのため、MathML が記述された FO や HTML を事前に変換する必要はなく、そのまま組版可能です。MathML の組版については、「MathML 描画エンジン」をご覧ください。

 


[AH Formatter] Introduction to CSS for Paged Media(CSS組版入門)

先月開催された「XML Prague 2018」で
弊社の社員が「Introduction to CSS for Paged Media」において使用した CSS組版のチュートリアル(CSS-Print.pdf)を公開しています。
Introduction to CSS for Paged Media(CSS組版入門)
CSS-Print-XMLPrague2018.zip

このチュートリアルは『AH Formatter』の CSS組版によって作成されています。
組版に使用した html とスタイルシートほか必要なデータは「CSS」フォルダに格納されていますので、
フォルダ内の「CSS-Print.html」を『AH Formatter』で開くことで、チュートリアルの組版を確認できます。

なお、現在このチュートリアルは英語版しかありませんが、日本語版の作成も予定しています。

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

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


[AH Formatter] インデントの継承のお話

こんにちは
AH Formatter』サポート担当です。

今回もお問い合わせのあったサポート案件から1つご紹介します。

『AH Formatter』の拡張機能の1つに、axf:overflow-condense というのがあります。
大きさが指定されたエリアにテキストが入りきらない=オーバーフローする場合に
font-size や font-stretch を調整(フォントサイズを小さくしたり長体にしたり)して詰め込むというものです。
サンプルページ

ある時、この axf:overflow-condense が効かないというお問い合わせがありました。
FOは以下のように記述されていました。

 <fo:list-block provisional-label-separation=”30pt” provisional-distance-between-starts=”40pt” >
  <fo:list-item>
   <fo:list-item-label end-indent=”label-end()”>
    <fo:block-container width=”30pt” overflow=”condense” axf:overflow-condense=”font-stretch” background-color=”yellow” wrap-option=”no-wrap”>
     <fo:block>A.1.1</fo:block>
    </fo:block-container>
   </fo:list-item-label>
   <fo:list-item-body start-indent=”body-start()”>
    <fo:block>Sample Data</fo:block>
   </fo:list-item-body>
  </fo:list-item>
 </fo:list-block>

リストのラベルに fo:block-container を置いて、
ラベルのテキストが width=”30pt” を超える場合は
font-stretch で長体にして収めようとしています。
ところが、組版してみると次のような結果になります。

 [AH Formatter] インデントの継承のお話

ラベルの “A.1.1″ が長体にならず、はみ出していますね。。。。

fo:block-container に width は指定されているし他の指定も間違っていませんし。。。。

どうして axf:overflow-condense=”font-stretch” が効かないんでしょう????

続きを読む


AH Formatter の CSS組版例「MathML 3.0 2nd Edition」

W3C の MathML仕様書「Mathematical Markup Language (MathML) Version 3.0 2nd Edition」を『AH Formatter』で組版して、PDF出力したものをこのたび公開しました。
 [CSS組版例] MathML 3.0 2nd Edition
出力結果PDF

『AH Formatter』の CSS組版や MathML描画エンジンの性能の一端をご覧いただきたく思います。

なお、errata の反映などにより、PDF は原文と異なる箇所があります。
それは PDF の文末にまとめてあります。

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

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

 


海外出展情報 XML Prague Czech Republic

XML Prague は、ヨーロッパ最大の XML 会議です。 チェコ共和国のプラハの経済大学で、毎年 2 月に開催されています。(寒いですが、宿泊はシーズンオフのため格安です)。

xml-prague-1

この会議の形態は、会議前の日と呼ばれる Unconference Day という日が設けてあり、本会議の前に開かれる、自由スタイルの形式から始まります。90 分のセッションが開かれ、その後は 2 日間のシングルトラック会議が行われます。 昨年は、ほぼ 30 分の講演だったと思います。 今年の公演は、30 分間または 15 分間とされています。 会議のスケジュールはまだ公表になっていないので、30 分になるのか 15 分になるのかまだはっきりしません。

アンテナハウスは数年間、この会議のスポンサーとなっています。 アンテナハウスは過去 2 年間、主催者からスポンサーに与えられる 2 名参加分のフリーパスを学生に提供しています。

xml-prague-6

XML Prague 2018 の会議前の日(Unconference day)に、アンテナハウスは、「XSL-FO、CSS、およびページメディア」セッションで Antenna House Formatter の紹介、「ページメディア向けCSSの紹介」と題したチュートリアルの両方を発表します。アンテナハウスが 会議前の日(Unconference day) にユーザーミートアップと呼ばれるものをを主催してから 4 年目で、聴講率はよく毎回好評をいただいております。弊社社員トニーグラハムは、ここで最新の「ページメディア向けCSSの紹介」と題したチュートリアル文書を組版するのに使用している CSSスタイルを紹介する予定です。 またトニーグラハムは、「スキマトロン ユーザー ミートアップ」セッションでも講演する予定です。 スキマトロン(Schematron)は、XSL-FO ファイルをチェックするための  ‘focheck’  oXygen フレームワークで使用する技術の1つです。

xml-prague-3
xml-prague-5

本会議でも、トニーグラハムが 「人生、宇宙そしてCSSテスト」を発表します。 これは、W3C CSS テストスイートの中から 17,000 件に及ぶ自動組版テストを行うために、Jenkins サーバーおよび eXist-db XML データベースとともに、Antenna House リグレッションテストシステム(AHRTS) を使用して、社内プロジェクトの開発を行った時のケーススタディです。

xml-prague-2

この会議で人気であるものの一つに、本会議の最初の日の夕方に行われるソーシャルディナーがあります。 ディナーの後には「デモジャム」というものが行われ、ボランティアで各自が XML アプリケーションのデモを5分間行うものです。 デモジャムの優勝者は、最も大きな拍手を受けるプレゼンターです。弊社社員マイケルミラーは、2013 年の XML Prague でのデモジャムで弊社製品 AHRTS のデモンストレーションで受賞しました。

xml-prague-4


page2018に出展します

「page2018」に出展します!!

2/7(水)から2/9(金)に開催される「page2018」に今年も出展します。
「page展」は、公益社団法人日本印刷技術協会が主催する印刷メディアビジネスの総合イベントです。
31回目となる今年は「アライアンスNEXT」をテーマに開催されます。
アンテナハウスは、JATS、DITAなど多言語・大容量のドキュメントの自動組版のご説明と、昨年末にリリースされたAH Formatter V6.5のデモ説明を行います。
AH Formatter V6.5はアクセシビリティのPDF/UA出力にも対応した、多言語・大容量組版に適した自動組版エンジンです。
実際にAHFoematterで組版をした事例Sampleもご覧いただけます。
そのほかにも、PDFなど各種データの変換ツールなどデータの再利用に役立つツールをご紹介いたします。

今回は、昨年に引き続き文化会館4Fの展示ホールBになります。
小さいテーブルブースですが、ご来場の際は受付後4Fまでお越しください。
下記お問い合せ先へご連絡いただければ無償の招待券をお送りいたします。

是非、ご来場賜りますようよろしくお願いいたします。

  • 「page2018」詳細
    http://www.page.jagat.or.jp/
  • 会期:2018/2/7(水)~2018/2/9(金)
  • 場所:池袋サンシャインコンベンションセンター
  • ブース:展示ホールB(文化会館4F)

お問い合せ先
アンテナハウス(株)S1システム営業グループ
sis@antenna.co.jp


AH Formatter:PDFから複数行のテキストをコピペしたときに、不要な改行を避けるには。

こんにちは
AH Formatter』サポート担当です。

『AH Formatter』で作成した PDF をビューアで表示して、
テキストをコピー&テキストエディタなどにペースト(以下コピペ)した時に
改行が入ってしまうというお問い合わせをいただくことがあります。

具体的には、
 <fo:block>AH Formatterはアンテナハウス株式会社の製品です。</fo:block>
 <fo:block>最新版は弊社Webサイトからダウンロードできます。</fo:block>

これを組版した結果が以下のような場合
 組版結果
ここを Adobe Acrobat や Adobe Reader からコピペすると
次のようになります。

 AH Formatterはアンテナハウス株式会社
 の製品です。
 最新版は弊社Webサイトからダウンロー
 ドできます。

このように見た目のまま、改行されてしまっていますね。

データ中に改行コードが挿入されているわけではないので
この結果は PDFビューアに依存します。
別の PDFビューアでは

 AH Formatterはアンテナハウス株式会社 の製品です。 最新版は弊社Webサイトからダウンロー ドできます。

こんな風にひとつの連続したテキストでコピペされる場合もあります。
(改行位置に空白が入っています。)

では、”コピペした時に改行されないようにしたい” 場合はどうすればよいのでしょう。

PDFビューアに依存するので一概には言えないのですが
Adobe Acrobat や Adobe Reader の場合には
『AH Formatter』から “タグ付きPDF” として出力すると
次のようにコピペできます。

 AH Formatterはアンテナハウス株式会社の製品です。
 最新版は弊社Webサイトからダウンロードできます。

こうすれば、元のテキストデータと同じように連続したテキストとしてコピペできます。
ただし、ひとつ注意することがあります。
例えば、下記のような場合です。

<fo:block linefeed-treatment=”preserve” >
 XfoObj axfo = null;
 try {
 axfo = new XfoObj();
 ErrDump eDump = new ErrDump();
 axfo.setMessageListener(eDump);
 axfo.setDocumentURI(args[0]);
 axfo.setOutputFilePath(args[1]);
 axfo.setExitLevel(4);
 axfo.execute();
 }
</fo:block>

マニュアルのソースコード説明などでよくあるケースですが、
ひとつの fo:block にまとめて記述して、
linefeed-treatment=”preserve” で改行コードを有効にした場合です。

AH Formatterでの組版結果は以下のようになります。
 組版結果

このような場合、タグ付けしていない PDF では見た目のまま改行してコピペされますが
タグ付きPDF として出力してコピペすると
fo:block内のテキストはひとつの連続したテキストになってしまいます。
したがって、1行ずつ fo:block で分割する必要があります。

 


AH Formatter 機能のご紹介:リッチメディア注釈

AH Formatter』では、V6.5 よりマルチメディアをリッチメディア注釈として埋め込み可能になりました。
リッチメディア(オンラインマニュアル)

『AH Formatter』のサンプルFO集には、本機能の動作が確認できるサンプル「リッチメディア注釈」を掲載しております。

本機能を用いて PDF を作成することで、閲覧時に外部のプレイヤなどを必要とせずにマルチメディアの再生が可能になります。そのため、配布される PDF に動画などを埋め込んだ場合に、配布先での閲覧がスムーズに行えることが期待できます。

『AH Formatter』は主にバージョンアップのたびに機能強化や新機能の追加を行っています。
“あったら便利な機能” も既に追加されていることがございますので、どうぞお気軽にサポートにお問い合わせください。
未実装の機能であれば、ご要望として承り今後の開発の参考にさせていただきます。

今回ご紹介した「リッチメディア注釈」も海外のお客様の要望を受けて開発に至りました。

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

なお、弊社は AH Formatter の自動組版だけではなく、
Office文書から PDF への変換、
それとは逆に PDF から Office文書への変換、
PDF の編集や加工なども得意としております。
ご案内に向けた Webページ「製品ナビゲータ」をご用意しておりますので、こちらも是非ご覧ください。
製品ナビゲータ

 


focheck を使って XSL-FO のマークアップの妥当性を検証する

海外営業担当です。
本日は弊社アイルランドの社員 Tony Graham が開発しました focheck についてご紹介させていただきます。oXygen XML Editor をお使いの方必見です。最後までお読みいただくと focheck の使い方がわかります。ぜひお使いになってください。

XSL-FO を oXygen XML Editor でチェック

XSL-FO は、まずフォーマットオブジェクトとそのプロパティを表すために設計されました。 スキーマに準拠するようには設計されておらず、検証技術を考慮して設計されていませんでした。 その結果、XSL-FO ドキュメントの正当性をチェックする最良の方法は、AH Formatter でフォーマットしてログファイルを確認することでした。
Antenna House の focheck フレームワーク は、oXygen XML Editor を使用中に、Antenna House 拡張機能も含め、XSL-FO ファイルをチェックして修正することをついに可能としました。

フォーマッティングオブジェクトの構造

それぞれの FO に含めることができるものを定義する XSL 1.1 勧告 のコンテンツモデルは、単純です。 しかし、勧告にある記述は、しばしばコンテンツモデルに含まれない FO をも許容しています。
fo:marker はコンテンツモデルには表示されませんが、ほとんどの(ただしすべてではありません)FO の最初の子として使用が可能です。

1-focheck-marker.png
fo:change-bar-begin と fo:change-bar-end は、コンテンツモデルには表示されませんが、ほぼどこでも許可される、 地点を定義する  FO です。

2-focheck-change-bar-begin.png

fo:change-bar-begin と fo:change-bar-end には、スキーマで表現できないプロパティの制約もあります。
XSL 1.1 には、一部のFOが特定のタイプのFOの祖先または子孫として許可されないという制約も更に含まれています。 たとえば、fo:footnote は子孫として別の fo:footnote を持つことはできません。 明らかに、fo:footnote の祖先を持つこともできません。

3-focheck-footnote.png

プロパティ値

各 XSL-FO プロパティで許可されるタイプは、XSL 1.1 勧告で定義されています。 ただし、XSL-FO ファイルのプロパティ値は、必ずしも単一の値であるとは限りません。 ほとんどのプロパティは、 ‘2pt + 6em’ のような式にすることもできます。 AH Formatter は  ‘2pt + 6em’ を評価してから結果が正しいかどうかを判断する必要があります。 focheck は、AH Formatter のように、式を解析するパーサーを含んでいます。 focheck はプロパティ値の式を評価し、結果のタイプをチェックします。 ‘ from-table-column()’ などの XSL 1.1 で定義されているすべての関数名や Antenna House 拡張機能を認識し、パラメータをチェックしますが、まだ関数を評価していません。 AH Formatter とは異なり、focheck は、 ‘font-family’ や  ‘border’ など、異なる構文を使用するプロパティを一部解析しません。

4-focheck-property.png

警告を追加

focheck は、エラーではない条件についても警告することができるので、AH Formatter には問題はありませんが、おそらく意図したものではありません。 たとえば、fo:flow または fo:static-content に非標準の  ‘flow-name’ 値があり、 ‘region-name’ の値が一致するページ領域がない場合は、エラーではありません。fo:flow または fo:static-content は単に使用されないだけです。 これは設計によってというよりも偶発的に発生する可能性が高いため、focheck はこれらの不一致と、決して使用されない ‘region-name’ の値について警告します。

5-focheck-flow-name.png

XSL-FO のリストは、’provisional-label-separation’ と ‘provisional-distance-between-starts’ プロパティをfo:list-blockに設定し、なおかつ 各 fo:list-item-label  に ’end-indent’ を、各 fo:list-item-body に ’start-indent’ を設定してリスト項目のラベルと本文との間隔を指定します。 これらのいずれかが見つからない場合は、エラーにはなりません。 AH Formatter は、XSL 1.1 勧告に従って、各プロパティに対して継承または初期値を使用します。 しかし、これはおそらく期待したものではないので、プロパティのいずれかが見つからないときに focheck が警告します。

6-focheck-list.png

オーサリングのサポート

XSL-FO は手作業で作成することを目的としたものではありません。 ほとんどの人は XSLT を使用して XSL-FO を生成しています。開発者以外や、サポートスタッフあるいは AH Formatter をテストまたは文書化している人以外に手作業で XSL-FO をオーサリングする必要のある人はほとんどいません。 ほとんどの人にとって、XSL-FO をオーサリングする唯一の理由は、後で XSLT 変換の出力として自動的に生成されるものを試作することです。

XSL-FO をオーサリングする必要がある場合、focheck は、現時点で許可されている FO またはプロパティのリストを提供してくれるので、役に立ちます。

7-focheck-structure-editing.png

また、FO 又はプロパティを説明するポップアップツールチップを表示することもできます。

8-focheck-tool-tip.png

また、focheck では問題の報告だけでなく、XSL-FO の一般的な問題をいくつか修正する「クイック修正」も行うことができるようになっています。例えば、上記のような警告があれば、クイック修正をします。

focheck を入手する

focheck は、2015年にリリースされた oXygen 17 以降の oXygen XML Editor にバンドルされています。ただし、oXygen の focheck バージョンは 2015 年以降に更新されていません。最新の focheck バージョンを入手して、 oXygen アドオンとして focheck をインストールすることができます。
GitHub から focheck をインストールするには:

  1.  [ヘルプ] メニューから [新しいアドオンをインストールする] を選択します。 9-focheck-help-new-add-on-install.png
  2. アドオンの場所にhttps://github.com/AntennaHouse/focheck/raw/master/add-on-ja.xml を入力し、「focheck」を選択してインストールを続行します。10-focheck-new-add-on-install.png

仕組みの説明

focheck は、RELAX NG スキーマと Schematron を oXygen フレームワークに同梱しています。 RELAX NG スキーマは、FO の構造に関する規則の大部分、およびプロパティがどの FO に適用されるかの規則を提供しています。 Schematron は、プロパティ値の解析など、RELAX NG で表現できない制約をチェックします。 パーサーは、XSLT として実装され、それは REx パーサジェネレータによる言語構文用の EBNF のバージョンから生成しています。
正確度を保証するために、RELAX NG、Schematron for XSL 1.1 FO およびプロパティの大部分は、XSL 1.1 勧告の XML バージョンにある XSLT を実行することによって自動的に生成します。

ライセンス

focheck はオープンソースであり、Apache License、Version 2.0 の元、ライセンス許容されています。

アンテナハウス海外サイト
http://www.antennahouse.com/
http://rainbowpdf.com/

AH Formatter関連ページ:focheck(oXygen アドオン) – XSL-FO と AH Formatter 拡張仕様のバリデータ


Pages: 1 2 3 4 5 6 7 Next