(57)【要約】【課題】入力されるオブジェクトの量が変わっても、審美性に優れた、バランスの取れた配置を有するオブジェクトを含む文書を作成すること。【解決手段】本発明は、テキストを示すデータであるオブジェクトを取得するオブジェクト取得手段と、オブジェクト取得手段により取得されたオブジェクトに含まれるテキストが配置される方向である配置方向を取得する配置方向取得手段と、隣り合う２辺の長さの比が黄金比である第１の黄金矩形の領域内に、テキストを配置する仮レイアウト手段と、第１の黄金矩形の領域内に配置されたテキストの量に基づいて、配置方向と垂直な辺の位置を決定する位置決定手段と、１辺が位置決定手段により決定された位置にある第２の黄金矩形を生成する黄金矩形生成手段と、配置方向と垂直な方向において、テキストが第２の黄金矩形内に収まるようにテキストの配置を変更する配置変更手段とを有する文書編集装置を提供する。【選択図】図１
2008065587.tif 000002
【特許請求の範囲】
【請求項１】
テキストを示すデータであるオブジェクトを取得するオブジェクト取得手段と、
前記オブジェクト取得手段により取得されたオブジェクトに含まれるテキストが配置される方向である配置方向を取得する配置方向取得手段と、
隣り合う２辺の長さの比が黄金比である第１の黄金矩形の領域内に、前記テキストを配置する仮レイアウト手段と、
前記第１の黄金矩形の領域内に配置されたテキストの量に基づいて、前記配置方向と垂直な辺の位置を決定する位置決定手段と、
一辺が前記位置決定手段により決定された位置にある第２の黄金矩形を生成する黄金矩形生成手段と、
前記配置方向と垂直な方向において、前記テキストが前記第２の黄金矩形内に収まるように前記テキストの配置を変更する配置変更手段と
を有する文書編集装置。
【請求項２】
前記テキストが、前記第１の領域内において複数行または複数列にわたって配置され、
前記位置決定手段が、前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置に基づいて、前記配置方向と垂直な辺の位置を決定する
ことを特徴とする請求項１に記載の文書編集装置。
【請求項３】
前記位置決定手段が、前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置の最頻値に基づいて、前記配置方向と垂直な辺の位置を決定する
ことを特徴とする請求項２に記載の文書編集装置。
【請求項４】
前記位置決定手段が、前記テキストのすべての行または列の文字数に基づいて、前記配置方向と垂直な辺の位置を決定する
ことを特徴とする請求項２に記載の文書編集装置。
【請求項５】
前記位置決定手段が、前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置との一致度が最大になるように、前記配置方向と垂直な辺の位置を決定する
ことを特徴とする請求項２に記載の文書編集装置。
【請求項６】
少なくとも１つの特定の文字を示す識別子を記憶する記憶手段をさらに有し、
前記位置決定手段が、前記テキストの行または列の先頭または末尾の少なくとも一方の文字が前記記憶手段に記憶された識別子により示される文字と一致するときは、その文字を除外して前記配置方向と垂直な辺の位置を決定する
ことを特徴とする請求項２に記載の文書編集装置。
【請求項７】
前記テキストが、前記第１の領域内において複数行または複数列にわたって配置され、
前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置の分布が、あらかじめ決められた条件を満たすか判断する判断手段をさらに有し、
前記判断手段により前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置の分布が前記条件を満たすと判断された場合、前記位置決定手段が、前記第１の黄金矩形の１辺の位置を前記配置方向と垂直な辺の位置として決定し、かつ、前記黄金矩形生成手段が、前記第１の黄金矩形と同一の矩形を前記第２の黄金矩形として生成する
ことを特徴とする請求項１に記載の文書編集装置。
【請求項８】
前記オブジェクトを含むデータである文書において前記オブジェクトが配置される領域であるレイアウト領域を示す情報であるレイアウト領域情報を取得するレイアウト領域取得手段と、
前記レイアウト領域取得手段により取得されたレイアウト領域情報により示されるレイアウト領域に、前記第２の黄金矩形に基づいて前記オブジェクトを配置する配置手段と
をさらに有する請求項１〜７のいずれかの項に記載の文書編集装置。
【請求項９】
コンピュータ装置を、
テキストを示すデータであるオブジェクトを取得するオブジェクト取得手段と、
前記オブジェクト取得手段により取得されたオブジェクトに含まれるテキストが配置される方向である配置方向を取得する配置方向取得手段と、
隣り合う２辺の長さの比が黄金比である第１の黄金矩形の領域内に、前記テキストを配置する仮レイアウト手段と、
前記第１の黄金矩形の領域内に配置されたテキストの量に基づいて、前記配置方向と垂直な辺の位置を決定する位置決定手段と、
１辺が前記位置決定手段により決定された位置にある第２の黄金矩形を生成する黄金矩形生成手段と、
前記配置方向と垂直な方向において、前記テキストが前記第２の黄金矩形内に収まるように前記テキストの配置を変更する配置変更手段と
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書を編集する際にレイアウトを自動的に行う技術に関する。
【背景技術】
【０００２】
データ化されたテキスト（文字列）または画像などのオブジェクト（デジタルコンテンツ）を含む文書を編集する技術が知られている。例えば特許文献１には、規定のテキスト領域にテキストを配置する技術が開示されている。また、特許文献２〜５には、人間に美しいと感じられる、審美性に優れた、またはバランスの取れた配置で文書を作成あるいはその支援をする技術が開示されている。
【０００３】
【特許文献１】特開２００２−２９７５７１号公報
【特許文献２】特開平８−１８００３７号公報
【特許文献３】特開平１０−２８９２６２号公報
【特許文献４】特開平１０−３０１９８０号公報
【特許文献５】特開２０００−２００３５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ここで、規定の領域にオブジェクトを配置するだけでは、生成される文書の審美性あるいは配置のバランスは配置されるオブジェクトの量によって変わってしまうという問題があった。
本発明は、入力されるオブジェクトの量が変わっても、審美性に優れた、バランスの取れた配置を有するオブジェクトを含む文書を作成する技術を提供する。
【課題を解決するための手段】
【０００５】
上述の課題を解決するため、本発明は、テキストを示すデータであるオブジェクトを取得するオブジェクト取得手段と、前記オブジェクト取得手段により取得されたオブジェクトに含まれるテキストが配置される方向である配置方向を取得する配置方向取得手段と、隣り合う２辺の長さの比が黄金比である第１の黄金矩形の領域内に、前記テキストを配置する仮レイアウト手段と、前記第１の黄金矩形の領域内に配置されたテキストの量に基づいて、前記配置方向と垂直な辺の位置を決定する位置決定手段と、１辺が前記位置決定手段により決定された位置にある第２の黄金矩形を生成する黄金矩形生成手段と、前記配置方向と垂直な方向において、前記テキストが前記第２の黄金矩形内に収まるように前記テキストの配置を変更する配置変更手段とを有する文書編集装置を提供する。この文書編集装置によれば、入力されるオブジェクトの量に応じて、審美性に優れた、バランスの取れた配置を有するオブジェクトを含む文書を作成することができる。
【０００６】
好ましい態様において、この文書編集装置は、前記テキストが、前記第１の領域内において複数行または複数列にわたって配置され、前記位置決定手段が、前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置に基づいて、前記配置方向と垂直な辺の位置を決定してもよい。
【０００７】
別の好ましい態様において、この文書編集装置は、前記位置決定手段が、前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置の最頻値に基づいて、前記配置方向と垂直な辺の位置を決定してもよい。
【０００８】
さらに別の好ましい態様において、この文書編集装置は、前記位置決定手段が、前記テキストの各行の文字数に基づいて、前記配置方向と垂直な辺の位置を決定してもよい。
【０００９】
さらに別の好ましい態様において、この文書編集装置は、前記位置決定手段が、前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置との一致度が最大になるように、前記配置方向と垂直な辺の位置を決定してもよい。
【００１０】
さらに別の好ましい態様において、この文書編集装置は、少なくとも１つの特定の文字を示す識別子を記憶する記憶手段をさらに有し、前記位置決定手段が、前記テキストの行または列の先頭または末尾の少なくとも一方の文字が前記記憶手段に記憶された識別子により示される文字と一致するときは、その文字を除外して前記配置方向と垂直な辺の位置を決定してもよい。
【００１１】
さらに別の好ましい態様において、この文書編集装置は、前記テキストが、前記第１の領域内において複数行または複数列にわたって配置され、前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置の分布が、あらかじめ決められた条件を満たすか判断する判断手段をさらに有し、前記判断手段により前記テキストのすべての行または列についての先頭または末尾の少なくとも一方の文字の位置の分布が前記条件を満たすと判断された場合、前記位置決定手段が、前記第１の黄金矩形の１辺の位置を前記配置方向と垂直な辺の位置として決定し、かつ、前記黄金矩形生成手段が、前記第１の黄金矩形と同一の矩形を前記第２の黄金矩形として生成してもよい。
【００１２】
さらに別の好ましい態様において、この文書編集装置は、前記オブジェクトを含むデータである文書において前記オブジェクトが配置される領域であるレイアウト領域を示す情報であるレイアウト領域情報を取得するレイアウト領域取得手段と、前記レイアウト領域取得手段により取得されたレイアウト領域情報により示されるレイアウト領域に、前記第２の黄金矩形に基づいて前記オブジェクトを配置する配置手段とをさらに有してもよい。
【００１３】
また、本発明は、コンピュータ装置を、テキストを示すデータであるオブジェクトを取得するオブジェクト取得手段と、前記オブジェクト取得手段により取得されたオブジェクトに含まれるテキストが配置される方向である配置方向を取得する配置方向取得手段と、隣り合う２辺の長さの比が黄金比である第１の黄金矩形の領域内に、前記テキストを配置する仮レイアウト手段と、前記第１の黄金矩形の領域内に配置されたテキストの量に基づいて、前記配置方向と垂直な辺の位置を決定する位置決定手段と、１辺が前記位置決定手段により決定された位置にある第２の黄金矩形を生成する黄金矩形生成手段と、前記配置方向と垂直な方向において、前記テキストが前記第２の黄金矩形内に収まるように前記テキストの配置を変更する配置変更手段として機能させるプログラムを提供する。
【発明を実施するための最良の形態】
【００１４】
１．第１実施形態
図１は、本発明の第１実施形態に係る文書編集装置１００の機能構成を示すブロック図である。オブジェクト取得部１０１は、処理対象となるオブジェクトを取得する。「オブジェクト」とは、少なくともテキスト（文字列）を示すデータを含むデータをいう。「文書」とは、少なくとも１のオブジェクトと、オブジェクトが配置される領域を示す情報とを含むデータまたはそのデータに基づいて生成された結果物をいう。オブジェクトは、文書編集装置１００内の記憶部（後述）から取得されてもよいし、文書編集装置１００以外の他の装置から取得されてもよい。配置方向取得部１０２は、配置方向を示す情報を取得する。「配置方向」とは、テキストが配置される方向である。例えば、日本語であれば、配置方向は左から右または上から下である。英語であれば、配置方向は左から右である。配置方向は、文書編集装置１００内の記憶部（後述）から取得されてもよいし、文書編集装置１００以外の他の装置から取得されてもよい。仮レイアウト部１０３は、取得されたオブジェクトに含まれるテキストを、黄金矩形内に仮レイアウトする。仮レイアウト部１０３により生成される黄金矩形を、必要に応じて「第１の黄金矩形」という。なお、「黄金矩形」とは、隣り合う２辺の長さの比が次式（１）で示される比（いわゆる黄金比）である四角形をいう。なお、式（１）の右項と左項とは入れ替えられてもよい。
【数１】
2008065587.tif 000003
【００１５】
黄金矩形生成部１０４は、テキストの量および第１の黄金矩形に基づいて、新たな黄金矩形を生成する。黄金矩形生成部１０４により生成される黄金矩形を、必要に応じて「第２の黄金矩形」という。レイアウト部１０５は、第２の黄金矩形内に処理対象のテキストを配置する。
【００１６】
図２は、文書編集装置１００のハードウェア構成を示すブロック図である。ＣＰＵ（Central Processing Unit）１１０は、文書編集装置１００の各構成要素を制御する制御装置である。ＲＯＭ（Read Only Memory）１２０は、文書編集装置１００の起動に必要なデータおよびプログラムを記憶する記憶装置である。ＲＡＭ（Random Access Memory）１３０は、ＣＰＵ１１０がプログラムを実行する際の作業領域として機能する記憶装置である。Ｉ／Ｆ（Interface）１４０は、種々の入出力装置や記憶装置との間でデータおよび制御信号の入出力をするインターフェースである。ＨＤＤ（Hard Disk Drive）１５０は、各種プログラムおよびデータを記憶する記憶装置である。本実施形態に関して、ＨＤＤ１５０は、文書の編集を行う文書編集プログラムを記憶している。キーボード・マウス１６０は、ユーザが文書編集装置１００に対して指示入力を行うための入力装置である。ディスプレイ１７０は、データの内容あるいは処理の状況などを表示する出力装置である。ネットワークＩＦ１８０は、ネットワーク（図示略）を介して接続された他の装置との間でデータの送受信を行うためのインターフェースである。文書編集装置１００は、例えば、ネットワークおよびネットワークＩＦ１８０を介して文書（正確には、文書を示す電子データ）を受信することができる。ＣＰＵ１１０、ＲＯＭ１２０、ＲＡＭ１３０、およびＩ／Ｆ１４０は、バス１９０を介して接続されている。ＣＰＵ１１０が文書編集プログラムを実行することにより、文書編集装置１００は、図１に示される機能構成を備える。
【００１７】
図３は、文書編集装置１００の動作を示すフローチャートである。ステップＳ１００において、ＣＰＵ１１０は、処理対象となるオブジェクトを取得する。オブジェクトは、ＨＤＤ１５０から取得されてもよいし、ネットワークおよびネットワークＩＦ１８０を介して文書編集装置１００以外の他の装置から取得されてもよい。あるいは、オブジェクトは、ユーザがキーボード・マウス１６０を操作することにより文書編集装置１００に入力されてもよい。本実施形態において、処理対象のオブジェクトは、以下のテキストを含む。「５月３０日正午に発売する次世代プリンタＸＸＸＸＸ。このＹＹプリンタは、高速印刷性能ＺＺＺＺＺｐｐｍを可能とし、２ｗａｙ給紙や両面印刷機能にも標準対応しながら、省スペース設計（ＳＳＳＳＳＳ）省エネルギーを実現しました。ＡＡＡＡＡＡＡＡＡＡＡＡＡＡＡＡＡＡＡＡＡＡ」。ＣＰＵ１１０は、取得されたオブジェクトをＨＤＤ１５０に記憶する。
【００１８】
ステップＳ１１０において、ＣＰＵ１１０は、テキストの配置方向を取得する。配置方向は、例えば、あらかじめ決められている。あるいは、配置方向は、処理対象のオブジェクトに基づいて決められてもよい。この場合、処理対象のオブジェクトは、配置方向を示す情報を含んでいる。あるいは別の例において、処理対象のオブジェクトは、そのテキストが記述されている言語（例えば、日本語）を示す情報を含んでいる。ＨＤＤ１５０は、言語の識別子と、その言語に対応する配置方向を示す情報を記憶している。ＣＰＵ１１０は、ＨＤＤ１５０に記憶された情報に基づいて、配置方向を決定する。さらにあるいは、配置方向は、処理対象の文書に基づいて決められてもよい。この場合、処理対象の文書は、配置方向を示す情報を含んでいる。以下において、配置方向が「左から右」である例について説明する。
【００１９】
ステップＳ１２０において、ＣＰＵ１１０は、処理対象のオブジェクトに含まれるテキストを仮レイアウトする。ここでは、テキストを配置したときに、その外接図形が黄金矩形となるように、オブジェクトの配置情報が生成される。すなわち、オブジェクトは編集される。
【００２０】
図４は、仮レイアウト処理の詳細を示すフローチャートである。ステップＳ１２１において、ＣＰＵ１１０は、処理対象のオブジェクトを一時レイアウトする。処理対象のオブジェクトが配置される領域、すなわちレイアウト領域は、あらかじめ決められている。あるいは、レイアウト領域は、ユーザの指示入力に応じて決定されてもよい。あるいは、レイアウト領域は、あらかじめ決められたアルゴリズムに従ってＣＰＵ１１０により決定されてもよい。
【００２１】
図５は、一時レイアウトされたオブジェクトを例示する図である。レイアウト領域Ｄは、例えば、Ａ４サイズの大きさを有する。オブジェクト領域Ｌは、レイアウト領域Ｄのうち、処理対象のオブジェクトが配置される領域を示す。すなわち、オブジェクト領域は、文書編集装置１００により編集される文書の出力単位（例えばページ）に相当する領域であるレイアウト領域のうち、オブジェクトが配置される領域を限定するものである。オブジェクト領域Ｌは、処理対象のオブジェクトの量（例えば、テキストの文字数）およびオブジェクト属性情報に基づいて決定される。例えば、オブジェクト領域Ｌは、レイアウト領域Ｄのうちある点（例えば、中心点）を基準として、テキストをオブジェクト属性情報に従って配置することにより決定される。すなわち、オブジェクトの文字列は、オブジェクト属性情報で指定される行間、フォントサイズ、フォント種別およびスタイルで配置される。このとき、一時レイアウトに行間の影響を反映させるため、レイアウト領域Ｄは、文字列が複数行（配置方向は上下方向の場合は複数列）に表示されるように決定される。例えば、一時レイアウトにおいて文字列は４行に配置されるというルールがあらかじめ決められている。ＣＰＵ１１０は、このルールに従って文字列を配置し、レイアウト領域Ｄを決定する。一時レイアウトは、ＲＡＭ１３０上で仮想的に行われてもよい。あるいは、一時レイアウトの結果は、ディスプレイ１７０に表示されてもよい。
【００２２】
オブジェクト属性情報とは、個々のオブジェクトの属性を示す情報である。オブジェクト属性情報は、例えば、属性の種類を示す属性識別子と、その属性の値を含むデータセットを含んでいる。オブジェクト属性情報は、例えば、属性識別子として、「行間」、「フォントサイズ」、「フォント種別」および「スタイル」を、これらの属性の値として、「１．５行」、「２４ポイント」、「ゴシック」および「Ｂｏｌｄ」という情報を含んでいる。属性「行間」は、テキストの行間を示す。属性「フォントサイズ」はフォントの大きさを示す。属性「フォント種別」はフォントの種類を示す。属性「スタイル」は表示される際のスタイル、すなわち、標準、斜体、太字のいずれかを示す。オブジェクト属性情報の取得方法は任意である。
【００２３】
再び図４を参照して説明する。ステップＳ１２２において、ＣＰＵ１１０は、オブジェクト領域Ｌの２辺の長さ、すなわち幅ｗおよび高さｈを測定する。例えば、ＣＰＵ１１０は、オブジェクト（テキスト）の外接矩形を求める。ＣＰＵ１１０は、得られた外接矩形の幅および高さを測定する。このとき、ＣＰＵ１１０は、オブジェクトの周囲にあらかじめ決められた余白を設けてもよい。ＣＰＵ１１０は、余白も含めて外接矩形を求めてもよい。あるいは、ＣＰＵ１１０は、仮レイアウトされたテキストが収まるようなテキストボックスを設定し、その幅および高さを求めてもよい。
【００２４】
ステップＳ１２３において、ＣＰＵ１１０は、次式（２）に従って黄金矩形の一辺の長さＡを算出する。
【数２】
2008065587.tif 000004
【００２５】
なお、式（２）は、次式（３）に基づいて得られたものである。式（３）は、黄金矩形とオブジェクト領域Ｌの面積が等しいという条件から導かれる。
【数３】
2008065587.tif 000005
【００２６】
ステップＳ１２４において、ＣＰＵ１１０は、黄金矩形の他辺の長さＡ’を次式（４）に従って算出する。このようにして、第１の黄金矩形の辺の長さが決定される。
【数４】
2008065587.tif 000006
【００２７】
ステップＳ１２５において、ＣＰＵ１１０は、黄金矩形に配置されるようにオブジェクトを編集する。すなわち、ＣＰＵ１１０は、テキストの仮レイアウトを決定する。これは例えば以下のように行われる。ＣＰＵ１１０は、処理対象のオブジェクトに含まれる文字を先頭から順番に配置する。配置された文字の幅がＡ’に達すると、ＣＰＵ１１０は、改行を挿入する。同様に文字列を２行目にも配置し、２行目に配置された文字の幅がＡ’に達すると、ＣＰＵ１１０は、再び改行を挿入する。このようにして、黄金矩形に配置されたオブジェクトが得られる。
【００２８】
あるいは、ＣＰＵ１１０は、高さＡ、幅Ａ’の大きさを有する領域をテキスト領域として決定してもよい。ＣＰＵ１１０は、テキスト領域に、オブジェクトに含まれる文字列を流し込む、すなわち、テキスト領域内に収まるように文字を配置することにより黄金矩形に配置されたオブジェクトを得てもよい。
【００２９】
図６は、形成された黄金矩形（第１の黄金矩形）を例示する図である。このように、オブジェクトは黄金矩形に収まるように配置される。
【００３０】
再び図３を参照して説明する。ステップＳ１３０において、ＣＰＵ１１０は、第２の黄金矩形を生成する。
【００３１】
図７は、第１実施形態に係る黄金矩形生成処理の詳細を示すフローチャートである。ステップＳ１３１において、ＣＰＵ１１０は、テキスト配置情報を取得する。テキスト配置情報は、黄金矩形内におけるテキストの配置を指定する情報である。テキスト配置情報として、例えば、「右揃え」、「左揃え」、「上揃え」および「下揃え」などが用いられる。テキスト配置情報の取得方法は任意である。例えば、テキスト配置情報はあらかじめ決められていてもよい。あるいは、テキスト配置情報は、処理対象のオブジェクトに基づいて決められてもよい。この場合、処理対象のオブジェクトは、テキスト配置情報を示す情報を含んでいる。あるいは別の例において、処理対象のオブジェクトは、そのテキストが記述されている言語（例えば、日本語）を示す情報を含んでいる。ＨＤＤ１５０は、言語の識別子と、その言語に対応するテキスト配置情報を示す情報を記憶している。ＣＰＵ１１０は、ＨＤＤ１５０に記憶された情報に基づいて、テキスト配置情報を決定する。さらにあるいは、テキスト配置情報は、処理対象の文書に基づいて決められてもよい。この場合、処理対象の文書は、テキスト配置情報を示す情報を含んでいる。以下において、テキスト配置情報が「左揃え」である例について説明する。
【００３２】
ステップＳ１３２において、ＣＰＵ１１０は、第１の黄金矩形を構成する４つの辺のうち、処理対象となる辺である対象辺を決定する。対象辺の候補となるのは、テキストの配置方向と垂直な辺である。いま配置方向は「左から右」なので、対象辺の候補となるのは第１の黄金矩形の左辺および右辺である。ＣＰＵ１１０は、さらに、対象辺の候補から、テキスト配置情報に基づいて対象辺を決定する。ここでは、テキスト配置情報で指定される基準位置と逆の位置に対応する辺が、対象辺として決定される。基準位置とは、例えば、テキスト配置情報が「左揃え」の場合は左、「右揃え」の場合は右、「上揃え」の場合は上、「下揃え」の場合は下である。基準位置と逆の位置とは、例えば、テキスト配置情報が「左揃え」の場合は右、「右揃え」の場合は左、「上揃え」の場合は下、「下揃え」の場合は上である。いまテキスト配置情報は「左揃え」なので、基準位置と逆の位置に対応する辺は、右辺である。このように、ＣＰＵ１１０は、右辺を対象辺として決定する。
【００３３】
ステップＳ１３３において、ＣＰＵ１１０は、複数行に一時レイアウトされたテキストの各行について、行末の座標を取得する。図６の例では、テキストは６行に分けてレイアウトされる。例えば、１〜６行目の行末座標は、それぞれ、１５、１５、１７、１５、１５、１２であると算出される。本実施形態では、行末座標の単位はｃｍ（センチメートル）である。また、座標は０．５を最小単位として計測され、０．５に満たない値は切り上げられる。なお、座標の単位および計測の最小単位はこれらに限定されるものではない。また、ここで行末座標が用いられるのは、テキストが横書きの言語で記述されており、かつ、対象辺が右辺だからである。どの辺が対象辺であるかに応じて、先頭または末尾のいずれが用いられるかが決定される。テキストが横書きの場合には行頭または行末の少なくとも一方の文字が、テキストが縦書きの場合には列頭または列末の文字が用いられる。一般的には、すべての行または列についての先頭または末尾の少なくとも一方の文字が用いられる。
【００３４】
ステップＳ１３４において、ＣＰＵ１１０は、代表座標を決定する。代表座標は、第２の黄金矩形の辺の長さを決めるのに用いられる。ＣＰＵ１１０は、行末座標に基づいて、あらかじめ決められたアルゴリズムに従って代表座標を決定する。本実施形態において、代表座標は、複数の行末座標のうち最も頻度が高い値として算出される。すなわち、本実施形態において、代表座標は１５である。あるいは、代表座標は、複数の行末座標の平均値として算出されてもよい。平均値を算出する際には、最終行などその値が特異であると考えられる行は除外されてもよい。
【００３５】
ステップＳ１３５において、ＣＰＵ１１０は、第２の黄金矩形を決定する。まず、ＣＰＵ１１０は、第２の黄金矩形の対象辺（ここでは右辺）の位置を、代表座標に基づいて決定する。すなわち、ＣＰＵ１１０は、第２の黄金矩形の右辺の位置を、左辺の位置から１５ｃｍの位置に決定する。なお、第１の黄金矩形と第２の黄金矩形において、対象辺と向かい合う辺（ここでは左辺）の位置は同一である。このようにして、ＣＰＵ１１０は、第２の黄金矩形において、テキストの配置方向と垂直な辺（ここでは右辺および左辺）の位置を決定する。すなわち、ＣＰＵ１１０は、第２の黄金矩形において、テキストの配置方向と平行な辺（ここでは上辺および下辺）の長さを決定する。
【００３６】
ＣＰＵ１１０は、さらに、第２の黄金矩形において、テキストの配置方向と垂直な辺（ここでは右辺および左辺）の長さを決定する。右辺および左辺の長さは、上辺および下辺の長さとの比が黄金比になるように決定される。また、右辺および左辺の位置は、例えば、ある基準点（例えば、左辺の上端、中点または下端など）が第１の黄金矩形と第２の黄金矩形とで同一となるように決定される。以上のようにして、第２の黄金矩形の位置および大きさが決定される。
【００３７】
第２の黄金矩形は、第１の黄金矩形よりも面積が小さくなる場合がある。そこでＣＰＵ１１０は、第２の黄金矩形の、テキストの配置方向と垂直な辺の長さに基づいて、テキストの配置を更新する。ここでは、ＣＰＵ１１０は、右辺（または左辺）の長さに応じて、行の間隔を更新する。すなわち、上下方向においてテキストが第２の黄金矩形からはみ出ないように、行間が縮められる。
【００３８】
ステップＳ１３６において、ＣＰＵ１１０は、テキストのレイアウトを決定する。すなわち、ＣＰＵ１１０は、テキストのレイアウトを示す情報および第２の黄金矩形を特定する情報を、ＲＡＭ１３０に記憶する。第２の黄金矩形を特定する情報は、例えば、４つの頂点の座標である。以下、第２の黄金矩形を特定する情報およびテキストのレイアウトを示す情報を含む情報を、「属性情報」という。オブジェクトと、そのオブジェクトに対応する属性情報とは、一方から他方を特定できるようにＲＡＭ１３０またはＨＤＤ１５０に記憶される。
【００３９】
図８は、第２の黄金矩形を例示する図である。対象辺であった右辺において、一部の文字が黄金矩形からはみ出しているが、それ以外の辺において、文字が黄金矩形からはみ出しているところはない。
【００４０】
再び図３を参照して説明する。ステップＳ１４０において、ＣＰＵ１１０は、黄金矩形に配置されたオブジェクトを、レイアウト領域Ｄに配置する。オブジェクトを配置する位置は、あらかじめ決められていてもよい。あるいは、オブジェクトを配置する位置は、ユーザの指示入力に応じて決定されてもよい。処理対象のオブジェクトが配置されることにより、文書が生成される。ユーザは、以上のように生成された文書に対して、公知の文書編集技術によるソフトウェアを用いて、文書を編集することができる。その際、第２の黄金矩形は、いわゆるグリッド矩形として機能することができる。グリッド矩形として機能させる場合、ＣＰＵ１１０は、第２の黄金矩形をディスプレイ１７０に表示する。
【００４１】
以上で説明したように本実施形態によれば、グリッド矩形は対応するオブジェクトに応じてダイナミックに形成される。図８に示される例では、右辺においてはみ出しいている文字が存在する。しかし、このような文字も、行末座標の分布という観点からは特異と考えることができるものである。したがって、むしろこのような特異点を無視するようにグリッド矩形（黄金矩形）を形成した方が、レイアウトの審美性という観点において優れた文書を作成することができる。
【００４２】
２．第２実施形態
続いて、本発明の第２実施形態について説明する。以下において、第１実施形態と共通する事項についてはその説明を省略する。また、第１実施形態と共通する要素については共通の参照符号が用いられる。本実施形態においては、図３のステップＳ１３０の黄金矩形を生成する処理が、第１実施形態で説明したものと異なる。
【００４３】
図９は、第２実施形態に係る黄金矩形生成処理の詳細を示すフローチャートである。ステップＳ１３１〜Ｓ１３４の処理は第１実施形態において説明したものと同様であるので説明を省略する。ステップＳ２０１において、ＣＰＵ１１０は、その行末座標が代表座標よりも大きい、すなわち行末座標が代表座標を超えた行の数を取得する。いま１〜６行目の行末座標は、それぞれ、１５、１５、１７、１５、１５、１２であり、代表座標は１５である。従って、代表座標を超えた行の数は１である。
【００４４】
ステップＳ２０２において、ＣＰＵ１１０は、行末座標が代表座標を超えた行の割合ｒを算出する。いまテキストは６行に配置され、行末座標が代表座標を超えたのは１行である。したがって、割合ｒ＝１／６＝１７％であると算出される。
【００４５】
ステップＳ２０３において、ＣＰＵ１１０は、割合ｒがしきい値ｒｔｈ（例えば、ｒｔｈ＝２５％）を超えているか判断する。割合ｒが、ｒ＜ｒｔｈを満たす場合（Ｓ２０３：ＹＥＳ）、ＣＰＵ１１０は、処理をステップＳ１３５に移行する。すなわち、ＣＰＵ１１０は、第１実施形態と同様に、第２の黄金矩形を生成する。割合ｒが、ｒ＜ｒｔｈを満たさない場合（Ｓ２０３：ＮＯ）、ＣＰＵ１１０は、処理をステップＳ２０４に移行する。
【００４６】
ステップＳ２０４において、ＣＰＵ１１０は、第１の黄金矩形をそのまま、第２の黄金矩形として用いることを決定する。以後の処理は第１実施形態と同様である。
【００４７】
以上で説明したように、本実施形態によれば、行末座標が代表座標を超えている行の割合に応じて、第２の黄金矩形を新たに生成するか、第１の黄金矩形をそのまま用いるかが決定される。行末座標が代表座標を超えている行の割合があるしきい値を超えた場合には、これらの行を無視してしまうとレイアウトの審美性がかえって悪化してしまう場合もある。しかし、本実施形態によれば、この問題も解決される。
【００４８】
３．他の実施形態
本発明は上述の実施形態に限定されるものではなく、種々の変形実施が可能である。
上述の実施形態において、テキスト配置情報が「左揃え」である場合について説明した。例えば、テキスト配置情報が「中央揃え」である場合、ＣＰＵ１１０は、左辺および右辺の２つの辺を対象辺として決定してもよい。この場合、対象辺の位置は、例えば第１の黄金矩形において、上辺と下辺の中点を結ぶ線を基準として定められてもよい。
【００４９】
上述の実施形態において、行末座標を取得する際に、テキストの内容については考慮されなかった。しかし、行末座標を取得する際に、テキストの内容が考慮されてもよい。例えば、行末座標を取得する際に、特定の文字（例えば、「、」や「。」など）が除外されてもよい。すなわち、ＨＤＤ１５０は、除外対象となる文字の識別子を記憶している。ＣＰＵ１１０は、ＨＤＤ１５０に除外対象の文字として記憶されている文字については、行末の文字から除外して行末座標を取得する。例えば、除外対象の文字として、「、」、「。」などの句読点、「い」、「て」など線の密度が低い平仮名などが指定されてもよい。
【００５０】
図１０は、他の実施形態に係るテキストを例示する図である。第１行目の行末に「。」があるが、行末座標を取得する際には、この文字は無視される。このように、行末座標の取得に際して特定の文字を除外することによって、より審美性に優れた黄金矩形を生成することができる。
【００５１】
また、第２の黄金矩形の生成に際し、行頭について、特定の文字が除外されてもよい。
図１１および図１２は、他の実施形態に係るテキストを例示する図である。各行の行頭に、箇条書きを示す記号「・」が存在する。ＣＰＵ１１０は、第２の黄金矩形の生成に際し、これらの文字（記号）を対象から除外してもよい（図１２）。この処理は、例えば以下のように行われる。対象辺の位置が決定された後、ＣＰＵ１１０は、行頭についても、行末の場合と同様に、行頭座標を算出する。さらに、ＣＰＵ１１０は、行頭座標について、その代表座標を算出する。ＣＰＵ１１０は、代表座標に基づいて、対象辺と対向する辺（左辺）の位置を決定する。ＣＰＵ１１０は、対象辺（右辺）および対象辺と対向する辺（左辺）の位置に基づいて、対象辺（右辺）および対象辺と対向する辺（左辺）の長さを決定する。
【００５２】
行末の場合と同様に、ＨＤＤ１５０は、除外対象となる文字の識別子を記憶している。ＣＰＵ１１０は、ＨＤＤ１５０に除外対象の文字として記憶されている文字については、行頭の文字から除外して行末座標を取得する。例えば、除外対象の文字として、「・」、「●」、「■」などの記号、「（１）」、「（２）」、「（ａ）」、「（ｂ）」などの番号が指定されてもよい。すなわち、いずれかの行において、行頭あるいは行末のように所定の位置にこれらの除外対象文字が存在した場合、その行のその文字については行末座標あるいは行頭座標の算出対象から除外される。
【００５３】
また、上述の実施形態においては、第１の黄金矩形内に配置されたテキストの各行の行末の座標に基づいて第２の黄金矩形の一辺の長さが決められた。しかし、第２の黄金矩形の一辺の長さを決めるのに用いられるパラメータは、これに限定されない。例えば、ＣＰＵ１１０は、各行に含まれる文字の数に基づいて、第２の黄金矩形の一辺の長さを決めてもよい。要は、各行の文字の量を示すパラメータであれば、どのようなものが用いられてもよい。
【００５４】
また、上述の実施形態においては、第１の黄金矩形内に配置されたテキストの行末座標の最頻値に基づいて、第２の黄金矩形の一辺の位置が決められた。しかし、第２の黄金矩形の一辺の位置を決める方法は、これに限定されるものではない。複数の行末座標と、第２の黄金矩形の一辺の位置との一致度が最大となるものであれば、どのような方法が用いられてもよい。
【００５５】
上述の実施形態において、第２の黄金矩形は第１の黄金矩形と区別して説明された。しかし、第２の黄金矩形を生成する処理は、第１の黄金矩形の辺の位置や長さを変更して、第１の黄金矩形の大きさや形状を更新する処理ととらえることもできる。
【００５６】
上述の実施形態において、図１に示される機能構成要素は、ＣＰＵ１１０がプログラムを実行することによりソフトウェアとして実現された。しかし、文書編集装置１００は、図１に示される各機能構成要素に相当する電子回路を有してもよい。すなわち、図１に示される機能構成要素（の一部）は、ハードウェアとして実現されてもよい。
【００５７】
上述の各実施形態においては、文書編集プログラムはＨＤＤ１５０に記憶されていた。しかし、文書編集プログラムは、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの記憶媒体により提供されてもよい。
【図面の簡単な説明】
【００５８】
【図１】第１実施形態に係る文書編集装置１００の機能構成を示すブロック図である。
【図２】文書編集装置１００のハードウェア構成を示すブロック図である。
【図３】文書編集装置１００の動作を示すフローチャートである。
【図４】仮レイアウト処理の詳細を示すフローチャートである。
【図５】一時レイアウトされたオブジェクトを例示する図である。
【図６】形成された黄金矩形を例示する図である。
【図７】第１実施形態に係る黄金矩形生成処理の詳細を示すフローチャートである。
【図８】第２の黄金矩形を例示する図である。
【図９】第２実施形態に係る黄金矩形生成処理の詳細を示すフローチャートである。
【図１０】他の実施形態に係るテキストを例示する図である。
【図１１】他の実施形態に係るテキストを例示する図である。
【図１２】他の実施形態に係るテキストを例示する図である。
【符号の説明】
【００５９】
１００…文書編集装置、１０１…オブジェクト取得部、１０２…配置方向取得部、１０３…仮レイアウト部、１０４…黄金矩形生成部、１０５…レイアウト部、１１０…ＣＰＵ、１２０…ＲＯＭ、１３０…ＲＡＭ、１４０…Ｉ／Ｆ、１５０…ＨＤＤ、１６０…キーボード・マウス、１７０…ディスプレイ、１８０…ネットワークＩＦ、１９０…バス
【図１】
2008065587.tif 000007
【図２】
2008065587.tif 000008
【図３】
2008065587.tif 000009
【図４】
2008065587.tif 000010
【図５】
2008065587.tif 000011
【図６】
2008065587.tif 000012
【図７】
2008065587.tif 000013
【図８】
2008065587.tif 000014
【図９】
2008065587.tif 000015
【図１０】
2008065587.tif 000016
【図１１】
2008065587.tif 000017
【図１２】
2008065587.tif 000018