(57)【要約】 【課題】  複数の部分表示領域を関連付けるリンクが設定されていない場合、部分表示領域が重なり、見栄えが悪くなる恐れがある。また、関連付ける必要のない部分表示領域に対して重なりを防止するためにリンクを設定すると、かえってレイアウトの動的変化の要素を増やしてしまい処理を煩雑にする恐れがある。【解決手段】  ドキュメントテンプレート上に配置される部分表示領域が重なるか否かを判定し、重なる可能性があると判定された場合、重なりを防止するためのリンクを生成する。【選択図】  図２７
2006244276.tif 000002
【特許請求の範囲】
【請求項１】
割り当てられたデータを収め、当該データをページ上にレイアウトする複数の部分表示領域の配置を制御するレイアウト制御装置であって、
割り当てられたデータを収めるための前記部分表示領域の可動領域を算出し、当該可動領域から前記部分表示領域が前記ページ上に配置されている他のオブジェクトと重なるか予測する予測手段と、
前記予測手段の予測により、重なると予測された前記部分表示領域と他のオブジェクトとの間に重なりを防止するための重なり防止リンクを設定して表示する防止リンク表示手段と
を有することを特徴とするレイアウト制御装置。
【請求項２】
前記他のオブジェクトは、割り当てられたデータを収めるための部分表示領域であり、
前記予測手段は、ページ上に配置されている各部分表示領域の可動領域を算出し、前記可動領域から複数の部分表示領域が重なるか否かを予測することを特徴とする請求項１に記載のレイアウト制御装置。
【請求項３】
前記予測手段により重なると予測された場合、当該重なりを許容しない属性を前記部分表示領域に対して設定入力するための設定入力手段を有し、
前記設定入力手段により重なりを許容しない属性が設定された場合、前記防止リンク表示手段は、前記重なりを許容しない属性が設定された部分表示領域と重なりが生じると予測される他のオブジェクトとの間に重なり防止リンクを設定して表示することを特徴とする請求項１または２に記載のレイアウト制御装置。
【請求項４】
前記割り当てられたデータサイズに応じて複数の部分表示領域の配置位置を調整する調整手段を更に備え、
前記調整手段が、前記重なり防止リンクが設定されている部分表示領域および他のオブジェクトの少なくとも１つの配置位置を調整する場合、前記重なり防止リンクに対して設定されている最小値より小さくならないように、前記部分表示領域および他のオブジェクトの少なくとも１つの配置位置の調整に応じて重なり防止リンクの長さを変更することを特徴とする請求項１乃至３のいずれか１つに記載のレイアウト制御装置。
【請求項５】
前記設定入力手段により、重なりを許容しない属性が部分表示領域に設定された場合、前記部分表示領域に対してガイドを設定するガイド設定手段を有し、
前記防止リンク表示手段は、前記部分表示領域に対して設定された前記ガイドと前記部分表示領域と重なると予測された他のオブジェクトとの間に前記重なり防止リンクを設定して表示することを特徴とする請求項３または４のいずれかに記載のレイアウト制御装置。
【請求項６】
前記ガイド設定手段により設定された前記ガイドは、前記調整手段により、前記ガイドが設定された部分表示領域を構成する辺が配置される位置の変更に応じて移動可能であることを特徴とする請求項５に記載のレイアウト制御装置。
【請求項７】
前記予測手段は、前記部分表示領域の可動領域の算出結果に従い、前記部分表示領域と重なると予測される前記他のオブジェクトとの重なり方向を特定できない場合、前記防止リンク表示手段は、前記調整手段により前記部分表示領域と前記他のオブジェクトとの重なり方向が特定されることに応じて前記重なり防止リンクの設定方向を切り替えることが可能な対応角リンクを設定することを特徴とする請求項１乃至６のいずれか１つに記載のレイアウト制御装置。
【請求項８】
前記対応角リンクが設定された場合、前記部分表示領域と重なる前記他のオブジェクトの重なり方向が水平方向か、または垂直方向かを判定する重なり方向判定手段を更に備え、
前記防止リンク表示手段は、前記重なり方向判定手段の判定結果に従い、前記対応角リンクを水平方向の重なり防止リンクか、または垂直方向の重なり防止リンクに変更し、当該他のオブジェクトからの重なりを防ぐことを特徴とする請求項７に記載のレイアウト制御装置。
【請求項９】
割り当てられたデータを収め、当該データをページ上にレイアウトする複数の部分表示領域の配置を制御するレイアウト制御装置であって、
割り当てられたデータを収めるための前記各部分表示領域の可動領域を算出し、当該可動領域から前記部分表示領域が前記ページ上に配置されている他のオブジェクトとの間に重なりが生じるか予測する予測手段と、
前記予測手段の予測により、前記部分表示領域が他のオブジェクトと重なると予測される場合、前記部分表示領域に対して重なりを許容するか否かを設定入力するための設定入力手段と、
前記設定入力手段により重なりを許容する設定が入力された場合、前記部分表示領域に対して表示順序を設定する表示順序設定手段と、
前記部分表示領域に割り当てられたデータを収めることに応じて、他のオブジェクトとの間に重なりが生じた場合、前記表示順序に従って部分表示領域を表示する表示制御手段を有することを特徴とするレイアウト制御装置。
【請求項１０】
前記表示順序設定手段は、前記部分表示領域及び他のオブジェクトの重複する部分のいずれか一方を上、他方を下として設定することを請求項９に記載のレイアウト制御装置。
【請求項１１】
前記設定入力手段により重なりを拒否する設定が入力された場合、前記部分表示領域及び他のオブジェクトの少なくともいずれか一方の配置を優先する詳細設定を追加する詳細設定追加手段を更に備え、
前記詳細設定に従い重複が生じない位置に前記部分表示領域と他のオブジェクトとを配置する配置手段を有することを特徴とする請求項９に記載のレイアウト制御装置。  
【請求項１２】
割り当てられたデータを収め、当該データをページ上にレイアウトする複数の部分表示領域の配置を制御するレイアウト制御方法であって、
割り当てられたデータを収めるための前記部分表示領域の可動領域を算出し、当該可動領域から前記部分表示領域が前記ページ上に配置されている他のオブジェクトと重なるか予測する予測工程と、
前記予測工程の予測により、重なると予測された前記部分表示領域と他のオブジェクトとの間に重なりを防止するための重なり防止リンクを設定して表示する防止リンク表示工程と
を有することを特徴とするレイアウト制御方法。
【請求項１３】
前記他のオブジェクトは、割り当てられたデータを収めるための部分表示領域であり、
前記予測工程は、ページ上に配置されている各部分表示領域の可動領域を算出し、前記可動領域から複数の部分表示領域が重なるか否かを予測することを特徴とする請求項１２に記載のレイアウト制御方法。
【請求項１４】
前記予測工程により重なると予測された場合、当該重なりを許容しない属性を前記部分表示領域に対して設定入力するための設定入力工程を有し、
前記設定入力工程により重なりを許容しない属性が設定された場合、前記防止リンク表示工程は、前記重なりを許容しない属性が設定された部分表示領域と重なりが生じると予測される他のオブジェクトとの間に重なり防止リンクを設定して表示することを特徴とする請求項１２または１３に記載のレイアウト制御方法。
【請求項１５】
前記割り当てられたデータサイズに応じて複数の部分表示領域の配置位置を調整する調整工程を更に備え、
前記調整工程が、前記重なり防止リンクが設定されている部分表示領域および他のオブジェクトの少なくとも１つの配置位置を調整する場合、前記重なり防止リンクに対して設定されている最小値より小さくならないように、前記部分表示領域および他のオブジェクトの少なくとも１つの配置位置の調整に応じて重なり防止リンクの長さを変更することを特徴とする請求項１２乃至１４のいずれか１つに記載のレイアウト制御方法。
【請求項１６】
前記設定入力工程により、重なりを許容しない属性が部分表示領域に設定された場合、前記部分表示領域に対してガイドを設定するガイド設定工程を有し、
前記防止リンク表示工程は、前記部分表示領域に対して設定された前記ガイドと前記部分表示領域と重なると予測された他のオブジェクトとの間に前記重なり防止リンクを設定して表示することを特徴とする請求項１４または１５のいずれかに記載のレイアウト制御方法。
【請求項１７】
前記ガイド設定工程により設定された前記ガイドは、前記調整工程により、前記ガイドが設定された部分表示領域を構成する辺が配置される位置の変更に応じて移動可能であることを特徴とする請求項１６に記載のレイアウト制御方法。
【請求項１８】
前記予測工程は、前記部分表示領域の可動領域の算出結果に従い、前記部分表示領域と重なると予測される前記他のオブジェクトとの重なり方向を特定できない場合、前記防止リンク表示工程は、前記調整工程により前記部分表示領域と前記他のオブジェクトとの重なり方向が特定されることに応じて前記重なり防止リンクの設定方向を切り替えることが可能な対応角リンクを設定することを特徴とする請求項１２乃至１７のいずれか１つに記載のレイアウト制御方法。
【請求項１９】
前記対応角リンクが設定された場合、前記部分表示領域と重なる前記他のオブジェクトの重なり方向が水平方向か、または垂直方向かを判定する重なり方向判定工程を更に備え、
前記防止リンク表示工程は、前記重なり方向判定工程の判定結果に従い、前記対応角リンクを水平方向の重なり防止リンクか、または垂直方向の重なり防止リンクに変更し、当該他のオブジェクトからの重なりを防ぐことを特徴とする請求項１８に記載のレイアウト制御方法。
【請求項２０】
割り当てられたデータを収め、当該データをページ上にレイアウトする複数の部分表示領域の配置を制御するレイアウト制御方法であって、
割り当てられたデータを収めるための前記各部分表示領域の可動領域を算出し、当該可動領域から前記部分表示領域が前記ページ上に配置されている他のオブジェクトとの間に重なりが生じるか予測する予測工程と、
前記予測工程の予測により、前記部分表示領域が他のオブジェクトと重なると予測される場合、前記部分表示領域に対して重なりを許容するか否かを設定入力するための設定入力工程と、
前記設定入力工程により重なりを許容する設定が入力された場合、前記部分表示領域に対して表示順序を設定する表示順序設定工程と、
前記部分表示領域に割り当てられたデータを収めることに応じて、他のオブジェクトとの間に重なりが生じた場合、前記表示順序に従って部分表示領域を表示する表示制御工程と
を有することを特徴とするレイアウト制御方法。
【請求項２１】
前記表示順序設定工程は、前記部分表示領域及び他のオブジェクトの重複する部分のいずれか一方を上、他方を下として設定することを請求項２０に記載のレイアウト制御方法。
【請求項２２】
前記設定入力工程により重なりを拒否する設定が入力された場合、前記部分表示領域及び他のオブジェクトの少なくともいずれか一方の配置を優先する詳細設定を追加する詳細設定追加工程を更に備え、
前記詳細設定に従い重複が生じない位置に前記部分表示領域と他のオブジェクトとを配置する配置工程を有することを特徴とする請求項２０に記載のレイアウト制御方法。
【請求項２３】
割り当てられたデータを収め、当該データをページ上にレイアウトする複数の部分表示領域の配置を制御するレイアウト制御方法をコンピュータで実行可能なプログラムであって、当該プログラムが、
割り当てられたデータを収めるための前記部分表示領域の可動領域を算出し、当該可動領域から前記部分表示領域が前記ページ上に配置されている他のオブジェクトと重なるか予測する予測モジュールと、
前記予測モジュールの予測により、重なると予測された前記部分表示領域と他のオブジェクトとの間に重なりを防止するための重なり防止リンクを設定して表示する防止リンク表示モジュールと
を有することを特徴とするプログラム。
【請求項２４】
前記他のオブジェクトは、割り当てられたデータを収めるための部分表示領域であり、
前記予測モジュールは、ページ上に配置されている各部分表示領域の可動領域を算出し、前記可動領域から複数の部分表示領域が重なるか否かを予測することを特徴とする請求項２３に記載のプログラム。
【請求項２５】
前記予測モジュールにより重なると予測された場合、当該重なりを許容しない属性を前記部分表示領域に対して設定入力するための設定入力モジュールを有し、
前記設定入力モジュールにより重なりを許容しない属性が設定された場合、前記防止リンク表示モジュールは、前記重なりを許容しない属性が設定された部分表示領域と重なりが生じると予測される他のオブジェクトとの間に重なり防止リンクを設定して表示することを特徴とする請求項２３または２４に記載のプログラム。
【請求項２６】
前記割り当てられたデータサイズに応じて複数の部分表示領域の配置位置を調整する調整モジュールを更に備え、
前記調整モジュールが、前記重なり防止リンクが設定されている部分表示領域および他のオブジェクトの少なくとも１つの配置位置を調整する場合、前記重なり防止リンクに対して設定されている最小値より小さくならないように、前記部分表示領域および他のオブジェクトの少なくとも１つの配置位置の調整に応じて重なり防止リンクの長さを変更することを特徴とする請求項２３乃至２５のいずれか１つに記載のプログラム。
【請求項２７】
前記設定入力モジュールにより、重なりを許容しない属性が部分表示領域に設定された場合、前記部分表示領域に対してガイドを設定するガイド設定モジュールを有し、
前記防止リンク表示モジュールは、前記部分表示領域に対して設定された前記ガイドと前記部分表示領域と重なると予測された他のオブジェクトとの間に前記重なり防止リンクを設定して表示することを特徴とする請求項２５または２６のいずれかに記載のプログラム。
【請求項２８】
前記ガイド設定モジュールにより設定された前記ガイドは、前記調整モジュールにより、前記ガイドが設定された部分表示領域を構成する辺が配置される位置の変更に応じて移動可能であることを特徴とする請求項２７に記載のプログラム。
【請求項２９】
前記予測モジュールは、前記部分表示領域の可動領域の算出結果に従い、前記部分表示領域と重なると予測される前記他のオブジェクトとの重なり方向を特定できない場合、前記防止リンク表示モジュールは、前記調整モジュールにより前記部分表示領域と前記他のオブジェクトとの重なり方向が特定されることに応じて前記重なり防止リンクの設定方向を切り替えることが可能な対応角リンクを設定することを特徴とする請求項２３乃至２８のいずれか１つに記載のプログラム。
【請求項３０】
前記対応角リンクが設定された場合、前記部分表示領域と重なる前記他のオブジェクトの重なり方向が水平方向か、または垂直方向かを判定する重なり方向判定モジュールを更に備え、
前記防止リンク表示モジュールは、前記重なり方向判定モジュールの判定結果に従い、前記対応角リンクを水平方向の重なり防止リンクか、または垂直方向の重なり防止リンクに変更し、当該他のオブジェクトからの重なりを防ぐことを特徴とする請求項２９に記載のプログラム。
【請求項３１】
割り当てられたデータを収め、当該データをページ上にレイアウトする複数の部分表示領域の配置を制御するレイアウト制御方法をコンピュータで実行可能なプログラムであって、当該プログラムが、
割り当てられたデータを収めるための前記各部分表示領域の可動領域を算出し、当該可動領域から前記部分表示領域が前記ページ上に配置されている他のオブジェクトとの間に重なりが生じるか予測する予測モジュールと、
前記予測モジュールの予測により、前記部分表示領域が他のオブジェクトと重なると予測される場合、前記部分表示領域に対して重なりを許容するか否かを設定入力するための設定入力モジュールと、
前記設定入力モジュールにより重なりを許容する設定が入力された場合、前記部分表示領域に対して表示順序を設定する表示順序設定モジュールと、
前記部分表示領域に割り当てられたデータを収めることに応じて、他のオブジェクトとの間に重なりが生じた場合、前記表示順序に従って部分表示領域を表示する表示制御モジュールと
を有することを特徴とするプログラム。
【請求項３２】
前記表示順序設定モジュールは、前記部分表示領域及び他のオブジェクトの重複する部分のいずれか一方を上、他方を下として設定することを請求項３１に記載のプログラム。
【請求項３３】
前記設定入力モジュールにより重なりを拒否する設定が入力された場合、前記部分表示領域及び他のオブジェクトの少なくともいずれか一方の配置を優先する詳細設定を追加する詳細設定追加モジュールを更に備え、
前記詳細設定に従い重複が生じない位置に前記部分表示領域と他のオブジェクトとを配置する配置モジュールを有することを特徴とする請求項３１に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テキストやイメージで構成されたドキュメントの生成、編集、そして印刷のためのレイアウトを動的に制御する技術に関するものであり、更に詳しくは、バリアブルデータドキュメントの生成、編集、そして印刷に好適なものである。
【背景技術】
【０００２】
近年、商品の多品種化で商品ライフサイクルが短くなっていること、インターネットの普及により、これを利用した消費者のカスタマイズサービス指向が強くなっていることなどの要因からＣＲＭ（Customer Relationship Management）、One-to-Oneマーケティングの必要性が注目されている。これらの手法は顧客満足度を高め、顧客の開拓や囲い込みを目指すものである。
【０００３】
One-to-Oneマーケティングはデータベース・マーケティングの一種で、顧客の年齢、性別、趣味、嗜好、購買履歴等の個人属性情報をデータベース化し、その内容を分析、顧客のニーズに合った提案を行うものであり、その代表的な手法としてバリアブルプリントが挙げられる。最近ではＤＴＰ（デスクトップパブリッシング）技術の進展とデジタル印刷装置の普及に伴って、文書を顧客毎にカスタマイズして出力するバリアブルプリントシステムが開発され、顧客毎に異なる情報量のコンテンツを最適にレイアウトして表示することが求められるようになった。
【０００４】
従来におけるバリアブルプリントシステムは、ドキュメント上に情報を表示する領域としてコンテナ（帳票フォームではフィールド領域とも呼ばれる）等をレイアウトして、データベースとコンテナとを関連付けることによりレイアウト表示を達成していた。
【０００５】
しかし、テキストおよびイメージが貼り付けられる部分表示領域であるコンテナのサイズが固定であったため、データベース内のデータがコンテナに挿入されたときに、データ量がコンテナサイズより多いとテキストのオーバーラップやイメージのクリッピングが発生し、またデータ量がコンテナサイズより小さいとコンテナ内に隙間が空いてしまい、いずれの場合でも表示しようとするテキストやイメージの情報量に応じた最適なレイアウト表示を実現することはできなかった。
【０００６】
その問題を解決するために、情報量に応じてコンテナサイズを可変にする自動レイアウトシステムが提案されている。この自動レイアウトシステムはテキストおよびイメージのコンテナサイズを可変に設定することが可能である。この自動レイアウトシステムにおいて、コンテナのサイズを可変とし、差し込まれるデータ量に応じてコンテナのサイズを大きくするよう変更することができる。また、テキストの場合において固定のコンテナサイズ内に入りきらないデータが挿入された場合、テキストのフォントサイズを縮小し、コンテナ内に全てのテキストを表示する技術も存在する。
【０００７】
しかし、コンテナのサイズを大きくした場合、ドキュメント上の他のコンテナに重なってしまうという問題が生じる。またフォントサイズを調節する場合はテキストの量が多い場合、フォントサイズが小さくなりすぎるという問題も生じる。これらの問題を解決するために、さらなる自動レイアウトの技術として、あるコンテナのサイズが大きくなった場合、このコンテナに隣接する他のコンテナのサイズを小さくする技術が特許文献１の「レイアウトデザイン装置」に開示されている。
【特許文献１】特開平１１−３１６７９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した特許文献１には、テキストの入力に応じてコンテナサイズが拡大されていくことが記載されているが、コンテナのサイズが大きくなった場合、隣接したコンテナは間隔を保つべく縮小されてしまうため、入力されるテキスト量が増加するに従い、隣接したコンテナは縮小され続けてしまうといった問題点があった。
更に特許文献１では、上述したようなデータベースと各コンテナを関連付けてコンテンツデータを流し込むことで、顧客毎にカスタマイズした文書を作成するバリアブルプリントシステムについては考慮されていなかった。
【０００９】
また、バリアブルデータプリントを考慮したレイアウト方法として、固定のコンテナを作成し、そこにコンテンツデータを流し込んでいくものがある。しかし、固定サイズのコンテナを用いる場合、コンテナサイズより大きいサイズのコンテンツデータが流し込まれると、オーバーフローが生じてしまったり、フォントサイズを縮小して無理に流し込もうとするとフォントサイズが極端に小さくなってしまうといった問題が生じてしまう。また、流し込まれるコンテンツデータのサイズに応じてコンテナのサイズを拡大または縮小させることが考えられるが、複数のコンテナが関連付けられた状態で、一方のコンテナサイズが拡大された場合、関連付けられているコンテナは一方のコンテナサイズの拡大に伴って縮小するしかなくコンテナ間のサイズバランスを考慮したレイアウト処理を行うことができない。
【００１０】
そこで、関連付けられた複数のコンテナ間のサイズバランスを考慮したレイアウト方法として、各コンテナに流し込まれるコンテンツデータのサイズに応じて各コンテナのサイズを変更する場合、各コンテナサイズの変化量を調整したレイアウト処理を行うことで関連付けられたコンテナはサイズバランスを考慮したレイアウト処理が可能なる。しかしながら、上述のレイアウト処理方法は、関連付けられたコンテナ同士のレイアウトを調整することは可能であるが、関連付けられなかったコンテナ間ではレイアウト調整が行われない。例えば、テンプレート上に２つのコンテナＡおよびコンテナＢが配置されており、両者が関連付けられていないとする。この状況において、コンテナＡおよびコンテナＢにサイズの大きなコンテンツデータが流し込まれた場合、コンテナＡおよびコンテナＢの間でレイアウト調整を行うことなく、コンテンツデータが収まるまで両コンテナのサイズが拡大されるため、最終的にはコンテナ同士が重なるといった問題が生じてしまう。
【００１１】
また、ユーザがコンテナの重なりを防止するために、コンテナの間を関連付けて、コンテナ間の間隔を保つようにしても、かえって、レイアウトの動的変化の要素を増やしてしまってレイアウトの動的変化が予測しづらくなるという問題も生じるだけでなく、まったく関連性のないコンテンツデータが流し込まれるコンテナ同士がレイアウト調整を行うため、顧客に対して関連性があるかのように誤認させてしまう可能性もある。更に、コンテナ同士を関連付け要素が増加するに従い、多くの要素を考慮してレイアウト調整を行わなければならないため、最適なレイアウト調整が行われず、所望のレイアウトが得られないという問題も生じ得る。
【００１２】
本発明は上記の課題に鑑みてなされたものであり、データを収めたコンテナ（部分表示領域）の重なりをレイアウト編集時において判定し、重なりを禁止する部分表示領域、重なりを許容する部分表示領域をレイアウト編集時にそれぞれ設定することで、ユーザの所望するレイアウトを効率的に実現するレイアウト制御技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、本発明に係るレイアウト制御装置は主として以下の構成を有することを特徴とする。
【００１４】
すなわち、割り当てられたデータを収め、当該データをページ上にレイアウトする複数の部分表示領域の配置を制御するレイアウト制御装置は、割り当てられたデータを収めるための前記部分表示領域の可動領域を算出し、当該可動領域から前記部分表示領域が前記ページ上に配置されている他のオブジェクトと重なるかを予測する予測手段と、前記予測手段の予測により、重なると予測された前記部分表示領域と他のオブジェクトとの間に重なりを防止するための重なり防止リンクを設定して表示する防止リンク表示手段を有することを特徴とする。
【００１５】
あるいは、割り当てられたデータを収め、当該データをページ上にレイアウトする複数の部分表示領域の配置を制御するレイアウト制御装置は、割り当てられたデータを収めるための前記各部分表示領域の可動領域を算出し、当該可動領域から前記部分表示領域が前記ページ上に配置されている他のオブジェクトとの間に重なりが生じるか予測する予測手段と、前記予測手段の予測により、前記部分表示領域が他のオブジェクトと重なると予測される場合、前記部分表示領域に対して重なりを許容するか否かを設定入力するための設定入力手段と、前記設定入力手段により重なりを許容する設定が入力された場合、前記部分表示領域に対して表示順序を設定する表示順序設定手段と、前記部分表示領域に割り当てられたデータを収めることに応じて、他のオブジェクトとの間に重なりが生じた場合、前記表示順序に従って部分表示領域を表示する表示制御手段を有することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、データを収めた部分表示領域の重なりをレイアウト編集時に事前に把握し、重なりを禁止する部分表示領域、重なりを許容する部分表示領域をレイアウト編集時に設定することで、ユーザの所望するレイアウトを効率的に実現することが可能になる。
【発明を実施するための最良の形態】
【００１７】
本発明の好適な実施形態について添付図面を参照しつつ説明する。
【００１８】
（システム構成図）
図１Ａはコンテナサイズを可変に設定してドキュメント（バリアブルデータドキュメント）を印刷するシステム１００を図示している。このシステムにおいて実行するコンテナサイズの制御、コンテナ間のリンク設定、コンテナレイアウトの編集は図１Ｂで詳しく説明されるホストコンピュータ１０１の制御の下に実行される。図６で記述されるプロセスは、レイアウト制御装置であるホストコンピュータ１０１内で実行され、システム１００上で実行可能となるレイアウト編集アプリケーションプログラム１２１（本発明のレイアウト制御プログラム）のようにソフトウェアの全体、あるいはその一部分で実行される。特にレイアウト編集や印刷のステップはホストコンピュータ１０１によるソフトウェアによって実行される。
【００１９】
ソフトウェアは、例えば、以下に記述されるような記憶装置を含むコンピュータの可読媒体に格納される。ソフトウェアはコンピュータの可読媒体からホストコンピュータにロードされ、実行される。そのようなソフトウェアや媒体に記録されたコンピュータプログラム、あるいはそのプログラムを格納するコンピュータの可読媒体は、コンピュータと協働したドキュメントのレイアウト編集やバリアブルデータ印刷に必要な演算処理や表示制御、レイアウト制御、コンテンツに関する情報処理を実行する手段としてコンピュータの機能を特定する。
【００２０】
図１Ｂに示すようにホストコンピュータ１０１はキーボード１３２やマウス１３３のようなポインティングデバイスなどの入力装置、ディスプレイ装置１４４や状況に応じてローカルプリンタ１４５を含む出力装置と接続する。入力／出力（Ｉ／Ｏ）インターフェース１３８はホストコンピュータ１０１をネットワーク１０７に接続してシステム１００を他のコンピュータ装置（例えば、データベースサーバ１１７）に接続することができる。そのネットワーク１０７の典型はローカルエリアネットワーク（ＬＡＮ）、あるいはワイドエリアネットワーク（ＷＡＮ）である。
【００２１】
ホストコンピュータ１０１は典型的に少なくとも１つのプロセッサユニット１３５、例えば半導体のランダムアクセスメモリ（ＲＡＭ）やリードオンリーメモリ（ＲＯＭ）から構成されるメモリユニット１３６、ビデオインターフェース１３７を含むＩＮＰＵＴ／ＯＵＴＰＵＴ（Ｉ／Ｏ）インターフェース、キーボード１３２やマウス１３３のためのＩ／Ｏインターフェース１４３を含んでいる。記憶装置１３９はハードディスクドライブ１４０やフロッピー（登録商標）ディスクドライブ１４１を含んでいる。ここでは図示されていないが磁気テープドライブもまた記憶装置として使用することができる。
【００２２】
上述のハードウエア構成及びソフトウェア構成の組み合わせにより、レイアウト制御装置の構成が実現する。
【００２３】
割り当てられたデータを収めるための前記部分表示領域の可動領域を算出し、割り当てられたデータ（テキストデータやイメージデータを含む）を収め、データをページ上にレイアウトする複数の部分表示領域（コンテナ）の配置を制御するレイアウト制御装置は、割り当てられたデータを収めるための部分表示領域（コンテナ）の可動領域を算出し、可動領域から部分表示領域（コンテナ）がページ上に配置されている他のオブジェクトと重なるかを予測する予測ユニットと、予測ユニットの予測により、重なると予測された部分表示領域（コンテナ）と他のオブジェクトとの間に重なりを防止するための重なり防止リンクを設定して表示する防止リンク表示ユニットを備える。
【００２４】
ＣＤ−ＲＯＭドライブ１４２は不揮発性のデータソースとして提供される。ホストコンピュータ１０１はＧＮＵ／ＬＩＮＵＸやマイクロソフトウィンドウズ（登録商標）のようなオペレーションシステムや、典型的にはオペレーションシステムに従い形成されたコンピュータシステムのオペレーションによって、相互接続バス１３４を介して通信を行うホストコンピュータ１０１のプロセッサユニット１３５からＩ／Ｏインターフェース１４３を利用することができる。図１Ａに示したホストコンピュータ１０１を含んだシステムの例としては、ＩＢＭ互換ＰＣやＳＵＮ のＳｐａｒｃｓｔａｔｉｏｎ、あるいはそれらを含んだコンピュータシステムが考えられる。
【００２５】
レイアウト編集アプリケーション１２１は典型的にはハードディスクドライブ１４０に常駐し、プロセッサユニット１３５により読み出され、実行される。プログラム１２１を記憶する記憶装置１３９とネットワーク１０７からフェッチされるデータはハードディスクドライブ１４０、またはこれに呼応してメモリユニット１３６が使用され、アプリケーションプログラム１２１がＣＤ−ＲＯＭやフロッピー（登録商標）ディスク上でエンコードされ、対応するＣＤ−ＲＯＭドライブ１４２やＦＤＤ１４１を通じて読み込まれユーザに提供される。
【００２６】
あるいはもう一つの方法としてアプリケーションプログラム１２１はネットワーク１０７からユーザによってインストールするようにしてもよい。さらにソフトウェアは磁気テープまたはＲＯＭまたは集積回路、光磁気ディスクまたは無線またはホストコンピュータ１０１とその他のデバイス間の赤外線通信、ＰＣＭＣＩＡカードのようなコンピュータ可読カード、そしてＥメール通信やＷＥＢサイト上の記録情報を持つインターネットやイントラネットを含む、他の適当な大きさのコンピュータ可読媒体からホストコンピュータ１０１内にロードすることもできる。但し、これらのコンピュータ可読媒体は、単に関連するコンピュータ可読媒体の規範であり、媒体の種類がこれらに限定される趣旨ではなく、他のコンピュータ可読媒体も使用することも可能である。
【００２７】
また、レイアウト編集と名づけられたアプリケーション１２１はバリアブルデータ印刷（ＶＤＰ）を行うためのプログラムモジュールであり、２つのソフトウェアコンポーネントを含んでいる。これらのうち１つめのモジュールは、レイアウトエンジンモジュール１０５であり、これはデータが流し込まれる部分表示領域であるコンテナ（矩形の範囲）のサイズや位置の制限に従ってデータベース１１９に格納されているバリアブルデータから１レコードずつ読み込み、読み込んだデータとコンテナの制限とから、読み込んだデータが流し込まれるコンテナの大きさや位置等を計算するためのソフトウェアモジュールである。レイアウトエンジン１０５は各部分表示領域（コンテナ）のサイズと位置を決定するアプリケーションとして動作し、図示省略したプリンタドライバに描画情報を出力することで、プリンタドライバがバリアブルデータドキュメントのイメージ描画処理を行い、印刷データを生成する。
【００２８】
２つめのモジュールであるユーザインターフェースモジュール１０３はユーザにドキュメントテンプレートを作成させ、ドキュメントテンプレート内でデータソースとコンテナとを関連付けるメカニズムを提供するモジュールである。ユーザインターフェースモジュール１０３とレイアウトエンジンモジュール１０５はコミュニケーションチャネル１２３を介して通信することが可能である。ドキュメント作成のためのデータソースはデータベースアプリケーションを動かしている他のコンピュータによって構成されたデータベースサーバ１１７上にあるデータベース１１９に格納されている。ホストコンピュータ１０１はネットワーク１０７との接続を介してデータベースサーバ１１７と通信することができる。バリアブルデータ印刷を実行する場合、レイアウト編集アプリケーション１２１はホストコンピュータ１０１か、若しくは他のコンピュータで構成されるファイルサーバ１１５に保存されるドキュメントテンプレートを生成する。またレイアウト編集アプリケーション１２１はデータとマージされたドキュメントテンプレートによって構成されたドキュメントを生成する。これらのドキュメントはホストコンピュータ１０１の記憶装置１３９に保存されるか、ファイルサーバ１１５に保存されるか、あるいはプリンタ１１３に直接印刷される。
【００２９】
プリントサーバ１０９は直接ネットワークに接続していないプリンタ１１３にネットワーク機能を提供するコンピュータである。プリントサーバ１０９とプリンタ１１３は典型的な通信チャネル１１１を介して接続する。
【００３０】
図２はレイアウトエンジンモジュール１０５をホストコンピュータ１０１の他にエンジンサーバ２２７にもレイアウトエンジン２２５を設けた構成を示す図である。エンジンサーバ２２７は典型的なコンピュータにより構成され、ファイルサーバ１１５に保存されたドキュメントテンプレートは印刷や他の目的がある際、レイアウトエンジン２２５によってドキュメントを生成するためにデータベース１１９に保存されたデータと結合することができる。そのようなオペレーションはユーザインターフェースモジュール１０３の制御の下、ユーザインターフェース（ＵＩ）画面を介して入力され、特定のレコードのみ印刷するように設定することができる。
【００３１】
（アプリケーション構成図）
（メインウインドウ）
図３で示されるアプリケーションウィンドウ３０１は、ユーザインターフェースモジュール１０３（図１Ａ）によって、操作時にディスプレイ装置１４４に表示される。アプリケーションウィンドウ３０１は、非表示にすることや、スクリーン上の色々な場所に移動することが可能なメニューバー３０２とツールバー３０３、そしてマウス１３３の位置・動作によって場所を移動可能なワークエリア３０６とオプションのパレット３１１とカーソル/ポインタデバイス３１３を有しており、これらにより特徴付けされる。
【００３２】
メニューバー３０２は、周知の技術として知られているように、メニューオプションの階層の下に拡張される多くのメニューアイテム３０４を有し、ツールバー３０３は、アプリケーションの特別なモードによって非表示にしたり、または表示することが可能な多くのツールボタン３０５を有する。オプションのルーラー３０８はワークエリア内のポインター、ページ、ライン、マージンガイド、コンテナまたはオブジェクトの位置を示すために使われる。パレット３１１はバリアブルデータライブラリのような追加機能にアクセスするために使われる。パレット３１１は移動、リサイズ、クローズをするためのウインドウコントロール機能を提供するボタン３１２を有する。パレット３１１の表示はオプションで、ワークエリアの前面に表示することもでき、あるいは背面に隠すこともできる。また、このパレット３１１に対する表示制御は、アプリケーションウィンドウ３０１の範囲内のみに制限したり、あるいはアプリケーションウィンドウ３０１の外側に部分的、あるいはその全体を表示するようにすることもできる。
【００３３】
ツールバーエリア３０３には少なくとも、ユーザによる選択が可能な「ボタン」（４０３〜４０６）を備える（例えば、図４を参照）。以下、ボタン４０３〜４０６を説明する。
【００３４】
選択ツールボタン４０３は、コンテナの辺を選択、移動、サイズ変更、そしてコンテナのロック（固定）、あるいはロック解除をするために使われる。コンテナは、複数のコンテナの周りをドラッグする、あるいは複数コンテナを選択する間にCTRLキーを押しつづけることによって、複数のコンテナの選択を可能にする。
【００３５】
テキストコンテナツールボタン４０４は、スタティック或いはバリアブルテキストを持つコンテナを作成するために使われる。
【００３６】
イメージコンテナツールボタン４０５は、スタティック或いはバリアブルイメージを持つコンテナを作成するために使われる。
【００３７】
リンクツールボタン４０６は、コンテナ間に関連付けを行うリンクを作成するために使われ、リンクの距離をコントロールするためにも使われる。
【００３８】
これらのボタンは、周知の技術であるように操作状況に合わせて変化するアイコンとして実装される。
【００３９】
図３に示したレイアウト編集アプリケーション１２１のアプリケーションウィンドウ３０１は、ページ内に各コンテナやリンクをレイアウトすることで、基本レイアウトを決定することができる。基本レイアウトとは、バリアブルデータプリントで基本となるレイアウトのことである。基本レイアウト内の全てのコンテナが固定コンテナである場合は、全レコードの印刷結果のレイアウトは同じになる。また、基本レイアウト内の各コンテナが後述する可変コンテナである場合は、レコード単位に読み込まれるデータの量やサイズにより各コンテナのサイズや位置が、後述する制約の範囲内で変動することになる。よって、レイアウト編集アプリケーション１２１で作成されるドキュメントテンプレートは、あくまで基本レイアウトを決定するものであり、可変コンテナが含まれる場合は、最終的な印刷物のレイアウトは読み込まれるデータによりレイアウトが調整されることになる。
【００４０】
（ドキュメントテンプレート）
図３に示したワークエリア３０６はドキュメントテンプレートのデザインを表示・編集するために使用される。これはユーザに下準備で印刷されたドキュメントの概観をデザインすること、そしてマージされたドキュメントが、バリアブルデータの量やサイズに基づいてどのように変化するかを理解させることができる。外部のデータベースがテンプレートにリンクされている場合には、現在のドキュメントのプレビューができるように、バリアブルテキストとイメージをそれらのコンテナに表示することができる。ドキュメントの構造とバリアブルデータコンテナの表示は、カーソルをコンテナ上に移動させたときや、コンテナを選択したときにいつも表示するようにすることができる。
【００４１】
ワークエリア３０６はスクロールバー３０７とオプションのルーラー３０８とドキュメントテンプレート３０９により特徴付けられる。ドキュメントテンプレート３０９はページが複数あることを示すことができる。与えられたドキュメントテンプレートのページサイズは、周知の技術としてユーザによって指定される。例えばメニューの「ファイル」から「ページ設定」を選択することでページサイズを設定するダイアログを表示し、そこでユーザが指定したページサイズが反映されることになる。それぞれのドキュメントにおける実際のページ数は、バリアブルデータによって変化する可能性があり、もし１ページ内にバリアブルデータを収めることができず、所定の用紙サイズのページに各コンテナを収めるような制約が基本レイアウトになかった場合には、追加のページは自動的に作成される。所定の用紙サイズのページに各コンテナを収めるように制約（後述するアンカーアイコン等により設定可能である）が基本レイアウトに設定されている場合は、ページ内で各コンテナがお互いに押したり押されたりしながら、各コンテナサイズと位置が決定され、必要に応じて流し込まれるバリアブルデータが縮小され、レコード毎に動的にレイアウトが決定される。
【００４２】
図３において破線で示されるページ内の境界線は、ページ上の印刷可能なオブジェクトの最大幅を示すものであり、任意に設定することが可能なページマージン３１０である。また、図４は１ページのドキュメントテンプレート３０９上に表示することが可能なオブジェクトの例を示す図であり、図４では複数のコンテナ４０７及び４０８が示されており、コンテナの辺４１４の位置を固定するアンカーアイコン４０９と固定されていない辺４１０、リンク４１２そしてスライダー４１３によりコンテナ間の相互の関係が規定されている。アンカーアイコン４０９は、コンテナの矩形の角、辺、またはコンテナの中央に設定することが可能である。アンカーアイコン４０９が設定されると、設定された個所の位置が固定となる。つまり、図４の例では、アンカーアイコン４０９は、コンテナ４０７の左上の角に設定されているため、コンテナ４０７はバリアブルデータが流し込まれ、バリアブルデータの画像サイズもしくはテキスト量が多い場合に、右方向及び下方向に拡大可能であることを示している。アンカーアイコン４０９が辺に設定されている場合は、その辺が固定となり、その他の３辺の各方向に拡大可能である。
【００４３】
また、アンカーアイコン４０９がコンテナの中央に設定されている場合は、コンテナの中央位置が固定となり、コンテナ矩形の中央位置が変わらないように、４方向に拡大可能である。リンク４１２の詳細は後述するが、コンテナ４０７とコンテナ４０８が関連付けられていることを示しており、このリンクに設定されている長さ（リンクが後述する可変リンクの場合、リンクの長さの範囲指定が可能）を保ちつつ、コンテナ４０８が右方向に移動可能であることを示している。スライダー４１３は、設定されている辺と水平方向に移動可能であることを示している。
【００４４】
（コンテナ）
ここで、コンテナについて説明する。コンテナは、ドキュメントテンプレート内にバリアブルデータファイルから固定（静的）あるいは可変のテキスト／イメージがレコード単位に流し込まれ、描画されるスペース（これを部分表示領域と呼ぶ）であり、図４に示されるように他のコンテナやオブジェクトと共にレイアウトされる。ユーザインターフェース画面を介して、ユーザからの操作指示により、コンテナはマウス１３３の操作により移動、サイズ調整、再作成される。なお、本願明細書では、テキストデータまたはイメージデータといったコンテンツデータが流し込まれる領域であるコンテナのことを部分表示領域と記載する場合がある。
【００４５】
コンテナは、アンカーアイコン４０９、リンク４１２、スライダー４１３によりコンテナの変形に関する拘束条件が規定されている。テキストやイメージデータの情報量に応じてその変形が許容されている方向にコンテナスペースの変形が制御されて、テキストデータやイメージデータがそのコンテナ内にレイアウトされる。２つのコンテナに関して相互に変形が必要となる場合、各コンテナに収納するべきテキストデータやイメージデータの量に応じて、相互のコンテナの変形がバランスよく変形するように（各コンテナにストレスの無い状態）に各コンテナの形状が制御される。
【００４６】
コンテナはポインティングデバイスとしてのマウス１３３の動作によりワークエリア３０６内の位置が特定され（図３の３１３）、ユーザインターフェースとしての画面内（図３）で移動、サイズ調整が施され、新たなコンテナを追加することも可能である。コンテナは、アンカーアイコンや、リンクそしてスライダーによりコンテナ間相互の関係等の変形に関する種々の条件が設定され、コンテンツを表示する視覚的表現、そしてコンテナ間のインタラクションとコンテナ内の情報の編集機能を有している。ここで、コンテナを定義すると以下のようになる。
【００４７】
（１）コンテナは固定（静的）あるいは可変（バリアブル）のコンテンツが入力され、可変コンテンツは、データソースからデータをとってきて、異なるドキュメントでは異なるデータに応じてコンテナサイズを可変するという意味でダイナミック（動的）である。可変コンテンツはアニメーション化されたもの、あるいは他の方法で時間を変更するコンテンツを含むことは印刷に適合していないため意図していない。同様に、固定コンテンツはコンテナを使って生成される全てのドキュメントで、同じように表示される。けれども、可変コンテンツとリンクが設定されている場合、可変コンテナの動作によって、固定コンテンツはそれぞれのドキュメントで表示位置が異なるように表示制御される。
【００４８】
（２）コンテナは、コンテンツに適用される背景色、ボーダー、フォント・スタイルのようなテキスト設定のような装飾機能を持っている。このような設定をコンテナ属性と呼ぶ。コンテナ属性は、コンテナごとに設定可能であるが、あるコンテナと同じコンテナ属性であるという設定を行うことも可能である。
【００４９】
（３）コンテナはドキュメントを生成したときにデータソースからのデータとマージされる。装飾機能は、どんな固定コンテンツでもそうであるように、典型的に印刷された出力物に対して反映され、装飾が反映された結果は可視化される。可変コンテンツはデータソースから特定のデータの表示をもたらす。すなわち、その特定のデータに対して、コンテナに設定されている条件に従い、コンテナのサイズが可変に設定される。可変に設定されたコンテナのレイアウト、およびコンテナ内の特定のデータ表現は、例えば、プリンタ１１３を介して印刷されるか、ディスプレイ装置１４４上で表示されるか、その両方により処理することが可能である。
【００５０】
（４）コンテナの設定に関し、システムはユーザインターフェースモジュール１０３を備え、例えば、コンテナの編集そして表示設定のためのインタラクティブなグラフィカルユーザインターフェース（ＧＵＩ）を有する。そして、ユーザインターフェースの要素はディスプレイ装置１４４上に表示される。しかしドキュメントは印刷されない。ユーザインターフェースモジュール１０３は、背景色やフォントのようなコンテナに関する装飾機能のいくつかをインターフェース画面上に表示させ、これらの装飾機能をコンテナの設定、編集、コンテナ表示に追加することができる。
【００５１】
（５）更に、ユーザインターフェースモジュール１０３による設定の例としては、コンテナ間のボーダー、あるいは、コンテナのサイズや位置を対話的に変更、表示するためにコンテナに設定するコーナー部のアイコンや、あるいはデータソースからデータをマージしたとき、コンテナの動作（例えば、上塗りした数、線、アイコンの設定、テキストの編集）を設定する。
（コンテナに対する制約）
コンテナはそれぞれのドキュメントにおけるコンテンツの内容を表示するために、コンテナをコンテンツと結びつけて表示制御、レイアウト制御するための制約がある。これらの制約（固定・可変コンテンツをコンテナと結びつけること）は、ユーザが一つのドキュメントテンプレートから多数のドキュメントをコントロールする主要な方法である。制約の例は、たとえば、コンテナのコンテンツの高さは、最大値４インチとするような制約が挙げられる。もうひとつの制約としては、コンテナのコンテンツの左エッジは、それぞれのドキュメントで同じ水平位置で表示しなければならないとするような制約である。ここに記述される内容は、ＧＵＩを使ってこのような制約を表示、編集のために設定することが可能である。
【００５２】
イメージがページ上に定義された位置を持っているように、コンテンツの配置もその位置が特定される。コンテナは位置とサイズを持ち、それらはバリアブルデータ印刷において、コンテナ内に挿入されるコンテンツの内容に応じてコンテナのレイアウトが設定された条件の下、コンテンツの内容を表示・編集することを可能にする。コンテナは、ユーザにドキュメントのコンテンツのサイズ・位置を指定することを可能にする。いくつかのドキュメントは一つのドキュメントテンプレートから生成されるので、コンテナはユーザインターフェースモジュール１０３により与えられるコンテナに対する制約を指定することができる。
【００５３】
１つのコンテナを構成する辺は、関連付けられたコンテンツがドキュメント内で表示される仮想の境界線を定義する。たとえば、矩形のコンテナの左辺は、関連付けられたコンテンツが配置される左側の位置を与え、同様に、コンテナの高さは生成されたドキュメントに関連付けられたコンテンツの高さの制約を与える。
【００５４】
以下の記載において、コンテンツの表示を制限するために使われるある値を定義している用語『固定』は、全てのドキュメントで同じである。
【００５５】
（１）コンテナの幅が固定なら、関連付けられたコンテンツに割り当てられる幅は、全てのドキュメントで同じになる。
【００５６】
（２）コンテナの高さが固定なら、関連付けられたコンテンツに割り当てられる高さは、全てのドキュメントで同じになる。
【００５７】
（３）距離の制約が固定なら、指定された距離は全てのドキュメントの制約となる。
【００５８】
（４）コンテナの左右辺が固定の場合、コンテナの高さあるいは垂直方向の位置は、コンテンツを完全にコンテナ内に収容するために、コンテナサイズは変形が許容されている高さ方向あるいは垂直方向に変えることが可能である。
【００５９】
（５）コンテナの上下辺が固定の場合、コンテナの幅あるいは水平位置は、コンテンツを完全にコンテナ内に収容するために、コンテナサイズは変形が許容されている幅方向あるいは水平方向に変えることが可能である。
【００６０】
（６）コンテナの垂直軸はコンテナの右と左辺の平行で、そして中間に位置される想像上の垂直線である。もしコンテナの垂直軸が固定なら、コンテナの左右辺の水平位置の平均は、すべてのドキュメントで同じである。この制約で、コンテナの幅は変化するかもしれない、左右辺両方が異なったドキュメントで、垂直軸にもっとも遠いかもっとも近いかもしれない、しかし軸は全てのドキュメントで同じ水平位置にある。コンテナの高さと水平位置はこの制約によって影響されない。
【００６１】
（７）同様に、もし水平軸が固定なら、コンテナの上そして下辺が垂直に位置されることを制約する、けれども高さは、この制約によって影響されない。
【００６２】
（８）水平、垂直軸両方が固定なら、コンテナの中心位置が固定されていることを意味する、しかし、幅・高さはこの制約によって影響されない。
【００６３】
（９）コンテナの角、コンテナの辺の中間位置、あるいはコンテナの中心位置が固定なら、すべてのドキュメントで同じ場所で、そしてコンテナに関連付けられた同じ場所で表示される。例えば、もしコンテナの左上角が固定なら、配置されたコンテナの左上位置が全てのドキュメントで同じになることを意味している。
【００６４】
（１０）垂直辺あるいは垂直軸は、ページの左辺もしくは右辺、あるいは左ページマージンもしくは右ページマージン、あるいは他の水平位置に関連付けされて固定することができる。同様に、水平辺あるいは水平軸はページの上辺もしくは下辺、あるいは上下ページマージン、あるいは他の垂直位置に関連付けされて固定することができる。
【００６５】
「固定」の反対は、コンテナの辺、軸、角、中間位置、あるいはドキュメント制約がドキュメント間（レコード間）で変化するかもしれないことを意味する「可変」である。例えば、ページ内では、バリアブルデータのサイズや量により、動的にレイアウトが変更されることを期待するが、特定のコンテナについては、大きさや位置を固定したり、また、ページの角のコンテナの四隅は固定にしたいということを所望する場合がある。そのため、本レイアウト編集アプリケーション１２１では、各コンテナ（部分表示領域）について、辺、軸、角、中間位置等を固定にするか、可変にするかを適宜設定できるようにした。これにより、ユーザはドキュメントテンプレート１８０の基本レイアウトを決定する場合に、ユーザが所望とするように基本レイアウトを作成することができる。
【００６６】
（コンテナ表示・編集）
（新規コンテナの作成方法）
コンテナは、テキストコンテナとイメージコンテナの2種類ある。テキストコンテナはテキスト、そして埋め込みのイメージを持つ（収納する）。イメージコンテナは、イメージだけを持つ（収納する）。図４で参照されるように、新規テキストコンテナとイメージコンテナは、テキストコンテナツール４０４、あるいはイメージコンテナツール４０５をマウス１３３でクリックし、テンプレート３０９に四角形をドラッグすることによって、ドキュメントテンプレート３０９上に作成される。コンテナは、適切なテキストコンテナツール４０４、イメージコンテナツール４０５をアクティブにした後に、ドキュメントテンプレート３０９上でマウス１３３をクリックすることによって作成される。この場合、デフォルトサイズのコンテナが挿入されるか、新規コンテナの寸法を入れるために、ダイアログボックスあるいは他のプロンプトが提供される。コンテナは自動的に前もって定義され、計算されたスキーマによって作成され、ドキュメントテンプレート３０９上に配置される。ここで生成されたコンテナをマウス等の入力手段により選択し、右クリックでプロパティを指示する等の操作を行うことにより、コンテナのプロパティダイアログが表示され、コンテナの制約を設定することができる。コンテナのプロパティダイアログＵＩ（部分表示領域設定手段に相当する）では、上述した各種の制約を設定することができる。また、コンテナのプロパティダイアログでは、コンテナのサイズ（幅、高さ）や位置を決定することができ、可変サイズにする場合は、コンテナの基本パターン（基本サイズと基準位置）を設定し、更に、最大コンテナサイズ（幅、高さ）と最小コンテナサイズ（幅、高さ）を設定することが可能となっている。
【００６７】
（コンテナの表示方法）
図５Ａ〜５Ｄはコンテナを構成する辺に対するルールを例示的に説明する図である。レイアウト編集アプリケーション１２１は、辺の状態を表現するために、塗りつぶし線（実線）（５０３）あるいは点線（５０４）で辺を描き、アンカー（辺の近くに描画された５０６、５０７、５０９によって示されるような線、形状、アイコン）、ハンドル（移動、修正するために辺、形の近くに描画されたコントロール点、５０２）、スライダー（辺の両サイドに描画された短い並行線、図４の４１３）、拡縮アイコン（５０５）、そして色を特徴として持っている。
【００６８】
図５Ａ〜５Ｄに示すコンテナの表示方法のルールは、つぎの通りである。
【００６９】
１. それぞれの辺を固定するために、塗りつぶし線で描画する。
【００７０】
２. もし幅が固定なら、左と右の辺を塗りつぶし線で描画する。
【００７１】
３. もし高さが固定なら、上と下の辺を塗りつぶし線で描画する。
【００７２】
４. 軸は描画しない。
【００７３】
５. まだ描画されていない全ての辺は、それぞれの辺の近くに拡縮アイコンが描画され、点線になる。
【００７４】
６. 垂直辺あるいは軸のそれぞれのペアで、もし両者が固定なら、交差点にアンカーが描画される。
【００７５】
７. それぞれの固定辺で、もし辺のどこにもアンカーが描画されていなければ、エッジ（コンテナを構成する辺）の中央にスライダーが描画される。
【００７６】
８. 垂直辺あるいは軸のそれぞれのペアで、もしアンカーやスライダーが描画されていなければ、交差点にハンドルが描画される。
【００７７】
上述のルール１、２、３で定義された線は、前述したように固定あるいは制限されているため、実線で描画される。ルール５のように可変の辺は、点線で描画される。ルール６、７、８で定義された固定された点は、アンカーを表示し、いくつかの固定された辺はスライダーを表示し、他はハンドルを表示する。
【００７８】
上記のルールは、ユーザにより後で設定された制約が優先される。つまり、後で別の制約が設定された場合、上記のルールが描画されるべき辺に影響すれば、実線や点線の描画内容が変更されることになる。
【００７９】
可変の辺が描画される場所は、コンテナのコンテンツに依存する。後で記述されるように、ドキュメントテンプレートにコンテンツがマージされて、ユーザインターフェースで可視になることを意味する、『動的な校正処理』が使われる。代わりの実行手段としては、すべてのドキュメントで平均化されるコンテナのコンテンツエリア、あるいは可変の辺がユーザインターフェースで、どこにレイアウトされるべきか決定するほかの手段で使われる。レイアウト編集アプリケーション１２１は以上のルールに従って、コンテナの表示制御、レイアウト制御、編集を実行することができる。
【００８０】
コンテンツの表現は、コンテナの辺に設定されたアンカーアイコン、スライダーアイコン等の設定に従い、サイズを可変にすることが可能なコンテナに挿入されることにより可視化される。コンテナに設定される具体的なアイコン及びコンテナを構成する辺は、以下に説明するように機能する。
【００８１】
アンカーは辺または軸が交差した場所が固定されていることを意味する。図４のアイコン４０９は、交差する辺４１４が固定されていることを示すアンカーアイコンの例である。
【００８２】
スライダーは関係付けられた辺が、その辺の垂直方向に固定されているが、並行移動する可能性があることを意味する。幅・高さのサイズは、レイアウト編集アプリケーション１２１の制御の下、副次的なダイアログウィンドウに表示され、コンテナサイズとして許容される基本値・最小値・最大値の基本パターンを設定することが可能である。
【００８３】
図５Ａにおいて、コンテナ５０１は幅・高さ両方が固定されていない。コンテナ５０１を構成する実線で示される辺５０３は固定であり、点線で示される辺５０４は幅・高さ両方が可変である。拡縮アイコン５０５は、隣接する辺５０４が可変であることを示す。また、図５Ｂにおいて、コンテナ５０１を構成する実線で示される辺５０３は固定であり、同図において、アンカーアイコン５０６は、辺５０３が交差する高さ方向および幅方向に変位が拘束されることを示す。
【００８４】
図５Ｃでは、コンテナ５０１は、コンテナの拡大あるいは縮小が任意のアンカーアイコン５０７で示されるような中心点の周りに幅方向及び高さ方向に均等に広がるという状態に設定されており、幅・高さ両方が各辺において可変である。また、図５Ｄにおいて、コンテナ５０１は、上辺５０８に対してスライダーアイコン５０９が設定されており、固定されているが、点線で示される辺５０２は幅及び高さの両方が可変である。この場合、アンカーアイコン５０９を通る中心軸（垂直軸）を基準として、辺５０２の左右方向、及び上下方向に変位をすることが可能であり、これによりコンテナのサイズを変えることが可能である。ここでの拡大／縮小は、アンカーアイコン５０７の位置が常にコンテナ５０１の中心点となるようにレイアウト調整される。
【００８５】
（リンクの設定方法）
図６はレイアウト編集アプリケーション１２１によるリンクの設定方法を示すフローチャートであり、図７はユーザインターフェースの画面表示例を示す図である。以下、図６、図７を用いてコンテナにリンクを設定する操作方法について説明をする。なお、本願に記載のフローチャートの各処理は情報処理装置（ホストコンピュータ）１０１内のプロセッサ１３５が制御することによって実現される。
まず、リンクをコンテナに設定するためには、リンク設定の対象となるコンテナ（最低２つ）を作成する（Ｓ６０１）。図７（Ａ）は、２つのコンテナ７０１、７０２が作成された状態を示している。
【００８６】
次に、前述したリンクツールボタン４０６（図４を参照）を選択した状態にする（Ｓ６０２）。ここで、図７（Ａ）のコンテナ７０１と７０２は、前述した図４のコンテナ４０７と４０８と同じ内容のものを示しており、固定されている辺（実線で示される）によりコンテナが構成されることを示している。また、アイコン７０３と７０４は、図４におけるアイコン４０９と同じアンカーアイコンであることを示し、７０５はマウスポインタを意味している。
【００８７】
ステップＳ６０２において、リンクツールボタン４０６の選択が完了すると、次に、コンテナを選択する（Ｓ６０３）。この選択は、リンクを設定する対象となるコンテナの片方（たとえば、７０１）をマウス１３３によりクリックすることでコンテナは選択される。次に、リンクを設定する他方のコンテナ（たとえば、７０２）をマウス１３３によりクリックすることで、リンクを設定する他方のコンテナの選択が完了する（Ｓ６０４）。
【００８８】
図７（Ｂ）の７０６はステップＳ６０３でマウス１３３をクリックした位置（Ｐ１）とステップＳ６０４でマウスをクリックした位置（Ｐ２）とを結ぶマウスポインタ１３３の概略的な軌跡を示す線分であり（図６のＳ６０５）、この線分が交わるコンテナの辺７１１及び辺７１２の間にリンク７０７が設定され、最終的にリンク７０７がコンテナ間に設定された状態のインターフェース画面が更新される（Ｓ６０６）。リンク７０７が設定されたことにより、コンテナを表示するための画面表示も自動的に切り替えられる。切り替えられた画面（図７（Ｃ））において、辺７０８は点線で示されている辺であり、前述した通り可変の辺を示している。固定の辺（リンク設定前の７１１、７１２が対応）から可変の辺に７０８が切り替えられたのは、リンク７０７を設定したことにより、コンテナ７０１、７０２の辺を可変にする必要があるためであり、リンク７０７を設定したにもかかわらず、全ての辺が固定とすると、コンテナ間の相対的な関係をリンクにより特定するという矛盾を防ぐためであり、レイアウト編集アプリケーション１２１の制御の下、自動的に行われる処理である。
【００８９】
また、７０９は図５Ａ-Ｄに示した５０５と同様に機能し、リンク７０７を設定したことにより、コンテナ７０１、７０２が変位できる方向をユーザに視覚的に示す識別用の表示である。図７（Ｃ）の例では、左のコンテナ７０１の右辺と右のコンテナ７０２の左辺が可変に変化したが、これは一例であり、右コンテナ７０１が、図４の４１３で示したスライダーを持つ設定により辺７０８が可変であることを表示するようにすることもできる。以上の処理はレイアウト編集アプリケーション１２１の制御のもとに実行することができる。
【００９０】
（レイアウト計算方法（全体フロー））
本実施形態のレイアウト編集アプリケーション１２１は、ユーザインターフェース１０３を用いてコンテナを作成し、そのコンテナ間に関連付け（リンク設定）を行ってレイアウトを作成するレイアウトモードと、レイアウトエンジン１０５により、作成したレイアウトにデータソースの各レコードを挿入して、実際にレコードが挿入された後のレイアウト結果をプレビューするプレビューモードに分けられる。このプレビューモードにおいて、実際のレコードが挿入され、前述した優先順位に従ってレイアウトを計算する。ただし、プレビューモードは、表示上でのレイアウト計算である。実際に印刷する場合においても、レイアウトエンジン１０５が各コンテナにデータを挿入してレイアウトを計算するが、その際の計算方法はプレビューモードと同じである。図８はレイアウト計算のフローを示している。
【００９１】
まず、プレビューモードを選択する（Ｓ８０１）。自動レイアウトシステムでは、コンテナを作成して、そのコンテナ間に関連付けを行い、レイアウトを作成するレイアウトモードと、作成したレイアウトに表示するデータレコード（以下、「レコード」）を挿入して、実際にレコードが挿入された後のレイアウト結果をプレビューするプレビューモードに分けられる。このプレビューモードにおいて、実際のレコードが挿入され、レイアウトを計算する。ただし、プレビューモードは、表示上でのレイアウト計算である。実際に印刷する場合においても、レコードを挿入してレイアウトを計算する。
【００９２】
その際の計算方法も同じである。プレビューモードになったら、プレビューするレコードを選択して挿入する（Ｓ８０２）。レコードの挿入を行うと、そのレコードをレイアウトするためにレイアウト計算を行う（Ｓ８０３）。そして、処理ステップＳ８０３で計算されたレイアウトを表示し（Ｓ８０４）、他のレコードについてもプレビューを行うかどうかを判断する（Ｓ８０５）。処理ステップＳ８０５で、他のレコードについてプレビューを行う必要がないと判断した場合は（Ｓ８０５-Ｎｏ）、処理をステップＳ８０７に進め、プレビューモードを終了する。一方、ステップＳ８０５の判断で、他のレコードについてプレビューを行うのであれば、他のレコードを選択して再度レイアウト計算を行い（Ｓ８０３）、プレビューを行う（Ｓ８０4）。プレビューモードでなく印刷時においては、印刷するレコード全てについて順にレイアウトの計算を行う。
【００９３】
したがって、処理Ｓ８０４は印刷時の処理においては必要がないステップである。ステップＳ８０５は印刷するレコードを全て処理したかの判断を行う。ステップＳ８０３でレイアウト計算された結果を、描画出力して出力し、プリンタドライバを用いて印刷データとして生成し、プリンタに印刷データが出力される。この場合、全てのレコード（印刷すべく指定された全レコード）について印刷データの出力が終了した時点で本処理を終了することになる。以上の処理は、プロセッサユニット１３５の制御のもとに実行することができる。
【００９４】
（動的レイアウト計算方法）
図９は動的レイアウト計算の詳細な処理の流れを説明するフローチャートであり、図１０はそのときのユーザインターフェース画面の表示例を示した図である。本図はレイアウト計算の処理方法についてのみ説明するためのフローチャートであるため、バリアブルデータプリントの１レコードの印刷／プレビュー時のレイアウト計算方法に相当する。複数レコードの場合は、下記の処理が繰り返されることになる。
【００９５】
まず、レイアウト編集アプリケーション１２１は、レイアウトを計算するコンテナの集合を求める（Ｓ９０１）。レイアウト計算は、リンクにより関連付けられたコンテナを一つの集合として計算を行う。例えば、図１１を参照すると、ページ上に４つのコンテナＡ，Ｂ、Ｃ、Ｄがレイアウトされており、各コンテナに関連付けが設定されている。この場合、コンテナＡとコンテナＢ、そしてコンテナＣとコンテナＤがリンクによって関連付けされている。したがって、コンテナＡ・Ｂが集合１、コンテナＣ・Ｄが集合２となる。そして、１１０１はアンカー、１１０２は固定された辺、１１０３はコントロール点、１１０４は可変の辺の変化方向を示している矢印、１１０５は可変の辺、１１０６はリンク、そして１１０７はスライダーを示している。
【００９６】
次に、レイアウト編集アプリケーション１２１は、ステップＳ９０１で求めたコンテナの集合から、レイアウトを計算するために一つの集合を選択する（Ｓ９０２）。そして、選択したコンテナの集合について、レイアウトの計算を行う。まず、選択したコンテナの集合に含まれる可変要素である２つのコンテナ（Ａ，Ｂ）について、流し込まれるデータの画像サイズもしくはテキスト量から各コンテナがなにも制約を受けない場合の大きさを計算する。具体的には、レイアウト編集アプリケーション１２１は、コンテナＡが画像データ用コンテナであるか、テキスト用コンテナであるかを判断する。この判断は、前述したように、コンテナに対して設定されている属性により判断できる。
【００９７】
次に、レイアウト編集アプリケーション１２１は、コンテナＡに流し込まれるデータを読み込み、コンテナＡが画像データ用コンテナである場合は、その画像データのサイズ（幅、高さのピクセル数、および解像度）がコンテナＡの制約を受けない場合の大きさになる。また、コンテナＡがテキスト用コンテナである場合は、そのテキストデータも文字数と、コンテナＡのコンテナ属性で指定されているフォントタイプ、フォントサイズ、文字ピッチ、行ピッチなどの文字属性に基づいて、コンテナＡに流し込まれるべきデータ量が計算できる。ここで、テキスト用コンテナの場合は、コンテナＡの縦横比が制約を考えないと決定できないため、制約を当てはめる。
【００９８】
図１１の例では、コンテナＡは、左上および左下の角にアンカーが設定されているため、高さ（縦方向）が固定となる。よって、レイアウト編集アプリケーション１２１は、コンテナＡの基本パターンとして設定されている幅（横方向）のコンテナＡに、計算したデータ量（テキスト量）の文字を流し込めるか否かを判断する。すべて流し込めると判断された場合は、コンテナＡは、基本パターンで設定されているサイズ（幅、高さ）に変更はない。また、すべて流し込めないと判断された場合は、コンテナＡは、アンカー設定により高さが固定であるため、横方向に伸びることになる。ここで、レイアウト編集アプリケーション１２１は、コンテナＡの幅がどれだけになると、計算したデータ量の文字を流し込めるかを計算し、コンテナＡのサイズを算出する。
【００９９】
次に、レイアウト編集アプリケーション１２１は、レイアウトされるコンテナのサイズが、実際のコンテンツのサイズとできる限り差が少なくなるように、レイアウトの最適化を行う（Ｓ９０３）。レイアウトの最適化は、動的にサイズを変化することが可能なように関連付けられたコンテナにおいて、それぞれに挿入されるコンテンツのサイズとレイアウトされるコンテンツサイズとの差が、できる限り同じになるように行われる。レイアウト編集アプリケーション１２１は、ステップＳ９０２で算出したコンテナの集合のサイズ、つまりコンテナＡとコンテナＢとリンク１１０６（ここでは固定リンク）の合計サイズを求め、この合計サイズと、基本レイアウトにおける当該コンテナの集合のサイズ（図１１の例ではコンテナＡとコンテナＢ、それぞれのアンカーアイコンの距離に相当する）との差を求める。コンテンツをコンテナに流し込んだ結果、コンテナＡやコンテナＢの幅が大きくなると前ステップで計算されている場合は、差分値が発生する。レイアウト編集アプリケーション１２１は、この差分値をコンテナの集合の各要素に均等に分配することでレイアウト調整を行う。
【０１００】
レイアウト編集アプリケーション１２１は、レイアウトの最適化を行い、最適化の計算において、ルール（コンテナに課せられる制限）に違反する場合は、再度ルールを違反しないようにコンテナサイズの計算をする（Ｓ９０４）。ここで記述したルールとは、レイアウト作成時にユーザによって設定される制限であり、コンテナのサイズと位置、可変リンク（可変リンクの詳細については後述する）の場合はリンクの長さなどである。ルールを違反しないようにレイアウトが計算されたら、ステップＳ９０２で選択した集合のレイアウトは完成する。そして、ステップＳ９０２〜Ｓ９０４のステップをページ上のすべてのコンテナの集合について施し、ページ全体のレイアウトを計算し（Ｓ９０５）、レイアウト計算の処理を終了する。
【０１０１】
図１０はレイアウト計算時に示されるユーザインターフェース画面を例示する図である。図１０の（Ａ）は、あるレコードが挿入されレイアウトが決定されている状態を表している。１００１と１００２はアンカー、１００３と１００４は固定された辺、１００５は可変の辺、１００６は可変の辺の変化方向を示している矢印、１００８はリンクをそれぞれ示している。この状態において、レコードを変更し、異なったサイズのコンテンツを挿入すると、図１０の（Ｂ）の状態になる。図１０の（Ａ）の状態から可変の辺がどのように変位したかを２点鎖線で示している。そして、ルールを加味したレイアウト計算が行われる。図１０の（Ｃ）はレイアウト計算された結果を示している。計算後の各コンテナ１０１２、１０１３のサイズは、実際挿入されるコンテンツのサイズと同等に差異があるように（変形が連動するように）計算され、且つ、前述したルールに違反しないように計算される。図１０の（Ｃ）で示されるように、図１０の（Ｂ）で示した挿入するコンテンツサイズ（ａ１ｂ１ｃ１ｄ１，ｅ１ｆ１ｇ１ｈ１）と計算後のコンテンツサイズ（ａ２ｂ２ｃ２ｄ２，ｅ２ｆ２ｇ２ｈ２）は、左右双方のコンテナにおいて同等な差異をもってコンテナサイズが計算される。以上の処理は、プロセッサユニット１３５、レイアウトエンジンモジュール１０５の制御のもとに実行することができる。
【０１０２】
しかし、単純に同等の差異をもってコンテナサイズを変更するだけでは、図１０のような横方向のみのレイアウト計算の場合は問題ないが、図５３のように縦方向および横方向を考慮したレイアウト計算を行わなければならない場合、対応できなくなる可能性がある。横方向と縦方向の２次元的なレイアウトを扱う図５３の場合、図９のレイアウト計算方法を用いて、まず横方向に調整を行い、後に縦方向に調整を行う。すなわち、コンテナ５３０１と５３０２の間で、上述した手順で設定値Ｄに収まるようレイアウト調整を行い、その後、コンテナ５３０２と５３０３の間で設定Ｇに収まるようレイアウト調整を行えばよい。しかし、横方向に調整を行い、後に縦方向に調整を行うという調整方法では、ユーザが所望とする基本レイアウトからずれたレイアウト結果になることが想定される。そのため、各コンテナについて、基本パターン（縦横比）からなるべくずれないように、例えば基本パターンの幅とレイアウト調整後の幅の差の２乗と、基本パターンの高さとレイアウト調整後の高さの差の２乗との和を求め、これをすべてのコンテナについて算出する方法が考えられる。そして、レイアウト編集アプリケーション１２１は、各コンテナの２乗の和の合計値が最小となるように、それぞれのコンテナの幅と高さを算出してレイアウト調整を行っても良い。
【０１０３】
この最小２乗法を用いてレイアウト調整を行うことにより、ユーザが当初設定した基本レイアウトから大きく外れることがなく、全体としてバランスのとれた最終レイアウトを決定することができる。なお、コンテナ間には後述する可変リンクが設定されているため、流し込まれるコンテンツデータのサイズに応じて後述するようにリンクサイズは変更する。本願記載のレイアウト編集アプリケーションはこのようなレイアウト調整ユニットを備えることにより、割り当てられたデータサイズに応じて複数の部分表示領域（コンテナ）の配置位置を調整することが可能となる。
【０１０４】
（可変リンクの設定）
図１２のインターフェース画面において、一般的な可変リンク１２０９が設定された状態を示している。同図においては、図４と同様にアプリケーションウィンドウ３０１とツールバー３０３があり、ドキュメントテンプレート３０９上にコンテナ１２０３とコンテナ１２０４が存在する。それぞれのコンテナは典型的にアンカーアイコン１２０１、アンカーアイコン１２０２と固定された辺１２０５、辺１２０６から成り立つ。各コンテナ１２０３と１２０４の間には可変サイズのリンク１２０９があり、それぞれのコンテナを結んでいる。コンテナ１２０３とコンテナ１２０４の間にはリンクが設定されているのでそれぞれの右辺１２０７と左辺１２０８は点線で表現されている。このため各コンテナにインジケーター１２１０、インジケーター１２１１が表示され、これは辺１２０７と辺１２０８が可変であることを示している。
【０１０５】
また、図１４はリンク１４０９の情報がセットされているダイアログウィンドウ１４０１の例を示す図である。このダイアログは典型的にタイトルバー１４０２、ツールボタン１４０３、ダイアログウィンドウの開閉を行うボタン１４０４、各種の情報をセットするエリア１４０６、１４０７、１４１０−１４１２で構成されている。このダイアログウィンドウではリンクタイプが可変長（１４０７）のリンクであるか、あるいは固定長（１４０６）のリンクであるかの択一的な選択が行える。可変長の場合、リンクの長さの最大値（１４１２）そして最小値（１４１０）、また現在の値（１４１１）が設定できる。ここで各コンテナ間の現在の値１４１１は、データを流し込んだ際に各コンテナのサイズが変更されない場合に用いられるリンクの長さである。
【０１０６】
図１３は自動レイアウトシステムにおける可変リンクを設定するフローチャートである。マウス１３３によりリンク１２０９をクリックし、設定の対象となるリンクを選択する（Ｓ１３０２）。なお、図１２におけるリンク１２０９は可変リンクを示しているが、これは固定リンクから可変リンクに遷移した後を示しているとする。レイアウト編集アプリケーション１２１は、マウスの右クリックあるいはキーボードの特定のキーにより選択されたリンク１２０９のプロパティダイアログウィンドウ１４０１を表示する（Ｓ１３０３）。この状態ではリンクサイズは可変ではなく固定であるため、固定１４０６がリンクタイプ１４０５において選択されている。リンクを固定サイズから可変サイズに変更するために、リンクタイプ１４０５においてリンクサイズを可変に設定する可変１４０７を選択する（Ｓ１３０４）。これによりリンク間隔１４０８内に配置されている最大値１４１２、最小値１４１０、現在の値１４１１が有効化され、数値の設定が可能となる。ここで、リンクの可変サイズを設定するために、そのリンクの長さの最大値を１４１２、最小値を１４１０、現在の値を１４１１において設定する（Ｓ１３０５）。一般的なダイアログウィンドウ開閉ボタン１４０４によって設定を適用すると図１２のリンク１２０９のような状態にリンクのＵＩ表示が変化する。（Ｓ１３０６）このダイアログウィンドウ１４０１の設定情報はメモリに格納される。
【０１０７】
図１５は固定サイズのリンクを使用した場合のレイアウト結果を示す図である。レイアウト編集アプリケーション１２１のレイアウトエンジンモジュール１０５におけるレイアウト計算方法は前述したとおりに従って行われる。例えば図１２においてコンテナ１２０３とコンテナ１２０４にそれぞれ違ったサイズのデータが挿入された時、それぞれのコンテナはデータの大きさを最適と考え、コンテナ１２０３は挿入されたイメージサイズになる枠１５０４（最適コンテナサイズ）に近づこうと右方向へ大きく、同様にコンテナ１２０４も挿入されたイメージサイズになる枠１５０５（最適コンテナサイズ）に近づこうと左方向へやや大きくサイズを変更しようとする。
【０１０８】
しかしコンテナ１２０３とコンテナ１２０４の間には固定サイズのリンク１５０３が設定されているとすると、コンテナ１２０３とコンテナ１２０４はそれぞれアンカー１２０１とアンカー１２０２によってそれぞれ左辺１２１２と右辺１２１３は移動出来ないため、変更しようとするサイズがリンクサイズを上回ってしまう。そしてこのリンクサイズは固定されているためレイアウト計算時に優先的に計算される。よって、コンテナ１２０３（図１２）とコンテナ１２０４（図１２）のサイズが変更されることになる。その結果、コンテナ１２０３とコンテナ１２０４はデータに合わせた最適なサイズを確保することが出来ず、最終的に図１５のコンテナ１５０１とコンテナ１５０２のように最適なサイズである１５０４、１５０５と比較して小さくなってしまう。つまり、リンク１５０３のサイズは固定であるためコンテナ１５０１とコンテナ１５０２は最適サイズを達成することができない。
【０１０９】
図１６はリンクを可変サイズにした場合を示している。この場合、コンテナ１２０３（図１２）とコンテナ１２０４（図１２）の間には可変サイズのリンク１２０９（図１２）が設定されているとすると、コンテナ１２０３とコンテナ１２０４のサイズが変更される際に、リンクサイズが縮まることでコンテナ１２０３とコンテナ１２０４のサイズが上記の図１５の例より大きくなることができ、挿入されるデータサイズに合わせた最適なサイズを達成し、あるいはより挿入データサイズ（最適サイズ）に近づけてコンテナの枠を計算することが出来る。その結果が、図１６のコンテナ１６０１とコンテナ１６０２である。可変リンク１２０９はレイアウト計算の結果、可変リンク１６０３のサイズとなり、この場合コンテナ１６０１とコンテナ１６０２は変形が連動して、それぞれ最適なサイズ（データサイズに合った大きさ）になっている。以上の処理は、プロセッサユニット１３５、レイアウト編集アプリケーション１２１の制御のもとに実行することができる。
【０１１０】
（コンテナのプロパティ設定）
図１７はコンテナのプロパティ（属性）を設定するプロパティダイアログウィンドウの例を示す図である。プロパティダイアログウィンドウ１７０１は典型的にキーボード１３２やマウス１３３によりコンテナを選択し、マウスの右クリックメニューの選択、あるいはキーボードからのＡｌｔキー等による所定の操作により表示することができる。コンテナのプロパティ設定に関する処理は、プロセッサユニット１３５、レイアウト編集アプリケーション１２１の制御のもとに実行することができる。
【０１１１】
プロパティダイアログウィンドウ１７０１は典型的にタイトルバー１７０２、ツールボタン１７０３、プロパティダイアログウィンドウのオープン、クローズを行うボタン１７０４、各種の情報をセットするエリア１７１１、１７２１、１７４１で構成されている。このプロパティダイアログウィンドウ１７０１には、コンテナを構成する辺（エッジ）を可変に設定するエッジステータス設定部１７１１があり、エッジステータス設定部１７１１内の上辺、下辺、左辺、右辺のチェックボックス（１７１２〜１７１５）にチェックを入力すると（コンテナエッジが可変に設定）、コンテナサイズ設定部１７２１内が入力可能（Ｅｎａｂｌｅ）になる。
【０１１２】
図１７の例では、右辺を可変にする設定がなされている状態を示している（１７１４）ので、このコンテナは横方向（実際は右方向）にしかサイズを変化させることが出来ない。エッジステータス１７１１内においてチェックが入力されていない各辺（エッジ）は、固定としてコンテナの属性が設定される（図１７の例では、上辺１７１２、下辺１７１３、左辺１７１５）。
【０１１３】
エッジステータス設定部１７１１内の右辺のチェックボックス１７１４が可変に設定されたので、コンテナサイズ設定部１７２１内の横方向の最大値、最小値を設定するための設定部（１７２４、１７２６、１７２７）が入力可能になり、高さ方向のサイズの設定部（１７２８、１７３０、１７３１）は入力を受け付けない状態（Ｄｉｓａｂｌｅ）のままとなっている。１７２２はコンテナの幅サイズの指定、１７２３はコンテナの高さサイズの指定を視覚的に補助するビットマップによる図形表示である。ボックス１７２４にはコンテナの幅の最小値が設定される。図１７の例では、最小値として「８０」が設定されている。ボックス１７２６にはコンテナの幅の最大値が設定される。図１７の例では、最大値として「１２０」が設定されている。なお、エッジステータスとして上辺または下辺の少なくとも１つを可変にすることが設定されていれば、同様にコンテナの高さの最小値１７２８および最大値１７３０を設定することが可能となる。リストボックス１７２７とリストボックス１７３１には、コンテナサイズの単位が設定される。ここでは例としてミリメートル（ｍｍ）が表示されているが、インチ（ｉｎｃｈ）やピクセル（ｐｉｘｅｌ）等も考えられる。これらの設定情報がメモリユニット１３６に保持されることとなる。
【０１１４】
図１８はコンテナのプロパティ設定操作におけるレイアウト編集アプリケーション１２１の処理を示したフローチャートである。まず、マウス１３３によりコンテナをクリックし、設定の対象となるコンテナを選択する（Ｓ１８０２）。レイアウト編集アプリケーション１２１は、選択されたコンテナのプロパティダイアログウィンドウ１７０１を表示する（１８０３）。そして、レイアウト編集アプリケーションは、コンテナエッジを可変に設定するチェックが入力されているか否か、各辺のチェックボックス（１７１２〜１７１５）に対して判断し（Ｓ１８０４）、可変に設定するチェックが入力されている場合（Ｓ１８０４−ＹＥＳ）、コンテナサイズの最大値・最小値のボックスを入力可能（Ｅｎａｂｌｅ）にする（Ｓ１８０５）。詳細には各設定情報はメモリユニットに保持されるため、レイアウト編集アプリケーションがメモリユニットを参照することにより判断可能となる。
【０１１５】
そして、レイアウト方法の選択項目も入力可能（Ｅｎａｂｌｅ）にする（Ｓ１８０６）。一方、ステップＳ１８０４の判定で、可変に設定するチェックが入力されていない場合は（Ｓ１８０４−ＮＯ）、処理を終了する。
【０１１６】
図１７の１７４１はレイアウトの方法を選択する入力部であり、コンテナのレイアウト時に他のコンテナとの重なりを判定してレイアウトする場合は入力欄１７４２にチェックを入力する。レイアウト編集アプリケーション１２１は、入力欄１７４２にチェックが入力されている場合、後に詳細に説明する、重なりに関するコンテナの属性設定、重なりの予測計算、動的ガイド、重なり防止用可変リンクの設定処理を実行する。
【０１１７】
１７４３は、コンテナ間に重なりが生じる場合に、重なりの形式（例えば、一方のコンテナを上、他方のコンテナを下、重なり拒否等）を設定してコンテナをレイアウトする場合の入力欄である。レイアウト編集アプリケーション１２１は、入力欄１７４３にチェックが入力されている場合、第２実施形態で具体的に説明する重なり形式の設定に基づいてコンテナのレイアウトを行う。
【０１１８】
そして、クローズボタンなどによりコンテナのプロパティダイアログウィンドウ１７０１を閉じ、設定を選択されたコンテナに適用する（Ｓ１８０７）。    
図１７のプロパティダイアログウィンドウ１７０１を用いて、図１８のフローチャートの処理により設定された内容はメモリユニット１３６に図４９のような形式で保持される。例えば、図１９のドキュメントテンプレート上に配置されているコンテナ１９２１およびコンテナ１９２２の属性に関する設定情報について説明する。図１９では、コンテナ１９２１は右辺および下辺が可変に設定されているため、図４９でもコンテナ１９２１の横方向および縦方向が可変属性となっている。そして、最大値および最小値には異なる値が設定されているため、コンテナ１９２１に流し込まれるバリアブルデータのサイズに応じて、設定された範囲内でサイズ変更することが可能となる。これに対し、コンテナ１９２２は４辺とも固定であるため、図４９でも横方向および縦方向が固定属性となっており、最大値および最小値には同じ値が設定されている。よって、いかなるバリアブルデータが流し込まれたとしても、コンテナ１９２２のサイズは設定された値で固定されることとなる。
【０１１９】
このように、図１７において設定された内容がコンテナごとに、図４９のような形式でメモリユニットに保持されることとなる。
【０１２０】
（重なり防止用可変リンク設定フロー）
図２５Ａ〜Ｃは、レイアウト編集アプリケーション１２１が実行する重なり防止用可変リンク設定処理の流れを説明するフローチャートである。その動作フローを図１７、図１９〜図２２、図２４を参照しつつ以下に説明する。なお、図１７、図１９〜図２２、図２４は本フローチャートを説明する際に用いられる一例である。
【０１２１】
図１９は、レイアウト編集アプリケーション１２１の編集画面を示す図であり、サイズの変更が可能な動的オブジェクトであるイメージコンテナ１９２１と、サイズが固定となる静的オブジェクトであるイメージコンテナ１９２２とがドキュメントテンプレート１９０９に存在している。なお、本願では、ページテンプレート上に配置されるものを総称してオブジェクトと表現する。よって、データベースから流し込まれるコンテンツデータを配置するためのコンテナもオブジェクトとして表されることがある。なお、コンテナをオブジェクトと区別する場合は、部分表示領域（コンテナ）として明確に記述する。
図２０は、図１９における静的オブジェクトであるイメージコンテナ１９２２がマウスポインタ２０１３により選択されて、コンテナ属性が可変に設定変更された際のレイアウト編集アプリケーション１２１の編集画面を示す図であり、動的オブジェクトであるイメージコンテナ２０２１およびイメージコンテナ２０２２がドキュメントテンプレート２００９に存在している。なお、固定コンテナ１９２２が可変コンテナ２０２２に設定変更されることにより、設定情報も図４９から図５０に変更されることとなる。具体的には図４９ではコンテナ１９２２の横方向および縦方向が固定であったが、図５０では可変に変更され、この変更に応じて幅および縦の最大値および最小値が新たに設定され、その情報が保持されている。
【０１２２】
図２１は、レイアウトエンジンモジュール１０５（以下、単に、「レイアウトエンジン１０５」ともいう。）が計算した図２０に示すイメージコンテナ２０２１およびイメージコンテナ２０２２の最大可動領域及びそれらの重なり予測領域を概略的に示す図である。２１３１はイメージコンテナ２１２１の最大可動領域を予測した領域を示し、２１３２はイメージコンテナ２１２２の最大可動領域を予測した領域を示し、２１３３はイメージコンテナ２１２１及びイメージコンテナ２１２２の重なり予測領域を示している。
【０１２３】
レイアウトエンジンによる各コンテナの最大可動領域の予測方法について説明する。上述した通り、各コンテナは最大値および最小値を図５０のような形式でメモリユニットに保持しているため、レイアウトエンジンは、各コンテナが配置されている位置および設定されている最大値を考慮することにより最大可動領域を予測することが可能となる。なお、最大可動領域の予測方法は各コンテナの最大値だけでなく、リンクにより関連付けられているコンテナとの兼ね合いも考慮する場合がある。
【０１２４】
図２２は、編集対象の動的オブジェクトと異なる他の動的オブジェクトとの重なりを許すか否かをユーザに選択させるダイアログを表示するレイアウト編集アプリケーション１２１の編集画面を示す図であり、２２５１はイメージコンテナ２２２１に対して他の動的オブジェクトとの重なりを許すか否かを選択させるダイアログである。マウスポインタ２２１３により、ダイアログ２２５１中の「はい」（２２５２）を選択すると、レイアウト編集アプリケーション１２１は、コンテナ２２２１に対して他の動的オブジェクトとの重なりを拒否する設定を行う。一方、ダイアログ２２５１中の「いいえ」（２２５３）を選択すると、レイアウト編集アプリケーション１２１は、他の動的オブジェクトとの重なりを許容する設定を行う。なお、これらの設定情報もメモリユニットに保持されることとなる。
【０１２５】
図２４は、垂直方向の動的ガイドおよび水平方向の重なり防止用可変リンクを表示するレイアウト編集アプリケーション１２１の編集画面を示す図である。図２２におけるダイアログ２２５１中の「はい」を選択して、他の動的オブジェクトとの重なりを拒否する属性を設定することにより、動的ガイド２４４１および重なり防止用可変リンク２４４２が設定される。なお、本願では可変リンクと重なり防止用可変リンクを識別するために可変リンクは点線で、重なり防止用可変リンクは二重点線で表示する。
【０１２６】
図２４の例では、２４４１はイメージコンテナ２４２１の右辺に接して形成されている動的ガイドであり、２４４２はイメージコンテナ２４２１とイメージコンテナ２４２２の重なりを防止するための重なり防止用可変リンクを示している。
【０１２７】
続いて図２５Ａ〜Ｃは、レイアウト編集アプリケーション１２１が実行する重なり防止用可変リンク設定処理の流れを説明するフローチャートである。
【０１２８】
レイアウト編集アプリケーションはドキュメントテンプレート上に少なくとも１つのオブジェクトがあるか否かを判定する（Ｓ２５０１）。詳細には、各ドキュメント上にどのような属性のコンテナやリンクが設定されているかは、例えば図５０のような形式でメモリユニット１３６に保存されているため、レイアウト編集アプリケーションがメモリユニット１３６を参照することにより判定することが可能となる。
【０１２９】
Ｓ２５０１の判定の結果、レイアウト編集アプリケーションが少なくとも１つのコンテナがドキュメントテンプレート上にあると判定した場合、可変コンテナがあらたに追加作成されたか否かを判定する（Ｓ２５０２）。ドキュメントテンプレート上にコンテナが作成された時点で、コンテナの情報は一時的にメモリユニット１３６に保持される。そのため、レイアウト編集アプリケーションがメモリユニットを更新した場合、メモリユニットに一時的に保持されている情報と更新されたメモリユニットの保持情報を比較することによりＳ２５０２は判定可能となる。
【０１３０】
Ｓ２５０２において、可変コンテナが新たに作成されなかったと判定した場合、レイアウト編集アプリケーションはドキュメントテンプレート上に少なくとも２つのコンテナがあるか否かを判定する（Ｓ２５０３）。なお、判定方法はＳ２５０１と同様であるため詳細については省略する。
【０１３１】
Ｓ２５０３の判定の結果、ドキュメントテンプレート上に少なくとも２つのコンテナがあると判定された場合、固定コンテナから可変コンテナへ属性変更が行われたか否かを判定する（Ｓ２５０４）。Ｓ２５０４の判定方法はＳ２５０２と同様であるため詳細については省略する。
【０１３２】
さらに、レイアウト編集アプリケーションはドキュメントテンプレート上に配置されている可変コンテナのサイズが拡大方向に変更されたか否かを判定する（Ｓ２５０５）。詳細には、可変コンテナはどの範囲でサイズ変更を行うかが設定されているが、その最大サイズが大きくなるように変更されたか否かをレイアウト編集アプリケーションが判定する処理となり、Ｓ２５０２のように比較処理をすることにより判定可能である。
【０１３３】
ここまでのＳ２５０２、Ｓ２５０４、Ｓ２５０５のいずれかにおいてＹｅｓと判定された場合、レイアウト編集アプリケーションはＳ２５０８以降の動的ガイドおよび重なり防止用リンクを設定するフローへと進むこととなる。
【０１３４】
また、Ｓ２５０５においてＮｏと判定された場合、レイアウト編集アプリケーションはドキュメントテンプレート上に配置されている可変コンテナのサイズが縮小方向に変更されたか否かを判定する（Ｓ２５０６）。Ｓ２５０６の処理内容は、Ｓ２５０５の拡大方向が縮小方向に変わっているのみであり、基本的な判定方法は同様であるため詳細については省略する。
【０１３５】
続いて、レイアウト編集アプリケーションはドキュメントテンプレート上に配置されている可変コンテナが固定コンテナに変更されたか否かを判定する（Ｓ２５０７）。
Ｓ２５０６またはＳ２５０７のいずれかにおいて、Ｙｅｓと判定された場合、レイアウト編集アプリケーションはＳ２５１７以降の重なり防止用リンクを削除するフローへと進むこととなる。
【０１３６】
続いて、動的ガイドおよび重なり防止用リンクを設定するためのフローへと入る。レイアウト編集アプリケーション１２１は新たに作成、または設定が変更されたコンテナも含め、ドキュメントテンプレート上に配置されている各オブジェクトの可動領域を図１７のプロパティダイアログウィンドウ１７０１のチェックボックス１７１２〜１７１５によって設定されたコンテナの水平（左右）方向および垂直（上下）方向の可変設定と、コンテナサイズの最大値の設定（１７２６、１７３０）およびイメージコンテナ２０２２には設定されていないが、コンテナにリンク設定がある場合にはリンクの設定を含め他のコンテナによる可変要因などを考慮して、レイアウトエンジン１０５が可動領域を計算する（Ｓ２５０８）。
【０１３７】
すなわち、レイアウトエンジン１０５は、プロパティの設定を変更する編集操作が行われた動的オブジェクト（例えばコンテナなど）の最大可動範囲を、（１）コンテナの最大サイズ設定要因、（２）リンクされた他のコンテナによる可変要因、二つの要因から計算する。つまり、（１）はコンテナに流し込まれるコンテンツデータにより、該コンテナに設定された最大サイズに応じてどこまで拡大されるのか指し、（２）はリンクによって関連づけられている他のコンテナのサイズ変更または位置変更の影響を受けることによる可変要因を指す。
【０１３８】
レイアウト編集アプリケーション１２１は、レイアウトエンジン１０５による最大可動範囲の計算結果をイメージコンテナ２０２２の可動領域として、メモリユニット１３６に保持する（Ｓ２５０９）。なお、最大可動範囲の保持情報の１つとして座標値で保持することが考えられ、例えば図５１のような形式で保持されても良い。図５１では座標値で可動範囲を表しており、コンテナ２１２１の左上を原点として、コンテナ２１２１は横（水平）方向に「２０〜８０」の範囲が可動領域であり、縦（垂直）方向「０〜−１００」の範囲で可動であることが保持されており、コンテナ２１２２に関しては横方向「４０〜１００」、縦方向「０〜−７０」の範囲で可動であることが保持されている。
【０１３９】
レイアウト編集アプリケーション１２１は、メモリユニット１３６に保持されているイメージコンテナ、他の可変コンテナの可動領域計算結果および他の固定コンテナ（静的オブジェクト）の占有領域などドキュメントテンプレート上にある各オブジェクトの可動領域を比較する（Ｓ２５１０）。続いてレイアウト編集アプリケーションはドキュメントテンプレート上に重なる可能性のあるオブジェクトがあるか否かを判定する（Ｓ２５１１）。詳細には、ここで重なる可能性が生じるのはリンクによって関連付けられていないものであるため、リンクによって関連付けられていないオブジェクトを抽出する。そして、各オブジェクトのコンテンツデータの流し込み等によるサイズ変更範囲または関連付けられている他のオブジェクトの影響を受けて移動する移動範囲を考慮して、オブジェクトが重なるか否かの判定が行われる。
【０１４０】
詳細に説明するため図５１のように保持された情報を例に説明する。レイアウト編集アプリケーションは、コンテナ２１２１の横方向の最大可動範囲を、図５１を参照することにより「２０〜８０」と認識することができる。また、コンテナ２１２２の横方向の最大可動領域は「４０〜１００」と認識することができる。すなわち、コンテナ２１２１およびコンテナ２１２２は座標値「４０〜８０」において横方向が重なる可能性があると判定することができる。なお、縦方向も同様の処理をすることにより座標値「０〜-７０」において重なる可能性があると判定することができる。
【０１４１】
例えば、図２１のように、新たに可変設定されたコンテナ２１２２の最大可動範囲２１３２と重なる可能性がある被重なりオブジェクト２１２１が存在する場合（Ｓ２５１１-ＹＥＳ）、レイアウト編集アプリケーション１２１は被重なりオブジェクト２１２１に動的オブジェクトの重なり防止属性が既に設定済みか否かを判断調べる（Ｓ２５１２）。詳細には、各オブジェクトの属性はメモリユニット１３６に図５２のような形式で保持されているため、レイアウト変種アプリケーションがメモリユニット１３６を参照することにより判断可能である。
【０１４２】
Ｓ２５１１において判断対象となったオブジェクトに対して重なり防止属性が設定されていないと判断された場合（Ｓ２５１２−ＮＯ）、レイアウト編集アプリケーション１２１は、被重なりオブジェクトが重なる恐れがあることをユーザに知らせるため、図２２のようなダイアログ２２５１を表示する（Ｓ２５１３）。
【０１４３】
レイアウト編集アプリケーションは図２２のダイアログを用いて重なりを防止することが選択されたか否かを判断する（Ｓ２５１４）。例えば図２２のダイアログでは、「重なりを拒否しますか？」との問い合わせがなされているため、「はい」が選択されたことをレイアウト編集アプリケーションが認識した場合、重なり防止属性が設定されたと判断する（Ｓ２５１４−Ｙｅｓ）。Ｓ２５１４により、レイアウト編集アプリケーションが重なり防止属性が設定されたことを認識した場合、メモリユニット１３６に重なり防止属性が設定されたことを保持する。
【０１４４】
レイアウト編集アプリケーション１２１は、図２４のように、重なり防止属性を設定した被重なりオブジェクト２４２１において、他の重なり動的オブジェクト２４２２が最初に侵入することが予測される被侵入辺（例えば、被重なりオブジェクト２４２１の場合、右辺側が動的オブジェクト２４２２の最大可動範囲と重複するので、右辺を最初に侵入される可能性がある被侵入辺とする）に当接する動的ガイド２４４１を作成する（Ｓ２５１５）。
【０１４５】
そして、図２４の被重なりオブジェクト２３２１が最初に侵入すると予測される重なり動的オブジェクト２４２２の侵入辺（重なり動的オブジェクト２４２２の場合、左辺側が動的オブジェクト２２４２１の最大可動範囲と重複するので、左辺を最初に侵入される可能性がある侵入辺とする）と、ステップＳ２５１５で作成した動的ガイド２４４１とを結ぶ重なり防止用可変リンク２４４２を作成する（Ｓ２５１６）。なお、Ｓ２５１５およびＳ２５１６により動的ガイドおよび重なり防止用可変リンクが設定されたことは、例えば図５２のような形式で保持されることとなる。
【０１４６】
以上の処理により、ドキュメントテンプレート上に配置されていて、流し込まれるコンテンツデータにより重なる可能性があると判断されるオブジェクト間に重なり防止用リンクが生成される。これにより、本願のように流し込まれるコンテンツデータに応じてレイアウト変更される場合であっても、重なりが生じることにより見栄えが悪くなるといった問題点を解消することが可能となる。
【０１４７】
次に、Ｓ２５０６およびＳ２５０７においてＹｅｓと判定された場合に、不必要となる重なり防止用リンクおよび動的リンクを削除するフローチャートについて説明する。
【０１４８】
Ｓ２５１７〜Ｓ２５１９は、Ｓ２５０８〜Ｓ２５１０と同様であるため詳細については省略する。
【０１４９】
Ｓ２５１９の比較により、レイアウト編集アプリケーションは重なりが生じなくなったオブジェクトがあるか否かを判定する（Ｓ２５２０）。つまり、Ｓ２５２０で判定の対象となるオブジェクトは、この判定処理が行われるまでは重なる可能性があるとされていたオブジェクトであり、該オブジェクトがＳ２５０６またはＳ２５０７の処理により重なりが生じなくなるか否かを判定する。詳細には、上述したＳ２５１０の処理により、重なる可能性のあるオブジェクトを抽出することが可能となる。ここで抽出されたオブジェクトに設定されている属性情報をレイアウト編集アプリケーションが再度確認することにより重なりが生じるか否かを判定することができる。例えば、図２１においてコンテナ２１２１およびコンテナ２１２２は可変コンテナであり、重なる可能性があると判定されていたが、両者が固定コンテナに属性変更された場合、重なる可能性はなくなる。
【０１５０】
Ｓ２５２０の判定の結果、重ならなくなったオブジェクトがあると判定された場合、レイアウト編集アプリケーションは、該オブジェクトに対して動的ガイドおよび重なり防止用リンクが設定されているか否かを判定する（Ｓ２５２１）。詳細には、各オブジェクトに対して動的ガイドおよび重なり防止用リンクが設定されているか否かは図５２のようにメモリユニット１３６に保持されているため、レイアウト編集アプリケーションがメモリユニット１３６を参照することにより判定可能である。
【０１５１】
Ｓ２５２１において、動的ガイドおよび重なり防止用リンクが設定されていると判定された場合、レイアウト編集アプリケーションは重なりが生じなくなったオブジェクトに設定されている動的ガイドおよび重なり防止用リンクを削除する（Ｓ２５２２）。なお、Ｓ２５２２の処理によりメモリユニット１３６の属性も変更されることとなる。
【０１５２】
図２３は、「動的オブジェクトの重なりを許さない」属性ダイアログを表示するレイアウト編集アプリケーション１２１の編集画面を示す図である。２３６１は、イメージコンテナ２３２１に対する「動的オブジェクトの重なりを許さない」旨の属性を設定するためのダイアログであり、２３６２は、その属性の設定を切り替える（ＯＮ／ＯＦＦ）設定のためのチェックボックスである。  
図２３の場合、チェックボックス２３６２にチェックが設定された状態を示しており、「動的オブジェクトの重なりを許さない」属性はＯＮに設定されている。この「動的オブジェクトの重なりを許さない」属性を設定するためのダイアログ２３６１は、図２５ＢのステップＳ２５１３において「動的オブジェクトの重なりを許さない」属性を設定するためのユーザインターフェース（ＵＩ）として、レイアウト編集アプリケーション１２１が表示制御を行い、チェックボックス２３６２の設定の有無に応じて、動的オブジェクトの属性の設定を行うことができる。なお、図２３の設定ダイアログ２３６１は、図２５ＢのＳ２５１１において重なる可能性のあるオブジェクトがあると判定され、該オブジェクトに「重なり防止属性」が設定されていないと判定された場合に表示されるものであるが、ドキュメントテンプレート上にコンテナ等を設定することに応じて、「重なり防止属性」を設定するようにしても構わない。
【０１５３】
ユーザが「動的オブジェクトの重なりを許さない」属性を設定するためのダイアログ２３６１を用いてチェックボックス２３６２の設定を手動でＯＮからＯＦＦに設定変更した場合、レイアウト編集アプリケーション１２１は、図２５ＣのステップＳ２５２０から処理を開始し、ユーザがチェックボックス２３６２の設定を手動でＯＦＦからＯＮに設定変更した場合、レイアウト編集アプリケーション１２１は、図２５ＢのステップＳ２５１１から処理を開始する。
【０１５４】
レイアウト編集アプリケーション１２１は、図２５ＢにおけるステップＳ２５０８、Ｓ２５０９の処理を実行するために、ドキュメントテンプレート１９０９に存在する全てのオブジェクトの領域情報（ドキュメントテンプレート１９０９内を占有する静的オブジェクトおよび動的オブジェクトの可動領域情報）をメモリ１３６上にキャッシュしており、ユーザの操作により各コンテナの属性情報が変更された場合、その変更によって影響を受けるコンテナ群の領域情報を必要に応じてレイアウトエンジン１０５を用いて更新する。
【０１５５】
レイアウト編集アプリケーション１２１は、「動的オブジェクトの重なりを許さない」属性ダイアログ２３６１のチェックボックス２３６２の設定がＯＮになっているオブジェクトに、ユーザの編集操作により、静的オブジェクトが明示的に重ねられても、該静的オブジェクトに対して、重なり防止用可変リンクを設定しない。「動的オブジェクトの重なりを許さない」属性は、動的オブジェクトの重なりに対してのみ有効である。なお、ユーザの設定により静的オブジェクトに対しても重なり防止用可変リンクが設定できるようにしても構わない。
【０１５６】
図２６は、ドキュメントテンプレート２６０６上に存在する２つの可変コンテナ（動的オブジェクト）の可動領域が相互に重なる可能性がある場合に、レイアウト編集アプリケーション１２１が表示する「動的オブジェクトの重なりを許さない」属性を設定するためのダイアログ２３６１を示す図である。
【０１５７】
図２６に示すように、レイアウト編集アプリケーション１２１は、双方の動的オブジェクト（２６２１、２６２２）について、「動的オブジェクトの重なりを許さない」属性を設定するためのダイアログ（２６６１、２６６３）のチェックボックス（２６６２、２６６４）の設定がＯＮになっている場合、双方の可変コンテナ（動的オブジェクト）に動的ガイド２６４１、２６４３を作成し重なり防止用可変リンク２６４２を作成する。
【０１５８】
図２７は、ドキュメントテンプレート２７０９上に存在する３つの可変コンテナ（動的オブジェクト）（２７２１（図２４の２４２１が対応する）、２７２２（図２４の２４２２が対応する）、２７２３）について、垂直方向（図中のＹ方向）および水平方向（図中のＸ方向）に、動的ガイド（２７４１（図２４の２４４１が対応する）、２７４３）および重なり防止用可変リンク（２７４２（図２４の２４４２が対応する）、２７４４）を設定するレイアウト編集アプリケーション１２１の編集画面を示す図である。
【０１５９】
図２７では、図２４のドキュメントテンプレート２４０９上に存在した可変コンテナ（動的オブジェクト）（２４２１、２４２２）の他に新たにイメージコンテナである可変コンテナ（動的オブジェクト）２７２３が加えられた状態になっている。
【０１６０】
ユーザ操作によりイメージコンテナツールボタン４０５を用いて、イメージコンテナ２７２３が、新たにドキュメントテンプレート２７０９（図２４の２４０９が対応する）に配置され、プロパティ設定ダイアログ１７０１を用いたユーザ操作により、イメージコンテナ２７２３の上エッジ（上辺）のプロパティが固定から可変に変更された場合、レイアウト編集アプリケーション１２１は、図２５Ａ〜Ｃに示した重なり防止用可変リンク設定時の処理フローを実行する。この際、既に、動的オブジェクト（被重なりオブジェクト）２７２１には、動的オブジェクトの重なりを許さない属性が設定されているため、重なりオブジェクト２７２３に対して、動的オブジェクト（被重なりオブジェクト）２７２１の下エッジ（下辺）に当接する水平方向（図中のＸ方向）の動的ガイド２７４３及び新たに追加された重なりオブジェクト２７２３との重なりを防止するための重なり防止用可変リンク２７４４が垂直方向（図中のＹ方向）に作成される。
【０１６１】
（重なり防止用可変リンクのプロパティ設定ダイアログ）
重なり防止用可変リンクは、前述した図１２、図１４および図１６で示したコンテナ同士を関連づける可変サイズのリンク（１２０９、１４０９、１６０３）および固定サイズのリンク（４１２、１００８、１５０３）とは異なる性質をもったリンクである。上述したコンテナ間を関連付ける可変サイズのリンクまたは固定サイズのリンクはレイアウト計算時に考慮されるリンクであるが、重なり防止用可変リンクはレイアウト計算時に考慮されないリンクであり、後述する重なり防止用リンクに対して設定される最小値より小さくならないように、レイアウト計算の結果に応じてサイズ変更するリンクである。よって、レイアウト計算時に考慮されるリンクと考慮されないリンクを明確に区別するために、本願では計算に考慮されるコンテナ同士を関連付けるリンク（固定リンクおよび可変リンク）を関連付けリンクと定義し、レイアウト計算時に考慮されず、オブジェクト同士の重なりを防止するためのリンクを重なり防止リンクと定義する。
【０１６２】
図２８は、重なり防止用可変リンクの属性を設定するためのダイアログウィンドウ２８０１の例を示す図である。このダイアログは典型的にタイトルバー２８０２、ツールボタン２８０３、ダイアログウィンドウの開閉を行うボタン２８０４、リンク間隔に関する情報をセットするエリア２８０８で構成されている。重なり防止用可変リンクの長さの最小値がテキストボックス２８１０で設定できる。リストボックス２８１１では長さの単位が設定される。ここでは例としてミリメートル（ｍｍ）が表示されているが、インチ（ｉｎｃｈ）やピクセル（ｐｉｘｅｌ）等も考えられる。
【０１６３】
尚、ユーザが、テキストボックス２８１０においてプラス値ではなく、マイナス値を設定した場合、コンテナの重なりを許す設定になる。この設定された最小値の情報は、メモリユニットに保持されることとなる。
【０１６４】
（動的ガイド及び重なり防止用可変リンクの設定）
図３２は、レイアウト編集アプリケーション１２１が実行する動的ガイド及び重なり防止用可変リンクの設定に関する処理の流れを説明するフローチャートであり、以下具体的に説明するため、具体例として図２４、図２９、図３０を参照しつつ説明するが、これに限る必要はない。
【０１６５】
図２９は、図２４のドキュメントテンプレート２４０９に存在する可変コンテナ（動的オブジェクト）（２４２１、２４２２）に対し、各可変コンテナに収めるためのイメージデータ（バリアブルデータ）を流し込んだ状態を示すレイアウト編集アプリケーション１２１によるプレビュー画面を示す図である。
【０１６６】
２９２１は図２４に示した可変コンテナ（イメージコンテナ）２４２１にイメージデータを流し込んだ状態を示すプレビュー表示を示し、２９２２は図２４の可変コンテナ（イメージコンテナ）２４２２にイメージデータを流し込んだ状態を示すプレビュー表示を示す。
【０１６７】
２９４１は非印刷の動的ガイドが設定された状態を示すプレビュー補助表示であり、２９４２は非印刷の重なり防止用可変リンクが設定された状態を示すプレビュー補助表示である。
【０１６８】
図３０は、図２４のドキュメントテンプレート２４０９上に存在する可変コンテナ（動的オブジェクト）（２４２１、２４２２）に対し、図２９で使用したイメージデータとは異なるイメージデータを流し込んだ状態を示すレイアウト編集アプリケーション１２１によるプレビュー画面を示す図である。
【０１６９】
３０２１は図２４に示した可変コンテナ（イメージコンテナ）２４２１に、図２９とは異なるイメージデータを流し込んだ状態を示すプレビュー表示であり、３０２２は図２４の可変コンテナ（イメージコンテナ）２４２２に、図２９とは異なるイメージデータを流し込んだ状態を示すプレビュー表示を示す。３０４１は非印刷の動的ガイドが設定された状態を示すプレビュー補助表示であり、３０４２は非印刷の重なり防止用可変リンクが設定された状態を示すプレビュー補助表示である。
【０１７０】
図３２において、マウス１３３によるメニューアイテム３０４（図３）に対するユーザ操作により、図２４のドキュメントテンプレート２４０９に存在する可変コンテナに対してイメージデータの流し込みが指示され、イメージコンテナとして機能する可変コンテナ２４２１および可変コンテナ２４２２に対しバリアブルデータ（コンテンツ）が流し込まれると（Ｓ３２０１）、レイアウト編集アプリケーション１２１は、イメージコンテナ２４２１およびイメージコンテナ２４２２を構成する各辺に設定されている内容をチェックし、可変に設定されている場合は流し込まれたイメージデータのコンテンツサイズに合わせてコンテナサイズを拡張または縮小（拡縮）する（Ｓ３２０２）。なお各コンテナの設定内容はメモリユニット１３６に保持されているため、レイアウト編集アプリケーションが参照することにより認識することができる。
【０１７１】
図２４において、イメージコンテナとして機能する可変コンテナ２４２１を構成する辺のプロパティ設定は、幅（図中のＸ方向）に関しては右辺、高さ（図中のＹ方向）に関しては下辺が可変に設定されており、拡縮可能である。  
また、イメージコンテナとして機能する可変コンテナ２４２２を構成する辺のプロパティ設定は、幅に関しては左辺および右辺、高さに関しては下辺が可変に設定されており、拡縮可能である。
【０１７２】
レイアウト編集アプリケーション１２１は、イメージデータのデータサイズと、イメージコンテナとして機能する可変コンテナ２４２１および可変コンテナ２４２２のサイズを比較し、各コンテナ内にイメージデータが収まるように、可変コンテナ２４２１の右辺及び下辺をそれぞれ右方向（図中Ｘ＋方向）および下方向（図中のＹ−方向）に拡大し、また同様に、可変コンテナ２４２２の左辺、右辺及び下辺をそれぞれＸ−方向、Ｘ＋方向、Ｙ−方向に拡大する（Ｓ３２０３）。詳細には、Ｓ３２０３による各コンテナのサイズ変更は上述したレイアウト計算により実行される。
【０１７３】
ステップＳ３２０２において、可変コンテナのサイズが変更された場合（Ｓ３２０２−ＹＥＳ）、レイアウト編集アプリケーション１２１は、処理をステップＳ３２０４に進め、例えば、可変コンテナ２４２１の右辺（右エッジ）のように、拡縮方向側のコンテナエッジに動的ガイド２４４１が設けられているか否かを判定する（Ｓ３２０４）。詳細には、動的ガイドが設定されているか否かは上述した通りメモリユニット１３６に保持されているため、レイアウト編集アプリケーションが参照することにより、判定可能である。
【０１７４】
拡縮方向側のコンテナエッジに動的ガイド２４４１が設けられている場合（Ｓ３２０４−ＹＥＳ）、レイアウト編集アプリケーション１２１は、動的ガイド２４４１を可変コンテナ２４４１の右辺（右エッジ）に接した状態を維持してドキュメントテンプレート２４０９上を移動させ、動的ガイドの位置を変更する（Ｓ３２０５）。すなわち、図２４の場合、動的ガイド２４４１を可変コンテナ２４２１の右辺（右エッジ）に接した状態で右方向（図中のＸ＋方向）に移動させる。
【０１７５】
ステップＳ３２０６において、レイアウト編集アプリケーション１２１は、ステップＳ３２０２における可変コンテナのサイズの拡縮、ステップＳ３２０５における動的ガイドの位置変更に応じて、重なり防止用可変リンク２４４２の長さを変更する（Ｓ３２０６）。
【０１７６】
重なり防止用可変リンク２４４２のリンク長を変更した結果、重なり防止用可変リンク２４４２の長さが、図２８で設定した重なり防止用可変リンクの長さの最小値より小さくなった場合（Ｓ３２０７―ＹＥＳ）、レイアウト編集アプリケーション１２１は、重なり防止用可変リンク２４４２によって動的ガイド２４４１と結ばれている可変コンテナ２４２２の位置を重なり防止用可変リンク２４４２の長さが設定された最小値の条件を満たすように移動させて可変コンテナ２４２２のレイアウトを決定し（Ｓ３２０８）、処理を終了する。
【０１７７】
一方、図３０の例においては、図２９とは異なり、イメージデータのサイズが可変コンテナ２４２１、２４２２のオリジナルサイズより小さいため、可変コンテナ３０２１（図２４の２４２１が対応する）の右辺（右エッジ）に接して設けられている動的ガイド３０４１（図２４の２４４１）は、イメージコンテナ３０２１の右辺（右エッジ）の縮小とともに左方向（図中のＸ−方向）に移動する。また、その動的ガイド３０４１（図２４の２４４１）と重なり防止用可変リンクで結ばれている可変コンテナ３０４２（図２４の２４２２）は幅・高さともにサイズが縮小されるため、重なり防止用可変リンク３０４２の長さは、当初の重なり防止用可変リンク２４４２長さに比べて、その長さは拡大される。
レイアウト編集アプリケーション１２１は、図３２のステップＳ３２０１において、バリアブルデータが可変コンテナに流し込まれると、各コンテナに設定されている重なり防止用可変リンク以外の可変リンクや固定リンクの設定の有無や、コンテナに設定されているプロパティ等をチェックし、コンテナサイズの変更に関して拘束となるような条件設定の有無を判定し、かかる条件設定を充足しつつ動的ガイドの位置、重なり防止用可変リンク長を変更し、可変コンテナのレイアウトを決定する。
【０１７８】
図３１は、図２７のドキュメントテンプレート２７０９上に存在する可変コンテナ（動的オブジェクト）（２７２１、２７２２、２７２３）に対し、イメージデータを流し込んだ状態を示すレイアウト編集アプリケーション１２１によるプレビュー画面を示す図である。
【０１７９】
３１２１は、図２７に示した可変コンテナ（イメージコンテナ）２７２１にイメージデータを流し込んだ状態を示すプレビュー表示であり、３１２２は図２７の可変コンテナ（イメージコンテナ）２７２２にイメージデータを流し込んだ状態を示すプレビュー表示を示し、３１４１は非印刷の動的ガイドが設定された状態を示すプレビュー補助表示であり、３１４２は非印刷の重なり防止用可変リンクが設定された状態を示すプレビュー補助表示である。３１４３は、非印刷の動的ガイドが設定された状態を示すプレビュー補助表示であり、３１４４は非印刷の重なり防止用可変リンクが設定された状態を示すプレビュー補助表示である。３１２３は図２７の可変コンテナ２７２３にイメージデータを流し込んだ状態を示すプレビュー表示である。
【０１８０】
図３１に示すように、水平方向（図中のＸ方向）、垂直方向（図中のＹ方向）において、動的ガイド（３１４１、３１４３）および重なり防止用可変リンク（３１４２、３１４４）が設定される場合も、レイアウト編集アプリケーション１２１は、図２９、図３０、図３２で説明した処理と同様の処理を行う。本実施形態における動的ガイドは、コンテナの辺が可動するのに合わせて移動可能な動的（可変）性質を持つが、固定コンテナ（静的オブジェクト）や可変コンテナ（動的オブジェクト）を構成する固定辺（固定エッジ）に接して設けられている場合、動的ガイドは不動であり、かかる動的ガイドの属性を、ユーザが編集することは不可である。なお、本願では動的ガイドをコンテンツの辺に接するとして記述されているが、それに限らず所定の距離を保って表示されても構わない。
【０１８１】
（対応角リンク）
先に説明した図２５Ａ〜Ｃの重なり防止用可変リンクの設定処理では、図２４、図２７で示したように、垂直方向（図中のＹ方向）の動的ガイド（２４４１、２７４１）に対しては水平方向（図中のＸ方向）の重なり防止用可変リンク（２４４２、２７４２）を、水平方向（図中のＸ方向）の動的ガイド２７４３に対しては垂直方向（図中のＹ方向）の重なり防止用可変リンク２７４４を作成する処理を説明した。
【０１８２】
しかしながら、重なりを許さない（重なりを拒否する）旨を選択した際に、被重なりオブジェクトの可動領域に、重なりオブジェクトが拡張して侵入する可能性がある辺を一つに特定できない場合がある。例えば、図２３の被重なりオブジェクト２３２１の右辺は可変コンテナ２３２３の拡張により可変コンテナ２３２３の左辺の侵入を受ける可能性があるが、ドキュメントテンプレート上の可変コンテナのレイアウトや各コンテナの特性として設定されるエッジステータスやコンテナサイズの最大値の設定などによっては、侵入辺を一つに特定することができない場合も考えられる。
【０１８３】
ここで、侵入辺を一つに特定することができない場合の例を、図３３、３５、３７を参照して説明する。図３３は、垂直方向（図中のＹ方向）および水平方向（図中のＸ方向）の動的ガイド（３３４１、３３４２）および重なり防止用対応角可変リンク（３３４３）を表示するレイアウト編集アプリケーション１２１の編集画面を示す図である。
【０１８４】
図３３では、イメージコンテナとして機能する可変コンテナ（３３２１、３３２２、３３２３、３３２４）がドキュメントテンプレート３３０９上に配置され、固定リンク３３２５によって、可変コンテナ３３２２と３３２３が関連付けられ、固定リンク３３２６によって、可変コンテナ３３２２と３３２４が関連付けられ、更に、固定リンク３３２７によって、可変コンテナ３３２３と３３２４が関連付けられている。  
可変コンテナ３３２１と可変コンテナ３３２２は、重なり防止用対応角可変リンク（３３４３）により重なりが防止されている。重なり防止用対応角可変リンク（３３４３）は、一つのリンク設定により、被重なりオブジェクトである可変コンテナ３３２１の可動範囲内（可変コンテナ３３２１を構成する二辺（３３５１、３３５２）が移動することにより定められる）に、重なりオブジェクトである可変コンテナ３３２２を構成する二辺（３３５３、３３５４）が侵入する（重複する）ことを防止する。
【０１８５】
図３５および図３７は、図３３において、重なり防止用対応角可変リンク３３４３を適用しない可変コンテナにイメージデータを流し込んだ場合、可変コンテナのレイアウトがどのように変化するかを示すレイアウト編集アプリケーション１２１によるプレビュー画面を例示する図である。
【０１８６】
図３３において、可変コンテナ３３２２のサイズよりも大きいイメージデータを可変コンテナ３３２２に流し込むと、可変コンテナ３３２２のサイズは拡張する。この際、可変コンテナ３３２２の上辺３３５４がＹ＋方向に移動すると、可変コンテナ３３２１の下辺３３５２側に侵入（重複）し、同様に可変コンテナ３３２２の左辺３３５３がＸ−方向に移動すると、可変コンテナ３３２１の右辺３３５１側に侵入（重複）する可能性がある。
【０１８７】
（侵入例１）
重なり防止用対応角可変リンクを設定しない場合、図３５の例では、可変コンテナ３３２２（図３３）の上辺が可変コンテナ３３２１（図３３）の下辺に最初に侵入している。これは、以下のレイアウトフローによって発生する。
【０１８８】
（１）可変コンテナ３３２１（図３３）にイメージデータを流し込むことにより、コンテナサイズが拡張して可変コンテナの右辺３３５１（図３３）は右方向（Ｘ＋方向）へ移動する（この状態を、プレビュー表示として可変コンテナ３５２１として示す）。
【０１８９】
（２）可変コンテナ３３２２、３３２３、３３２４（図３３）にイメージデータを流し込み、可変コンテナ３３２４（左右の辺および下辺は固定エッジ設定（破線部３５２８は、可変コンテナ３３２４の固定エッジを示す。））の可動エッジ（辺）３３５５がＹ＋方向に移動する。この際、固定リンク３３２６、３３２７により関連付けされている可変コンテナ３３２２、３３２３は、可動辺３３５５の移動により、押し上げられてＹ＋方向に移動する（この状態を、プレビュー表示として可変コンテナ３５２２、３５２３として示す）。
【０１９０】
（３）上記（１）および（２）のステップで、イメージデータを可変コンテナに流し込むことにより、可変コンテナ３５２１の下辺に対し、可変コンテナ３５２２の上辺が侵入する（３５３０はコンテナの重なり部分を示す）。
【０１９１】
（侵入例２）
また、重なり防止用対応角可変リンクを設定しない場合、図３７の例では、可変コンテナ３３２２の左辺が可変コンテナ３３２１の右辺に最初に侵入している。これは、以下のレイアウトフローによって発生する。
【０１９２】
（１）可変コンテナ３３２１（図３３）にイメージデータを流し込むことにより、コンテナサイズが拡張して可変コンテナの下辺３３５２（図３３）は下方向（Ｙ−方向）へ移動する（この状態を、プレビュー表示として可変コンテナ３７２１として示す）。
【０１９３】
（２）可変コンテナ３３２２、３３２３、３３２４（図３３）にイメージデータを流し込み、可変コンテナ３３２３（右辺が固定エッジ設定（破線部３７２９は、可変コンテナ３３２３（図３３）の固定エッジを示す。））の可動エッジ（辺）３３５６がＸ−方向に移動する。この際、固定リンク３３２５によりリンクされている可変コンテナ３３２２は、可動辺３３５６の移動により、押されてＸ−方向に移動する（この状態を、プレビュー表示として可変コンテナ３７２２として示す）。
【０１９４】
（３）上記（１）および（２）のステップで、イメージデータを可変コンテナに流し込むことにより、可変コンテナ３７２１の右辺に対し、可変コンテナ３７２２の左辺が侵入する（３７３０はコンテナの重なり部分を示す）。
【０１９５】
侵入例１、２で示した場合において、例えば、重なりオブジェクト３３２２（可変コンテナ）によって最初に侵入される可能性がある被重なりオブジェクト３３２１（可変コンテナ）の水平方向と垂直方向の二辺（三辺以上というのはありえない）に対し、動的ガイドおよび重なり防止用可変リンクを作成してしまうと、重なりが生じなくても常に重なりオブジェクトのレイアウトの範囲が制限されてしまうという問題点が発生する。
【０１９６】
図２７を用いて上記問題点について具体的に説明すると。例えば、図２７の可変コンテナ２７２２には、垂直方向の動的ガイド２７４１に対して重なり防止用可変リンク２７４２が設定されているが、仮に、水平方向の動的ガイド２７４３に対しても重なり防止用可変リンクが設定されると、可変コンテンツ２７２２にイメージデータ等が流し込まれた際、可変コンテナ２７２２の可動範囲は垂直方向の動的ガイド２７４１と水平方向の動的ガイド２７４３により制限される。つまり、可変コンテナ２７２２の可動範囲は、動的ガイド２７４１より右側で、動的ガイド２７４３より上側のドキュメントテンプレート２７０９上の領域に制限されることとなる。
【０１９７】
可変コンテナの可動範囲が動的ガイド及び重なり防止用可変リンクの設定により制限されるという上記問題を避けるため、本発明の実施形態では、被重なりオブジェクトにおいて、他の重なりオブジェクト（可変コンテナ）により最初に侵入される可能性がある水平方向と垂直方向の二辺に対し、図３３の３３４３に示すような、対応角リンクを作成する。以下の説明では、対応角リンク３３４３のように重なり防止用可変リンクとして機能するリンクを「重なり防止用対応角可変リンク」という。重なり防止用対応角可変リンクは、被重なりオブジェクトに当接する２つの動的ガイドと、重なりオブジェクト（可変コンテナ）側の２辺とを考慮したものであり、重なりオブジェクト（可変コンテナ）側から被重なりオブジェクト（可変コンテナ）に重なることを防止する。
【０１９８】
（重なり防止用対応角可変リンクの設定）
図３９は、本発明の実施形態において適用することが可能な、重なり防止用対応角可変リンクを設定する処理の流れを説明するフローチャートであり、図２５Ｂで説明した重なり防止用可変リンク設定ステップであるステップＳ２５１５及びＳ２５１６に関する詳細な処理の流れを説明するフローチャートである。
【０１９９】
まず、ステップＳ３９０１において、図２５ＢのステップＳ２５１５のように、レイアウト編集アプリケーション１２１が被重なりオブジェクト（例えば、図３３の動的オブジェクト３３２１）に動的ガイドを作成するか判定する。動的ガイドを作成する場合（Ｓ３９０１−ＹＥＳ）、ステップＳ３９０２に処理を進め、レイアウト編集アプリケーション１２１は、重なりを許さないプロパティが設定されている被重なりオブジェクト（可変コンテナ）３３２１において、他の重なりオブジェクトによって、侵入される可能性がある辺（「被侵入辺」という。）が二辺存在するか判定する（Ｓ３９０２）。詳細には、ドキュメントテンプレート上にある各オブジェクトの可変範囲および移動範囲は上述した通りメモリユニット１３６に保持されているので、レイアウト編集アプリケーションが該メモリユニットを参照することにより、判定することが可能となる。
【０２００】
例えば、可変コンテナ３３２１の場合、水平方向の辺３３５２及び垂直方向の辺３３５１の二辺が被侵入辺に該当する場合（Ｓ３９０２−ＹＥＳ）、レイアウト編集アプリケーション１２１は、処理をステップＳ３９０３に進める。一方、ステップＳ３９０２の判定で、被侵入辺が二辺存在しない場合（Ｓ３９０２−ＮＯ）、処理をステップＳ３９０５に進め、図２５ＢのステップＳ２５１５で説明した動的ガイドの設定、ステップＳ２５１６で説明した重なり防止用リンクの設定の処理に移行する。
【０２０１】
被侵入辺が二辺ある場合（Ｓ３９０２−ＹＥＳ）、レイアウト編集アプリケーション１２１は、被侵入辺にそれぞれ当接する動的ガイド（例えば図３３では、動的ガイド３３４１、３３４２）を設定する（Ｓ３９０３）。
【０２０２】
続いて、レイアウト編集アプリケーション１２１は、重なり防止用対応角可変リンクを設定する（Ｓ３９０４）。Ｓ３９０４の詳細について説明するため、図３３を用いて具体的に説明する。レイアウト編集アプリケーション１２１は、ステップＳ３９０３で作成された二つの動的ガイド３３４１、３３４２の交点（可変コンテナ３３２１の辺３３５１と辺３３５２からなるコーナー部）と、可変コンテナ３３２２の２つの侵入辺３３５３と３３５４からなるコーナー部とを結ぶリンクとして、重なり防止用対応角可変リンク３３４３を設定する。この処理は、図２５Ｂで説明した重なり防止用可変リンクの設定ステップＳ２５１６に対応する。
【０２０３】
図３９において説明した通り、重なり防止用対応角可変リンクは、被侵入辺が二辺ある場合（つまり、重なり方向を特定することができない場合）に設定され、後述するようにレイアウト計算の結果に応じて設定方向が決定された重なり防止用リンクに変更されるリンクである。
【０２０４】
図３４は、重なり防止用対応角可変リンクの属性を設定するダイアログウィンドウ３４０１の例を示す図である。このダイアログは典型的にタイトルバー３４０２、ツールボタン３４０３、ダイアログウィンドウの開閉を行うボタン３４０４、各種の情報をセットするエリア３４０９で構成されている。
【０２０５】
対応角可変リンクの垂直方向の長さ（水平方向の動的ガイドと、コンテナの上辺または下辺との垂直距離）の最小値がテキストボックス３４１０で設定できる。また、対応角可変リンクの水平方向の長さ（垂直方向の動的ガイドと、コンテナの左辺または右辺との水平距離）の最小値がテキストボックス３４１２で設定できる。
【０２０６】
リストボックス３４１１、３４１３では長さの単位が設定される。ここでは例としてどちらもｍｍが表示されている。尚、ユーザが、テキストボックスで可変リンクの長さに、プラス値ではなく、マイナス値を設定した場合、「動的オブジェクトの重なりを許さない」属性の設定に関わらず、動的ガイドとコンテナの重なりを許す設定になる。
【０２０７】
図４０は、重なり防止用対応角可変リンクが設定された場合のレイアウト編集アプリケーション１２１におけるレイアウト編集処理の流れを説明するフローチャートである。なお、説明を詳細にするため図３３を用いて具体的に説明する。
【０２０８】
レイアウト編集アプリケーション１２１は、マウス１３３によるメニューアイテム３０４（図３）に対するユーザ操作により、図３３のドキュメントテンプレート３３０９にイメージデータの流し込みが指示され、可変コンテナ３３２１および可変コンテナ３３２２〜３３２４に対し、イメージデータ（コンテンツ）が流し込まれたと判定した場合（Ｓ４００１―ＹＥＳ）、可変コンテナ３３２１および可変コンテナ３３２２〜３３２４を構成するエッジ（辺）の可変設定に従ってイメージデータのコンテンツサイズに合わせてコンテナサイズを拡縮する。また、レイアウト編集アプリケーション１２１は他の可変コンテナと間で、レイアウト計算に影響を与える固定リンクや可変リンク等の設定が存在する場合、図９で説明したように動的レイアウトの計算により可変コンテナのレイアウト位置を移動させる（Ｓ４００２）。
【０２０９】
ステップＳ４００２による可変コンテナの拡縮および位置の移動により、レイアウト編集アプリケーション１２１が、可変コンテナのサイズまたは位置が変更されたと判定した場合（Ｓ４００３―ＹＥＳ）、可変コンテナ３３２１の右辺３３５１および下辺３３５２のように、動的ガイド３３４１、３３４２が既に設定されているか判定し（Ｓ４００４）、動的ガイドが設定されている場合は、処理をステップＳ４００５に進め、レイアウト編集アプリケーション１２１はその動的ガイドをコンテナの辺に接した状態を維持して、可変コンテナの拡縮、または位置変更に合わせて移動させる（Ｓ４００５）。
【０２１０】
ステップＳ４００３の判定において、コンテナサイズ等が変更されない場合は処理を終了する（Ｓ４００３−ＮＯ）。
【０２１１】
また、図４０のステップＳ４００４で動的ガイドが設定されていない場合（Ｓ４００４−ＮＯ）、処理を終了する代わりに、重なり防止用対応角可変リンクを設定するための動的ガイドを新たに設定するようにしてもよい。
【０２１２】
レイアウト編集アプリケーション１２１は、ステップＳ４００２による可変コンテナのサイズおよび位置変更、ステップＳ４００５による動的ガイドの位置変更の結果を反映させた結果、図３５、図３７で説明したように、コンテナ同士（３５２１および３５２２、３７２１及び３７２２）が重なると判断した場合（Ｓ４００６―ＹＥＳ）、レイアウト編集アプリケーション１２１は、コンテナ同士の重なり方向を判定する（Ｓ４００７）。図３５のように、コンテナ同士の重なりが垂直方向である場合（Ｓ４００７−ＹＥＳ）、レイアウト編集アプリケーション１２１は、重なり防止用対応角可変リンク３３４３を垂直方向の重なり防止用可変リンクに変更する（Ｓ４００８）。
【０２１３】
また、ステップＳ４００７の判定で、コンテナ同士の重なり方向が、図３７のように、水平方向である場合（Ｓ４００７−ＮＯ）、レイアウト編集アプリケーション１２１は、重なり防止用対応角可変リンク３３４３を水平方向の重なり防止用可変リンクに変更する（Ｓ４００９）。
【０２１４】
そして、処理をステップＳ４０１０に進め、動的レイアウト計算によるレイアウト変更に伴い、重なり防止用可変リンクの長さを変更する（Ｓ４０１０）。重なり防止用可変リンクのリンク長を変更した結果、重なり防止用可変リンクの長さが、図３４の重なり防止用対応角可変リンクの属性を設定するダイアログウィンドウのテキストボックス３４１０（ステップＳ４００８による垂直方向の重なり防止用可変リンクの場合）または３４１２（ステップＳ４００９による水平方向の重なり防止用可変リンクの場合）でユーザが設定した重なり防止用可変リンクの長さの最小値より小さくなった場合（Ｓ４０１１―ＹＥＳ）、レイアウト編集アプリケーション１２１は重なり防止用可変リンクによって動的ガイドと結ばれているコンテナの位置を重なり防止用可変リンクの長さがその最小値の条件を満たすようにリンク長さを増加させる方向にリンクが設定されている辺の位置を移動させて、可変コンテナのレイアウトを決定し（Ｓ４０１２）、処理を終了する。
【０２１５】
ステップＳ４０１１の判定において、リンクの長さが最小値より小さくない場合（Ｓ４０１１−ＮＯ）、そのリンク長により定められる位置で可変コンテナのレイアウトを決定し、処理を終了する。
【０２１６】
以上、図４０によるレイアウト処理により、例えば、上述した「侵入例１」および「侵入例２」のように重なり方向を特定することができないような図３３のようなレイアウトにおいても、重なり防止用対応角可変リンクを設定することにより、実際に流し込まれたバリアブルデータに応じて、前記重なり防止用対応角可変リンクを垂直方向の重なり防止用リンクまたは水平方向の重なり防止用リンクに切り替えることが可能となる。
これにより、最初に侵入される可能性がある被重なりオブジェクトの水平方向と垂直方向の二辺に対し、重なりが生じないにも関わらず動的ガイドおよび重なり防止用可変リンクを作成することにより、重なりオブジェクトのレイアウトの範囲が制限されてしまうという問題点を解消することが可能となる。
【０２１７】
（レイアウト例１）
図３６は図４０の処理により、図３３のレイアウトが遷移したレイアウト例を示す図である。レイアウト編集アプリケーションは、バリアブルデータが各コンテナに流し込まれることにより、上記「侵入例１」のような重なりが生じると判定する。これにより、重なり防止用対応角可変リンク３３４３は垂直方向の重なり防止用可変リンク３６４３と変更され、図３５の可変コンテナ３５２１と可変コンテナ３５２２のように可変コンテナ同士が重ならないようレイアウトされる。
【０２１８】
可変コンテナ３６２２は、可変コンテナ３６２１に設定されている動的ガイド３６４２と、重なり防止用可変リンク３６４３により、Ｙ＋方向の移動（可変コンテナの拡張）が拘束され、イメージデータを収めた可変コンテナ３６２２のサイズを拡張する必要がある場合、レイアウト編集アプリケーション１２１は、Ｙ−方向に可変コンテナを構成する辺を移動させて、可変コンテナのサイズを拡張し、レイアウトの位置を決定する。
【０２１９】
また、可変コンテナ３６２２と固定リンク（３６２６、３６２７）により関連付けられている可変コンテナ３６２４や３６２３についても可変コンテナ３６２２と同様に、コンテナサイズを拡張する必要がある場合または可変コンテナ３６２２の拡張等によりレイアウト位置が変更となる場合、レイアウト編集アプリケーション１２１は、Ｙ−方向に可変コンテナを構成する辺を移動させてレイアウトの位置を決定する。
【０２２０】
（レイアウト例２）
図３８は図４０の処理により、図３３のレイアウトが遷移したレイアウト例を示す図である。レイアウト編集アプリケーションは、バリアブルデータが各コンテナに流し込まれることにより、上記「侵入例２」のような重なりが生じると判定する。これにより、重なり防止用対応角可変リンク３３４３が水平方向の重なり防止用可変リンク３８４３と変更され、図３７の可変コンテナ３７２１と可変コンテナ３７２２のように可変コンテナ同士が重ならないようにレイアウトされる。
【０２２１】
可変コンテナ３８２２は、可変コンテナ３８２１に設定されている動的ガイド３８４１と、重なり防止用可変リンク３８４３により、Ｘ−方向の移動（可変コンテナの拡張）が拘束され、イメージデータを収めた可変コンテナ３８２２のサイズを拡張する必要がある場合、レイアウト編集アプリケーション１２１は、Ｘ＋方向に可変コンテナを構成する辺を移動させて、可変コンテナのサイズを拡張し、レイアウトの位置を決定する。
【０２２２】
また、可変コンテナ３８２２と固定リンク（３８２５、３８２６）により関連付けられている可変コンテナ３８２４や３８２３についても可変コンテナ３８２２と同様に、コンテナサイズを拡張する必要がある場合または可変コンテナ３８２２の拡張によりレイアウト位置が変更となる場合、レイアウト編集アプリケーション１２１は、Ｘ＋方向に可変コンテナを構成する辺を移動させてレイアウトの位置を決定する。
【０２２３】
以上説明したように、本実施形態によれば、データを収めたコンテナ（部分表示領域）の重なりをレイアウト編集時において判定し、重なりを禁止する部分表示領域、重なりを許容する部分表示領域をレイアウト編集時にそれぞれ設定することで、ユーザの所望するレイアウト表示を効率的に実現するレイアウト制御技術を提供することが可能になる。
【０２２４】
（第２実施形態）
次に、本発明の第２実施形態を説明する。本実施形態は、ドキュメントテンプレート上に配置されている複数のコンテナ同士の重なりを判定し、ユーザの指定に従い、各コンテナの表示を制御するものである。
【０２２５】
上述のハードウエア構成及びソフトウェア構成の組み合わせにより、第２実施形態にかかるレイアウト制御装置の構成が実現する。
【０２２６】
割り当てられたデータを収め、当該データをページ上にレイアウトする複数の部分表示領域の配置を制御するレイアウト制御装置は、割り当てられたデータを収めた前記各部分表示領域の可動領域を算出し、当該可動領域から前記複数の部分表示領域に重なりが生じるか予測する予測ユニットと、予測ユニットの予測により、前記複数の部分表示領域に重なりが生じると予測される場合、前記重なりが生じると予測される部分表示領域に対して表示順序を設定する表示順序設定ユニットと、前記表示順序設定ユニットにより設定された表示順序に従って部分表示領域を表示する表示制御ユニットを備える。
【０２２７】
図４１は、第２実施形態におけるレイアウト編集アプリケーション１２１の編集画面を示す図であり、ここでは４つの可変コンテナ（４１１１〜４１１４）にイメージデータを流し込んだ際に生じる可変コンテナの重なりを例として説明する。尚、説明では、イメージデータの流し込みを想定したイメージコンテナとして機能する可変コンテナの重なりを例としているが、テキストデータの流し込みを想定したテキストコンテナとして機能する可変コンテナであってもよく、テキストコンテナ及びイメージコンテナがドキュメントテンプレート上に混在して配置されるような場合であっても、レイアウト編集アプリケーション１２１（ユーザインターフェースモジュール１０３、レイアウトエンジンモジュール１０５を含む）は、複数のコンテナ同士の重なりを判定し、ユーザの指定に従って各コンテナの表示を制御することができる。なお、実施例２による処理は図１７のレイアウト方法において１７４３が選択された場合に処理である。
【０２２８】
４１０９はドキュメントテンプレートであり、このドキュメントテンプレート上に可変コンテナ４１１１〜４１１４が配置されおり、リンク４１２１によって可変コンテナ４１１２と可変コンテナ４１１３は関連づけられている。ここで、可変コンテナ４１１１には識別名として「コンテナＡ」が、可変コンテナ４１１２には識別名として「コンテナＢ」が、可変コンテナ４１１３には識別名として「コンテナＣ」が、そして可変コンテナ４１１４には識別名として「コンテナＤ」が、レイアウト編集アプリケーション１２１によって自動的に、またはユーザの指定によって付けられ、画面上に表示されている。
【０２２９】
図４２は、図４１に配置された可変コンテナ４１１１〜４１１４の最大可動予測範囲を示す概念図である。この最大可動予測範囲は、図１７で説明したコンテナの属性を設定するプロパティダイアログウィンドウにより設定されているエッジステータス、コンテナサイズに基づいて、レイアウトエンジン１０５によって計算される。図４２に示すように、コンテナＡは、コンテナＢ、コンテナＣと水平方向で重なる可能性があり、また、コンテナＤとは垂直方向で重なる可能性がある。
【０２３０】
（重なり設定処理フロー）
図４３は、レイアウト編集アプリケーション１２１による重なり設定処理の流れを説明するフローチャートである。
【０２３１】
レイアウト編集アプリケーションは、ドキュメントテンプレート上に少なくとも２つのオブジェクトがあるか否かを判定する（Ｓ４３０１）。判定方法は、図２５ＡのＳ２５０１と同様であるため詳細については省略する。Ｓ４３０１により、ドキュメントテンプレート上にオブジェクトがあると判定された場合、（Ｓ４３０１-ＹＥＳ）、レイアウト編集アプリケーション１２１はユーザによって該オブジェクトに対して設定が変更されたか否かを判定し、その判定がドキュメントテンプレートに存在するオブジェクトの動的要因に関連する変更であるか否かを判定する（Ｓ４３０２）。ここでいうオブジェクトの動的要因に関連する変更とは、静的オブジェクトから動的オブジェクトへの変更や動的オブジェクトの位置・サイズ・可変エッジ変更が該当する。なお、各オブジェクトの設定内容はメモリユニット１３６に保持されているので、レイアウト編集アプリケーションがメモリユニットを参照することによりＳ４３０２の判定処理を実行することが可能となる。
【０２３２】
ステップＳ４３０２の判定において、動的要因の変更である場合（Ｓ４３０２−ＹＥＳ）、動的要因変更に関連する全ての動的オブジェクト（例えば、可変コンテナ）に関し、レイアウトエンジン１０５を用いてその最大可動領域を計算する（Ｓ４３０３）。
【０２３３】
詳細には、図２５ＢのＳ２５０８と同様であり、レイアウトエンジン１０５は、動的オブジェクトである可変コンテナの最大可動範囲を、「コンテナの最大サイズ設定」要因、「リンクされた他のコンテナによる移動」要因の二つの動的要因から算出する（最大可動領域を計算）。
【０２３４】
また、ステップＳ４３０２の判定において、ユーザによって新たに加えられた変更が、ドキュメントテンプレートに存在するオブジェクトの動的要因に関連する変更でない場合（Ｓ４３０２−ＮＯ）、例えば、動的オブジェクト（可変コンテナ）から静的オブジェクト（固定コンテナ）への変更や静的オブジェクト（固定コンテナ）のレイアウト位置やサイズ変更などである場合、レイアウト編集アプリケーション１２１は静的オブジェクトである固定コンテナのレイアウト位置とサイズから変更に関連する静的オブジェクト（固定コンテナ）に関するドキュメントテンプレート上の占有領域を算出（領域計算）する（Ｓ４３０４）。なお静的オブジェクトの占有領域についてもメモリユニットに保持されているため、レイアウト編集アプリケーションが参照することにより算出可能である。
【０２３５】
レイアウト編集アプリケーション１２１のレイアウトエンジンモジュール１０５は、ドキュメントテンプレート４１０９上に配置されているコンテナ群の最大可動領域の計算結果（Ｓ４３０３）またはドキュメントテンプレート上の占有領域の計算結果（Ｓ４３０４）から、図４２に示すようなコンテナ群の重なり予測を算出する（Ｓ４３０５）。
【０２３６】
レイアウト編集アプリケーション１２１は、オブジェクト群の重なり予測の算出結果を、既にメモリユニット１３６に保持されている前回の変更にかかる重なり予測の算出結果と比較して、重なり予測の算出結果に変更があれば（Ｓ４３０７−ＹＥＳ）、変更された重なり予測結果をメモリ１３６に保存し（Ｓ４３０８）、前回の変更にかかる重なり予測の算出結果を更新する。
【０２３７】
そして、ステップＳ４３０９において、レイアウト編集アプリケーション１２１は、重なり予測に変更が生じたオブジェクトに関して、重なり属性を設定するユーザインターフェース（ＵＩ）を更新し（Ｓ４３０９）、処理を終了する。
【０２３８】
重なり属性を設定するユーザインターフェース（ＵＩ）の更新は、レイアウト編集アプリケーション１２１の制御の下、自動的に更新してもよく、または、ユーザの指定により各コンテナの表示を制御することもできる。
【０２３９】
（オブジェクトの重なり属性設定ＵＩ）
図４４は、オブジェクトの重なり属性を設定するＵＩ（以下、「重なり属性設定ＵＩ」という。）を例示する図である。４４３１はコンテナＡの重なり属性設定ＵＩ、４４３２はコンテナＢの重なり属性設定ＵＩ、４４３３はコンテナＣの重なり属性設定ＵＩ、４４３４はコンテナＤの重なり属性設定ＵＩであり、レイアウト編集アプリケーション１２１のレイアウト編集処理の下、各オブジェクトについて、ドキュメントテンプレート上に配置されていて、重なりが予測される他のオブジェ（コンテナ）との関係で、重なりを拒否するか、「上」または「下」の重なりを許容（Ｚ−Ｏｒｄｅｒ）するか個別に設定することができる。
【０２４０】
「重なりを許容」する設定が入力された場合、一の可変コンテナ及び他の可変コンテナの重複する部分は、いずれか一方を上、他方を下として重なった状態で配置される。
また、「重なりを拒否」する設定が入力された場合、一の可変コンテナ及び他の可変コンテナの双方、または、いずれか一方の配置を優先する詳細設定を追加する詳細設定の入力が入力可能になり、動的レイアウトを実行するレイアウトエンジンモジュール１０５は、詳細設定に従い重複が生じない位置に一の可変コンテナと他の可変コンテナとを配置する。
【０２４１】
図４３で説明した、レイアウト編集アプリケーション１２１の処理により、図４４のコンテナＡの重なり属性設定ＵＩ４４３１には、コンテナＡとの重なりが予測されるオブジェクトとして、コンテナＢ、Ｃ、Ｄがリストされている。また、重なり属性設定ＵＩ４４３１中には、各コンテナに対してオプションボタンとして、「上」または「下」の重なりを許容する設定、「重なり拒否」の設定が選択可能になっている。重なり属性設定ＵＩ４４３１において、コンテナＢに対しては「重なり拒否」が選択されており、コンテナＣに対しては重なりを許容する指定「上」が、コンテナＤに対しては重なりを許容する指定「下」が設定されている。
【０２４２】
図４４のコンテナＢの重なり属性設定ＵＩ４４３２には、コンテナＢとの重なりが予測されるオブジェクトとして、コンテナＡ、Ｃがリストされている。また、図４４の重なり属性設定ＵＩ４４３２中には、各コンテナに対してオプションボタンとして、「上」または「下」の重なりを許容する設定、「重なり拒否」の設定が選択可能になっている。コンテナＡに対する重なり属性設定には、コンテナＡのコンテナＢに対する重なり属性設定ＵＩ４４３１と同期（双方共に重なり拒否）するように「重なり拒否」が設定されており、コンテナＣに対する重なり属性設定には、重なりを許容する指定「上」が重なり属性設定ＵＩ４４３２に設定されている。
【０２４３】
コンテナＣの重なり属性設定ＵＩ４４３３には、コンテナＣとの重なりが予測されるオブジェクトとして、コンテナＡ、Ｂがリストされている。また、コンテナＡ、Ｂの場合と同様に、重なり属性設定ＵＩ４４３３の中には、各コンテナに対してオプションボタンとして、「上」または「下」の重なりを許容する設定、「重なり拒否」の設定が選択可能になっている。ここで、コンテナＡに対する重なり属性設定は、コンテナＡのコンテナＣに対する重なり属性設定ＵＩ４４３１と同期（コンテナＡが「上」、コンテナＣが「下」となる重なりを許容）するように、重なりを許容する指定「下」が重なり属性設定ＵＩ４４３３に設定されている。また、コンテナＢに対する重なり属性設定は、コンテナＢのコンテナＣに対する重なり属性設定ＵＩ４４３２と同期（コンテナＢが「上」、コンテナＣが「下」となる重なりを許容）するように、重なりを許容する指定「下」が重なり属性設定ＵＩ４４３３に設定されている。
【０２４４】
コンテナＤの重なり属性設定ＵＩ４４３４には、コンテナＤとの重なりが予測されるオブジェクトとして、コンテナＡがリストされている。また、コンテナＡ、Ｂ、Ｃの場合と同様に、重なり属性設定ＵＩ４４３４中には、各コンテナに対してオプションボタンとして、「上」または「下」の重なりを許容する設定、「重なり拒否」を設定の選択が可能になっている。ここで、コンテナＡに対する重なり属性設定は、コンテナＡのコンテナＤに対する重なり属性設定４４３１と同期（コンテナＡが「下」、コンテナＤが「上」となる重なりを許容）するように、重なりを許容する指定「上」が重なり属性設定ＵＩ４４３４に設定されている。なお、本実施形態ではコンテナＡが基準となって、コンテナＢ乃至Ｄの重なり設定が同期するとの記載になっておりますが、例えば、コンテナＤの属性設定ＵＩ４４３４を「下」に変更した場合、コンテナＡの属性設定ＵＩは同期して「上」に変更されることとなる。また、各コンテナの重なり順序の設定や「重なり拒否」の設定は、重なると判断されたコンテナ同士が対応付けられた状態で保持されるため、例えば一方を「上」と設定した場合に、対応付けられているコンテナの表示順序は「下」と同期して設定することが可能となる。
【０２４５】
このように、レイアウト編集アプリケーション１２１は、一方の重なり属性設定ＵＩでのユーザ操作による設定を、他方の重なり属性設定ＵＩの設定と同期して設定することができる。
【０２４６】
レイアウト編集アプリメーション１２１による同期は、一方のオブジェクト（コンテナ）の重なり属性設定ＵＩの設定を「上」と設定した場合、これと重なる他方のオブジェクト（コンテナ）の重なり属性設定ＵＩの設定を「下」、一方のオブジェクト（コンテナ）の重なり属性設定ＵＩの設定を「下」と設定した場合、これと重なる他方のオブジェクト（コンテナ）の重なり属性設定ＵＩの設定を「上」、一方のオブジェクト（コンテナ）の重なり属性設定ＵＩの設定を「重なり拒否」と設定した場合、これと重なる他方のオブジェクト（コンテナ）の重なり属性設定ＵＩの設定を「重なり拒否」、という関係に従い設定される。
【０２４７】
重なり属性設定ＵＩにリスト表示されるオブジェクトは、レイアウト編集アプリケーション１２１の処理ステップＳ４３０９により、重なり予測結果の変更に応じてオブジェクト（コンテナ）間で重なりが生じるようになった場合は追加され、重なりが解消した場合は削除される。重なり予測結果に基づいて、新たに追加されたオブジェクト（コンテナ）に対して重なりを許容する指定または重なりを禁止する指定を追加することが可能である。
【０２４８】
（重なり拒否動的レイアウト設定ＵＩ）
図４５は、オブジェクトの重なり拒否を指定した場合の動的レイアウト設定ＵＩ（以下、「重なり拒否動的レイアウト設定ＵＩ」という）を例示する図である。４５４１はコンテナＡのコンテナＢに対する重なり拒否動的レイアウト設定ＵＩであり、４５４２はコンテナＢのコンテナＡに対する重なり拒否動的レイアウト設定ＵＩである。
【０２４９】
重なり拒否動的レイアウト設定ＵＩＩ４５４１は、コンテナＡの重なり属性設定ＵＩ４４３１でコンテナＢに対して「重なり拒否」が指定され、入力可能になった「詳細設定」ボタン４４９１が押下された際に、レイアウト編集アプリケーション１２１によって表示される。また、同様に、重なり拒否動的レイアウト設定ＵＩ４５４２は、コンテナＢの重なり属性設定ＵＩ４４３２でコンテナＡに対する「重なり拒否」が指定され、入力可能になった「詳細設定」ボタン４４９２が押下された際に、レイアウト編集アプリケーション１２１によって表示される。
【０２５０】
図４５に示すように、重なり拒否動的レイアウト設定ＵＩにおいて、ユーザは３つのオプションボタン、「双方反発してレイアウト（等価）」、「相手に譲ってレイアウト（相手優先）」、「相手を動かしてレイアウト（自分優先）」の一つを指定することが可能である。
【０２５１】
ユーザは、３つのオプションボタンのいずれかを指定することで、重なり拒否動的レイアウトの方法を指定することが可能になる。
【０２５２】
ユーザがオプションボタンの内、「双方反発してレイアウト（等価）」を指定した際に、重なり拒否の対象となる相手側コンテナに対する自コンテナの反発方向（重複を回避して自コンテナを移動させる方向）を指定するオプションボタン、「自動」、「上」、「下」、「左」、「右」の指定が可能になる。これらのレイアウト編集は、レイアウト編集アプリケーション１２１の処理に基づくものである。
【０２５３】
また、オプションボタンの内、「相手に譲ってレイアウト（相手優先）」を指定した際に、重なり拒否の対象となる相手側コンテナに対する自コンテナの移動方向を指定するオプションボタン、「自動」、「上」、「下」、「左」、「右」をユーザは指定することが可能になる。
【０２５４】
また、オプションボタンの内、「相手を動かしてレイアウト（自分優先）」を指定した際に、重なり拒否の対象となる相手側コンテナの移動方向を指定するオプションボタン、「自動」、「上」、「下」、「左」、「右」をユーザは指定することが可能になる。
これらのレイアウト編集は、レイアウト編集アプリケーション１２１の処理に基づくものである。
【０２５５】
例えば図４５に記載されているコンテナＡのコンテナＢに対する重なり拒否動的レイアウト設定ＵＩ４５４１においては、オプションボタンで「双方反発してレイアウト（等価）」が指定されており、コンテナＡのコンテナＢに対する反発方向を指定するオプションボタンでは「下」が指定されている。また、コンテナＢのコンテナＡに対する重なり拒否動的レイアウト設定ＵＩ４５４２においては、コンテナＡのコンテナＢに対する重なり拒否動的レイアウト設定ＵＩ４５４１での設定と同期（双方共に反発）するように、オプションボタンで、「双方反発してレイアウト（等価）」が指定されており、また、同じく４５４１の設定と同期（コンテナＡの反発方向が「下」、コンテナＢの反発方向が「上」とする反発を許容）するように、コンテナＢのコンテナＡに対する反発方向を指定するオプションボタンでは「上」が指定されている。
【０２５６】
このように、レイアウト編集アプリケーション１２１は、一方の重なり拒否動的レイアウト設定ＵＩでのユーザ操作による設定を、他方の重なり拒否動的レイアウト設定ＵＩの設定と同期して設定することができる。
【０２５７】
レイアウト編集アプリメーション１２１による同期は、以下の関係に従い設定されるものとする。
【０２５８】
（重なり拒否動的レイアウトの設定の同期）
（１）一方のオブジェクト（コンテナ）の重なり拒否動的レイアウト設定ＵＩの設定を「双方反発してレイアウト（等価）」とした場合、重なり拒否の対象となる他方のオブジェクト（コンテナ）の重なり拒否動的レイアウト設定ＵＩの設定を「双方反発してレイアウト（等価）」とする。
【０２５９】
（２）一方のオブジェクト（コンテナ）の重なり拒否動的レイアウト設定ＵＩの設定を「相手に譲ってレイアウト（相手優先）」とした場合、重なり拒否の対象となる他方のオブジェクト（コンテナ）の重なり拒否動的レイアウト設定ＵＩの設定を「相手を動かしてレイアウト（自分優先）」とする。
【０２６０】
（３）一方のオブジェクト（コンテナ）の重なり拒否動的レイアウト設定ＵＩの設定を「相手を動かしてレイアウト（自分優先）」とした場合、重なり拒否の対象となる他方のオブジェクト（コンテナ）の重なり拒否動的レイアウト設定ＵＩの設定を「相手に譲ってレイアウト（相手優先）」とする。
【０２６１】
（反発方向設定、自コンテナの移動方向設定、相手コンテナの移動方向設定の同期）
（１） 一方のオブジェクト（コンテナ）の重なり拒否動的レイアウト設定ＵＩの設定を「自動」とした場合、重なり拒否の対象となる他方のオブジェクト（コンテナ）の重なり拒否動的レイアウト設定ＵＩの設定を「自動」とする。
【０２６２】
（２） 一方のオブジェクト（コンテナ）の重なり拒否動的レイアウト設定ＵＩの設定を「上」とした場合、重なり拒否の対象となる他方のオブジェクト（コンテナ）の重なり拒否動的レイアウト設定ＵＩの設定を「下」とする。
【０２６３】
（３） 一方のオブジェクト（コンテナ）の重なり拒否動的レイアウト設定ＵＩの設定を「下」とした場合、重なり拒否の対象となる他方のオブジェクト（コンテナ）の重なり拒否動的レイアウト設定ＵＩの設定を「上」とする。
【０２６４】
（４） 一方のオブジェクト（コンテナ）の重なり拒否動的レイアウト設定ＵＩの設定を「左」とした場合、重なり拒否の対象となる他方のオブジェクト（コンテナ）の重なり拒否動的レイアウト設定ＵＩの設定を「右」とする。
【０２６５】
（５） 一方のオブジェクト（コンテナ）の重なり拒否動的レイアウト設定ＵＩの設定を「右」とした場合、重なり拒否の対象となる他方のオブジェクト（コンテナ）の重なり拒否動的レイアウト設定ＵＩの設定を「左」とする。
【０２６６】
なお、上述したような図４４および図４５により設定された内容は、メモリユニット１３６に保持されることとなる。
【０２６７】
（重なり拒否動的レイアウト）
図４６は、レイアウト編集アプリケーション１２１による重なり拒否動的レイアウトの具体的な処理の流れを説明するフローチャートである。ここで実行される重なり拒否動的レイアウトにおいては、一の可変コンテナと他の可変コンテナとの関係で、レイアウト編集アプリケーション１２１は、第１実施形態で説明した動的ガイド及び重なり防止用可変リンク、または、重なり防止用対応角可変リンクを設定して、各可変コンテナに重なりが生じないように可変コンテナの配置を制御することができるものとする。
【０２６８】
マウス１３３によるメニューアイテム３０４に対するユーザ操作により、ドキュメントテンプレートにイメージデータの流し込みが指示され、レイアウト編集アプリケーション１２１は、可変コンテナにバリアブルデータの流し込みがされたか否かを判定する（Ｓ４６０１）。ここで、バリアブルデータの流し込みが行われたと判定した場合（Ｓ４６０１−ＹＥＳ）、レイアウト編集アプリケーション１２１のレイアウトエンジン１０５は、例えば、可変コンテナ（４１１１〜４１１４）に設定されているエッジステータスやコンテナサイズの設定、動的要因の変更等に基づいてドキュメントテンプレート４１０９上における配置を求め、可変コンテナ４１１１〜４１１４の最大可動予測範囲を算出する（動的レイアウトの実行）（Ｓ４６０２）。詳細については図４３のＳ４３０２と同様であるため省略する。
【０２６９】
動的レイアウト実行の結果、オブジェクト（可変コンテナ）同士に、重なりが生じているかレイアウト編集アプリケーション１２１は判断し（Ｓ４６０３）、重なりが生じている場合（Ｓ４６０３−ＹＥＳ）、レイアウト編集アプリケーション１２１は、重なりが生じているオブジェクト（可変コンテナ）に、図４４で説明したコンテナの重なり属性設定ＵＩで「重なり拒否」がユーザにより設定されているか判定する（Ｓ４６０４）。各設定された属性はメモリユニット１３６に保持されているため、レイアウト編集アプリケーション１２１がメモリユニット１３６を参照することにより判定可能である。
【０２７０】
ステップＳ４６０４の判定で、可変コンテナに「重なり拒否」が設定されていない場合（Ｓ４６０４−ＮＯ）、レイアウト編集アプリケーション１２１は、重なりが生じているオブジェクト（可変コンテナ）に対し、図４４で説明したコンテナの重なり属性設定ＵＩでユーザにより設定されている重なりを許容する指定（Ｚ−Ｏｒｄｅｒ：「上」または「下」）の内容を反映させ、オブジェクトの表示順序（「上」または「下」の指定に従い一方のオブジェクト（可変コンテナ）の表示を上、他方のオブジェクト（可変コンテナ）の表示を下）を入れ替えて、編集画面にプレビューを行う（Ｓ４６１０）。
【０２７１】
一方、ステップＳ４６０４の判定で、可変コンテナに「重なり拒否」が設定されている場合（Ｓ４６０４−ＹＥＳ）、処理をステップＳ４６０５に進め、レイアウト編集アプリケーション１２１は、図４５で説明したオブジェクトの重なり拒否動的レイアウト設定ＵＩで「双方反発してレイアウト」が設定されているか判定する（Ｓ４６０５）。なお上述した通り各設定内容はメモリユニット１３６に保持されているため、レイアウト編集アプリケーション１２１がメモリユニット１３６を参照することにより判定可能である。
【０２７２】
ステップＳ４６０５の判定で、「双方反発してレイアウト」が設定されている場合、処理をステップＳ４６０６に進め、レイアウト編集アプリケーション１２１は、重なり拒否動的レイアウト設定ＵＩで設定されている反発方向が「自動」に設定されているか判定する（Ｓ４６０６）。
【０２７３】
ステップＳ４６０６の判定で、反発方向として「自動」が設定されている場合（Ｓ４６０６−ＹＥＳ）、レイアウト編集アプリケーション１２１はレイアウトエンジン１０５を用いて、移動方向が逆で、かつ移動量がほぼ等価となるような、双方のオブジェクト（可変コンテナ）が重ならなくなる移動位置を算出する（Ｓ４６０７）。Ｓ４６０７の処理は、レイアウト編集アプリケーション１２１が、各オブジェクトの位置を算出して重なり領域を認識し、重なり領域分だけ反対方向に移動させた位置が重ならなくなる移動位置となる。Ｓ４６０７により算出された移動位置に基づいて、双方のオブジェクト（可変コンテナ）を移動させてレイアウトし、そのレイアウト結果のプレビュー表示を行い（Ｓ４６０８）処理を終了する。
【０２７４】
動的レイアウトを実行するレイアウトエンジン１０５は、重なり設定や重なり拒否、重なり拒否に関する詳細設定の内容等、設定された属性に基づいて、一の可変コンテナ及び他の可変コンテナの配置位置を再計算し、表示制御機能を備えるユーザインターフェースモジュール１０３は、再計算された結果をディスプレイ装置１４４上にプレビュー表示する。
【０２７５】
ステップＳ４６０６で、重なり拒否動的レイアウト設定ＵＩで反発方向「自動」が設定されていない場合（Ｓ４６０６−ＮＯ）、反発方向として設定されている「上」、「下」、「左」、「右」のいずれかに従い、レイアウト編集アプリケーション１２１は、コンテナ同士で双方逆に同期設定されている反発方向に、移動量がほぼ等価となるよう双方のオブジェクト（可変コンテナ）を移動させてレイアウトし、そのレイアウト結果のプレビュー表示を行って（Ｓ４６０９）、処理を終了する。
【０２７６】
一方、ステップＳ４６０５の判定で、オブジェクトの重なり拒否動的レイアウト設定ＵＩに「双方反発してレイアウト」が設定されていない場合（Ｓ４６０５−ＮＯ）、処理をステップＳ４６１１に進め、レイアウト編集アプリケーション１２１は、重なり拒否動的レイアウト設定ＵＩに「相手に譲ってレイアウト（相手優先）」が設定されているか判定する（Ｓ４６１１）。
【０２７７】
ステップＳ４６１１の判定で、重なり拒否動的レイアウト設定ＵＩに「相手に譲ってレイアウト（相手優先）」が設定されている場合（Ｓ４６１１−ＹＥＳ）、処理をステップＳ４６１２に進め、レイアウト編集アプリケーション１２１は、重なり拒否動的レイアウト設定ＵＩに、相手コンテナに対する自コンテナの移動方向として「自動」が設定されているか判定する（Ｓ４６１２）。
【０２７８】
ステップＳ４６１２の判定で、移動方向として「自動」が設定されている場合は（Ｓ４６１２−ＹＥＳ）、処理をステップＳ４６１３に進め、レイアウト編集アプリケーション１２１は、レイアウトエンジン１０５を用いて、優先してレイアウト位置が決定された相手側のオブジェクト（可変コンテナ）に自オブジェクト（可変コンテナ）が重ならなくなる最小の移動位置を算出し（Ｓ４６１３）、その移動位置に自オブジェクト（可変コンテナ）を移動させてレイアウトし、そのレイアウト結果のプレビュー表示をして（Ｓ４６１４）、処理を終了する。
【０２７９】
ステップＳ４６１２の判定で、重なり拒否動的レイアウト設定ＵＩに、相手コンテナに対する自コンテナの移動方向として「自動」が設定されていない場合（Ｓ４６１２−ＮＯ）、「上」、「下」、「左」、「右」のいずれかの設定に従い、レイアウト編集アプリケーション１２１は、優先してレイアウト位置が決定された相手側のオブジェクト（可変コンテナ）に重ならなくなる位置まで自オブジェクト（可変コンテナ）を指定方向に従い移動させてレイアウトし、そのレイアウト結果のプレビュー表示をして（Ｓ４６１５）、処理を終了する。
【０２８０】
ステップＳ４６１１の判定で、オブジェクトの重なり拒否動的レイアウト設定ＵＩで「相手に譲ってレイアウト（相手優先）」が設定されておらず（Ｓ４６１１−ＮＯ）、「相手を動かしてレイアウト（自分優先）」が設定されている場合には（Ｓ４６１６―ＹＥＳ）、処理をステップＳ４６１７に進め、レイアウト編集アプリケーション１２１は、重なり拒否動的レイアウト設定ＵＩで、自コンテナに対する相手コンテナの移動方向として「自動」が設定されているか判定する（Ｓ４６１７）。
【０２８１】
ステップＳ４６１７の判定で、自コンテナに対する相手コンテナの移動方向として「自動」が設定されている場合には（Ｓ４６１７−ＹＥＳ）、処理をステップＳ４６１８に進め、レイアウト編集アプリケーション１２１は、レイアウトエンジン１０５を用いて、優先してレイアウト位置が決定された自オブジェクト（可変コンテナ）に相手側のオブジェクト（可変コンテナ）が重ならなくなる最小移動位置を算出し（Ｓ４６１８）、その算出位置に相手側のオブジェクト（可変コンテナ）を移動させてレイアウトし、そのレイアウト結果のプレビュー表示をして（Ｓ４６１９）、処理を終了する。
【０２８２】
ステップＳ４６１７の判定で、重なり拒否動的レイアウト設定ＵＩに自コンテナに対する相手コンテナの移動方向として「自動」が設定されていない場合（Ｓ４６１７−ＮＯ）、「上」、「下」、「左」、「右」のいずれかの設定に従いレイアウト編集アプリケーション１２１は、優先してレイアウト位置が決定された自オブジェクト（可変コンテナ）に重ならなくなる位置まで、指定方向に従い相手側のオブジェクト（可変コンテナ）を移動させてレイアウトし、そのレイアウト結果のプレビュー表示をして（Ｓ４６２０）、処理を終了する。
【０２８３】
本実施形態２を用いることにより、本願のようにバリアブルデータの流し込みにより、レイアウトが変更され、オブジェクト同士が重なる場合であっても、重なり順序を設定することができるため、ユーザの意図を反映したレイアウトを作成することが可能となる。また、重なり拒否が設定されている場合には、複数の重なり回避方法（反発、相手優先、自分優先）を選択し、さらに回避する方向も設定できるため、単に重なりを回避するだけでなく、回避後においてユーザの意図を反映したレイアウトを作成することが可能となる。
【０２８４】
図４７は、図４６で説明した処理を適用しない場合における、図４１の可変コンテナにイメージデータを流し込んだ場合のレイアウト結果を示す図である。この場合、可変コンテナ４１１１のプレビュー表示４７１１に、可変コンテナ４１１２〜４１１４のプレビュー表示４７１２〜４７１４が重なってプレビュー表示されている。
図４８は、図４６で説明した処理を適用した場合、レイアウト編集アプリケーション１２１による図４１の可変コンテナにイメージデータを流し込んだ場合のレイアウト結果を示す図である。
【０２８５】
図４８では図４６に記載の処理を適用することにより、図４７に示したイメージデータと同一のイメージデータを可変コンテナ（４１１１〜４１１４）に流し込んだ場合でも、図４７のレイアウト結果とは異なり、可変コンテナ４１１１のプレビュー表示４８１１と可変コンテナ４１１２のプレビュー表示４８１２が重なっていない。
【０２８６】
これは、図４４のコンテナＡの重なり属性設定ＵＩ４４３１およびコンテナＢの重なり属性設定ＵＩ４４３２において、双方の設定として「重なり拒否」、図４５のコンテナＡの重なり拒否動的レイアウト設定ＵＩ４５４１およびコンテナＢの重なり拒否動的レイアウト設定ＵＩ４５４２において、「双方反発してレイアウト（等価）」と指定され、そして、コンテナＡの反発方向が「下」に、コンテナＢの反発方向が「上」として設定されている内容に基づくものである。すなわち、図４６の重なり拒否動的レイアウトの処理フローで説明したとおり、レイアウト編集アプリケーション１２１は、プレビュー表示４８１１の位置を下に、プレビュー表示４８１２の位置を上に移動させ、双方が重ならないようレイアウトしている。
【０２８７】
また、プレビュー表示４８１１、４８１３、４８１４の重なりにおいて、レイアウト編集アプリケーション１２１は、図４４のオブジェクトの重なり属性設定ＵＩで、重なりを許容する設定に従い、コンテナＤのプレビュー表示４８１４をコンテナＡのプレビュー表示４８１１の上に、コンテナＣのプレビュー表示４８１３をコンテナＡのプレビュー表示４８１１の下に配置して表示している。
【０２８８】
以上説明したように、本実施形態によれば、データを収めたコンテナ（部分表示領域）の重なりをレイアウト編集時において判定し、重なりを禁止する部分表示領域、重なりを許容する部分表示領域をレイアウト編集時にそれぞれ設定することで、ユーザの所望するレイアウト表示を効率的に実現するレイアウト制御技術を提供することが可能になる。また、重なりを許容する場合であっても、重なり順序（上または下）を各オブジェクトに設定できるようにしたため、ユーザが所望とするオブジェクトを最前面に表示することが可能となる。
【０２８９】
（他の実施形態）
なお、本発明の目的は、前述した第１及び第２実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【０２９０】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０２９１】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【０２９２】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２９３】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【０２９４】
【図１Ａ】本発明の実施形態にかかるコンピュータシステムの構成を示す図である。
【図１Ｂ】ホストコンピュータの具体的な構成を説明する図である。
【図２】レイアウトエンジンモジュールをホストコンピュータ１０１の他にエンジンサーバ２２７にもレイアウトエンジン２２５を設けた構成を示す図である。
【図３】メニューバー、ツールバー、ワークエリア、フローティングパレットを含むユーザインターフェース画面を示す図である。
【図４】コンテナ間のリンク、アンカーやスライダーを持つ典型的なコンテナを示す図である。
【図５Ａ】コンテナを構成する辺に対するルールを例示的に説明する図である。
【図５Ｂ】コンテナを構成する辺に対するルールを例示的に説明する図である。
【図５Ｃ】コンテナを構成する辺に対するルールを例示的に説明する図である。
【図５Ｄ】コンテナを構成する辺に対するルールを例示的に説明する図である。
【図６】リンクの設定方法を説明するフローチャートである。
【図７】リンク作成時のユーザインターフェースの画面表示例を示す図である。
【図８】レイアウト計算の処理の流れを説明するフローチャートである。
【図９】レイアウト計算の詳細な処理の流れを説明するフローチャートである。
【図１０】図９のフローに対応するユーザインターフェース画面の表示例を示した図である。
【図１１】レイアウト計算時におけるコンテナの集合について説明する図である。
【図１２】自動レイアウトシステムにおける典型的な可変リンクによるコンテナの配置を説明する図である。
【図１３】自動レイアウトシステムにおける可変リンクを設定するフローを示す図である。
【図１４】リンク１４０９の属性を設定するダイアログウィンドウの例を示す図である。
【図１５】自動レイアウトシステムにおける固定リンクによるレイアウト結果を示す図である。
【図１６】自動レイアウトシステムにおける可変リンクによるレイアウト結果を示す図である。
【図１７】コンテナの属性を設定するプロパティダイアログウィンドウの例を示す図である。
【図１８】コンテナのプロパティ設定操作におけるレイアウト編集アプリケーション１２１の処理の流れを説明するフローチャートである。
【図１９】コンテナの設定が可変に変更される前のレイアウト編集アプリケーション１２１の編集画面を示す図である。
【図２０】図１９における静的オブジェクトであるイメージコンテナ１９２２がマウスポインタ２０１３により選択されて、イメージコンテナ１９２２のプロパティが可変に設定変更された際のレイアウト編集アプリケーション１２１の編集画面を示す図である。
【図２１】レイアウトエンジンモジュール１０５が計算した図２０に示すイメージコンテナ２０２１およびイメージコンテナ２０２２の最大可動領域及びそれらの重なり予測領域を概略的に示す図である。
【図２２】編集対象の動的オブジェクトと異なる他の動的オブジェクトとの重なりを許すか否かをユーザに選択させるダイアログを表示するレイアウト編集アプリケーション１２１の編集画面を示す図である。
【図２３】「動的オブジェクトの重なりを許さない」属性ダイアログを表示するレイアウト編集アプリケーション１２１の編集画面を示す図である。
【図２４】垂直方向の動的ガイドおよび水平方向の重なり防止用可変リンクを表示するレイアウト編集アプリケーション１２１の編集画面を示す図である。
【図２５Ａ】レイアウト編集アプリケーション１２１が実行する重なり防止用可変リンク設定処理の流れを説明するフローチャートである。
【図２５Ｂ】レイアウト編集アプリケーション１２１が実行する重なり防止用可変リンク設定処理の流れを説明するフローチャートである。
【図２５Ｃ】レイアウト編集アプリケーション１２１が実行する重なり防止用可変リンク設定処理の流れを説明するフローチャートである。
【図２６】ドキュメントテンプレート２６０６上に存在する２つの可変コンテナ（動的オブジェクト）の可動領域が相互に重なる可能性がある場合に、レイアウト編集アプリケーション１２１が表示する「動的オブジェクトの重なりを許さない」属性を設定するためのダイアログを示す図である。
【図２７】ドキュメントテンプレート２７０９上に存在する３つの可変コンテナについて、動的ガイドおよび重なり防止用可変リンクを設定するレイアウト編集アプリケーション１２１の編集画面を示す図である。
【図２８】重なり防止用可変リンクの属性を設定するためのダイアログウィンドウ２８０１の例を示す図である。
【図２９】図２４のドキュメントテンプレート２４０９に存在する可変コンテナ（２４２１、２４２２）に対し、各可変コンテナに収めるためのデータを流し込んだ状態を示すレイアウト編集アプリケーション１２１によるプレビュー画面を示す図である。
【図３０】図２４のドキュメントテンプレート２４０９上に存在する可変コンテナ（２４２１、２４２２）に対し、図２９で使用したイメージデータとは異なるイメージデータを流し込んだ状態を示すレイアウト編集アプリケーション１２１によるプレビュー画面を示す図である。
【図３１】図２７のドキュメントテンプレート２７０９上に存在する可変コンテナ（２７２１、２７２２、２７２３）に対し、イメージデータを流し込んだ状態を示すレイアウト編集アプリケーション１２１によるプレビュー画面を示す図である。
【図３２】レイアウト編集アプリケーション１２１が実行する動的ガイド及び重なり防止用可変リンクの設定に関する処理の流れを説明するフローチャートである。
【図３３】垂直方向（図中のＹ方向）および水平方向（図中のＸ方向）の動的ガイド（３３４１、３３４２）および重なり防止用対応角可変リンク（３３４３）を表示するレイアウト編集アプリケーション１２１の編集画面を示す図である。
【図３４】重なり防止用対応角可変リンクの属性を設定するダイアログウィンドウ３４０１の例を示す図である。
【図３５】図３３において、重なり防止用対応角可変リンク３３４３を適用しない可変コンテナにイメージデータを流し込んだ場合、可変コンテナのレイアウトがどのように変化するかを示すレイアウト編集アプリケーション１２１によるプレビュー画面を例示する図である。
【図３６】図４０の処理による可変コンテナのレイアウト例を示す図である。
【図３７】図３３において、重なり防止用対応角可変リンク３３４３を適用しない可変コンテナにイメージデータを流し込んだ場合、可変コンテナのレイアウトがどのように変化するかを示すレイアウト編集アプリケーション１２１によるプレビュー画面を例示する図である。
【図３８】図４０の処理による可変コンテナのレイアウト例を示す図である。
【図３９】本発明の実施形態において適用することが可能な、重なり防止用対応角可変リンクを設定する処理の流れを説明するフローチャートである。
【図４０】重なり防止用対応角可変リンクが設定された場合のレイアウト編集アプリケーション１２１におけるレイアウト編集処理の流れを説明するフローチャートである。
【図４１】第２実施形態におけるレイアウト編集アプリケーション１２１の編集画面を示す図である。
【図４２】第２実施形態において、図４１に配置された可変コンテナ４１１１〜４１１４の最大可動予測範囲を示す概念図である。
【図４３】第２実施形態におけるレイアウト編集アプリケーション１２１による重なり設定処理の流れを説明するフローチャートである。
【図４４】第２実施形態におけるオブジェクトの重なり属性を設定するＵＩを例示する図である。
【図４５】第２実施形態におけるオブジェクトの重なり拒否を指定した場合の動的レイアウト設定ＵＩ例示する図である。
【図４６】第２実施形態におけるレイアウト編集アプリケーション１２１による重なり拒否動的レイアウトの具体的な処理の流れを説明するフローチャートである。
【図４７】第２実施形態における図４６で説明した重なり設定の処理を適用しない場合における、図４１の可変コンテナにイメージデータを流し込んだ場合のレイアウト結果を示す図である。
【図４８】第２実施形態における図４６で説明した重なり設定の処理を適用した場合、レイアウト編集アプリケーション１２１による図４１の可変コンテナにイメージデータを流し込んだ場合のレイアウト結果を示す図である。
【図４９】メモリユニットに保持されるプロパティダイアログウィンドウ１７０１を用いて設定された情報を示す図である。
【図５０】メモリユニットに保持されるプロパティダイアログウィンドウ１７０１を用いて変更された情報を示す図である。
【図５１】メモリユニットに保持される最大可動範囲の保持情報を示す図である。
【図５２】メモリユニットに保持される重なり防止用リンク情報を示す図である。
【図５３】縦方向および横方向を考慮したレイアウト計算を行ってレイアウトを決定する例を示す図である。
【符号の説明】
【０２９５】
１０１  ホストコンピュータ
１０３  ユーザインターフェースモジュール
１０５  レイアウトエンジンモジュール
１１９  データベース
１２１  レイアウト編集アプリケーションプログラム
１３２  キーボード
１３３  マウス
１４３  Ｉ／Ｏインターフェース
１４４  ディスプレイ装置
３０１  アプリケーションウィンドウ
３０３  ツールバー
４０６  リンクツールボタン
４０７、４０８  コンテナ
４０９  アンカーアイコン
４１０  固定されていない辺
４１２  リンク
【図１Ａ】
2006244276.tif 000003
【図１Ｂ】
2006244276.tif 000004
【図２】
2006244276.tif 000005
【図３】
2006244276.tif 000006
【図４】
2006244276.tif 000007
【図５Ａ】
2006244276.tif 000008
【図５Ｂ】
2006244276.tif 000009
【図５Ｃ】
2006244276.tif 000010
【図５Ｄ】
2006244276.tif 000011
【図６】
2006244276.tif 000012
【図７】
2006244276.tif 000013
【図８】
2006244276.tif 000014
【図９】
2006244276.tif 000015
【図１０】
2006244276.tif 000016
【図１１】
2006244276.tif 000017
【図１２】
2006244276.tif 000018
【図１３】
2006244276.tif 000019
【図１４】
2006244276.tif 000020
【図１５】
2006244276.tif 000021
【図１６】
2006244276.tif 000022
【図１７】
2006244276.tif 000023
【図１８】
2006244276.tif 000024
【図１９】
2006244276.tif 000025
【図２０】
2006244276.tif 000026
【図２１】
2006244276.tif 000027
【図２２】
2006244276.tif 000028
【図２３】
2006244276.tif 000029
【図２４】
2006244276.tif 000030
【図２５Ａ】
2006244276.tif 000031
【図２５Ｂ】
2006244276.tif 000032
【図２５Ｃ】
2006244276.tif 000033
【図２６】
2006244276.tif 000034
【図２７】
2006244276.tif 000035
【図２８】
2006244276.tif 000036
【図２９】
2006244276.tif 000037
【図３０】
2006244276.tif 000038
【図３１】
2006244276.tif 000039
【図３２】
2006244276.tif 000040
【図３３】
2006244276.tif 000041
【図３４】
2006244276.tif 000042
【図３５】
2006244276.tif 000043
【図３６】
2006244276.tif 000044
【図３７】
2006244276.tif 000045
【図３８】
2006244276.tif 000046
【図３９】
2006244276.tif 000047
【図４０】
2006244276.tif 000048
【図４１】
2006244276.tif 000049
【図４２】
2006244276.tif 000050
【図４３】
2006244276.tif 000051
【図４４】
2006244276.tif 000052
【図４５】
2006244276.tif 000053
【図４６】
2006244276.tif 000054
【図４７】
2006244276.tif 000055
【図４８】
2006244276.tif 000056
【図４９】
2006244276.tif 000057
【図５０】
2006244276.tif 000058
【図５１】
2006244276.tif 000059
【図５２】
2006244276.tif 000060
【図５３】
2006244276.tif 000061