グラフィック内の形状にテキストをフィットさせるための方法およびコンピュータ可読媒体
【課題】グラフィック内の形状にテキストをフィットさせるための方法およびコンピュータ可読媒体を提供する。
【解決手段】方法は、形状とその形状の中のテキストがどのように配置されるべきかを記述する初期値を備える初期の制約が定義される。形状の中のテキストに初期の制約を適用するとテキストが形状の範囲にフィットしない場合に初期の制約を変更する際に使用する制約規則も定義される。形状の1つまたは複数のサイズまたは位置、または形状の1つの中のテキストのサイズまたは位置に影響する、グラフィックへの変更が検出されることができる。そのような変更の結果、初期の制約を使用して配置されたときにテキストがフィットしなくなる場合は、制約規則が順次適用されて制約を変更する。次いで、変更された制約が形状に再度適用されて、グラフィックの新しいレイアウトを作成する。
【解決手段】方法は、形状とその形状の中のテキストがどのように配置されるべきかを記述する初期値を備える初期の制約が定義される。形状の中のテキストに初期の制約を適用するとテキストが形状の範囲にフィットしない場合に初期の制約を変更する際に使用する制約規則も定義される。形状の1つまたは複数のサイズまたは位置、または形状の1つの中のテキストのサイズまたは位置に影響する、グラフィックへの変更が検出されることができる。そのような変更の結果、初期の制約を使用して配置されたときにテキストがフィットしなくなる場合は、制約規則が順次適用されて制約を変更する。次いで、変更された制約が形状に再度適用されて、グラフィックの新しいレイアウトを作成する。
【発明の詳細な説明】
【背景技術】
【0001】
現在のワードプロセッサと専用の描画アプリケーション・プログラムで、ユーザは、単純なグラフィックと複雑なグラフィックの両方を作成することができる。こうしたプログラムを利用して、ユーザは、テキストで注釈をつけることが可能な各種の形状を使用してグラフィックを作成することができる。こうしたアプリケーションで作成されるグラフィックは、独立した文書とすることも、テキスト文書に組み込むこともできる。しかし、こうしたプログラムによって提供される利点にも関わらず、現在のバージョンのこうしたプログラムには、標準的なユーザによるグラフィックの作成やレイアウトを遅らせる(hinder)いくつかの欠点がある。
【0002】
なお、米国特許出願第10/955,271号明細書(特許文献1)、米国特許出願第10/957,103号明細書(特許文献2)、米国特許出願第11/081,323号明細書(特許文献3)参照のこと。
【発明の概要】
【発明が解決しようとする課題】
【0003】
現在の描画プログラムに特有の欠点の1つは、そうしたプログラムが、通例、テキストのプロパティ(余白や行間隔等)に対して、すべての形状とグラフィックに汎用的なデフォルト設定を利用することである。大半の場合、そうしたデフォルト設定は、広範囲のグラフィックにわたって最適であるとは思われない。その結果、ユーザは、プロフェッショナルな感じのグラフィックを得るためには、デフォルトのプロパティを手動で無効にしなければならない。これは、ユーザにとってストレスとなり、時間がかかる可能性がある。
【0004】
現在の描画プログラムの別の欠点は、これらのプログラムが、形状とテキストをグラフィックに追加する際に、形状内のテキストのサイズを手動で変更することをユーザに要求することである。例えば、その形状の範囲にフィットしないテキストをその形状に加える場合、ユーザは、テキストが形状内に完全にフィットするように、グラフィックまたはテキストのサイズを手動で変更しなければならない。この問題は、テキストを有する多数の形状がグラフィックの中で利用されるときには極めて時間がかかる可能性がある。多くのグラフィックは、関係する形状にわたってテキストのサイズが等しいときに最も見た目がよいという事実によって、この問題はさらに悪化する。現在の描画プログラムを利用してこれを達成するには、ユーザは、関係する1つ1つの形状の中でテキストのサイズを手動で変更しなければならない。これも、コンピュータ・ユーザにとって時間を要し、ストレスとなる可能性がある。
【0005】
本発明の各種実施形態は、こうした考慮事項および他の考慮事項に関してなされたものである。
【課題を解決するための手段】
【0006】
本発明によれば、上記の問題やその他の問題は、グラフィック内の1つまたは複数の形状にテキストをフィットさせる(Fitting;適切にはめ込む)方法およびコンピュータ可読媒体によって解決される。この方法によれば、1つまたは複数の初期の制約が定義され、これは、形状とその形状内のテキストをどのように配置すべきかを記述する初期値を備える。例えば、配置するテキストのフォントface、フォント・サイズ、および文字の属性を指示する初期の制約を指定することができる。形状内のテキストに初期の制約を適用しても形状の境界からテキストがオーバーフローすることになる場合に、この初期の制約を変更する際に使用される1つまたは複数の制約規則も定義される。形状中のテキストの配置に影響するが、規則によって変更されることはない1つまたは複数のパラメータを定義することができる。
【0007】
本発明の一実施形態によれば、複数の形状のうちの1つまたは複数のサイズや位置、あるいは複数の形状のうちの1つ形状内のテキストのサイズと位置に影響する、グラフィックへの変更を検出することができる。例えば、形状の追加または除去、グラフィックの配置の変更、フォントの変更、グラフィック内の形状へのテキストの追加または除去が可能である。そのような変更の検出に応答して、初期の制約が適用される。テキストが形状からオーバーフローする場合は、制約規則が順次適用されて制約を変更する。そして、変更された制約が形状に再度適用されて、そのグラフィックの新しいレイアウトを作成する。
【0008】
本発明の別の実施形態によれば、制約規則を適用して制約を変更することは、初めに、形状内にフィットしないテキストを有するグラフィック中の形状を識別することを含む。そのような形状が識別されると、識別された形状に関連付けられた、グラフィック定義ファイル中の第1の制約規則が識別される。この制約規則は、形状に関連付けられた制約の制限値を識別する。そして、二分探索などの検索が行われて、識別された形状内にテキストをフィットさせることをもたらす、初期制約値と制限値の間にある制約の値を識別する。一実施形態によれば、識別される値は、初期の制約に最も近く、同時に形状内にテキストがフィットすることを可能にする値を備える。
【0009】
テキストを形状内にフィットさせることをもたらす値が、検索で識別された場合は、その制約については識別された値が形状に適用される。テキストを形状内にフィットさせる値を見つけることができない場合は、制限値がその形状に適用され、次の制約規則が識別され、その形状に適用される。あるいは、その規則によって識別される中間値をその形状に適用することもできる。このようにして、形状に関連付けられた各制約規則が順次形状に適用される。実施形態によれば、テキストが形状内にフィットするレイアウトを見つける際に助けとならない規則は飛ばすことができる。すべての制約規則を適用した結果テキストが形状内にフィットしない場合は、テキストが形状の外にはみ出さないようにすることを保証された、事前に定義された規則を適用することができる。例えば、形状の外にテキストが広がらないように、テキストを切り詰めて、省略記号を加える規則が適用されることができる。
【0010】
本発明の別の実施形態によれば、データ構造が記憶されたコンピュータ可読媒体が提供される。このデータ構造は、グラフィック内の形状にテキストをフィットさせるための1つまたは複数の初期の制約を表すデータを保持するデータ・フィールドのセットを含む。この制約は、1つまたは複数の形状内にテキストをどのように配置するかを記述する初期値を備える。
【0011】
一実施形態によれば、このデータ構造は、形状にテキストをフィットさせるための1つまたは複数の制約規則を表すデータを保持する第2のデータ・フィールドも含む。この制約規則は、この制約を適用しても形状内にテキストがうまく完全に配置されない場合に、制約を変更するための規則を備える。詳細には、各制約規則は、少なくとも1つの制約についての制限値を備える。この制約規則は、形状内のテキストのフォント・サイズ、余白、単語の折り返し、ハイフネーション、カーニング、行間、およびその他の属性を変更するために利用することができる。
【0012】
本発明は、コンピュータ・プロセス、コンピューティング・システム、あるいは、コンピュータ・プログラム製品やコンピュータ可読媒体などの、製品として実施することができる。コンピュータ・プログラム製品は、コンピュータ・システムによって読み取ることができ、コンピュータ・プロセスを実行する命令のコンピュータ・プログラムを符号化したコンピュータ可読媒体とすることができる。コンピュータ・プログラム製品は、コンピュータ・システムによって読み取ることができ、コンピュータ・プロセスを実行する命令のコンピュータ・プログラムを符号化した、搬送波上の伝搬信号とすることもできる。
【0013】
本発明を特徴付ける上記および様々な他の特徴ならびに利点は、以下の詳細な説明を読み、添付図面を検討することから明らかになろう。
【図面の簡単な説明】
【0014】
【図1】本発明の各種実施形態によって利用され、提供されるコンピュータ・システムを説明するコンピュータシステムアーキテクチャの図である。
【図2A】本発明の一実施形態による例示的描画プログラムで生成されるグラフィックを示すブロック図である。
【図2B】本発明の一実施形態による例示的描画プログラムで生成されるグラフィックを示すブロック図である。
【図3A】本発明の一実施形態による例示的描画プログラムで生成されるグラフィックを示すブロック図である。
【図3B】本発明の一実施形態による例示的描画プログラムで生成されるグラフィックを示すブロック図である。
【図4】本発明の一実施形態による例示的描画プログラムで生成されるグラフィックを示すブロック図である。
【図5】本発明の一実施形態で利用される形状についてのいくつかの可能な制約を説明するブロック図である。
【図6】本発明の一実施形態で利用されるグラフィック定義ファイルのコンテンツの一部を説明するブロック図である。
【図7】本発明の一実施形態によりグラフィック内の1つまたは複数の形状にテキストをフィットさせるルーチンを説明する流れ図である。
【図8A】本発明の一実施形態によりグラフィック内の1つまたは複数の形状にテキストをフィットさせるルーチンを説明する流れ図である。
【図8B】本発明の一実施形態によりグラフィック内の1つまたは複数の形状にテキストをフィットさせるルーチンを説明する流れ図である。
【発明を実施するための形態】
【0015】
次いで図面を参照して本発明の各種態様を説明する。図面では、同様の参照符号は同様の要素を表す。詳細には、図1とそれに対応する解説は、本発明の実施形態が実施されることが可能な適切なコンピューティング環境の簡単で概略的な説明を提供するものである。パーソナル・コンピュータのオペレーティング・システムで実行されるプログラム・モジュールとの関連で実行されるプログラム・モジュールの一般的なコンテクストで本発明を説明するが、当業者は、本発明は、他のタイプのコンピュータ・システムおよびプログラム・モジュールと組み合わせて実施することも可能であることを認識されよう。
【0016】
一般に、プログラム・モジュールには、特定のタスクを行うか、特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造、および他のタイプの構造が含まれる。さらに、当業者は、本発明は、ハンドヘルド・デバイス、マルチ・プロセッサ・システム、マイクロ・プロセッサを利用した、あるいはプログラム可能な消費者向け電子機器、ミニ・コンピュータ、メインフレーム・コンピュータなどを含む他のコンピュータ・システム構成で実施できることを理解されよう。本発明は、通信ネットワークを通じてつながれた遠隔の処理デバイスによってタスクが行われる分散コンピューティング環境でも実施することができる。分散コンピューティング環境では、プログラム・モジュールは、ローカルおよびリモート両方のメモリ記憶装置に置くことができる。
【0017】
次いで図1を参照して、本発明の各種実施形態で利用されるコンピュータ2の例示的なコンピュータ・アーキテクチャを説明する。図1に示すコンピュータ・アーキテクチャは、従来のデスクトップ・コンピュータあるいはラップトップ・コンピュータを示し、このコンピュータは、中央演算処理装置5(「CPU」)、RAM(ランダム・アクセス・メモリ)9とROM(読み取り専用メモリ)11を含むシステム・メモリ7、およびメモリをCPU5に結合するシステム・バス12を含む。起動時などにコンピュータ内の要素間の情報転送を助ける基本ルーチンを含んだ基本入出力システムは、ROM11に記憶される。コンピュータ2はさらに、オペレーティング・システム16、アプリケーション・プログラム、および他のプログラム・モジュールを記憶する大容量記憶装置14を含む。それらのプログラムについては下記でより詳細に説明する。
【0018】
大容量記憶装置14は、バス12に接続された大容量記憶装置コントローラ(図示せず)を通じてCPU5に接続される。大容量記憶装置14とそれに関連付けられたコンピュータ可読媒体は、コンピュータ2に不揮発性の記憶を提供する。本明細書に含まれるコンピュータ可読媒体の説明では、ハードディスクやCD−ROMドライブなどの大容量記憶装置を挙げるが、当業者には、コンピュータ可読媒体は、コンピュータ2によるアクセスが可能な利用可能媒体でよいことが理解されよう。
【0019】
限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体を備えることができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラム・モジュール、あるいは他のデータなどの情報を記憶するための方式または技術として実施された、揮発性および不揮発性、取り外し可能および取り外し不能の媒体が含まれる。コンピュータ記憶媒体には、これらに限定しないが、RAM、ROM、EPROM、EEPROM、フラッシュ・メモリ、あるいは他の固体素子メモリ技術、CD−ROM、デジタル多用途ディスク(「DVD」)、または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶装置、あるいは、必要な情報を記憶するために使用することができ、コンピュータ2によるアクセスが可能な、他の媒体が含まれる。
【0020】
本発明の各種実施形態によれば、コンピュータ2は、インターネットなどのネットワーク18を通じたリモート・コンピュータとの論理接続を使用するネットワーク環境で動作することができる。コンピュータ2は、バス12に接続されたネットワーク・インターフェース・ユニット20を通じてネットワーク18に接続することができる。ネットワーク・インターフェース・ユニット20は、他のタイプのネットワークとリモート・コンピュータ・システムに接続するためにも利用できることを理解されたい。コンピュータ2は、キーボード、マウス、電子スタイラス(図1には図示せず)を含む複数の他のデバイスから入力を受け取り、処理する入出力コントローラ22も含むことができる。同様に、入出力コントローラ22は、ディスプレイ画面、プリンタ、あるいは他のタイプの出力装置に出力を提供することができる。
【0021】
上記で簡単に述べたように、コンピュータ2の大容量記憶装置14とRAM9には複数のプログラム・モジュールとデータ・ファイルが記憶されることができ、これには、ワシントン州レドモンドのマイクロソフト社製のWINDOWS(登録商標)XPオペレーティング・システムなど、ネットワーク対応のパーソナル・コンピュータの動作を制御するのに適したオペレーティング・システム16が含まれる。大容量記憶装置14とRAM9には、1つまたは複数のプログラム・モジュールも記憶することができる。詳細には、大容量記憶装置14とRAM9は、描画アプリケーション・プログラム10を記憶することができる。描画アプリケーション・プログラム10は、グラフィック24などのグラフィックを作成し、レイアウトする機能を提供する働きをする。本発明の一実施形態によれば、描画アプリケーション・プログラム10は、アプリケーション・プログラムWORD、EXCEL、POWERPOINTを含む、マイクロソフト社のアプリケーション・プログラム・スイートOFFICEにあるプログラムのいずれか1つを備える。
【0022】
大容量記憶装置14は、描画アプリケーション・プログラム10の中でグラフィックの作成とレイアウトに利用されるいくつかのコンポーネントも記憶することができる。詳細には、そうしたコンポーネントは、データ・モデル30とグラフィック定義ファイル40を含むことができる。本発明の各種実施形態で、描画アプリケーション・プログラム10は、グラフィック定義ファイル40のグラフィックの作成とレイアウトに関する指示を読み込む。本発明の一実施形態では、データ・モデル30とグラフィック定義ファイル40は、描画アプリケーション・プログラム10からアクセスされる個々のファイルとしてコンピュータ・システム2に記憶することができることは理解されよう。
【0023】
データ・モデル30は、グラフィック24を構築するためのコンテンツを含んでいる、ノードの集まり、関係、テキスト、プロパティを含む。グラフィック定義ファイル40は、特定のグラフィック・レイアウトをどのように作成するかを記述するデータの集まりである。本発明の各種実施形態で、グラフィック定義ファイル40は、XML(拡張可能マークアップ言語)を利用してフォーマットされることができる。当業者には理解されるように、XMLは、データを伝達するための標準的なフォーマットである。XMLデータ・フォーマットでは、スキーマを使用して、伝達することが可能なデータのタイプと構造を定める文法規則とデータ・タイプの規則のセットを、XMLデータに提供する。XMLデータ・フォーマットは当業者によく知られており、そのためここではこれ以上詳しくは解説しない。グラフィック定義ファイル40によって記述されるグラフィックの諸面には、各レイアウト・ノードに使用するレイアウト・アルゴリズムの名前、アルゴリズムのパラメータ、制約、レイアウトツリーを構築するための制約規則、形状のジオメトリとスタイル・プロパティのデフォルト設定、グラフィック分類データ、およびサンプル・データ・モデルが含まれる。グラフィック定義ファイル40のコンテンツと使用に関する追加的な詳細は、特許文献1から得ることができる。同出願は、参照により本明細書に明示的に組み込まれている。
【0024】
制約は、グラフィックを作成するレイアウト・アルゴリズムで用いられる条件である。制約の一例は、形状の幅に使用される値である。制約は、数値を含んでもブール値を含んでもよいことは理解されよう。数値の制約は、具体的な数値を指定することができる(幅=1インチ(2.54cm)など)。数値の制約は、参照を使用する(高さ=幅×0.75など)他の制約数値を参照することにより、その値を計算することもできる。ブール値の制約は、1つのセット中のすべてのノードが、他の制約と同じ値になることを強制する等値の制約(equality constraints)を含むことができ、また、1つの制約値が別の制約値に基づいて制限される非等値の制約(inequality constraints)を含むことができる(例えば形状の幅は別の形状の高さより小さい、あるいは大きい必要がある等)。
【0025】
制約は、レイアウト・ノード間で伝搬して、描画要素間に等値(例えばすべてのノーマル・ノードは同じフォント・サイズとする等)、または非等値(遷移ノードの幅≦ノーマル・ノードの幅とする等)を強制することができる。制約は、その状態を他のレイアウト・ノードに伝搬する、共有されるプロパゲータ(propagator)を制約に付加することによって伝搬されることができる。制約と制約規則は両方とも、伝搬した制約から他のノードで更新されることができることは理解されよう。
【0026】
制約規則は、制約のセットがレイアウト・アルゴリズムによって満たされることができない場合に、制約のセットをどのように変更するかの記述である。例えば、制約は、フォント・サイズが14ポイントでなければならないことを指定することができるが、制約規則は、フォント・サイズを最小で8ポイントまで下げられることを指定することができる。
【0027】
本発明の一実施形態によれば、制約は、形状とその形状内のテキストがどのように配置されるべきかを記述する初期値を備える。これに関して、制約を適用しても形状の範囲内にテキストがうまく配置されないときにその制約を変更する規則を備える制約規則を指定することができる。制約と制約規則の構造と使用、およびグラフィック定義ファイル40のコンテンツに関する追加的な詳細事項は、下記で図4との関連で述べる。
【0028】
次いで図2A〜2Bを参照して、本発明の一実施形態で生成されるいくつかの例示的なグラフィック24Aおよび24Bを説明する。図2Aに示すように、グラフィック24Aは、形状50A、50B、50Cを備える。各形状は、それぞれテキスト52A、52B、52Cを含む。本発明の一実施形態によれば、余白(margins)、間隔(spacing)、位置揃え(alignment)などの、テキストブロック、段落、および文字のプロパティが、データの構造に基づいて動的に変更されて、最も見た目のよいテキストのレイアウトを提供することができる。例えば、形状50Bの中のテキスト52Bが、いくつかの中黒点(bullet points)を加えるように編集される場合、テキスト52Bの位置揃えは、中央揃えから左揃えに変更することができる。これは、図2Bに示す左に揃えられたテキスト52Bとして表される。
【0029】
本発明の一実施形態によれば、複数の形状にまたがるテキストの位置揃えも、データの変更に基づいて動的に変更されることができる。例えば、テキスト52Bに中黒(bullets)を追加するのに応答して、テキスト52Bの位置揃えは、上記のように中央揃えから左揃えに変更されることができる。それに加えて、形状50Aと50Bのテキスト52Aと52Cの位置揃えも、テキスト52Bの変更に応答して中央揃えから左揃えに変更されることができる。これが図2Bに示すテキスト52Aおよび52Cとして表される。
【0030】
次いで図3A〜3Bを参照して、グラフィック24Cおよび24Dに関して本発明の追加的態様を示す。グラフィック24Cは、それぞれテキスト52A、52B、52Cを有する形状50A、50B、50Cを含む。テキスト52A、52B、52Cは、上および左に揃えられている。ユーザが、図3Aに示すプロセス・グラフィックから図3Bに示す階層グラフィック24Dに変更するなど図のタイプを変更する場合、テキスト52A、52B、52Cは、グラフィック24Dの中の該当する形状にマップされる。さらに、グラフィック・スタイルの変更に応じて、形状52A〜52Dそれぞれの中のテキストの位置揃えが、上および左揃えから中央揃えに変更される。この変更は、グラフィック24Dに関連付けられたグラフィック定義ファイルが、テキストを中央揃えにするように指示しているという理由で行われる。
【0031】
次いで図4を参照して、本発明の実施形態を通じて適用されることができるフォーマット(書式設定)の変更のタイプに関する追加的な詳細事項を説明する。図4は、形状50Eを含むグラフィック24Eを示している。形状50Eは、親形状と1つの子形状から構成される複合形状である。複合形状は、親形状を含み、子形状をいくつでも有することができる。本発明の実施形態で複合形状を利用することは必須でないことは理解されたい。本発明で提供されるアルゴリズムは、どのような形状の組み合わせでも動作することができる。下記でより詳細に説明するように、形状のサイズとフォーマッティングは、その形状に関連付けられたテキストをその形状内に完全にフィットさせるように変更することができる。テキストのフォーマッティングとサイズも変化することができる。本発明の一実施形態によれば、親形状のテキストと形状は、子形状と無関係に変更することができる。同様に、子形状も、その親形状と無関係に変更することができる。このようにして、複合形状の任意の部分は、他の部分と無関係に変更することができる。このプロセスに関する追加的な詳細については下記で述べる。
【0032】
次いで図5を参照すると、形状とそれに関連付けられたテキストについて、その形状がそのテキスト取り囲むことを確実にするように変更されることを可能とすることに関する追加的な詳細を説明する。詳細には、図5に形状50Fを示す。形状50Fは、関連付けられたテキスト52Dを有する。形状50Fは、内側の余白58、縦方向の大きさ56、および横方向の大きさ54も含む。下記でより詳しく述べるように、形状50Fの縦方向と横方向の大きさは、テキスト52Dが形状内に完全にフィットするように変更されることができる。同様に、内側の余白58も、テキスト52Dが形状50F内にフィットするように、指定に従って変更されることができる。フォント・サイズやテキストの位置揃えなどのテキスト52Dの属性も、テキスト52Dを形状50F内にフィットさせるために変更されることができる。本発明で提供されるアルゴリズムは、任意の幾何学的形状を範囲とする、ひとまとまりのテキストに利用できることを理解されたい。
【0033】
下記でより詳しく説明するように、グラフィック定義ファイル40は、形状50Fとテキスト52Dのどの属性が、テキスト52Dをフィットさせようとする際に変更されるべきかと、それらが変更される際の順序を定義する制約規則を含む。図5に示し、ここで説明する形状50Fとテキスト52Dの属性は、例示的なものに過ぎず、形状についての他の属性が、その形状内にテキスト52Dをフィットさせようとする際に変更されることができることを理解されたい。制約と制約規則は、形状ごとに指定されることができることも理解されたい。制約と制約規則は、形状の集合に対して指定されることもできる。
【0034】
次いで図6を参照して、例示的なグラフィック定義ファイル40の一部のコンテンツを説明する。詳細には、グラフィック定義ファイル40は、1つまたは複数の制約60を備える。制約60は、形状とその形状の中のテキストがどのように配置されるべきかを記述する初期値を備える。例えば、図6に示す制約60は、形状の幅を1.5インチ(3.81cm)に設定する制約を含んでいる。別の制約が、形状の高さを幅×0.667に設定する。さらに別の制約が、親形状のテキストサイズを36ポイントに設定し、別の制約が、子形状のテキストサイズを36ポイントに設定する。これらの制約が、形状とそれに関連付けられたテキストを初めに配置するのに使用される。ファイル40内に複数のパラメータも指定することができる。
【0035】
グラフィック定義ファイルは、1つまたは複数の制約規則62も含む。制約規則62は、制約のセットがレイアウト・アルゴリズムで満たされることができない場合に制約のセットをどのように変更するかの記述である。例えば、図6に示す制約規則62は、形状の幅を0.25インチ(0.64cm)刻みで3インチ(7.62cm)まで増すことができることを示す第1の制約規則を含む。この第1の制約規則を適用した結果、テキストが形状内にフィットしない場合は、次の制約規則が適用される。次の制約規則は、形状の高さを形状の幅の1.5倍まで増してよいことを示す。この制約規則が、テキストの良好なフィッティングをもたらさない場合は、残りの制約規則がなくなるまで、次の規則が順に適用される。図6に示す他の制約規則それぞれは、親テキストのフォント・サイズを最小で16ポイントまで下げ、子テキストのフォント・サイズを最小で16ポイントまで下げ、高さを最高で3インチ(7.62cm)まで増し、親テキストのサイズを4ポイントまで下げる。ファイル40に明確に定義されない制約にはデフォルト値が利用されることができることは理解されたい。
【0036】
次いで図7を参照して、初期の制約と制約規則を定義するプロセスを例示する例示的ルーチン700を説明する。ここに述べるルーチンの解説を読む際には、本発明の各種実施形態の論理的動作は、(1)コンピュータによって実施される行為(acts)のシーケンス、またはコンピュータ・システムで実行されるプログラム・モジュールのシーケンスとして、かつ/または(2)コンピューティング・システム内の相互に接続された機械論理回路または回路モジュールとして、実装されることを理解されたい。この実装は、本発明を実装するコンピューティング・システムのパフォーマンス要件に応じて選択する事柄である。したがって、図7および8に示し、ここに記載される本発明の実施形態を構成する論理的動作(logical operations)は、動作(operations)、構造的デバイス、行為(acts)、モジュール等と様々に称される。当業者には、これらの動作、構造的デバイス、行為、およびモジュールは、特許請求の範囲で述べられる本発明の主旨および範囲から逸脱することなく、ソフトウェア、ファームウェア、特殊目的デジタル・ロジック、およびそれらの組み合わせとして実装されることが可能であることが認識されよう。
【0037】
ルーチン700は、動作(operation)702で開始し、初期の制約値が定義される。次いでルーチン700は動作704に進み、制約規則が定義される。動作704からルーチン700は動作706に進み、制約値と制約規則がグラフィック定義ファイル40に記憶される。ルーチン700は次いで動作708に進み、終了する。
【0038】
次いで図8Aおよび8Bを参照して、形状にテキストをフィットさせる例示的ルーチン800を説明する。ルーチン800は、新しいグラフィックを作成する要求が受け取られた場合に動作802で開始する。この場合は、新しいグラフィックを挿入する要求が動作802で受け取られる。ルーチン800は次いで動作804に進み、新しいグラフィックのタイプの選択が受け取られる。ルーチン800は次いで動作806に進み、グラフィック内に初期の形状が配置される。この形状は、初期の制約に従って配置することができる。動作806からルーチン800は動作808に進み、これらの形状内に配置するテキストが受け取られる。次いでルーチン800は、下記で説明する動作814に進む。
【0039】
グラフィック・タイプが変更される場合は、ルーチン800は、動作810で開始する。この場合は、新しいグラフィックのタイプの選択が動作810で受け取られる。動作810から、ルーチン800は、下記で説明する動作814に進む。
【0040】
動作814で、テキストのコンテンツがそのグラフィック内の各形状にマップされる。ルーチン800は次いで動作816に進み、初期の制約がそれらの形状に適用される。それらの形状にはパラメータも適用されることができる。例えば、テキストの色を変えてもテキストのサイズあるいは位置は変わらないので、色はパラメータとすることができる。動作816からルーチン800は動作818に進む。
【0041】
動作818で、テキストが各形状内にフィットするかどうかが決定される。テキストがフィットしない場合は、ルーチン800は動作820に進み、グラフィック定義ファイルに処理するためのさらなる制約規則があるかどうかが決定される。処理する制約規則がさらにある場合、ルーチンは動作822に進む。動作822で、次の制約規則がグラフィック定義ファイルから読み出される。ルーチン800は次いで動作824に進み、制約規則で指定される値のセットを検索して、そのテキストに対する最良の適合値を決定する。例えば、初期の制約が形状の幅を1.5インチ(3.81cm)とし、制約規則が幅を3インチ(7.62cm)の上限まで増してよいことを指定する場合には、検索を行って、テキストを形状内にフィットさせる1.5インチ(3.81cm)から3インチ(7.62cm)の間の最も小さい値を特定する。一実施形態によれば、二分探索が利用される。ただし、検索アルゴリズムに加えて、テキストを最適にフィットさせる値、最良の適合値を特定するために他のタイプのアルゴリズムが利用されてよいことは理解されたい。
【0042】
本発明の一実施形態によれば、一部変更された二分探索アルゴリズムを利用して、うまく行く値が見つかった後も、開始値により近い値を探し続けることを理解されたい。このプロセスは、テキストをフィットさせる最初の結果が、それより後のフィットすることをもたらす値の所定の閾値内に入るまで継続する。このようにしてテキストを最適な形でフィットさせる値、最良の適合値を見つけることができる。
【0043】
現在の制約規則を利用して最良の適合値の検索が行われると、方法800は動作818に戻り、テキストが形状にフィットするかどうかについて再度決定が行われる。テキストがフィットしない場合は、動作820、822、824に関して上記のプロセスが繰り返される。テキストがフィットする場合は、ルーチン800は動作818から動作828に分岐する。
【0044】
一実施形態によれば、検索ルーチンで、オーバーフローしたテキストを有する形状の最適な形でフィットする値として特定された値は、他の形状に伝搬されることができることを理解されたい。このようにして、統一性のために、関連する形状のサイズが変更され、それにより、ユーザが関連する形状のサイズを手動で変更せずに済むようにすることができる。
【0045】
動作828で、グラフィック内のコンテンツのサイズあるいは位置に変更があったかどうかが決定される。変更がない場合は、ルーチン800は動作832に分岐し、終了する。変更がある場合は、ルーチン800は動作826に分岐し、グラフィック内の形状にマップする新しいコンテンツがあるかどうかが決定される。マップする新しいコンテンツがある場合、ルーチン800は動作826から上記の動作814に分岐する。マップする新しいコンテンツがない場合、ルーチンは動作826から上記の動作816に分岐する。
【0046】
動作820で処理すべき制約規則がそれ以上ないと決定される場合は、ルーチン800は動作820から動作830に分岐する。動作830で、テキストが形状の外にはオーバーフローしないようにすることが保証された、あらかじめ定義された規則が形状に適用される。例えば、本発明の一実施形態によれば、テキストを切り詰めて、この切り詰めを知らせるためにテキストの最後に省略記号(...)が加えられることができる。残りの(切り詰められた)テキストが形状内に完全にフィットするのに十分なテキストが切り詰められることができる。テキストが形状の外にオーバーフローしないようにすることを保証された他のタイプの規則が適用されることができる。動作830からルーチン800は上記の動作828に分岐する。
【0047】
前述の記載に基づき、本発明の各種実施形態は、グラフィック内の形状にテキストをフィットさせる方法およびコンピュータ可読媒体を含むことが理解されよう。上記の詳細な説明、例、およびデータは、本発明の製造と構成の使用についての完全な説明を提供する。本発明の実施形態の多くは、本発明の主旨および範囲から逸脱することなくなされることができるので、本発明は、頭記の特許請求の範囲内に属する。
【背景技術】
【0001】
現在のワードプロセッサと専用の描画アプリケーション・プログラムで、ユーザは、単純なグラフィックと複雑なグラフィックの両方を作成することができる。こうしたプログラムを利用して、ユーザは、テキストで注釈をつけることが可能な各種の形状を使用してグラフィックを作成することができる。こうしたアプリケーションで作成されるグラフィックは、独立した文書とすることも、テキスト文書に組み込むこともできる。しかし、こうしたプログラムによって提供される利点にも関わらず、現在のバージョンのこうしたプログラムには、標準的なユーザによるグラフィックの作成やレイアウトを遅らせる(hinder)いくつかの欠点がある。
【0002】
なお、米国特許出願第10/955,271号明細書(特許文献1)、米国特許出願第10/957,103号明細書(特許文献2)、米国特許出願第11/081,323号明細書(特許文献3)参照のこと。
【発明の概要】
【発明が解決しようとする課題】
【0003】
現在の描画プログラムに特有の欠点の1つは、そうしたプログラムが、通例、テキストのプロパティ(余白や行間隔等)に対して、すべての形状とグラフィックに汎用的なデフォルト設定を利用することである。大半の場合、そうしたデフォルト設定は、広範囲のグラフィックにわたって最適であるとは思われない。その結果、ユーザは、プロフェッショナルな感じのグラフィックを得るためには、デフォルトのプロパティを手動で無効にしなければならない。これは、ユーザにとってストレスとなり、時間がかかる可能性がある。
【0004】
現在の描画プログラムの別の欠点は、これらのプログラムが、形状とテキストをグラフィックに追加する際に、形状内のテキストのサイズを手動で変更することをユーザに要求することである。例えば、その形状の範囲にフィットしないテキストをその形状に加える場合、ユーザは、テキストが形状内に完全にフィットするように、グラフィックまたはテキストのサイズを手動で変更しなければならない。この問題は、テキストを有する多数の形状がグラフィックの中で利用されるときには極めて時間がかかる可能性がある。多くのグラフィックは、関係する形状にわたってテキストのサイズが等しいときに最も見た目がよいという事実によって、この問題はさらに悪化する。現在の描画プログラムを利用してこれを達成するには、ユーザは、関係する1つ1つの形状の中でテキストのサイズを手動で変更しなければならない。これも、コンピュータ・ユーザにとって時間を要し、ストレスとなる可能性がある。
【0005】
本発明の各種実施形態は、こうした考慮事項および他の考慮事項に関してなされたものである。
【課題を解決するための手段】
【0006】
本発明によれば、上記の問題やその他の問題は、グラフィック内の1つまたは複数の形状にテキストをフィットさせる(Fitting;適切にはめ込む)方法およびコンピュータ可読媒体によって解決される。この方法によれば、1つまたは複数の初期の制約が定義され、これは、形状とその形状内のテキストをどのように配置すべきかを記述する初期値を備える。例えば、配置するテキストのフォントface、フォント・サイズ、および文字の属性を指示する初期の制約を指定することができる。形状内のテキストに初期の制約を適用しても形状の境界からテキストがオーバーフローすることになる場合に、この初期の制約を変更する際に使用される1つまたは複数の制約規則も定義される。形状中のテキストの配置に影響するが、規則によって変更されることはない1つまたは複数のパラメータを定義することができる。
【0007】
本発明の一実施形態によれば、複数の形状のうちの1つまたは複数のサイズや位置、あるいは複数の形状のうちの1つ形状内のテキストのサイズと位置に影響する、グラフィックへの変更を検出することができる。例えば、形状の追加または除去、グラフィックの配置の変更、フォントの変更、グラフィック内の形状へのテキストの追加または除去が可能である。そのような変更の検出に応答して、初期の制約が適用される。テキストが形状からオーバーフローする場合は、制約規則が順次適用されて制約を変更する。そして、変更された制約が形状に再度適用されて、そのグラフィックの新しいレイアウトを作成する。
【0008】
本発明の別の実施形態によれば、制約規則を適用して制約を変更することは、初めに、形状内にフィットしないテキストを有するグラフィック中の形状を識別することを含む。そのような形状が識別されると、識別された形状に関連付けられた、グラフィック定義ファイル中の第1の制約規則が識別される。この制約規則は、形状に関連付けられた制約の制限値を識別する。そして、二分探索などの検索が行われて、識別された形状内にテキストをフィットさせることをもたらす、初期制約値と制限値の間にある制約の値を識別する。一実施形態によれば、識別される値は、初期の制約に最も近く、同時に形状内にテキストがフィットすることを可能にする値を備える。
【0009】
テキストを形状内にフィットさせることをもたらす値が、検索で識別された場合は、その制約については識別された値が形状に適用される。テキストを形状内にフィットさせる値を見つけることができない場合は、制限値がその形状に適用され、次の制約規則が識別され、その形状に適用される。あるいは、その規則によって識別される中間値をその形状に適用することもできる。このようにして、形状に関連付けられた各制約規則が順次形状に適用される。実施形態によれば、テキストが形状内にフィットするレイアウトを見つける際に助けとならない規則は飛ばすことができる。すべての制約規則を適用した結果テキストが形状内にフィットしない場合は、テキストが形状の外にはみ出さないようにすることを保証された、事前に定義された規則を適用することができる。例えば、形状の外にテキストが広がらないように、テキストを切り詰めて、省略記号を加える規則が適用されることができる。
【0010】
本発明の別の実施形態によれば、データ構造が記憶されたコンピュータ可読媒体が提供される。このデータ構造は、グラフィック内の形状にテキストをフィットさせるための1つまたは複数の初期の制約を表すデータを保持するデータ・フィールドのセットを含む。この制約は、1つまたは複数の形状内にテキストをどのように配置するかを記述する初期値を備える。
【0011】
一実施形態によれば、このデータ構造は、形状にテキストをフィットさせるための1つまたは複数の制約規則を表すデータを保持する第2のデータ・フィールドも含む。この制約規則は、この制約を適用しても形状内にテキストがうまく完全に配置されない場合に、制約を変更するための規則を備える。詳細には、各制約規則は、少なくとも1つの制約についての制限値を備える。この制約規則は、形状内のテキストのフォント・サイズ、余白、単語の折り返し、ハイフネーション、カーニング、行間、およびその他の属性を変更するために利用することができる。
【0012】
本発明は、コンピュータ・プロセス、コンピューティング・システム、あるいは、コンピュータ・プログラム製品やコンピュータ可読媒体などの、製品として実施することができる。コンピュータ・プログラム製品は、コンピュータ・システムによって読み取ることができ、コンピュータ・プロセスを実行する命令のコンピュータ・プログラムを符号化したコンピュータ可読媒体とすることができる。コンピュータ・プログラム製品は、コンピュータ・システムによって読み取ることができ、コンピュータ・プロセスを実行する命令のコンピュータ・プログラムを符号化した、搬送波上の伝搬信号とすることもできる。
【0013】
本発明を特徴付ける上記および様々な他の特徴ならびに利点は、以下の詳細な説明を読み、添付図面を検討することから明らかになろう。
【図面の簡単な説明】
【0014】
【図1】本発明の各種実施形態によって利用され、提供されるコンピュータ・システムを説明するコンピュータシステムアーキテクチャの図である。
【図2A】本発明の一実施形態による例示的描画プログラムで生成されるグラフィックを示すブロック図である。
【図2B】本発明の一実施形態による例示的描画プログラムで生成されるグラフィックを示すブロック図である。
【図3A】本発明の一実施形態による例示的描画プログラムで生成されるグラフィックを示すブロック図である。
【図3B】本発明の一実施形態による例示的描画プログラムで生成されるグラフィックを示すブロック図である。
【図4】本発明の一実施形態による例示的描画プログラムで生成されるグラフィックを示すブロック図である。
【図5】本発明の一実施形態で利用される形状についてのいくつかの可能な制約を説明するブロック図である。
【図6】本発明の一実施形態で利用されるグラフィック定義ファイルのコンテンツの一部を説明するブロック図である。
【図7】本発明の一実施形態によりグラフィック内の1つまたは複数の形状にテキストをフィットさせるルーチンを説明する流れ図である。
【図8A】本発明の一実施形態によりグラフィック内の1つまたは複数の形状にテキストをフィットさせるルーチンを説明する流れ図である。
【図8B】本発明の一実施形態によりグラフィック内の1つまたは複数の形状にテキストをフィットさせるルーチンを説明する流れ図である。
【発明を実施するための形態】
【0015】
次いで図面を参照して本発明の各種態様を説明する。図面では、同様の参照符号は同様の要素を表す。詳細には、図1とそれに対応する解説は、本発明の実施形態が実施されることが可能な適切なコンピューティング環境の簡単で概略的な説明を提供するものである。パーソナル・コンピュータのオペレーティング・システムで実行されるプログラム・モジュールとの関連で実行されるプログラム・モジュールの一般的なコンテクストで本発明を説明するが、当業者は、本発明は、他のタイプのコンピュータ・システムおよびプログラム・モジュールと組み合わせて実施することも可能であることを認識されよう。
【0016】
一般に、プログラム・モジュールには、特定のタスクを行うか、特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造、および他のタイプの構造が含まれる。さらに、当業者は、本発明は、ハンドヘルド・デバイス、マルチ・プロセッサ・システム、マイクロ・プロセッサを利用した、あるいはプログラム可能な消費者向け電子機器、ミニ・コンピュータ、メインフレーム・コンピュータなどを含む他のコンピュータ・システム構成で実施できることを理解されよう。本発明は、通信ネットワークを通じてつながれた遠隔の処理デバイスによってタスクが行われる分散コンピューティング環境でも実施することができる。分散コンピューティング環境では、プログラム・モジュールは、ローカルおよびリモート両方のメモリ記憶装置に置くことができる。
【0017】
次いで図1を参照して、本発明の各種実施形態で利用されるコンピュータ2の例示的なコンピュータ・アーキテクチャを説明する。図1に示すコンピュータ・アーキテクチャは、従来のデスクトップ・コンピュータあるいはラップトップ・コンピュータを示し、このコンピュータは、中央演算処理装置5(「CPU」)、RAM(ランダム・アクセス・メモリ)9とROM(読み取り専用メモリ)11を含むシステム・メモリ7、およびメモリをCPU5に結合するシステム・バス12を含む。起動時などにコンピュータ内の要素間の情報転送を助ける基本ルーチンを含んだ基本入出力システムは、ROM11に記憶される。コンピュータ2はさらに、オペレーティング・システム16、アプリケーション・プログラム、および他のプログラム・モジュールを記憶する大容量記憶装置14を含む。それらのプログラムについては下記でより詳細に説明する。
【0018】
大容量記憶装置14は、バス12に接続された大容量記憶装置コントローラ(図示せず)を通じてCPU5に接続される。大容量記憶装置14とそれに関連付けられたコンピュータ可読媒体は、コンピュータ2に不揮発性の記憶を提供する。本明細書に含まれるコンピュータ可読媒体の説明では、ハードディスクやCD−ROMドライブなどの大容量記憶装置を挙げるが、当業者には、コンピュータ可読媒体は、コンピュータ2によるアクセスが可能な利用可能媒体でよいことが理解されよう。
【0019】
限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体を備えることができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラム・モジュール、あるいは他のデータなどの情報を記憶するための方式または技術として実施された、揮発性および不揮発性、取り外し可能および取り外し不能の媒体が含まれる。コンピュータ記憶媒体には、これらに限定しないが、RAM、ROM、EPROM、EEPROM、フラッシュ・メモリ、あるいは他の固体素子メモリ技術、CD−ROM、デジタル多用途ディスク(「DVD」)、または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶装置、あるいは、必要な情報を記憶するために使用することができ、コンピュータ2によるアクセスが可能な、他の媒体が含まれる。
【0020】
本発明の各種実施形態によれば、コンピュータ2は、インターネットなどのネットワーク18を通じたリモート・コンピュータとの論理接続を使用するネットワーク環境で動作することができる。コンピュータ2は、バス12に接続されたネットワーク・インターフェース・ユニット20を通じてネットワーク18に接続することができる。ネットワーク・インターフェース・ユニット20は、他のタイプのネットワークとリモート・コンピュータ・システムに接続するためにも利用できることを理解されたい。コンピュータ2は、キーボード、マウス、電子スタイラス(図1には図示せず)を含む複数の他のデバイスから入力を受け取り、処理する入出力コントローラ22も含むことができる。同様に、入出力コントローラ22は、ディスプレイ画面、プリンタ、あるいは他のタイプの出力装置に出力を提供することができる。
【0021】
上記で簡単に述べたように、コンピュータ2の大容量記憶装置14とRAM9には複数のプログラム・モジュールとデータ・ファイルが記憶されることができ、これには、ワシントン州レドモンドのマイクロソフト社製のWINDOWS(登録商標)XPオペレーティング・システムなど、ネットワーク対応のパーソナル・コンピュータの動作を制御するのに適したオペレーティング・システム16が含まれる。大容量記憶装置14とRAM9には、1つまたは複数のプログラム・モジュールも記憶することができる。詳細には、大容量記憶装置14とRAM9は、描画アプリケーション・プログラム10を記憶することができる。描画アプリケーション・プログラム10は、グラフィック24などのグラフィックを作成し、レイアウトする機能を提供する働きをする。本発明の一実施形態によれば、描画アプリケーション・プログラム10は、アプリケーション・プログラムWORD、EXCEL、POWERPOINTを含む、マイクロソフト社のアプリケーション・プログラム・スイートOFFICEにあるプログラムのいずれか1つを備える。
【0022】
大容量記憶装置14は、描画アプリケーション・プログラム10の中でグラフィックの作成とレイアウトに利用されるいくつかのコンポーネントも記憶することができる。詳細には、そうしたコンポーネントは、データ・モデル30とグラフィック定義ファイル40を含むことができる。本発明の各種実施形態で、描画アプリケーション・プログラム10は、グラフィック定義ファイル40のグラフィックの作成とレイアウトに関する指示を読み込む。本発明の一実施形態では、データ・モデル30とグラフィック定義ファイル40は、描画アプリケーション・プログラム10からアクセスされる個々のファイルとしてコンピュータ・システム2に記憶することができることは理解されよう。
【0023】
データ・モデル30は、グラフィック24を構築するためのコンテンツを含んでいる、ノードの集まり、関係、テキスト、プロパティを含む。グラフィック定義ファイル40は、特定のグラフィック・レイアウトをどのように作成するかを記述するデータの集まりである。本発明の各種実施形態で、グラフィック定義ファイル40は、XML(拡張可能マークアップ言語)を利用してフォーマットされることができる。当業者には理解されるように、XMLは、データを伝達するための標準的なフォーマットである。XMLデータ・フォーマットでは、スキーマを使用して、伝達することが可能なデータのタイプと構造を定める文法規則とデータ・タイプの規則のセットを、XMLデータに提供する。XMLデータ・フォーマットは当業者によく知られており、そのためここではこれ以上詳しくは解説しない。グラフィック定義ファイル40によって記述されるグラフィックの諸面には、各レイアウト・ノードに使用するレイアウト・アルゴリズムの名前、アルゴリズムのパラメータ、制約、レイアウトツリーを構築するための制約規則、形状のジオメトリとスタイル・プロパティのデフォルト設定、グラフィック分類データ、およびサンプル・データ・モデルが含まれる。グラフィック定義ファイル40のコンテンツと使用に関する追加的な詳細は、特許文献1から得ることができる。同出願は、参照により本明細書に明示的に組み込まれている。
【0024】
制約は、グラフィックを作成するレイアウト・アルゴリズムで用いられる条件である。制約の一例は、形状の幅に使用される値である。制約は、数値を含んでもブール値を含んでもよいことは理解されよう。数値の制約は、具体的な数値を指定することができる(幅=1インチ(2.54cm)など)。数値の制約は、参照を使用する(高さ=幅×0.75など)他の制約数値を参照することにより、その値を計算することもできる。ブール値の制約は、1つのセット中のすべてのノードが、他の制約と同じ値になることを強制する等値の制約(equality constraints)を含むことができ、また、1つの制約値が別の制約値に基づいて制限される非等値の制約(inequality constraints)を含むことができる(例えば形状の幅は別の形状の高さより小さい、あるいは大きい必要がある等)。
【0025】
制約は、レイアウト・ノード間で伝搬して、描画要素間に等値(例えばすべてのノーマル・ノードは同じフォント・サイズとする等)、または非等値(遷移ノードの幅≦ノーマル・ノードの幅とする等)を強制することができる。制約は、その状態を他のレイアウト・ノードに伝搬する、共有されるプロパゲータ(propagator)を制約に付加することによって伝搬されることができる。制約と制約規則は両方とも、伝搬した制約から他のノードで更新されることができることは理解されよう。
【0026】
制約規則は、制約のセットがレイアウト・アルゴリズムによって満たされることができない場合に、制約のセットをどのように変更するかの記述である。例えば、制約は、フォント・サイズが14ポイントでなければならないことを指定することができるが、制約規則は、フォント・サイズを最小で8ポイントまで下げられることを指定することができる。
【0027】
本発明の一実施形態によれば、制約は、形状とその形状内のテキストがどのように配置されるべきかを記述する初期値を備える。これに関して、制約を適用しても形状の範囲内にテキストがうまく配置されないときにその制約を変更する規則を備える制約規則を指定することができる。制約と制約規則の構造と使用、およびグラフィック定義ファイル40のコンテンツに関する追加的な詳細事項は、下記で図4との関連で述べる。
【0028】
次いで図2A〜2Bを参照して、本発明の一実施形態で生成されるいくつかの例示的なグラフィック24Aおよび24Bを説明する。図2Aに示すように、グラフィック24Aは、形状50A、50B、50Cを備える。各形状は、それぞれテキスト52A、52B、52Cを含む。本発明の一実施形態によれば、余白(margins)、間隔(spacing)、位置揃え(alignment)などの、テキストブロック、段落、および文字のプロパティが、データの構造に基づいて動的に変更されて、最も見た目のよいテキストのレイアウトを提供することができる。例えば、形状50Bの中のテキスト52Bが、いくつかの中黒点(bullet points)を加えるように編集される場合、テキスト52Bの位置揃えは、中央揃えから左揃えに変更することができる。これは、図2Bに示す左に揃えられたテキスト52Bとして表される。
【0029】
本発明の一実施形態によれば、複数の形状にまたがるテキストの位置揃えも、データの変更に基づいて動的に変更されることができる。例えば、テキスト52Bに中黒(bullets)を追加するのに応答して、テキスト52Bの位置揃えは、上記のように中央揃えから左揃えに変更されることができる。それに加えて、形状50Aと50Bのテキスト52Aと52Cの位置揃えも、テキスト52Bの変更に応答して中央揃えから左揃えに変更されることができる。これが図2Bに示すテキスト52Aおよび52Cとして表される。
【0030】
次いで図3A〜3Bを参照して、グラフィック24Cおよび24Dに関して本発明の追加的態様を示す。グラフィック24Cは、それぞれテキスト52A、52B、52Cを有する形状50A、50B、50Cを含む。テキスト52A、52B、52Cは、上および左に揃えられている。ユーザが、図3Aに示すプロセス・グラフィックから図3Bに示す階層グラフィック24Dに変更するなど図のタイプを変更する場合、テキスト52A、52B、52Cは、グラフィック24Dの中の該当する形状にマップされる。さらに、グラフィック・スタイルの変更に応じて、形状52A〜52Dそれぞれの中のテキストの位置揃えが、上および左揃えから中央揃えに変更される。この変更は、グラフィック24Dに関連付けられたグラフィック定義ファイルが、テキストを中央揃えにするように指示しているという理由で行われる。
【0031】
次いで図4を参照して、本発明の実施形態を通じて適用されることができるフォーマット(書式設定)の変更のタイプに関する追加的な詳細事項を説明する。図4は、形状50Eを含むグラフィック24Eを示している。形状50Eは、親形状と1つの子形状から構成される複合形状である。複合形状は、親形状を含み、子形状をいくつでも有することができる。本発明の実施形態で複合形状を利用することは必須でないことは理解されたい。本発明で提供されるアルゴリズムは、どのような形状の組み合わせでも動作することができる。下記でより詳細に説明するように、形状のサイズとフォーマッティングは、その形状に関連付けられたテキストをその形状内に完全にフィットさせるように変更することができる。テキストのフォーマッティングとサイズも変化することができる。本発明の一実施形態によれば、親形状のテキストと形状は、子形状と無関係に変更することができる。同様に、子形状も、その親形状と無関係に変更することができる。このようにして、複合形状の任意の部分は、他の部分と無関係に変更することができる。このプロセスに関する追加的な詳細については下記で述べる。
【0032】
次いで図5を参照すると、形状とそれに関連付けられたテキストについて、その形状がそのテキスト取り囲むことを確実にするように変更されることを可能とすることに関する追加的な詳細を説明する。詳細には、図5に形状50Fを示す。形状50Fは、関連付けられたテキスト52Dを有する。形状50Fは、内側の余白58、縦方向の大きさ56、および横方向の大きさ54も含む。下記でより詳しく述べるように、形状50Fの縦方向と横方向の大きさは、テキスト52Dが形状内に完全にフィットするように変更されることができる。同様に、内側の余白58も、テキスト52Dが形状50F内にフィットするように、指定に従って変更されることができる。フォント・サイズやテキストの位置揃えなどのテキスト52Dの属性も、テキスト52Dを形状50F内にフィットさせるために変更されることができる。本発明で提供されるアルゴリズムは、任意の幾何学的形状を範囲とする、ひとまとまりのテキストに利用できることを理解されたい。
【0033】
下記でより詳しく説明するように、グラフィック定義ファイル40は、形状50Fとテキスト52Dのどの属性が、テキスト52Dをフィットさせようとする際に変更されるべきかと、それらが変更される際の順序を定義する制約規則を含む。図5に示し、ここで説明する形状50Fとテキスト52Dの属性は、例示的なものに過ぎず、形状についての他の属性が、その形状内にテキスト52Dをフィットさせようとする際に変更されることができることを理解されたい。制約と制約規則は、形状ごとに指定されることができることも理解されたい。制約と制約規則は、形状の集合に対して指定されることもできる。
【0034】
次いで図6を参照して、例示的なグラフィック定義ファイル40の一部のコンテンツを説明する。詳細には、グラフィック定義ファイル40は、1つまたは複数の制約60を備える。制約60は、形状とその形状の中のテキストがどのように配置されるべきかを記述する初期値を備える。例えば、図6に示す制約60は、形状の幅を1.5インチ(3.81cm)に設定する制約を含んでいる。別の制約が、形状の高さを幅×0.667に設定する。さらに別の制約が、親形状のテキストサイズを36ポイントに設定し、別の制約が、子形状のテキストサイズを36ポイントに設定する。これらの制約が、形状とそれに関連付けられたテキストを初めに配置するのに使用される。ファイル40内に複数のパラメータも指定することができる。
【0035】
グラフィック定義ファイルは、1つまたは複数の制約規則62も含む。制約規則62は、制約のセットがレイアウト・アルゴリズムで満たされることができない場合に制約のセットをどのように変更するかの記述である。例えば、図6に示す制約規則62は、形状の幅を0.25インチ(0.64cm)刻みで3インチ(7.62cm)まで増すことができることを示す第1の制約規則を含む。この第1の制約規則を適用した結果、テキストが形状内にフィットしない場合は、次の制約規則が適用される。次の制約規則は、形状の高さを形状の幅の1.5倍まで増してよいことを示す。この制約規則が、テキストの良好なフィッティングをもたらさない場合は、残りの制約規則がなくなるまで、次の規則が順に適用される。図6に示す他の制約規則それぞれは、親テキストのフォント・サイズを最小で16ポイントまで下げ、子テキストのフォント・サイズを最小で16ポイントまで下げ、高さを最高で3インチ(7.62cm)まで増し、親テキストのサイズを4ポイントまで下げる。ファイル40に明確に定義されない制約にはデフォルト値が利用されることができることは理解されたい。
【0036】
次いで図7を参照して、初期の制約と制約規則を定義するプロセスを例示する例示的ルーチン700を説明する。ここに述べるルーチンの解説を読む際には、本発明の各種実施形態の論理的動作は、(1)コンピュータによって実施される行為(acts)のシーケンス、またはコンピュータ・システムで実行されるプログラム・モジュールのシーケンスとして、かつ/または(2)コンピューティング・システム内の相互に接続された機械論理回路または回路モジュールとして、実装されることを理解されたい。この実装は、本発明を実装するコンピューティング・システムのパフォーマンス要件に応じて選択する事柄である。したがって、図7および8に示し、ここに記載される本発明の実施形態を構成する論理的動作(logical operations)は、動作(operations)、構造的デバイス、行為(acts)、モジュール等と様々に称される。当業者には、これらの動作、構造的デバイス、行為、およびモジュールは、特許請求の範囲で述べられる本発明の主旨および範囲から逸脱することなく、ソフトウェア、ファームウェア、特殊目的デジタル・ロジック、およびそれらの組み合わせとして実装されることが可能であることが認識されよう。
【0037】
ルーチン700は、動作(operation)702で開始し、初期の制約値が定義される。次いでルーチン700は動作704に進み、制約規則が定義される。動作704からルーチン700は動作706に進み、制約値と制約規則がグラフィック定義ファイル40に記憶される。ルーチン700は次いで動作708に進み、終了する。
【0038】
次いで図8Aおよび8Bを参照して、形状にテキストをフィットさせる例示的ルーチン800を説明する。ルーチン800は、新しいグラフィックを作成する要求が受け取られた場合に動作802で開始する。この場合は、新しいグラフィックを挿入する要求が動作802で受け取られる。ルーチン800は次いで動作804に進み、新しいグラフィックのタイプの選択が受け取られる。ルーチン800は次いで動作806に進み、グラフィック内に初期の形状が配置される。この形状は、初期の制約に従って配置することができる。動作806からルーチン800は動作808に進み、これらの形状内に配置するテキストが受け取られる。次いでルーチン800は、下記で説明する動作814に進む。
【0039】
グラフィック・タイプが変更される場合は、ルーチン800は、動作810で開始する。この場合は、新しいグラフィックのタイプの選択が動作810で受け取られる。動作810から、ルーチン800は、下記で説明する動作814に進む。
【0040】
動作814で、テキストのコンテンツがそのグラフィック内の各形状にマップされる。ルーチン800は次いで動作816に進み、初期の制約がそれらの形状に適用される。それらの形状にはパラメータも適用されることができる。例えば、テキストの色を変えてもテキストのサイズあるいは位置は変わらないので、色はパラメータとすることができる。動作816からルーチン800は動作818に進む。
【0041】
動作818で、テキストが各形状内にフィットするかどうかが決定される。テキストがフィットしない場合は、ルーチン800は動作820に進み、グラフィック定義ファイルに処理するためのさらなる制約規則があるかどうかが決定される。処理する制約規則がさらにある場合、ルーチンは動作822に進む。動作822で、次の制約規則がグラフィック定義ファイルから読み出される。ルーチン800は次いで動作824に進み、制約規則で指定される値のセットを検索して、そのテキストに対する最良の適合値を決定する。例えば、初期の制約が形状の幅を1.5インチ(3.81cm)とし、制約規則が幅を3インチ(7.62cm)の上限まで増してよいことを指定する場合には、検索を行って、テキストを形状内にフィットさせる1.5インチ(3.81cm)から3インチ(7.62cm)の間の最も小さい値を特定する。一実施形態によれば、二分探索が利用される。ただし、検索アルゴリズムに加えて、テキストを最適にフィットさせる値、最良の適合値を特定するために他のタイプのアルゴリズムが利用されてよいことは理解されたい。
【0042】
本発明の一実施形態によれば、一部変更された二分探索アルゴリズムを利用して、うまく行く値が見つかった後も、開始値により近い値を探し続けることを理解されたい。このプロセスは、テキストをフィットさせる最初の結果が、それより後のフィットすることをもたらす値の所定の閾値内に入るまで継続する。このようにしてテキストを最適な形でフィットさせる値、最良の適合値を見つけることができる。
【0043】
現在の制約規則を利用して最良の適合値の検索が行われると、方法800は動作818に戻り、テキストが形状にフィットするかどうかについて再度決定が行われる。テキストがフィットしない場合は、動作820、822、824に関して上記のプロセスが繰り返される。テキストがフィットする場合は、ルーチン800は動作818から動作828に分岐する。
【0044】
一実施形態によれば、検索ルーチンで、オーバーフローしたテキストを有する形状の最適な形でフィットする値として特定された値は、他の形状に伝搬されることができることを理解されたい。このようにして、統一性のために、関連する形状のサイズが変更され、それにより、ユーザが関連する形状のサイズを手動で変更せずに済むようにすることができる。
【0045】
動作828で、グラフィック内のコンテンツのサイズあるいは位置に変更があったかどうかが決定される。変更がない場合は、ルーチン800は動作832に分岐し、終了する。変更がある場合は、ルーチン800は動作826に分岐し、グラフィック内の形状にマップする新しいコンテンツがあるかどうかが決定される。マップする新しいコンテンツがある場合、ルーチン800は動作826から上記の動作814に分岐する。マップする新しいコンテンツがない場合、ルーチンは動作826から上記の動作816に分岐する。
【0046】
動作820で処理すべき制約規則がそれ以上ないと決定される場合は、ルーチン800は動作820から動作830に分岐する。動作830で、テキストが形状の外にはオーバーフローしないようにすることが保証された、あらかじめ定義された規則が形状に適用される。例えば、本発明の一実施形態によれば、テキストを切り詰めて、この切り詰めを知らせるためにテキストの最後に省略記号(...)が加えられることができる。残りの(切り詰められた)テキストが形状内に完全にフィットするのに十分なテキストが切り詰められることができる。テキストが形状の外にオーバーフローしないようにすることを保証された他のタイプの規則が適用されることができる。動作830からルーチン800は上記の動作828に分岐する。
【0047】
前述の記載に基づき、本発明の各種実施形態は、グラフィック内の形状にテキストをフィットさせる方法およびコンピュータ可読媒体を含むことが理解されよう。上記の詳細な説明、例、およびデータは、本発明の製造と構成の使用についての完全な説明を提供する。本発明の実施形態の多くは、本発明の主旨および範囲から逸脱することなくなされることができるので、本発明は、頭記の特許請求の範囲内に属する。
【特許請求の範囲】
【請求項1】
グラフィック中の少なくとも1つの形状にテキストをフィットさせる方法であって、
前記形状にテキストをフィットさせるための、少なくとも1つの初期の制約と少なくとも1つの制約規則を、前記形状に対して定義するステップ、
前記制約を前記形状に適用して、前記形状内にテキストをフィットさせることを試みるステップ、
前記テキストが前記形状内にフィットしなかったことが検出されたならば、前記テキストがフィットしなかったことの検出に応答して、前記制約規則を適用して前記制約を変更するステップ、および、
前記変更された制約を前記グラフィック内の関連する形状に再適用して、前記グラフィックの新しいレイアウトを作成するステップ
を備えることを特徴とする方法。
【請求項1】
グラフィック中の少なくとも1つの形状にテキストをフィットさせる方法であって、
前記形状にテキストをフィットさせるための、少なくとも1つの初期の制約と少なくとも1つの制約規則を、前記形状に対して定義するステップ、
前記制約を前記形状に適用して、前記形状内にテキストをフィットさせることを試みるステップ、
前記テキストが前記形状内にフィットしなかったことが検出されたならば、前記テキストがフィットしなかったことの検出に応答して、前記制約規則を適用して前記制約を変更するステップ、および、
前記変更された制約を前記グラフィック内の関連する形状に再適用して、前記グラフィックの新しいレイアウトを作成するステップ
を備えることを特徴とする方法。
【図1】
【図2A】
【図2B】
【図3A】
【図3B】
【図4】
【図5】
【図6】
【図7】
【図8A】
【図8B】
【図2A】
【図2B】
【図3A】
【図3B】
【図4】
【図5】
【図6】
【図7】
【図8A】
【図8B】
【公開番号】特開2012−104117(P2012−104117A)
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願番号】特願2011−245199(P2011−245199)
【出願日】平成23年11月9日(2011.11.9)
【分割の表示】特願2006−64583(P2006−64583)の分割
【原出願日】平成18年3月9日(2006.3.9)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願日】平成23年11月9日(2011.11.9)
【分割の表示】特願2006−64583(P2006−64583)の分割
【原出願日】平成18年3月9日(2006.3.9)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】
[ Back to top ]