AHFormatter の float 拡張

AHFormatter はV6で大幅な float の拡張を行いました。

  1. float がページから出たときの振る舞い
    以前は float がページから出てしまうと、アンカーと一緒に本文テキストが次のページに送られました。
    そのため、ページに空白ができてしまうことがありました。
    V6 からは、float だけを追い出し、あいたスペースに本文テキストが入ります。
    また、float が少し出るだけなら float をページに入れ、本文テキストを次ページに送ることも指定できます(axf:float-move=”auto-move”)。
  2. float の配置位置の指定
    V6 からは float をページの下部に配置するなどの指定ができるようになりました。
    配置する場所 (axf:float-reference=”page”) 、位置 (axf:float-y=”bottom”) が指定できます。
    これで、参照する表などをページの下部などにまとめて配置できるようになりました。

これらの拡張により、V6 での表現力がアップしました。
興味のあるかたは 評価版 をお試しください。

プログラマの愚痴

予想外の使い方をするユーザ様がいます。
大きな表などを何でも float で表現します。それを複数連続して挿入します。
当然、追い出され、追い出され、複数ページ分の追い出しが起きます。
追い出されても、次の本文をいれるため、float は追い出し状態としページが完成するまでフォーマットは継続されます。
結局本文はなく終了。追い出された float のページを追加しフォーマット終了となります。
追い出し状態の float のメモリと処理時間が大きくなるだけでした。
float にする必要がないのではないか?
追い出すための連続改ページ処理に障害が見つかり対応することとなりました。

処理の把握が足りないこともありました。
最後のページに float がありフォーマット終了。
最後のページで page-master の変更がありました。
新しい page-master でページを作成し、本文を移動する。このとき元のページについている float が移動せず欠落。
page-master の変更処理まで把握できていませんでした。
障害となり、float に追い出しをマークし対応することとなりました。

障害との格闘で日々すごしています。