月別アーカイブ: 2019年9月

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上にご用意でき次第、ここにお知らせいたしますので、ぜひご参照いただければと思います。


[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] より良い欧文組版を目指して その3

[AH Formatter] より良い欧文組版を目指して
[AH Formatter] より良い欧文組版を目指して その2
上記の記事の続きです。

欧文組版で考慮すべき事柄には以下もあります。
読み手に違和感が発生しないように工夫して組版する必要があります。
適切なプロパティの値を設定したり、元文書を直すことで対処できます。

・ハイフネーションできない単語を含む行の前後で字間が空き過ぎる
ハイフネーションができない単語が行末にある場合、その行前後で空白が空きすぎる場合、表現を変えるか、固定幅の空白文字を挿入する等の対処が考えられます。

・widow や orphan を回避したことによるページ量の増加
『AH Formatter』では widowsプロパティで最低何行から次ページに送るかを設定をすることができますが、プロパティの値によってはページ数が増える可能性があります。もし、それが許容できる範囲ではない場合、widowsプロパティの値を変える、行の高さを再設定するなどで対応することが出来ます。

組版で審美的な問題が発生したとき、いちいち手で修正するのは面倒です。
『AH Formatter』では自動組版をもっと便利に利用できるよう、有用なプロパティを開発しています。

また、目視で組版結果を判定せずプログラムによって自動で判定し、上記のような審美的な問題を自動検出できれば文書作成のコストはぐっと下がるだろうと思います。対応策などもサジェストしてくれるものだとなお良いでしょう。
 
 
AH Formatter ロゴ

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

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


PDF Viewer SDKで簡単PDFビューア作成(5)

~イベント処理~

以前の 記事 で、PDF Viewer SDK の PDF 表示とサムネイルの二つのコントロールの同期を取るために、一方でページを移動したらもう一方も同じページに移動するイベント処理をご紹介しました。

このようなイベント処理を実装する方法を詳しく教えてほしいというリクエストを頂きましたので、本日は画面操作を交えてご紹介します。

まず、Visual Studio のフォームデザイナ上で PDFPageViewCtrl を選択してから「プロパティ」タブを開き、タブの上部にある「イベント」ボタンをクリックします。

pdfviwer01

すると各種イベントが並んだ画面が表示されます。PDF ビューアーコントロール特有のイベントは「その他」に表示されます。

pdfviwer02

ここでは、DoAction イベントを実装してみます。このイベントはリンク注釈をクリックしたときに発生するイベントです。

まずプロパティの DoAction イベント右の空欄部分をダブルクリックします。するとコードエディタに画面遷移し、イベントハンドラの雛形コードが挿入されます。

 private int pdfPageViewCtrl1_DoAction(AvsActionType actionType, string data)
 {
        return default(int);
 }

「プロパティ」タブを確認していただくと、DoAction イベントには挿入されたメソッドが登録されていることが分かります。

pdfviwer03
これで準備はできました。あとはイベントハンドラの雛形を実装するだけです。

イベントハンドラには、イベントに応じて予め定義された引数があり、イベントに関する必要な情報が渡されます。DoAction イベントでは発生したアクションのタイプ、リンクをクリックした場合の URL 等のデータが渡されます。イベントハンドラはこれらのデータを使って必要な処理を実装していきます。

ここでは、アクションを実行する前に確認ダイアログを表示するようにしてみます。
「いいえ」ボタンを押した場合は、その後のアクション実行を行わないように戻り値 0 を返すようにします。

下記のコードを入力してください。

private int pdfPageViewCtrl1_DoAction(AvsActionType actionType, string data)
{
     if (actionType == AvsActionType.AGAT_LAUNCH 
|| actionType == AvsActionType.AGAT_URI 
|| actionType == AvsActionType.AGAT_INTERNALFILE)
     {
           String msg = String.Format("{0}を開こうとしています。よろしいですか?", data);
           if (MessageBox.Show(this, msg, "", MessageBoxButtons.YesNo) == DialogResult.No)
                return 0;
            }
            return 1;
      }
}

これでイベントハンドラの実装は終了です。

あとはこのコードをビルドして実行するだけです。
実際に実行してみると、コードのとおり確認ダイアログが開きました。

pdfviewer04-3

以上、イベント処理の実装方法のご紹介でした。ご参考になれば幸いです。

詳しい機能についてぜひ製品ページをご覧ください。
製品ページ:
https://www.antenna.co.jp/pdfviewersdk/

評価版ダウンロードページ:
https://www.antenna.co.jp/pdfviewersdk/trial.html


人手不足時代と自動組版「屋」

~ 最近の人手不足動向と人材募集を交えて~

さる8月23日、公益社団法人日本印刷技術協会(JAGAT)が主催する「JAGAT Summer Fes 2019 (夏フェス 2019)」に参加してきました。
会場は東京メトロ丸の内線中野富士見町駅から徒歩数分。
路線図的には「この先行き止まり」になる典型的「私鉄沿線」の駅前商店街の風景は、雨上がりの残暑がよくお似合いでした。

「人手不足時代と自動組版 ~最近のXML動向と事例紹介を交えて~」と題したミニセミナーは、21名の方に聴講いただきました。ブースにお立ち寄りくださいました方もあわせて、お礼を申し上げます。

ミニセミナーの主題の一つ「人手不足」の実情について調べるにあたり、井戸端会議的な個人の感想や愚痴話ではない客観的なデータを探す中で面白い資料を見つけまして、少々古いですが参考にさせていただきました。

発行元は、経済産業省 大臣官房 調査統計グループ 経済解析室。
いかにも信頼性のありそうな肩書で、題名は「いわゆる人手不足業種の背後にあるものは何か?」

経済解析室が作成する、各産業の生産活動指数(アウトプットレベル)と、求人数(厚生労働省「一般職業紹介状況」)や雇用者数(総務省「労働力調査」)のデータを用いて、業種を8つのカテゴリーに分けて、「人手不足」の背景事情について分析を試みました(以上引用抜粋)。というもので、興味のある方をご覧ください。
https://www.meti.go.jp/statistics/toppage/report/minikeizai/kako/20171117minikeizai.html

いわゆる「人手不足」で話題に上りやすい代表的な業界では、

  • 飲食サービス業、介護事業
    売上上昇に伴い、雇用者数を増加させているがまだ足りず、求人意欲(率)が上昇している、「頭数不足」グループ。
  • コンビニ(小売店)
    売上が上がっているにもかかわらず、雇用者数は減少しており、求人意欲(率)が上昇している、掛け値なしの「人手不足」グループ。

なるほどと頷けます。

今回のセミナーを主催する印刷業界は、

アウトプットレベル(売上)が下落し、それ以上に雇用者を減少(求人率を低下)しているため、一見労働生産性が上がり、人手が不要になっているように見える 「縮小高稼働」グループ。ベテランの踏ん張りに支えられているから確かに労働生産性は高いですが、後の無い崖っぷち状態。

それでは、我らが所属する情報サービス業といいますと、

生産性が下がっているのに、求人率も下がっている。生産に対して雇用者を増やし過ぎの「実は人余り」グループ。

ちょっと待ってください。
「2025年の崖」問題とあわせて、IT人材不足は深刻で、このままでは2025年時点で43万人規模の不足が生じると予測されていたのでは?
もっとも、毒舌で有名な某業界誌編集者などは、不足しているのは必要とされている人材だけで、「ぼーっと生きてきた」技術者は・・・・・、とおっしゃっているようです。

そうでしたか、一極集中と寄らば大樹の陰でしたか。
であれば、来たれ「未来を創るエンジニア」!

ということで、人材募集広告でした。


メンテナンスリリースと保守サービス

~Office Server Document Converter v7.0改訂3版(MR3)リリース~

ちょっと時間がたってしまいましたが、8月8日にOSDC v7.0改訂3版(MR3)をリリース致しました。
お盆休み前にリリースしておかなければという計画で、無事スケジュール通りに実施できたのですが、そのまま私の頭の中がお盆休み状態に入ってしまい、ブログでご案内するのを忘れていました。

改訂情報の内容は、以下をご覧ください。
https://www.antenna.co.jp/support/update-sys/sbc/osdc70.html

さて、メンテナンスリリース(MR)とは、主に障害対応と軽微な改善を製品に反映させるもので、年に数回定期的にご提供するものです。(各製品により異なる場合もあります)
定期的にというところが重要で、予め計画されたスケジュールにのっとってリリースされるため、いかに強いご希望があろうとも特別の前渡しは原則としてできません。
もし、緊急を要する場合は、「特別保守サービス」をご利用ください。

また、永久にご提供し続けられるわけではなく、販売終了から5年を経過したところで、メンテナンスリリース(改訂版提供)期間は終了します。
OSDCの先行製品であるServer Based Converter(SBC) v5.0は、去る7月17日にメンテナンスリリースの提供が終了となりました。
長い間ご利用をいただきまして、ありがとうございます。

ところで、このメンテナンスリリース終了を「サポート終了」と呼ぶ場合がありまして、これが時々誤解を招くことがあります。保守サービスは、正式には「保守サポートサービス」という名称なので、ややこしいことになります。「サポート終了したので、今後の保守サービス契約も終了してしまうのですか?」というご質問です。

保守サポートサービスは製品をご利用になるうえでのお客様と弊社との間の契約になります。系列製品の最新版にバージョンアップいただければ、引き続きメンテナンスリリースをご提供できますし、バージョンアップをしなかった場合でもその他のサービスを継続してご提供いたします。
詳しくは「ソリューション・システムコンポーネント製品保守サービス仕様」 をご覧ください。

製品は改訂を続けることで、使い勝手と機能をアップして成長します。
お気軽に改訂版をお試しいただき、ご利用のシステムを成長させていただくことをお勧めいたします。
評価版のお申し込みは、こちらから どうぞ。

ということで、OSDCは概ね3か月毎に改訂版をリリースしていますので、計画によれば次回は11月中旬がご提供時期となります。
聞くところによると、同時期にバージョンアップ版の公開の噂も流れているようなので、ご期待ください。

末永くOffice Server Document Converterをお使いいただくために、保守サービスをご利用ください。
契約更新の手間いらずの「自動更新契約」 も開始しましたので、こちらもご検討ください。


Markdown+CSS組版で冊子本(PDF)を作ってみる

CAS電子出版では、今月22日(日)開催の次回技術書典7に向けて、新タイトル『簡単!Markdown+CSSによる冊子本作り ー理論と実践ー』を作成しました。

この春に提供していただいたAH Formatterのケーススタディ『AH Formatter を用いた Markdown-PDF 変換事例紹介』(有限会社フェリックス・スタイル様)を参考にして、同じような方法で、もう少し冊子本としての構成をもつ原稿を、Markdownで執筆し、CSS組版で冊子本のPDFを作ることを目標にして、①全体の仕組みを考えて、②Markdownを学んで、③目次や索引を作成するXSLTスタイルシートを開発、④CSSスタイルシートを用意、⑤Javascript(Node.js)で一気に原稿からPDFを作る、ということを実践しました。

昨日、技術書典用の冊子本用PDFを印刷会社に入稿し、あとは、当日まで出来上がりを待つばかりとなりました。次に少しだけピックアップしてご紹介します。

本書の目次は次のとおりです。本体70ページ(表紙除く)となります。

はじめに………….3
第1章 目標、作業工程とツール……..7
1.1 目標………….7
1.2 作業工程………….7
1.3 ツール……………8
第2章 マークアップの目的と方法………11
2.1 マークアップの目的……….11
2.2 マークアップとタグ……….11
2.3 簡易マークアップ…………12
2.4 Markdown 完結か、折衷か………13
2.5 Markdown 構文………..13
2.5.1 段落(p)………….14
2.5.2 マークアップ用句読点文字……….14
2.5.3 実体参照について……….16
2.6 Markdown で表せないHTML の機能……….16
2.7 日本語段落作成の留意点……….17
第3章 原稿のマークアップ仕様の検討………19
3.1 不足する機能への対処…………19
3.2 Markdown 構文の文脈とHTML 構文の文脈……..20
3.2.1 ブロックレベルの要素……….20
3.2.2 HTML 文脈での ‘<‘ と ‘&’…….21
3.3 見出しのid のマークアップ………..22
3.4 テキストの修飾……….23
3.5 図版のマークアップ……….23
3.6 表のマークアップ…………24
3.7 脚注のマークアップ……….25
3.8 参照のマークアップ……….25
3.9 索引語のマークアップ…………26
第4章 本書の構成………..27
4.1 表紙…………27
4.2 本体…………27
4.3 本書の構成パート…………28
4.4 目次の自動生成……….29
4.5 索引の自動生成……….29
第5章 原稿ファイルからHTML ファイルへの変換……..30
5.1 原稿の加工方法……….30
5.2 XML 構文を満たすHTML…………30
5.3 変換処理フロー……….31
5.4 冊子全体の構造……….31
5.5 ひな型HTML…………..33
5.6 適正HTML…………34
5.7 組版用HTML…………..34
第6章 レイアウト設計………..35
6.1 基本…………35
6.2 判型…………35
6.3 ページのレイアウト……….36
6.3.1 基本版面…………..36
6.3.2 ノンブル…………..36
6.3.3 柱の配置…………..37
6.3.4 脚注…………..37
6.4 パート別バリエーション……….37
6.4.1 本扉…………..37
6.4.2 目次…………..37
6.4.3 索引…………..38
6.4.4 奥付…………..38
6.5 ブロックのレイアウト…………38
6.5.1 通常段落…………..38
6.5.2 番号無し箇条……….38
6.5.3 番号付き箇条……….39
6.5.4 ブロック引用……….39
6.5.5 コードブロック…………39
6.5.6 水平線…………39
6.6 見出しとキャプションの番号付け……….39
6.7 見出しの文字サイズと配置……..40
6.7.1 見出しの共通設定項目……….40
6.8 表のレイアウト……….41
6.9 図のレイアウト……….41
6.10 インラインオブジェクトのレイアウト………42
6.10.1 リンクの表示………….42
6.10.2 強調………….42
6.10.3 コード………..42
6.10.4 ユーザー指定レイアウト………..42
第7章 PDF の作成………..43
7.1 CSS 組版によるPDF 作成……….43
7.2 POD 用PDF とは……….43
7.2.1 PDF のページ境界……….44
7.2.2 カラーモデル……….44
7.2.3 デジタル配信用PDF………44
第8章 実践例の紹介………….46
8.1 基本版面・ノンブルと柱の実践例……….46
8.2 脚注の実践例…………47
8.3 目次の実践例…………48
8.4 索引の実践例…………50
8.5 段落とブロック引用の実践例……….52
8.6 箇条書きの実践例…………53
8.7 見出しの実践例……….56
8.8 表の実践例…………..58
8.9 図版の実践例…………59
8.10 参照の実践例………..61
第9章 まとめ………..63
9.1 実践のまとめ…………63
9.2 今後の方向…………..63
あとがき…………64
付録…………….65
参考文献…………67
索引…………….68

次の図は、Markdownの原稿をVS Codeで編集している画面です。

次の画面は本冊子の全体の構成です。

次の図は、Node.jsのコマンドラインで、原稿(mdファイル)からPDFを作成している画面です。全体で70ページほどですが、大体30秒ほどで原稿からPDFができます。

出来具合につきましては、ぜひ、技術書典にてお手にとってご覧いただきたく、ご来場をお待ちいたします。アンテナハウスCAS電子出版の配置は、き45Dです。

よろしくお願いいたします。

AH Formatter を用いた Markdown-PDF 変換事例紹介(有限会社フェリックス・スタイル様)

関連記事:
9月22日開催予定「技術書典7」のサークル情報公開!