美味しい DITA の作り方セミナー 10/12/20 1 AH Formatter で DITA を自動組版してみよう アンテナハウス株式会社 : 小林具典 10/12/20 2
本日のテーマ Formatter って何? Formatter や XSL-FO 関連の話 DITA Open Toolkit って何? DITA OT がやってくれることカスタマイズの話 Formatter って何? Formatter は XSL-FO のレンダリングエンジンです XSL-FO Formatter PDF
XSL-FO って何? XSL-FO は自動組版のための XML マークアップ言語です <fo:block font-family="ms ゴシック " font-size="30pt" text-align="center"> 吾輩は猫である <fo:block font-family="ms ゴシック " font-size="15pt" text-align="right"> 夏目漱石 <fo:block font-family="ms 明朝 " font-size="10.5pt" text-indent="1em"> 吾輩は猫である 名前はまだ無い <fo:block font-family="ms 明朝 " font-size="10.5pt" text-indent="1em"> どこで生れたかとんと見当がつかぬ 何でも薄暗いじめじめした所で XSL-FO ってどんな規格? XSL-FO は W3C が 2001 年に勧告した世界標準規格です さまざまな印刷物の自動組版で採用されています 技術マニュアル 論文集 条例集 教材 帳票 カタログ 一般書籍などなど
XSL-FO ってどうやって作るの? XSLT スタイルシートを使います <title> 吾輩は猫である </tilte> <section> <para> 吾輩は猫である 名前はまだ無い </para> <para> どこで生れたかとんと...</para> XML XSLT スタイルシート <xsl:template match='title'> <fo:block font-family="ms ゴシック " font-size="30pt" text-align="center"> <xsl:apply-templates /> </xsl:template> <xsl:template match='para'> <fo:block font-family="ms 明朝 " font-size="10.5pt" text-indent="1em"> <xsl:apply-templates /> </xsl:template> Formatter の威力ほんの一部 欧文ペアカーニング 行頭行末禁則 任意の位置での部分的な段組み 和欧文間の隙間の設定 行頭行末のカッコを自動的に詰める 全角約物の詰め 改訂バーの出力 領域に収まるようにフォントサイズの自動調整 小数点の位置を自動調整などなど
Formatter の威力多言語関連 アンテナのサイトに多言語関連資料があります http://www.antenna.co.jp/xsl-fo/sample/multi.htm Formatter の利用分野 条例集 学習参考書の組版 多言語展開するマニュアル作成 ベクタ画像を必要とする製造マニュアル作成 議事録や会誌 帳票などの組版 Web との連携による PDF 配信システム SVG 出力して携帯端末へ配信 XML コンテンツを自動組版したい分野で広く採用
DITA をひとことで言うと マップ (HTML 用 ) トピック トピック マップ ( 社内用 ) マップ ( 印刷用 ) トピック トピック マップ ( ユーザ用 ) DITA を PDF にするには DITA Open Toolkit を使います タダです DITA コンテンツを様々な配信フォーマットに変換します PDF XHTML HTML Help Eclipse Help Java Help : : 入手は http://sourceforge.net/projects/dita-ot/
DITA Open Toolkit がやってくれること 大雑把な言い方をすれば トピックファイルや画像等の素材を集めます @audience や @product 等の条件処理属性を解決します フラグメント単位の再利用 (@conref) を解決します マップファイルに従ってトピックファイルをひとつにまとめます PDF 出力します DITA Open Toolkit を起動する 1. startcmd.bat を実行して 2. DOS 窓から ant -Dargs.input=MyMap.ditamap -Dtranstype=pdf と入力するだけ マップファイル 出力フォーマット 他にもいろいろ起動時オプションがあります
XMetaL と DITA OT と Formatter の関係 XMetaL が DITA OT を起動 DITA OT が Formatter を起動 レイアウトをカスタマイズするには Open Toolkit に付属の XSLT スタイルシートを修正したり 新しい Plug-in を追加したりします \demo\fo\xsl の中に入っています
カスタマイズの例 DITA 概説書 ( 通称 赤本 ) の例です カスタマイズの例実際にやったこと <fo:block> <fo:marker marker-class-name="current-header"> <xsl:call-template name="gettitle"/> </fo:marker> commons.xsl を修正 <fo:block> <fo:external-graphic src="title-level1.jpg" /> <fo:block-container absolute-position="absolute" top="20mm" left="25mm" width="25mm" height="25mm"> <fo:block font-family="sans" font-size="50pt" font-weight="bold" color="white" text-align="center"> <xsl:number value="$partcnt" format="i" /> </fo:block-container>
カスタマイズの例いろいろな設定ファイル commons-attr.xsl でトピックタイトルの書式設定 <xsl:attribute-set name="topic.title"> <xsl:attribute name="font-family">sans</xsl:attribute> <xsl:attribute name="font-size">18pt</xsl:attribute> <xsl:attribute name="font-weight">bold</xsl:attribute> <xsl:attribute name="keep-with-next.within-page">always</xsl:attribute> <xsl:attribute name="line-height">1.2em</xsl:attribute> </xsl:attribute-set> <!-- various labels (not author controlled) --> <str name="figure"> 図 </str> <str name="table"> 表 </str> <str name="next topic"> 次のトピック </str> <str name="previous topic"> 前のトピック </str> <str name="parent topic"> 親トピック </str> <str name="required cleanup"> クリーンアップ要求 </str> strings-ja-jp.xml で各種ラベルの内容を設定 誰がカスタマイズするのか レイアウトをカスタマイズするには DITA Open Toolkit XSLT スタイルシート XSL-FO の知識が必要です プログラマーにお願いすることになるでしょう
AH Formatter ラインアップ 製品種類サーバスタンドアロン XSL-FO CSS ライセンスライセンス組版組版 AH Formatter V5 735,000 円 147,000 円 AH XSL Formatter V5 525,000 円 105,000 円 AH CSS Formatter V5 525,000 円 105,000 円 AH Formatter V5 Lite 315,000 円 63,000 円 AH XSL Formatter V5 Lite 210,000 円 42,000 円 AH CSS Formatter V5 Lite 210,000 円 42,000 円 Lite 版には機能制限があります 詳しくは http://www.antenna.co.jp/ahf/purchase.html XMetaL Author ユーザ様向け優待販売のお知らせ 対象ユーザ様 XMetaL Author Enterprise Edition 6.0J のユーザ様 優待販売製品 AH XSL Formatter Lite スタンドアロンライセンス 優待販売価格税込み 31,500 円 ( 通常価格 42,000 円 ) http://www.antenna.co.jp/sis/for-metal-user.html ご質問はアンテナハウスシステム営業グループ小林まで guten@antenna.co.jp