(57)【要約】【課題】グラフィック中の形状にテキストをフィットさせる方法およびコンピュータ可読媒体を提供すること。【解決手段】この方法によれば、形状とその形状の中のテキストがどのように配置されるべきかを記述する初期値を備える初期の制約が定義される。形状の中のテキストに初期の制約を適用するとテキストが形状の範囲にフィットしない場合に初期の制約を変更する際に使用する制約規則も定義される。形状の１つまたは複数のサイズまたは位置、または形状の１つの中のテキストのサイズまたは位置に影響する、グラフィックへの変更が検出されることができる。そのような変更の結果、初期の制約を使用して配置されたときにテキストがフィットしなくなる場合は、制約規則が順次適用されて制約を変更する。次いで、変更された制約が形状に再度適用されて、グラフィックの新しいレイアウトを作成する。【選択図】図１
2006260560.tif 000002
【特許請求の範囲】
【請求項１】
グラフィック中の１つまたは複数の形状にテキストをフィットさせる方法であって、
前記形状にテキストをフィットさせるための、１つまたは複数の初期の制約と、１つまたは複数の制約規則を、各形状または形状のセットに対して定義すること、
前記初期の制約を前記形状に適用して、前記形状内にテキストをフィットさせることを試みること、
前記テキストが前記１つまたは複数の形状内にフィットしなかったことを検出すること、
前記テキストがフィットしなかったことを検出するのに応答して、前記制約規則を適用して前記制約の１つまたは複数を変更すること、および
前記制約を再度前記形状の１つまたは複数に適用して、前記グラフィックの新しいレイアウトを作成すること
を備えることを特徴とする方法。
【請求項２】
前記制約は、前記１つまたは複数の形状と、前記形状内のテキストがどのように配置されるべきかを記述する初期値を備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記制約規則は、前記制約を適用しても前記１つまたは複数の形状内にテキストがうまく配置されない場合に前記制約を変更する規則を備えることを特徴とする請求項２に記載の方法。
【請求項４】
テキストが前記形状の１つまたは複数にフィットしない結果をもたらした前記グラフィックへの変更を検出し、前記変更の検出に応答して、前記制約規則を適用して前記制約の１つまたは複数を変更し、前記制約を前記１つまたは複数の形状に再度適用することをさらに備えることを特徴とする請求項３に記載の方法。
【請求項５】
前記制約規則を適用して前記制約の１つまたは複数を変更することは、
テキストが前記形状の内側にフィットしない１つまたは複数の形状を識別すること、
制約の制限値を識別する、前記識別された形状に関連付けられた、第１の制約規則を識別すること、
前記テキストが前記識別された形状にフィットすることをもたらす、前記初期制約値と前記制限値との間にある前記制約の最良の適合値を識別すること、
前記テキストが前記識別された形状にフィットすることをもたらす、前記制約の、値が識別されたかどうかを決定すること、および
テキストが前記識別された形状にフィットする値が識別されたとの決定に応答して、前記識別された値を前記形状に適用すること
を備えることを特徴とする請求項４に記載の方法。
【請求項６】
結果として前記テキストが前記識別された形状内にフィットする値が識別されたとの決定に応答して、前記識別された値を１つまたは複数の他の形状に適用すること
をさらに備えることを特徴とする請求項５に記載の方法。
【請求項７】
前記テキストが前記識別された形状内にフィットすることをもたらす値が識別されなかったとの決定に応答して、次の制約規則を識別し、前記形状に適用すること
をさらに備えることを特徴とする請求項５に記載の方法。
【請求項８】
前記次の制約規則を前記形状に適用する前に、前記第１の制約規則によって指定される前記制約に対して前記制限値を適用することをさらに備えることを特徴とする請求項７に記載の方法。
【請求項９】
すべての前記制約規則を前記形状に適用しても前記テキストが前記形状内にフィットしなかったとの決定に応答して、テキストが前記形状の外にはみ出さないようにすることを保証された、事前に定義された、規則を前記形状に適用することをさらに備えることを特徴とする請求項８に記載の方法。
【請求項１０】
前記最良の最適合値を識別することは、二分探索法を行うことを備えることを特徴とする請求項９に記載の方法。
【請求項１１】
前記初期の制約と前記制約規則は、前記グラフィックに関連付けられたグラフィック定義ファイル内で指定されることを特徴とする請求項９に記載の方法。
【請求項１２】
コンピュータ実行可能命令が記憶されたコンピュータ可読媒体であって、
前記コンピュータ実行可能命令は、コンピュータによって実行されると、
１つまたは複数の形状それぞれの内部にテキストを配置するための１つまたは複数の初期の制約および１つまたは複数の制約規則を記憶すること、
前記初期の制約を前記１つまたは複数の形状に適用して、前記形状内にテキストを配置すること、
前記１つまたは複数の形状内にテキストがフィットしないことをもたらす前記グラフィックへの変更を検出すること、
前記変更の検出に応答して、前記制約規則を適用して前記制約の１つまたは複数を変更すること、および
前記制約を前記形状の１つまたは複数に再度適用して、前記グラフィックの新しいレイアウトを作成すること
を前記コンピュータに実行させることを特徴とするコンピュータ可読媒体。
【請求項１３】
前記制約は、前記形状の１つまたは複数の中のテキストがどのように配置されるべきかを記述する初期値を備えることを特徴とする請求項１２に記載のコンピュータ可読媒体。
【請求項１４】
前記制約規則は、前記制約を適用しても前記１つまたは複数の形状内にテキストがうまく配置されない場合に前記制約を変更する規則を備えることを特徴とする請求項１３に記載のコンピュータ可読媒体。
【請求項１５】
前記形状のサイズまたは位置に影響する可能性のある、前記グラフィックへの変更を検出することは、形状の追加または除去、前記グラフィックのレイアウトの変更、あるいは前記グラフィックへのテキストの追加または除去を検出することを備えることを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１６】
前記制約規則を適用して前記制約の１つまたは複数を変更することは、
テキストが前記形状内にフィットしない形状を識別すること、
前記識別された形状に関連付けられた、制約の制限値を識別する第１の制約規則を識別すること、
前記テキストが前記識別された形状にフィットすることをもたらす、前記初期制約値と前記制限値の間にある、前記制約の値を識別すること、
前記テキストが前記識別された形状内にフィットすることをもたらす、前記制約の値が識別されたかどうかを決定すること、および
前記テキストが前記識別された形状内にフィットすることをもたらす値が識別されたとの決定に応答して、前記識別された値を前記形状に適用すること
を備えることを特徴とする請求項１５に記載のコンピュータ可読媒体。
【請求項１７】
データ構造が記憶されたコンピュータ可読媒体であって、前記データ構造は、
グラフィック中の形状にテキストをフィットさせるための１つまたは複数の初期の制約を表すデータを保持する第１のデータ・フィールドのセットと、
前記形状にテキストをフィットさせるための１つまたは複数の制約規則を表すデータを保持する第２のデータ・フィールドのセットと
を備えることを特徴とするコンピュータ可読媒体。
【請求項１８】
前記制約は、前記形状の１つまたは複数の中のテキストがどのように配置されるべきかを記述する初期値を備えることを特徴とする請求項１７に記載のコンピュータ可読媒体。
【請求項１９】
前記制約規則は、前記制約を適用してもテキストが形状内にうまく配置されない場合に前記制約を変更する規則を備えることを特徴とする請求項１８に記載のコンピュータ可読媒体。
【請求項２０】
各制約規則は、少なくとも１つの制約の制限値を備えることを特徴とする請求項１９に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
現在のワードプロセッサと専用の描画アプリケーション・プログラムで、ユーザは、単純なグラフィックと複雑なグラフィックの両方を作成することができる。こうしたプログラムを利用して、ユーザは、テキストで注釈をつけることが可能な各種の形状を使用してグラフィックを作成することができる。こうしたアプリケーションで作成されるグラフィックは、独立した文書とすることも、テキスト文書に組み込むこともできる。しかし、こうしたプログラムによって提供される利点にも関わらず、現在のバージョンのこうしたプログラムには、標準的なユーザによるグラフィックの作成やレイアウトを遅らせる（hinder）いくつかの欠点がある。
【０００２】
【特許文献１】米国特許出願第１０／９５５，２７１号明細書
【特許文献２】米国特許出願第１０／９５７，１０３号明細書
【特許文献３】米国特許出願第１１／０８１，３２３号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００３】
現在の描画プログラムに特有の欠点の１つは、そうしたプログラムが、通例、テキストのプロパティ（余白や行間隔等）に対して、すべての形状とグラフィックに汎用的なデフォルト設定を利用することである。大半の場合、そうしたデフォルト設定は、広範囲のグラフィックにわたって最適であるとは思われない。その結果、ユーザは、プロフェッショナルな感じのグラフィックを得るためには、デフォルトのプロパティを手動で無効にしなければならない。これは、ユーザにとってストレスとなり、時間がかかる可能性がある。
【０００４】
現在の描画プログラムの別の欠点は、これらのプログラムが、形状とテキストをグラフィックに追加する際に、形状内のテキストのサイズを手動で変更することをユーザに要求することである。例えば、その形状の範囲にフィットしないテキストをその形状に加える場合、ユーザは、テキストが形状内に完全にフィットするように、グラフィックまたはテキストのサイズを手動で変更しなければならない。この問題は、テキストを有する多数の形状がグラフィックの中で利用されるときには極めて時間がかかる可能性がある。多くのグラフィックは、関係する形状にわたってテキストのサイズが等しいときに最も見た目がよいという事実によって、この問題はさらに悪化する。現在の描画プログラムを利用してこれを達成するには、ユーザは、関係する１つ１つの形状の中でテキストのサイズを手動で変更しなければならない。これも、コンピュータ・ユーザにとって時間を要し、ストレスとなる可能性がある。
【０００５】
本発明の各種実施形態は、こうした考慮事項および他の考慮事項に関してなされたものである。
【課題を解決するための手段】
【０００６】
本発明によれば、上記の問題やその他の問題は、グラフィック内の１つまたは複数の形状にテキストをフィットさせる（Fitting；適切にはめ込む）方法およびコンピュータ可読媒体によって解決される。この方法によれば、１つまたは複数の初期の制約が定義され、これは、形状とその形状内のテキストをどのように配置すべきかを記述する初期値を備える。例えば、配置するテキストのフォントｆａｃｅ、フォント・サイズ、および文字の属性を指示する初期の制約を指定することができる。形状内のテキストに初期の制約を適用しても形状の境界からテキストがオーバーフローすることになる場合に、この初期の制約を変更する際に使用される１つまたは複数の制約規則も定義される。形状中のテキストの配置に影響するが、規則によって変更されることはない１つまたは複数のパラメータを定義することができる。
【０００７】
本発明の一実施形態によれば、複数の形状のうちの１つまたは複数のサイズや位置、あるいは複数の形状のうちの１つ形状内のテキストのサイズと位置に影響する、グラフィックへの変更を検出することができる。例えば、形状の追加または除去、グラフィックの配置の変更、フォントの変更、グラフィック内の形状へのテキストの追加または除去が可能である。そのような変更の検出に応答して、初期の制約が適用される。テキストが形状からオーバーフローする場合は、制約規則が順次適用されて制約を変更する。そして、変更された制約が形状に再度適用されて、そのグラフィックの新しいレイアウトを作成する。
【０００８】
本発明の別の実施形態によれば、制約規則を適用して制約を変更することは、初めに、形状内にフィットしないテキストを有するグラフィック中の形状を識別することを含む。そのような形状が識別されると、識別された形状に関連付けられた、グラフィック定義ファイル中の第１の制約規則が識別される。この制約規則は、形状に関連付けられた制約の制限値を識別する。そして、二分探索などの検索が行われて、識別された形状内にテキストをフィットさせることをもたらす、初期制約値と制限値の間にある制約の値を識別する。一実施形態によれば、識別される値は、初期の制約に最も近く、同時に形状内にテキストがフィットすることを可能にする値を備える。
【０００９】
テキストを形状内にフィットさせることをもたらす値が、検索で識別された場合は、その制約については識別された値が形状に適用される。テキストを形状内にフィットさせる値を見つけることができない場合は、制限値がその形状に適用され、次の制約規則が識別され、その形状に適用される。あるいは、その規則によって識別される中間値をその形状に適用することもできる。このようにして、形状に関連付けられた各制約規則が順次形状に適用される。実施形態によれば、テキストが形状内にフィットするレイアウトを見つける際に助けとならない規則は飛ばすことができる。すべての制約規則を適用した結果テキストが形状内にフィットしない場合は、テキストが形状の外にはみ出さないようにすることを保証された、事前に定義された規則を適用することができる。例えば、形状の外にテキストが広がらないように、テキストを切り詰めて、省略記号を加える規則が適用されることができる。
【００１０】
本発明の別の実施形態によれば、データ構造が記憶されたコンピュータ可読媒体が提供される。このデータ構造は、グラフィック内の形状にテキストをフィットさせるための１つまたは複数の初期の制約を表すデータを保持するデータ・フィールドのセットを含む。この制約は、１つまたは複数の形状内にテキストをどのように配置するかを記述する初期値を備える。
【００１１】
一実施形態によれば、このデータ構造は、形状にテキストをフィットさせるための１つまたは複数の制約規則を表すデータを保持する第２のデータ・フィールドも含む。この制約規則は、この制約を適用しても形状内にテキストがうまく完全に配置されない場合に、制約を変更するための規則を備える。詳細には、各制約規則は、少なくとも１つの制約についての制限値を備える。この制約規則は、形状内のテキストのフォント・サイズ、余白、単語の折り返し、ハイフネーション、カーニング、行間、およびその他の属性を変更するために利用することができる。
【００１２】
本発明は、コンピュータ・プロセス、コンピューティング・システム、あるいは、コンピュータ・プログラム製品やコンピュータ可読媒体などの、製品として実施することができる。コンピュータ・プログラム製品は、コンピュータ・システムによって読み取ることができ、コンピュータ・プロセスを実行する命令のコンピュータ・プログラムを符号化したコンピュータ可読媒体とすることができる。コンピュータ・プログラム製品は、コンピュータ・システムによって読み取ることができ、コンピュータ・プロセスを実行する命令のコンピュータ・プログラムを符号化した、搬送波上の伝搬信号とすることもできる。
【００１３】
本発明を特徴付ける上記および様々な他の特徴ならびに利点は、以下の詳細な説明を読み、添付図面を検討することから明らかになろう。
【発明を実施するための最良の形態】
【００１４】
次いで図面を参照して本発明の各種態様を説明する。図面では、同様の参照符号は同様の要素を表す。詳細には、図１とそれに対応する解説は、本発明の実施形態が実施されることが可能な適切なコンピューティング環境の簡単で概略的な説明を提供するものである。パーソナル・コンピュータのオペレーティング・システムで実行されるプログラム・モジュールとの関連で実行されるプログラム・モジュールの一般的なコンテクストで本発明を説明するが、当業者は、本発明は、他のタイプのコンピュータ・システムおよびプログラム・モジュールと組み合わせて実施することも可能であることを認識されよう。
【００１５】
一般に、プログラム・モジュールには、特定のタスクを行うか、特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造、および他のタイプの構造が含まれる。さらに、当業者は、本発明は、ハンドヘルド・デバイス、マルチ・プロセッサ・システム、マイクロ・プロセッサを利用した、あるいはプログラム可能な消費者向け電子機器、ミニ・コンピュータ、メインフレーム・コンピュータなどを含む他のコンピュータ・システム構成で実施できることを理解されよう。本発明は、通信ネットワークを通じてつながれた遠隔の処理デバイスによってタスクが行われる分散コンピューティング環境でも実施することができる。分散コンピューティング環境では、プログラム・モジュールは、ローカルおよびリモート両方のメモリ記憶装置に置くことができる。
【００１６】
次いで図１を参照して、本発明の各種実施形態で利用されるコンピュータ２の例示的なコンピュータ・アーキテクチャを説明する。図１に示すコンピュータ・アーキテクチャは、従来のデスクトップ・コンピュータあるいはラップトップ・コンピュータを示し、このコンピュータは、中央演算処理装置５（「ＣＰＵ」）、ＲＡＭ（ランダム・アクセス・メモリ）９とＲＯＭ（読み取り専用メモリ）１１を含むシステム・メモリ７、およびメモリをＣＰＵ５に結合するシステム・バス１２を含む。起動時などにコンピュータ内の要素間の情報転送を助ける基本ルーチンを含んだ基本入出力システムは、ＲＯＭ１１に記憶される。コンピュータ２はさらに、オペレーティング・システム１６、アプリケーション・プログラム、および他のプログラム・モジュールを記憶する大容量記憶装置１４を含む。それらのプログラムについては下記でより詳細に説明する。
【００１７】
大容量記憶装置１４は、バス１２に接続された大容量記憶装置コントローラ（図示せず）を通じてＣＰＵ５に接続される。大容量記憶装置１４とそれに関連付けられたコンピュータ可読媒体は、コンピュータ２に不揮発性の記憶を提供する。本明細書に含まれるコンピュータ可読媒体の説明では、ハードディスクやＣＤ−ＲＯＭドライブなどの大容量記憶装置を挙げるが、当業者には、コンピュータ可読媒体は、コンピュータ２によるアクセスが可能な利用可能媒体でよいことが理解されよう。
【００１８】
限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体を備えることができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラム・モジュール、あるいは他のデータなどの情報を記憶するための方式または技術として実施された、揮発性および不揮発性、取り外し可能および取り外し不能の媒体が含まれる。コンピュータ記憶媒体には、これらに限定しないが、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリ、あるいは他の固体素子メモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（「ＤＶＤ」）、または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶装置、あるいは、必要な情報を記憶するために使用することができ、コンピュータ２によるアクセスが可能な、他の媒体が含まれる。
【００１９】
本発明の各種実施形態によれば、コンピュータ２は、インターネットなどのネットワーク１８を通じたリモート・コンピュータとの論理接続を使用するネットワーク環境で動作することができる。コンピュータ２は、バス１２に接続されたネットワーク・インターフェース・ユニット２０を通じてネットワーク１８に接続することができる。ネットワーク・インターフェース・ユニット２０は、他のタイプのネットワークとリモート・コンピュータ・システムに接続するためにも利用できることを理解されたい。コンピュータ２は、キーボード、マウス、電子スタイラス（図１には図示せず）を含む複数の他のデバイスから入力を受け取り、処理する入出力コントローラ２２も含むことができる。同様に、入出力コントローラ２２は、ディスプレイ画面、プリンタ、あるいは他のタイプの出力装置に出力を提供することができる。
【００２０】
上記で簡単に述べたように、コンピュータ２の大容量記憶装置１４とＲＡＭ９には複数のプログラム・モジュールとデータ・ファイルが記憶されることができ、これには、ワシントン州レドモンドのマイクロソフト社製のＷＩＮＤＯＷＳ（登録商標）ＸＰオペレーティング・システムなど、ネットワーク対応のパーソナル・コンピュータの動作を制御するのに適したオペレーティング・システム１６が含まれる。大容量記憶装置１４とＲＡＭ９には、１つまたは複数のプログラム・モジュールも記憶することができる。詳細には、大容量記憶装置１４とＲＡＭ９は、描画アプリケーション・プログラム１０を記憶することができる。描画アプリケーション・プログラム１０は、グラフィック２４などのグラフィックを作成し、レイアウトする機能を提供する働きをする。本発明の一実施形態によれば、描画アプリケーション・プログラム１０は、アプリケーション・プログラムＷＯＲＤ、ＥＸＣＥＬ、ＰＯＷＥＲＰＯＩＮＴを含む、マイクロソフト社のアプリケーション・プログラム・スイートＯＦＦＩＣＥにあるプログラムのいずれか１つを備える。
【００２１】
大容量記憶装置１４は、描画アプリケーション・プログラム１０の中でグラフィックの作成とレイアウトに利用されるいくつかのコンポーネントも記憶することができる。詳細には、そうしたコンポーネントは、データ・モデル３０とグラフィック定義ファイル４０を含むことができる。本発明の各種実施形態で、描画アプリケーション・プログラム１０は、グラフィック定義ファイル４０のグラフィックの作成とレイアウトに関する指示を読み込む。本発明の一実施形態では、データ・モデル３０とグラフィック定義ファイル４０は、描画アプリケーション・プログラム１０からアクセスされる個々のファイルとしてコンピュータ・システム２に記憶することができることは理解されよう。
【００２２】
データ・モデル３０は、グラフィック２４を構築するためのコンテンツを含んでいる、ノードの集まり、関係、テキスト、プロパティを含む。グラフィック定義ファイル４０は、特定のグラフィック・レイアウトをどのように作成するかを記述するデータの集まりである。本発明の各種実施形態で、グラフィック定義ファイル４０は、ＸＭＬ（拡張可能マークアップ言語）を利用してフォーマットされることができる。当業者には理解されるように、ＸＭＬは、データを伝達するための標準的なフォーマットである。ＸＭＬデータ・フォーマットでは、スキーマを使用して、伝達することが可能なデータのタイプと構造を定める文法規則とデータ・タイプの規則のセットを、ＸＭＬデータに提供する。ＸＭＬデータ・フォーマットは当業者によく知られており、そのためここではこれ以上詳しくは解説しない。グラフィック定義ファイル４０によって記述されるグラフィックの諸面には、各レイアウト・ノードに使用するレイアウト・アルゴリズムの名前、アルゴリズムのパラメータ、制約、レイアウトツリーを構築するための制約規則、形状のジオメトリとスタイル・プロパティのデフォルト設定、グラフィック分類データ、およびサンプル・データ・モデルが含まれる。グラフィック定義ファイル４０のコンテンツと使用に関する追加的な詳細は、特許文献１から得ることができる。同出願は、参照により本明細書に明示的に組み込まれている。
【００２３】
制約は、グラフィックを作成するレイアウト・アルゴリズムで用いられる条件である。制約の一例は、形状の幅に使用される値である。制約は、数値を含んでもブール値を含んでもよいことは理解されよう。数値の制約は、具体的な数値を指定することができる（幅＝１インチ（２.５４ｃｍ）など）。数値の制約は、参照を使用する（高さ＝幅×０．７５など）他の制約数値を参照することにより、その値を計算することもできる。ブール値の制約は、１つのセット中のすべてのノードが、他の制約と同じ値になることを強制する等値の制約（equality constraints）を含むことができ、また、１つの制約値が別の制約値に基づいて制限される非等値の制約（inequality constraints）を含むことができる（例えば形状の幅は別の形状の高さより小さい、あるいは大きい必要がある等）。
【００２４】
制約は、レイアウト・ノード間で伝搬して、描画要素間に等値（例えばすべてのノーマル・ノードは同じフォント・サイズとする等）、または非等値（遷移ノードの幅≦ノーマル・ノードの幅とする等）を強制することができる。制約は、その状態を他のレイアウト・ノードに伝搬する、共有されるプロパゲータ（propagator）を制約に付加することによって伝搬されることができる。制約と制約規則は両方とも、伝搬した制約から他のノードで更新されることができることは理解されよう。
【００２５】
制約規則は、制約のセットがレイアウト・アルゴリズムによって満たされることができない場合に、制約のセットをどのように変更するかの記述である。例えば、制約は、フォント・サイズが１４ポイントでなければならないことを指定することができるが、制約規則は、フォント・サイズを最小で８ポイントまで下げられることを指定することができる。
【００２６】
本発明の一実施形態によれば、制約は、形状とその形状内のテキストがどのように配置されるべきかを記述する初期値を備える。これに関して、制約を適用しても形状の範囲内にテキストがうまく配置されないときにその制約を変更する規則を備える制約規則を指定することができる。制約と制約規則の構造と使用、およびグラフィック定義ファイル４０のコンテンツに関する追加的な詳細事項は、下記で図４との関連で述べる。
【００２７】
次いで図２Ａ〜２Ｂを参照して、本発明の一実施形態で生成されるいくつかの例示的なグラフィック２４Ａおよび２４Ｂを説明する。図２Ａに示すように、グラフィック２４Ａは、形状５０Ａ、５０Ｂ、５０Ｃを備える。各形状は、それぞれテキスト５２Ａ、５２Ｂ、５２Ｃを含む。本発明の一実施形態によれば、余白（margins）、間隔（spacing）、位置揃え（alignment）などの、テキストブロック、段落、および文字のプロパティが、データの構造に基づいて動的に変更されて、最も見た目のよいテキストのレイアウトを提供することができる。例えば、形状５０Ｂの中のテキスト５２Ｂが、いくつかの中黒点（bullet points）を加えるように編集される場合、テキスト５２Ｂの位置揃えは、中央揃えから左揃えに変更することができる。これは、図２Ｂに示す左に揃えられたテキスト５２Ｂとして表される。
【００２８】
本発明の一実施形態によれば、複数の形状にまたがるテキストの位置揃えも、データの変更に基づいて動的に変更されることができる。例えば、テキスト５２Ｂに中黒（bullets）を追加するのに応答して、テキスト５２Ｂの位置揃えは、上記のように中央揃えから左揃えに変更されることができる。それに加えて、形状５０Ａと５０Ｂのテキスト５２Ａと５２Ｃの位置揃えも、テキスト５２Ｂの変更に応答して中央揃えから左揃えに変更されることができる。これが図２Ｂに示すテキスト５２Ａおよび５２Ｃとして表される。
【００２９】
次いで図３Ａ〜３Ｂを参照して、グラフィック２４Ｃおよび２４Ｄに関して本発明の追加的態様を示す。グラフィック２４Ｃは、それぞれテキスト５２Ａ、５２Ｂ、５２Ｃを有する形状５０Ａ、５０Ｂ、５０Ｃを含む。テキスト５２Ａ、５２Ｂ、５２Ｃは、上および左に揃えられている。ユーザが、図３Ａに示すプロセス・グラフィックから図３Ｂに示す階層グラフィック２４Ｄに変更するなど図のタイプを変更する場合、テキスト５２Ａ、５２Ｂ、５２Ｃは、グラフィック２４Ｄの中の該当する形状にマップされる。さらに、グラフィック・スタイルの変更に応じて、形状５２Ａ〜５２Ｄそれぞれの中のテキストの位置揃えが、上および左揃えから中央揃えに変更される。この変更は、グラフィック２４Ｄに関連付けられたグラフィック定義ファイルが、テキストを中央揃えにするように指示しているという理由で行われる。
【００３０】
次いで図４を参照して、本発明の実施形態を通じて適用されることができるフォーマット（書式設定）の変更のタイプに関する追加的な詳細事項を説明する。図４は、形状５０Ｅを含むグラフィック２４Ｅを示している。形状５０Ｅは、親形状と１つの子形状から構成される複合形状である。複合形状は、親形状を含み、子形状をいくつでも有することができる。本発明の実施形態で複合形状を利用することは必須でないことは理解されたい。本発明で提供されるアルゴリズムは、どのような形状の組み合わせでも動作することができる。下記でより詳細に説明するように、形状のサイズとフォーマッティングは、その形状に関連付けられたテキストをその形状内に完全にフィットさせるように変更することができる。テキストのフォーマッティングとサイズも変化することができる。本発明の一実施形態によれば、親形状のテキストと形状は、子形状と無関係に変更することができる。同様に、子形状も、その親形状と無関係に変更することができる。このようにして、複合形状の任意の部分は、他の部分と無関係に変更することができる。このプロセスに関する追加的な詳細については下記で述べる。
【００３１】
次いで図５を参照すると、形状とそれに関連付けられたテキストについて、その形状がそのテキスト取り囲むことを確実にするように変更されることを可能とすることに関する追加的な詳細を説明する。詳細には、図５に形状５０Ｆを示す。形状５０Ｆは、関連付けられたテキスト５２Ｄを有する。形状５０Ｆは、内側の余白５８、縦方向の大きさ５６、および横方向の大きさ５４も含む。下記でより詳しく述べるように、形状５０Ｆの縦方向と横方向の大きさは、テキスト５２Ｄが形状内に完全にフィットするように変更されることができる。同様に、内側の余白５８も、テキスト５２Ｄが形状５０Ｆ内にフィットするように、指定に従って変更されることができる。フォント・サイズやテキストの位置揃えなどのテキスト５２Ｄの属性も、テキスト５２Ｄを形状５０Ｆ内にフィットさせるために変更されることができる。本発明で提供されるアルゴリズムは、任意の幾何学的形状を範囲とする、ひとまとまりのテキストに利用できることを理解されたい。
【００３２】
下記でより詳しく説明するように、グラフィック定義ファイル４０は、形状５０Ｆとテキスト５２Ｄのどの属性が、テキスト５２Ｄをフィットさせようとする際に変更されるべきかと、それらが変更される際の順序を定義する制約規則を含む。図５に示し、ここで説明する形状５０Ｆとテキスト５２Ｄの属性は、例示的なものに過ぎず、形状についての他の属性が、その形状内にテキスト５２Ｄをフィットさせようとする際に変更されることができることを理解されたい。制約と制約規則は、形状ごとに指定されることができることも理解されたい。制約と制約規則は、形状の集合に対して指定されることもできる。
【００３３】
次いで図６を参照して、例示的なグラフィック定義ファイル４０の一部のコンテンツを説明する。詳細には、グラフィック定義ファイル４０は、１つまたは複数の制約６０を備える。制約６０は、形状とその形状の中のテキストがどのように配置されるべきかを記述する初期値を備える。例えば、図６に示す制約６０は、形状の幅を１．５インチ（３．８１ｃｍ）に設定する制約を含んでいる。別の制約が、形状の高さを幅×０．６６７に設定する。さらに別の制約が、親形状のテキストサイズを３６ポイントに設定し、別の制約が、子形状のテキストサイズを３６ポイントに設定する。これらの制約が、形状とそれに関連付けられたテキストを初めに配置するのに使用される。ファイル４０内に複数のパラメータも指定することができる。
【００３４】
グラフィック定義ファイルは、１つまたは複数の制約規則６２も含む。制約規則６２は、制約のセットがレイアウト・アルゴリズムで満たされることができない場合に制約のセットをどのように変更するかの記述である。例えば、図６に示す制約規則６２は、形状の幅を０．２５インチ（０.６４ｃｍ）刻みで３インチ（７．６２ｃｍ）まで増すことができることを示す第１の制約規則を含む。この第１の制約規則を適用した結果、テキストが形状内にフィットしない場合は、次の制約規則が適用される。次の制約規則は、形状の高さを形状の幅の１．５倍まで増してよいことを示す。この制約規則が、テキストの良好なフィッティングをもたらさない場合は、残りの制約規則がなくなるまで、次の規則が順に適用される。図６に示す他の制約規則それぞれは、親テキストのフォント・サイズを最小で１６ポイントまで下げ、子テキストのフォント・サイズを最小で１６ポイントまで下げ、高さを最高で３インチ（７．６２ｃｍ）まで増し、親テキストのサイズを４ポイントまで下げる。ファイル４０に明確に定義されない制約にはデフォルト値が利用されることができることは理解されたい。
【００３５】
次いで図７を参照して、初期の制約と制約規則を定義するプロセスを例示する例示的ルーチン７００を説明する。ここに述べるルーチンの解説を読む際には、本発明の各種実施形態の論理的動作は、（１）コンピュータによって実施される行為（acts）のシーケンス、またはコンピュータ・システムで実行されるプログラム・モジュールのシーケンスとして、かつ／または（２）コンピューティング・システム内の相互に接続された機械論理回路または回路モジュールとして、実装されることを理解されたい。この実装は、本発明を実装するコンピューティング・システムのパフォーマンス要件に応じて選択する事柄である。したがって、図７および８に示し、ここに記載される本発明の実施形態を構成する論理的動作（logical operations）は、動作（operations）、構造的デバイス、行為（acts）、モジュール等と様々に称される。当業者には、これらの動作、構造的デバイス、行為、およびモジュールは、特許請求の範囲で述べられる本発明の主旨および範囲から逸脱することなく、ソフトウェア、ファームウェア、特殊目的デジタル・ロジック、およびそれらの組み合わせとして実装されることが可能であることが認識されよう。
【００３６】
ルーチン７００は、動作（operation）７０２で開始し、初期の制約値が定義される。次いでルーチン７００は動作７０４に進み、制約規則が定義される。動作７０４からルーチン７００は動作７０６に進み、制約値と制約規則がグラフィック定義ファイル４０に記憶される。ルーチン７００は次いで動作７０８に進み、終了する。
【００３７】
次いで図８Ａおよび８Ｂを参照して、形状にテキストをフィットさせる例示的ルーチン８００を説明する。ルーチン８００は、新しいグラフィックを作成する要求が受け取られた場合に動作８０２で開始する。この場合は、新しいグラフィックを挿入する要求が動作８０２で受け取られる。ルーチン８００は次いで動作８０４に進み、新しいグラフィックのタイプの選択が受け取られる。ルーチン８００は次いで動作８０６に進み、グラフィック内に初期の形状が配置される。この形状は、初期の制約に従って配置することができる。動作８０６からルーチン８００は動作８０８に進み、これらの形状内に配置するテキストが受け取られる。次いでルーチン８００は、下記で説明する動作８１４に進む。
【００３８】
グラフィック・タイプが変更される場合は、ルーチン８００は、動作８１０で開始する。この場合は、新しいグラフィックのタイプの選択が動作８１０で受け取られる。動作８１０から、ルーチン８００は、下記で説明する動作８１４に進む。
【００３９】
動作８１４で、テキストのコンテンツがそのグラフィック内の各形状にマップされる。ルーチン８００は次いで動作８１６に進み、初期の制約がそれらの形状に適用される。それらの形状にはパラメータも適用されることができる。例えば、テキストの色を変えてもテキストのサイズあるいは位置は変わらないので、色はパラメータとすることができる。動作８１６からルーチン８００は動作８１８に進む。
【００４０】
動作８１８で、テキストが各形状内にフィットするかどうかが決定される。テキストがフィットしない場合は、ルーチン８００は動作８２０に進み、グラフィック定義ファイルに処理するためのさらなる制約規則があるかどうかが決定される。処理する制約規則がさらにある場合、ルーチンは動作８２２に進む。動作８２２で、次の制約規則がグラフィック定義ファイルから読み出される。ルーチン８００は次いで動作８２４に進み、制約規則で指定される値のセットを検索して、そのテキストに対する最良の適合値を決定する。例えば、初期の制約が形状の幅を１．５インチ（３．８１ｃｍ）とし、制約規則が幅を３インチ（７．６２ｃｍ）の上限まで増してよいことを指定する場合には、検索を行って、テキストを形状内にフィットさせる１．５インチ（３．８１ｃｍ）から３インチ（７．６２ｃｍ）の間の最も小さい値を特定する。一実施形態によれば、二分探索が利用される。ただし、検索アルゴリズムに加えて、テキストを最適にフィットさせる値、最良の適合値を特定するために他のタイプのアルゴリズムが利用されてよいことは理解されたい。
【００４１】
本発明の一実施形態によれば、一部変更された二分探索アルゴリズムを利用して、うまく行く値が見つかった後も、開始値により近い値を探し続けることを理解されたい。このプロセスは、テキストをフィットさせる最初の結果が、それより後のフィットすることをもたらす値の所定の閾値内に入るまで継続する。このようにしてテキストを最適な形でフィットさせる値、最良の適合値を見つけることができる。
【００４２】
現在の制約規則を利用して最良の適合値の検索が行われると、方法８００は動作８１８に戻り、テキストが形状にフィットするかどうかについて再度決定が行われる。テキストがフィットしない場合は、動作８２０、８２２、８２４に関して上記のプロセスが繰り返される。テキストがフィットする場合は、ルーチン８００は動作８１８から動作８２８に分岐する。
【００４３】
一実施形態によれば、検索ルーチンで、オーバーフローしたテキストを有する形状の最適な形でフィットする値として特定された値は、他の形状に伝搬されることができることを理解されたい。このようにして、統一性のために、関連する形状のサイズが変更され、それにより、ユーザが関連する形状のサイズを手動で変更せずに済むようにすることができる。
【００４４】
動作８２８で、グラフィック内のコンテンツのサイズあるいは位置に変更があったかどうかが決定される。変更がない場合は、ルーチン８００は動作８３２に分岐し、終了する。変更がある場合は、ルーチン８００は動作８２６に分岐し、グラフィック内の形状にマップする新しいコンテンツがあるかどうかが決定される。マップする新しいコンテンツがある場合、ルーチン８００は動作８２６から上記の動作８１４に分岐する。マップする新しいコンテンツがない場合、ルーチンは動作８２６から上記の動作８１６に分岐する。
【００４５】
動作８２０で処理すべき制約規則がそれ以上ないと決定される場合は、ルーチン８００は動作８２０から動作８３０に分岐する。動作８３０で、テキストが形状の外にはオーバーフローしないようにすることが保証された、あらかじめ定義された規則が形状に適用される。例えば、本発明の一実施形態によれば、テキストを切り詰めて、この切り詰めを知らせるためにテキストの最後に省略記号（．．．）が加えられることができる。残りの（切り詰められた）テキストが形状内に完全にフィットするのに十分なテキストが切り詰められることができる。テキストが形状の外にオーバーフローしないようにすることを保証された他のタイプの規則が適用されることができる。動作８３０からルーチン８００は上記の動作８２８に分岐する。
【００４６】
前述の記載に基づき、本発明の各種実施形態は、グラフィック内の形状にテキストをフィットさせる方法およびコンピュータ可読媒体を含むことが理解されよう。上記の詳細な説明、例、およびデータは、本発明の製造と構成の使用についての完全な説明を提供する。本発明の実施形態の多くは、本発明の主旨および範囲から逸脱することなくなされることができるので、本発明は、頭記の特許請求の範囲内に属する。
【図面の簡単な説明】
【００４７】
【図１】本発明の各種実施形態によって利用され、提供されるコンピュータ・システムを説明するコンピュータシステムアーキテクチャの図である。
【図２Ａ】本発明の一実施形態による例示的描画プログラムで生成されるグラフィックを示すブロック図である。
【図２Ｂ】本発明の一実施形態による例示的描画プログラムで生成されるグラフィックを示すブロック図である。
【図３Ａ】本発明の一実施形態による例示的描画プログラムで生成されるグラフィックを示すブロック図である。
【図３Ｂ】本発明の一実施形態による例示的描画プログラムで生成されるグラフィックを示すブロック図である。
【図４】本発明の一実施形態による例示的描画プログラムで生成されるグラフィックを示すブロック図である。
【図５】本発明の一実施形態で利用される形状についてのいくつかの可能な制約を説明するブロック図である。
【図６】本発明の一実施形態で利用されるグラフィック定義ファイルのコンテンツの一部を説明するブロック図である。
【図７】本発明の一実施形態によりグラフィック内の１つまたは複数の形状にテキストをフィットさせるルーチンを説明する流れ図である。
【図８Ａ】本発明の一実施形態によりグラフィック内の１つまたは複数の形状にテキストをフィットさせるルーチンを説明する流れ図である。
【図８Ｂ】本発明の一実施形態によりグラフィック内の１つまたは複数の形状にテキストをフィットさせるルーチンを説明する流れ図である。
【符号の説明】
【００４８】
２    コンピュータ
５    中央演算処理装置
７    システム・メモリ
９    ランダム・アクセス・メモリ
１０    描画アプリケーション・プログラム
１１    読み取り専用メモリ
１２    システム・バス
１４    大容量記憶装置
１６    オペレーティング・システム
１８    ネットワーク
２０    ネットワーク・インターフェース・ユニット
２２    入出力コントローラ
２４    グラフィック
３０    データ・モデル
４０    グラフィック定義ファイル
５０    形状
５２    テキスト
５４    横方向の大きさ
５６    縦方向の大きさ
５８    内側の余白
６０    制約
６２    制約規則
７００    初期の制約と制約規則の定義
８００    形状にテキストをフィットさせる例示的ルーチン
【図１】
2006260560.tif 000003
【図２Ａ】
2006260560.tif 000004
【図２Ｂ】
2006260560.tif 000005
【図３Ａ】
2006260560.tif 000006
【図３Ｂ】
2006260560.tif 000007
【図４】
2006260560.tif 000008
【図５】
2006260560.tif 000009
【図６】
2006260560.tif 000010
【図７】
2006260560.tif 000011
【図８Ａ】
2006260560.tif 000012
【図８Ｂ】
2006260560.tif 000013