(57)【要約】【課題】複数のコラムレイアウトを生成するコンピュータにおいて実施される方法およびコンピュータ読取り可能媒体を提供する。【解決手段】本方法によると、２つ以上のコラム、およびそのコラムのうち２つ以上にわたって延長された１つまたは複数のスパンを含むレイアウトが定義される。各スパンは、コンテンツ定義または高さ定義のものとして定義される。コンテンツは、定義された高さに達するまで、高さ定義の各スパン中に文書からレイアウトされる。コンテンツは、コンテンツ中の指定された点に達するまで、コンテンツ定義の各スパン中に文書からレイアウトされる。コンテンツ定義または高さ定義スパンがすべてレイアウトされると、コンテンツの残りの部分がコラムのすべてにわたってレイアウトされる。【選択図】図２
2006178963.tif 000002
【特許請求の範囲】
【請求項１】
複数のコラムレイアウトを生成するコンピュータにより実施される方法であって、
文書の一部に対するレイアウトを定義するステップであって、前記レイアウトは２つ以上のコラム、ならびに前記コラムのうち２つ以上にわたって延長された１つまたは複数のスパンを含み、前記スパンのそれぞれはコンテンツ定義または高さ定義として定義されることと、
高さ定義として定義された各スパン中に、前記スパンに対して指定された高さに達するまで前記文書からコンテンツをレイアウトするステップと、
コンテンツ定義として定義された各スパン中に、前記コンテンツ中の指定された点に達するまで前記文書からコンテンツをレイアウトするステップと、
を備えることを特徴とする方法。
【請求項２】
コンテンツ定義または高さ定義として定義されたすべての前記スパン中に、コンテンツがレイアウトされたかどうかを判定するステップと、
すべての前記コンテンツ定義および前記高さ定義スパン中に、コンテンツがレイアウトされたとの判定に応答して、前記コンテンツの残りの部分を前記コラムのすべてにわたってレイアウトするステップと、
をさらに備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記コンテンツの残りの部分を前記コラムのすべてにわたってレイアウトする前記ステップは、前記コラムのすべてにわたって前記コンテンツの前記残りの部分のコラムバランスをとるステップを含むことを特徴とする請求項２に記載の方法。
【請求項４】
クライアントアプリケーションが、前記レイアウトおよび前記スパンを定義し、レイアウトマネージャが、前記コンテンツをレイアウトし、レイアウト結果を前記クライアントアプリケーションに戻すことを特徴とする請求項３に記載の方法。
【請求項５】
コンピュータによって実行されたとき、
文書の一部に対するレイアウトを定義するステップであって、前記レイアウトは２つ以上のコラム、ならびに前記コラムのうち２つ以上にわたって延長された１つまたは複数のコンテンツスパンを含み、前記スパンのそれぞれはコンテンツ定義または高さ定義として定義されることと、
高さ定義として定義された各スパン中に、前記スパンに対して指定された高さに達するまで前記文書からコンテンツをレイアウトするステップと、
コンテンツ定義として定義された各スパン中に、前記コンテンツ中の指定された点に達するまで前記文書からコンテンツをレイアウトするステップと、
を前記コンピュータに実行させるコンピュータ実行可能命令がその上に記憶されていることを特徴とするコンピュータ読取り可能媒体。
【請求項６】
コンピュータによって実行されたとき、
コンテンツ定義または高さ定義として定義されたすべての前記スパン中に、コンテンツがレイアウトされたかどうか判定するステップと、
すべての前記コンテンツ定義および前記高さ定義スパン中に、コンテンツがレイアウトされたとの判定に応答して、前記コンテンツの残りの部分を前記コラムのすべてにわたってレイアウトするステップと、
を前記コンピュータに実行させるさらなるコンピュータ実行可能命令がその上に記憶されていることを特徴とする請求項５に記載のコンピュータ読取り可能媒体。
【請求項７】
前記コンテンツの残りの部分を前記コラムのすべてにわたってレイアウトする前記ステップは、前記コラムのすべてにわたって前記コンテンツの前記残りの部分のコラムバランスをとることを含むことを特徴とする請求項６に記載のコンピュータ読取り可能媒体。
【請求項８】
クライアントアプリケーションが、前記レイアウトおよび前記スパンを定義し、レイアウトマネージャが、前記コンテンツをレイアウトし、レイアウト結果を前記クライアントアプリケーションに戻すことを特徴とする請求項７に記載のコンピュータ読取り可能媒体。
【請求項９】
複数のコラムレイアウトを生成するコンピュータにより実施される方法であって、
文書内のコンテンツに対するレイアウトの定義を、クライアントアプリケーションから受け取るように動作するレイアウトマネージャを提供するステップであって、前記レイアウトは、２つ以上のコラム、ならびに前記コラムのうち２つ以上にわたって延長された１つまたは複数のスパンを含み、前記スパンのそれぞれはコンテンツ定義または高さ定義としてクライアントアプリケーションによってそれぞれが定義され、また、前記レイアウトマネージャは、前記定義に従って文書からコンテンツをレイアウトするための要求を前記クライアントアプリケーションプログラムから受け取るように動作することを備え、
前記レイアウトマネージャは、前記コンテンツを、高さ定義として定義された各スパン中に、前記スパンに対して指定された高さに達するまで前記文書からレイアウトし、コンテンツ定義として定義された各スパン中に前記コンテンツを前記コンテンツ中の指定された点に達するまで前記文書からレイアウトし、また前記レイアウトを前記クライアントアプリケーションプログラムに戻すようにさらに動作可能であることを特徴とする方法。
【請求項１０】
前記レイアウトマネージャは、
前記コンテンツが、前記クライアントアプリケーションプログラムによりコンテンツ定義または高さ定義として定義されたすべての前記スパン中にレイアウトされたかどうかを判定し、
コンテンツがすべての前記コンテンツ定義および高さ定義スパン中にレイアウトされたとの判定に応答して、前記コンテンツの残りの部分を前記コラムのすべてにわたってレイアウトするように、
さらに動作可能であることを特徴とする請求項９に記載の方法。
【請求項１１】
前記コンテンツの残りの部分を前記コラムのすべてにわたってレイアウトすることは、前記コラムのすべてにわたって前記コンテンツの前記残りの部分のコラムバランスをとることを含むことを特徴とする請求項１０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の諸実施形態は、一般に文書処理の分野に関し、より詳細には、文書コンテンツのマルチコラムレイアウトの分野に関する。
【背景技術】
【０００２】
現在のデスクトップパブリッシングおよびワードプロセッシングアプリケーションプログラムを用いことにより、ユーザは複雑な文書レイアウトを作成することができる。例えば、テキスト、グラフィックス、表、脚注、巻末の注、組み込まれたオブジェクト、および実質的にエンドレスに配列された他のタイプのオブジェクトを含む文書を作成することができる。文書コンテンツはまた、視覚的に訴える文書を作成するように構成することができる。例えば、魅力的なレイアウトを作成するために、テキストを文書中の様々な種類のオブジェクトで包むことができる。さらに、テキストは、そのテキストおよび他の文書オブジェクトを複数の垂直なコラム（段）にわたってレイアウトすることにより、複数のコラム中に書式設定することもできる。マルチコラム（段組み）文書レイアウトは読みやすく、新聞や雑誌において一般に使用されている。
【０００３】
従来のデスクトップおよびワードプロセッシングアプリケーションプログラムは、マルチコラムレイアウトで文書を作成することができるが、その機能は大幅に制限されている。具体的には、従来のアプリケーションは、ユーザにレイアウト内で使用すべきコラム数と、各コラムの幅を指定させるだけであった。アプリケーションプログラムは、次いで、その文書コンテンツを指定された数のコラム中に表示する。
【０００４】
新聞や雑誌の業界内においては、より複雑なマルチコラムレイアウトが長い間利用されてきた。例えば、見出し、副見出し、または導入部が複数のコラムにわたる場合、マルチコラムレイアウトが使用されている。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、このような複雑なマルチコラムレイアウトでは、通常、手動で活字が組まれている。それは、うんざりするまた時間のかかるプロセスである。このような複雑なマルチコラムレイアウトの場合、現在のワードプロセッシングおよびデスクトップパブリッシングアプリケーションプログラムは、ユーザにページのレイアウトを手動で定義するように求める。次いで、そのプログラムは、手動で定義されたレイアウト中にコンテンツを書式設定する。しかし、これらのプログラムは、文書の構成要素のプロパティおよび制約を用いてページ間におけるコンテンツの実際の分配を計算することができず、各ページに対してコンテンツを自動的にレイアウトすることができない。
【０００６】
これらのおよび他の考慮に関して、本発明の様々な実施形態が考えられた。
【課題を解決するための手段】
【０００７】
本発明によれば、上記および他の問題は、マルチコラムレイアウトを生成するためのコンピュータにより実施される方法およびコンピュータ読取り可能媒体によって解決される。本発明の諸実施形態を介して、文書コンテンツが複数のコラムにわたることができるレイアウトなど、複雑なマルチコラムレイアウトを作成することができる。
【０００８】
本発明の一態様によると、マルチコラムレイアウトを生成するコンピュータにより実施される方法が提供される。本方法によると、文書の一部分に対して、文書コンテンツをレイアウトするために使用すべきコラム数を定義するレイアウトが定義される。そのレイアウトはまた、複数のコラムのうち２つ以上にわたって延長される１つまたは複数のスパンを識別する。例えば、４つのコラムを含むレイアウトを定義することができる。４つのコラムのすべてにわたって延長された見出しに対するスパンを定義し、３つのコラムにわたって延長された副見出しに対するスパンを定義し、また２つだけのコラムにわたって延長されたテキスト導入部に対する他のスパンを定義することもできる。
【０００９】
本発明の諸実施形態によると、各スパン領域は、コンテンツ定義のスパン領域または高さ定義のスパン領域として定義することができる。コンテンツ定義のスパン領域によると、コンテンツ内の定義された点に達するまで、そのスパン内においてコンテンツがレイアウトされる。この方法では、特定のスパンは、定義された点に出会うまでコンテンツによって満たされる。それは、例えば、見出しまたは副見出しに対して有効である。高さ定義スパン領域を用いると、指定された高さになるまでそのスパン内においてコンテンツがレイアウトされる。この方法では、スパンに対する高さを定義することができ、またコンテンツは、その高さに達するまでスパン内でレイアウトすることができる。これは、例えばテキストの導入部に対して有効である。
【００１０】
本発明の他の諸態様によると、コンテンツ定義の各スパン領域に対するコンテンツは、コンテンツ中の指定された点に達するまでレイアウトされる。高さ定義の各スパン領域に対するコンテンツは、スパンに対して指定された高さに達するまでレイアウトされる。コンテンツ定義および高さ定義スパンのすべてがレイアウトされたとき、残りのコンテンツはすべてのコラムにわたってレイアウトされる。具体的には、すべてのコラムにわたって残りのコンテンツのコラムバランスをとることができる。
【００１１】
本発明の他の諸実施形態によると、ワードプロセッシングアプリケーションまたはデスクトップパブリッシングアプリケーションなどのクライアントアプリケーションに対してコンテンツレイアウト機能を提供するように動作可能なレイアウトマネージャが提供される。レイアウトマネージャは、クライアントアプリケーションから、文書内のコンテンツに対するマルチコラムレイアウトの定義を受け取るように動作可能である。その定義は、マルチコラムレイアウト内で使用すべきコラム数を識別する。その定義はまた、複数のコラムのうち２つ以上にわたって延長された１つまたは複数のスパンを定義する。各スパンはまた、コンテンツ定義または高さ定義のものとして定義される。
【００１２】
レイアウトマネージャはさらに、各スパン中にレイアウトされるコンテンツを、クライアントアプリケーションから受け取るように動作可能である。レイアウトマネージャは、コンテンツ定義の各スパンに対して、コンテンツ中の指定された点に達するまで、コンテンツをレイアウトする。レイアウトマネージャは、高さ定義の各スパンに対して、スパンに対して指定された高さに達するまで、コンテンツをレイアウトする。高さ定義およびコンテンツ定義スパンのすべてがレイアウトマネージャによってレイアウトされたとき、残りのコンテンツはすべてのコラムにわたってレイアウトされる。残りのコンテンツは、レイアウトマネージャによってコラムバランスをとることができる。レイアウトマネージャが、定義されたマルチコラムレイアウトへのコンテンツのレイアウトを完了したとき、表示のためにレイアウト結果をクライアントアプリケーションに戻す。
【００１３】
本発明は、コンピュータプロセス、コンピューティングシステム、またはコンピュータプログラム製品もしくはコンピュータ読取り可能媒体などの製品として実施することができる。コンピュータプログラム製品は、コンピュータシステムによって可読であり、かつコンピュータプロセスを実行する命令のコンピュータプログラムをエンコードしたコンピュータ記憶媒体とすることができる。コンピュータプログラム製品はまた、コンピュータシステムによって読取り可能であり、コンピュータプロセスを実行するためのコンピュータプログラム命令をエンコードした搬送波上の伝播信号とすることができる。
【００１４】
本発明を特徴付けるこれらのおよび様々な他の機能、ならびに利点は、以下の詳細な説明を読み、関連の図面を検討すれば明らかとなろう。
【発明を実施するための最良の形態】
【００１５】
次に図面を参照すると、図面中において同じ番号は同じ要素を表しており、本発明の様々な態様が説明される。具体的には、図１およびそれに対応する議論は、本発明の諸実施形態を実施できる適切なコンピューティング環境の概略の全般的な説明を提供することを意図している。本発明は、パーソナルコンピュータ上のオペレーティングシステムにおいて動作するプログラムモジュールの一般的な文脈中で記述されるが、当業者であれば、本発明を他のタイプのコンピュータシステムおよびプログラムモジュールを組み合わせて実施できることも理解されよう。
【００１６】
一般に、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造、および特定のタスクまたは特定の抽象データ型を実装する他のタイプの構造を含む。さらに、当業者であれば、本発明は、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家庭用電子機器、ミニコンピュータ、メインフレームコンピュータなどを含む他のコンピュータシステム構成において実施できることも理解されよう。本発明はまた、通信ネットワークを介してリンクされた遠隔処理装置によってタスクが実施される分散コンピューティング環境中で実施することもできる。分散コンピューティング環境では、プログラムモジュールは、ローカルと遠隔の両方のメモリストレージ装置中に位置することができる。
【００１７】
次に図１を参照すると、本発明の様々な実施形態で使用されるコンピュータ２のための例示的なコンピュータアーキテクチャが述べられている。図１に示すコンピュータアーキテクチャは、中央処理装置５（「ＣＰＵ」）と、ランダムアクセスメモリ９（「ＲＡＭ」）、読出し専用メモリ１１（「ＲＯＭ」）を含むシステムメモリ７と、メモリをＣＰＵ５に結合するシステムバス１２とを含む従来のデスクトップまたはラップトップコンピュータを示す。起動中などにコンピュータ内の要素間で情報の転送を可能にする基本ルーチンを含む基本入出力システムは、ＲＯＭ１１に記憶されている。コンピュータ２はさらに、オペレーティングシステム１６、アプリケーションプログラム、および他のプログラムモジュールを記憶するための大容量記憶装置１４を含み、以下これをより詳細に説明する。
【００１８】
大容量記憶装置１４は、システムバス１２に接続されている大容量記憶制御装置（図示せず）を介してＣＰＵ５に接続されている。大容量記憶装置１４およびその関連するコンピュータ読取り可能媒体は、コンピュータ２に対して不揮発性のストレージを提供する。本明細書に含まれるコンピュータ読取り可能媒体の説明は、ハードディスクまたはＣＤ−ＲＯＭドライブなどの大容量記憶装置を指しているが、当業者ならコンピュータ読取り可能媒体は、コンピュータ２によってアクセスできる任意の利用可能な媒体とすることができることを理解されたい。
【００１９】
例として、それだけに限らないが、コンピュータ読取り可能媒体は、コンピュータ記憶媒体および通信媒体とすることができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術で実施される、揮発性および不揮発性、取外し可能および取外し不能媒体を含む。コンピュータ記憶媒体は、それだけに限らないが、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、もしくは他の固体素子メモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ、もしくは他の光記憶媒体、磁気カセット、磁気テープ、磁気記憶媒体、もしくは他の磁気記憶装置、あるいは所望の情報を記憶するために使用でき、コンピュータ２によってアクセスできる他の任意の媒体を含む。
【００２０】
本発明の様々な実施形態によると、コンピュータ２は、インターネットなどのネットワーク１８を介して遠隔コンピュータへの論理的接続を用いて、ネットワーク化環境中において動作することができる。コンピュータ２は、バス１２に接続されたネットワークインターフェースユニット２０を介して、ネットワーク１８に接続することができる。ネットワークインターフェースユニット２０はまた、他のタイプのネットワークおよび遠隔コンピュータシステムに接続するために使用できることを理解されたい。コンピュータ２はまた、キーボード、マウス、または電子スタイラス（図１に示さず）を含むいくつかの他の装置から入力を受け取り、処理するための入出力制御装置２２を含むことができる。同様に、入出力制御装置２２は、表示画面、プリンタ、または他のタイプの出力装置への出力を備えることができる。
【００２１】
上記で簡単に述べたように、米国ワシントン州レドモンドのＭＩＣＲＯＳＯＦＴ  ＣＯＲＰＯＲＡＴＩＯＮ（マイクロソフト社）からのＷＩＮＤＯＷＳ（登録商標）ＸＰオペレーティングシステムなど、ネットワーク化されたパーソナルコンピュータのオペレーションを制御するのに適切なオペレーティングシステム１６を含む、いくつかのプログラムモジュールおよびデータファイルは、コンピュータ２の大容量記憶装置１４およびＲＡＭ９に記憶することができる。大容量記憶装置１４およびＲＡＭ９はまた、１つまたは複数のプログラムモジュールを記憶することができる。具体的には、大容量記憶装置１４およびＲＡＭ９は、ワードプロセッシングアプリケーションプログラム１０を記憶することができる。当業者には周知のように、ワードプロセッシングアプリケーションプログラム１０は、文書２４などの電子文書を作成し、編集する機能を提供するように動作可能である。本発明の一実施形態によると、ワードプロセッシングアプリケーションプログラム１０は、マイクロソフト社からのＭＩＣＲＯＳＯＦＴ  ＷＯＲＤワードプロセッシングアプリケーションプログラムを含む。しかし、他の製造者からの他のワードプロセッシングアプリケーションプログラムを、本発明の様々な態様を実施するのに使用できることを理解されたい。文書のレイアウト機能を実装する他のタイプのアプリケーションプログラムを本発明の諸態様で使用できることもまた理解されたい。例えば、本発明の諸実施形態は、デスクトップパブリッシングプログラム、プレゼンテーションプログラム、ウェブブラウザ、およびコンテンツを文書ページ上にレイアウトする他の任意のタイプのプログラムにおいて使用することができる。
【００２２】
ワードプロセッシング文書の編集に関連して、ワードプロセッシングアプリケーションプログラム１０は、ユーザが複数のコラムレイアウトを作成できる機能を提供する。具体的には、ユーザは、表、テキストボックス、脚注領域、他の部分など、文書２４のセクションまたは適切なサブパート（ｓｕｂ−ｐａｒｔ）を、複数のコラムに書式設定されたものと定義することができる。次いで、ワードプロセッシングアプリケーションプログラム１０は、要求に応じて文書の一部分をマルチコラム書式に書式設定するように動作可能である。ワードプロセッシングアプリケーションプログラム１０は、レイアウトマネージャ２６と通信して、文書２４の書式設定を支援することができる。以下より詳細に述べるように、レイアウトマネージャ２６は、ワードプロセッシングアプリケーションプログラム１０およびコンピュータ２上で実行される他の任意のプログラムに対して、レイアウトサービスを提供する。より具体的には、レイアウトマネージャ２６は、ワードプロセッシングアプリケーションプログラム１０などのクライアントアプリケーションから、マルチコラムレイアウトの記述（ｄｅｓｃｒｉｐｔｉｏｎ）およびレイアウトすべきコンテンツを受け取る。これに応答して、レイアウトマネージャ２６は、適切なレイアウトを生成し、表示のためにそのレイアウトをクライアントアプリケーションに戻す。レイアウトマネージャ２６のオペレーションに関するさらなる詳細は、図２〜図６に関して以下に提供する。
【００２３】
次に、図２を参照すると、ワードプロセッシングアプリケーションプログラム１０などのクライアントアプリケーションと、レイアウトマネージャ２６との間の対話に関する追加の詳細な説明が提供される。簡単に前述したように、レイアウトマネージャ２６は、アプリケーション１０に文書のレイアウトサービスを提供する。具体的には、アプリケーション１０は、レイアウトマネージャ２６と通信をして、バッキングストア３４に記憶された文書２４の部分のレイアウトを要求することができる。レイアウトマネージャ２６との通信を容易にするために、ワードプロセッシングアプリケーションプログラム１０は、コールバックコード３２として図２に示されている１つまたは複数のコールバックルーチンを実装することができる。コールバックコード３２の使用を通じて、レイアウトマネージャ２６は、文書の様々な部分をレイアウトするのに必要な追加的な情報について、アプリケーションプログラム１０に照会をすることができる。
【００２４】
以下により詳細に示すように、レイアウトマネージャ２６はコンテンツをいくつかの複雑なマルチコラム書式にレイアウトするための機能を提供する。レイアウトマネージャ２６は、アプリケーションプログラム１０からの要求に応答してこれらの機能を提供し、コンテンツをマルチコラム書式にレイアウトする。アプリケーションプログラム１０の文書マネージャ３０は、レイアウトマネージャ２６と通信してコンテンツをマルチコラム書式にレイアウトするよう要求することができる。文書マネージャ３０は、マルチコラム書式において使用されるコラム数を記述する書式の定義を、レイアウトマネージャ２６に提供することができる。文書マネージャ３０はまた、レイアウトマネージャ２６に対してその書式中に含まれる１つまたは複数のスパンを特定する（ｉｄｅｎｔｉｆｙ）ことができる。各スパンは、１つまたは複数のコラムにわたって延長され得る。
【００２５】
文書マネージャ３０はまた、各スパンを高さ定義またはコンテンツ定義のものとして定義することができる。コンテンツ定義のスパン領域では、コンテンツ内の定義された点に達するまで、そのスパン内でコンテンツがレイアウトされる。高さ定義のスパン領域では、コンテンツが指定された高さになるまで、そのスパン内でコンテンツがレイアウトされる。図３および図４において、高さ定義およびコンテンツ定義スパンに関して、さらに詳細に説明する。
【００２６】
文書マネージャ３０はまた、レイアウトマネージャ２６に、マルチコラム書式にレイアウトすべきテキストおよび他のコンテンツを文書から提供することができる。最初に、文書マネージャ３０は、いくつかのコンテンツをレイアウトマネージャ２６に提供することができる。次いで、レイアウトマネージャ２６は、コールバックコード３２に、マルチコラム書式をレイアウトするのに必要となる追加のコンテンツを要求することができる。文書マネージャ３０はまた、レイアウトすべきテキストのスタイルをレイアウトマネージャ２６に示すことができる。例えば、文書マネージャ３０は、書体、サイズ、およびテキストをレイアウトするのに必要な他の情報をレイアウトマネージャ２６に示すことができる。
【００２７】
レイアウトマネージャ２６が、本明細書に記載の方法でマルチコラム書式中にコンテンツをレイアウトさせた後、その書式設定結果（ｆｏｒｍａｔｔｉｎｇ  ｒｅｓｕｌｔ）３６は文書マネージャ３０に戻される。書式設定結果３６の受け取りに応答して、文書マネージャ３０は、アプリケーションプログラム１０によって維持される表示ツリー３８を更新するように動作可能である。表示ツリー３８の変更に基づいて、アプリケーションプログラム１０は、その表示された出力４０を更新して、ユーザに書式設定結果を表示することができる。表示ツリー３８の使用は、例示的なものにすぎず、書式設定結果の表示を更新するために他の方法を使用することもできることを理解されたい。図３〜図６に関して、アプリケーション１０およびレイアウトマネージャ２６のオペレーションに関するさらに詳細な説明をする。
【００２８】
次に図３を参照して、本発明の諸実施形態によって提供される１つのマルチコラムレイアウトを示す画面の図を説明する。図３に示すように、複数のコラムにわたる例示的なマルチコラムレイアウト４２Ａが提供される。具体的には、例示的なマルチコラムレイアウト４２Ａは、４つのコラム４４Ａ〜４４Ｄにわたっている。図３に示すマルチコラムレイアウト４２Ａはまた、いくつかのスパン４６Ａ〜４６Ｃを含む。スパン４６Ａ〜４６Ｃのそれぞれは、高さ定義またはコンテンツ定義とすることができる。例えば、スパン４６Ａは、コンテンツ定義であり、したがって、見出しを４つのコラム４４Ａ〜４４Ｄすべての一番上に位置するようにできる。スパン４６Ｂはまた、コンテンツ定義であり、したがって、副見出しが３つのコラム４４Ａ〜４４Ｃにわたって図示されるようにすることができる。スパン４６Ｃは、高さ定義であり、したがって、コラム４４Ａ〜４４Ｄにレイアウトされる残りのコンテンツへと導くテキストを提供する。図３に示すように、残りのコンテンツはコラム４４Ａ〜４４Ｄにレイアウトすることができる。その残りのコンテンツはまた、コラムバランスがとられており、それによって、コラムが様々な高さのものであったとしても、ほぼ同じ位置で終了することができる。
【００２９】
次に図４を参照して、本発明の諸実施形態によって提供される他のマルチコラムレイアウトを示す画面の図を説明する。図４に示すように、２つのコラム４４Ｅおよび４４Ｆにわたる例示的なマルチコラムレイアウト４２Ｂが提供される。この実施例では、コラム４４Ｅと４４Ｆの両方にわたる１つのスパン４６Ｄだけが定義されている。スパン４６Ｄは、高さ定義スパンとして定義されている。具体的には、スパン４６Ｄに対する高さ４８は、クライアントアプリケーションによって指定されている。以下に詳細に説明するように、レイアウトマネージャ２６は、指定された高さ４８にコンテンツが達するまで、コンテンツをスパン４６Ｄにレイアウトする。次いで、レイアウトマネージャ２６は、コンテンツをコラム４４Ｅおよび４４Ｆに表示するように切り替える。図３に関して前述した実施例と同様に、レイアウトマネージャ２６は、残りのコンテンツのコラムバランスをとり、コラム４４Ｅおよび４４Ｆがほぼ同じ位置で終わるようにする。レイアウトを１つのコラムから複数のコラムに切り替える位置において、フォント変更が行われていることを理解されたい。
【００３０】
図３および図４に示されたマルチコラムレイアウトは、単に例示的なものにすぎず、本発明の様々な実施形態を使用する他の組合せも可能であることを理解されたい。例えば、どんなコラム数でも使用可能であり、不均等な幅も指定でき、また当業者なら周知のレイアウトに他の変更を加えることもできる。
【００３１】
次に図５を参照すると、マルチコラムレイアウトを生成するためのプロセスを示す例示的なルーチン５００が述べられている。本明細書に述べられた本発明の諸実施形態はレイアウトマネージャ２６によって実施されるものとして記載されているが、本発明の様々な態様は、ページレイアウト機能を実施するアプリケーションプログラム中において直接使用することもできることを理解されたい。例えば、本明細書に記載の本発明の諸実施形態を、ワードプロセッシングアプリケーションプログラム１０によって直接実施することもできる。
【００３２】
ここに提示されたルーチンの議論を読むとき、本発明の様々な実施形態の論理オペレーションは、（１）一連の、コンピューティングシステム上で動作しコンピュータで実施される動作またはプログラムモジュールとして、および／または（２）コンピューティングシステム内で相互接続されたマシン論理回路または回路モジュールとして、実装されることを理解されたい。その実装形態は、本発明を実施するコンピュータシステムの性能要件に依存する選択の問題である。したがって、図５〜図６に示された論理オペレーション、ならびに本明細書に記載された本発明の諸実施形態を構成することは、オペレーション、構造化装置、動作、またはモジュールと、様々に呼ばれる。当業者であれば、これらのオペレーション、構造的な装置、動作、およびモジュールが、本明細書に記載の特許請求の範囲内で述べられる本発明の趣旨および範囲を逸脱することなく、ソフトウェア、ファームウェア、特殊目的デジタルロジック、およびそれらの任意の組合せ中においてで実施できることが理解されよう。
【００３３】
オペレーション５０２において、ルーチン５００は開始し、レイアウトマネージャ２６はクライアントアプリケーションから、マルチコラムレイアウトの基本プロパティの記述を受け取る。次いで、ルーチン５００は、オペレーション５０４に進み、クライアントアプリケーションは基本のコラム数への修正を記述する。具体的には、クライアントアプリケーションは、マルチコラムレイアウト中で使用すべきスパンを記述する。各スパンに対して、クライアントアプリケーションはまた、そのスパンをコンテンツ定義とすべきか高さ定義とすべきかを示す。スパンがコンテンツ定義である場合、クライアントアプリケーションは、スパンへの表示を停止するコンテンツ中の特有の点を示す。スパンが高さ定義である場合、クライアントアプリケーションは、そのスパンの特定の高さを示す。次いで、ルーチン５００は、オペレーション５０４からオペレーション５０６に進む。
【００３４】
オペレーション５０６において、クライアントアプリケーションは、コンテンツをレイアウトするために必要な他の任意のパラメータをレイアウトマネージャ２６に示す。例えば、書体およびフォントサイズを含むコンテンツのスタイルをクライアントアプリケーションが指定することができる。次いで、ルーチン５００は、オペレーション５０８に進み、レイアウトマネージャ２６は、第１のスパンから始めて、コンテンツのマルチコラム書式へのレイアウトを開始する。具体的には、オペレーション５２６において、レイアウトマネージャ２６は、現在のスパンがコンテンツ定義スパンかどうかを判定する。現在のスパンがコンテンツ定義スパンである場合、ルーチン５００は、オペレーション５１２に分岐し、レイアウトマネージャ２６は、スパンが終了するまで現在のスパン中にコンテンツをレイアウトする。スパンが終了した後、ルーチン５００はオペレーション５１４に進み、さらなるコンテンツ定義スパンが存在するかどうかについて判定が行われる。コンテンツ定義スパンがさらに存在する場合、ルーチン５００は分岐して５１２に戻り、次のコンテンツ定義スパンがレイアウトされる。追加のコンテンツ定義スパンが何も存在しない場合は、ルーチン５００は、以下に説明するオペレーション５１６に進む。
【００３５】
オペレーション５２６において、レイアウトマネージャ２６が、現在のスパンはコンテンツ定義スパンではないと判定した場合、ルーチン５００はオペレーション５２６からオペレーション５１６に進む。オペレーション５１６において、レイアウトマネージャ２６は、高さ定義スパンが存在するかどうか判定する。１つまたは複数の高さ定義スパンが存在した場合、ルーチン５００は、オペレーション５２４に分岐する。オペレーション５２４において、レイアウトマネージャ２６は、所望の高さに達するまで、現在のスパンをコンテンツで満たす。所望の高さに達した後、ルーチン５００は、オペレーション５２５に進み、さらなる高さ定義スパンが存在するかどうかについて判定が行われる。高さ定義スパンがさらに存在する場合、ルーチン５００は分岐してオペレーション５２４に戻り、次の高さ定義スパンがレイアウトされる。さらなる高さ定義スパンが何も存在しない場合、ルーチン５００は、以下に説明するオペレーション５１８に進む。
【００３６】
オペレーション５１６において、レイアウトマネージャ２６は、高さ定義スパンが何も存在しないと判定した場合、ルーチン５００はオペレーション５１８に進み、レイアウトマネージャ２６は、残りのコンテンツをコラムにレイアウトする。一実施形態では、レイアウトマネージャ２６は、残りのコンテンツのコラムバランスをとる。図６において、残りのコンテンツのコラムバランスをとるための例示的なルーチン６００を説明する。オペレーション５１８からルーチン５００はオペレーション５２０に進み、書式設定結果が、表示のためにレイアウトマネージャ２６からクライアントアプリケーションに戻される。次いで、ルーチン５００はオペレーション５２２に進み、終了する。
【００３７】
オペレーション５２４において、レイアウトされるスパンがさらに残っているかどうかについて判定が行われる。レイアウトされるさらなるスパンが残っている場合、ルーチン５００はオペレーション５１０に分岐し、次のスパンが処理される。具体的には、次のスパンは、上記のように、オペレーション５２６、５１２、５１４、５１６、５１８、５２０、および５２４で処理される。このプロセスは、処理すべき追加のスパンの残りがなくなるまで続けられる。
【００３８】
図５に示すアルゴリズムは、高さ定義スパンをレイアウトする前に、コンテンツ定義スパンがレイアウトされていることを理解されたい。それは、多くの雑誌および新聞において、この方法によりテキストをレイアウトしていることに基づく設計の１つの選択肢である。しかし、本発明の諸実施形態によると、高さ定義スパンを、コンテンツ定義スパンの前にレイアウトすることも可能であり、いくつかのタイプのスパンを混ぜることもできる。
【００３９】
次に、図６を参照すると、指定されたコラム中でコラムバランスをとるための例示的なルーチン６００が述べられている。ルーチン６００は、オペレーション６０２で開始し、レイアウトマネージャ２６が、残りのコンテンツをレイアウトするのに必要なコラムの垂直方向のサイズを見積もる。具体的には、レイアウトマネージャ２６は、各コラム中のコンテンツがほぼ同じ点で終了できるような方式で、残りのコンテンツをレイアウトするのに必要なコラムの垂直方向サイズを見積もる。
【００４０】
レイアウトマネージャ２６がコラムのサイズを見積もった後、ルーチン６００は、オペレーション６０４に進み、レイアウトマネージャ２６は、残りのコンテンツを、おおよそのサイズに合わせたコラム中にレイアウトする。次いで、ルーチン６００は、オペレーション６０６に進み、残りのコンテンツがおおよそのサイズに合わせたコラム内に上手く納まっているか（ｆｉｔ）について判定が行われる。残りのコンテンツが上手く納まっていない場合、ルーチン６００は、オペレーション６０８に分岐し、見積もったコラムサイズをわずかに大きくする。次いで、ルーチン６００は、オペレーション６１１に進み、コンテンツが上手く納まっているかどうかについてもう一度判定が行われる。コンテンツが納まっていない場合、ルーチン６００は、分岐してオペレーション６０８に戻り、コラムの高さを再度大きくする。コンテンツが上手く納まった場合は、ルーチン６００は、以下で論ずるオペレーション６１０に進む。
【００４１】
オペレーション６０６において、レイアウトマネージャ２６が、おおよそのサイズに合わせたコラム内に残りのコンテンツが納まったと判定した場合、ルーチン６００はオペレーション６０５に進み、最も短いラインの高さを減少させる。次いで、ルーチン６００は、オペレーション６０３に進み、すべてのコンテンツがページ上に上手く納まったかどうかについて判定が行われる。コンテンツが上手く納まった場合、ルーチン６００はオペレーション６０５に戻り、最も短いラインの高さを再度減少させる。コンテンツが納まらない場合、ルーチン６００は、オペレーション６０７に進み、すべてのコンテンツが納まっている以前のレイアウトを、最終レイアウトとして使用する。オペレーション６０７から、ルーチン６００はオペレーション６１０に進み、レイアウトマネージャ２６は、おおよそのサイズに合わせたコラム中にコンテンツをレイアウトする。次いで、ルーチン６００は、オペレーション６１２に進み、図５に関して前述したオペレーション５２２に戻る。
【００４２】
本発明の様々な実施形態は、前述の内容に基づいて、マルチコラムレイアウトを生成する方法、システム、装置、およびコンピュータ読取り可能媒体を含むことを理解されたい。本明細書に記載の本発明の諸実施形態はまた、ページ以外の他のタイプの要素内においてマルチコラムレイアウトを提供するのにも使用できることを理解されたい。例えば、マルチコラムレイアウトを、セクション、テキストボックス、表のセル、および脚注内において生成することができる。
【００４３】
上記の明細、実施例、およびデータは、本発明の構成の製造および使用に関する完全な説明を提供している。本発明の多くの実施形態を本発明の趣旨および範囲を逸脱することなく行うことができるので、本発明は添付の特許請求の範囲にある。
【図面の簡単な説明】
【００４４】
【図１】本発明の様々な実施形態中で使用され、様々な実施形態により提供されるコンピュータシステムを示すコンピュータシステムアークテクチャの図である。
【図２】本発明の諸実施形態中で使用されるいくつかのソフトウェアコンポーネントの諸態様を示すソフトウェアアーキテクチャの図である。
【図３】本発明の諸実施形態によって提供されるいくつかのマルチコラムレイアウトを示す画面の図である。
【図４】本発明の諸実施形態によって提供されるいくつかのマルチコラムレイアウトを示す画面の図である。
【図５】本発明の様々な実施形態によるマルチコラムレイアウトを生成するための例示的プロセスを示すフロー図である。
【図６】本発明の様々な実施形態によるマルチコラムレイアウトを生成するための例示的プロセスを示すフロー図である。
【符号の説明】
【００４５】
２    コンピュータ
１０  ワードプロセッシングアプリケーションプログラム
３０  ドキュメントマネージャ
２６  レイアウトマネージャ
【図１】
2006178963.tif 000003
【図２】
2006178963.tif 000004
【図３】
2006178963.tif 000005
【図４】
2006178963.tif 000006
【図５】
2006178963.tif 000007
【図６】
2006178963.tif 000008