(57)【要約】【課題】本発明は、浮動枠を用いたページ上でテキストデータが修正されてもページ全体の体裁が崩れることなく、容易に編集することができる文書作成方法を提供する。【解決手段】文書作成方法は、入力されたテキストデータが文書のページ上の文字枠内に設定された段（固定領域）と当該文字枠又は段上を移動可能な浮動枠（浮動領域）にそれぞれ配置された場合、浮動枠が跨ぐ段の数及びサイズに基づいて、当該浮動枠のサイズを変更する。【選択図】図８
2008129935.tif 000002
【特許請求の範囲】
【請求項１】
テキストデータを文字領域に配置する文字配置工程と、前記文字領域上を移動可能な浮動領域を設定し、前記設定した浮動領域に対応する管理データを作成する浮動領域設定工程と、前記作成された管理データに基づいて前記文字領域上に前記浮動領域を配置する浮動領域配置工程とを備えた文書作成方法であって、
前記浮動領域配置工程は、前記文字配置工程にて前記テキストデータが前記文字領域内に設定された固定領域と前記固定領域上を移動可能な浮動領域にそれぞれ配置された場合、前記浮動領域が跨ぐ前記固定領域の数及びサイズに基づいて、当該浮動領域のサイズを変更する浮動領域サイズ変更工程を備えることを特徴とする文書作成方法。
【請求項２】
前記浮動領域サイズ変更工程は、前記文字領域内に設定された前記固定領域の数より前記浮動領域が跨ぐ前記固定領域の数が多い場合、当該浮動領域が跨ぐ前記固定領域の数を前記文字領域内に設定された前記固定領域の数に変更する段数変更工程を更に備えることを特徴とする請求項１記載の文書作成方法。
【請求項３】
前記浮動領域サイズ変更工程は、前記浮動領域が跨ぐ前記固定領域の数に基づいて当該浮動領域の幅を算出する浮動領域幅算出工程と、
前記浮動領域幅算出工程で算出された幅の浮動領域にテキストデータを配置した場合の浮動領域の高さを算出する浮動枠領域算出工程とを更に備えることを特徴とする請求項１又は２記載の文書作成方法。
【請求項４】
前記浮動領域配置工程は、前記文字領域又は前記固定領域に配置された文字数の増減により移動した前記浮動領域が予め設定された条件と一致した場合には、当該浮動領域を当該固定領域に連結する他の固定領域の前部に移動することを特徴とする請求１乃至３のいずれか１項に記載の文書作成方法。
【請求項５】
前記浮動領域配置工程は、前記文字領域又は前記固定領域に配置された文字数の増減により移動した前記浮動領域が予め設定された条件と一致した場合には、当該浮動領域を当該文字領域に連結する他の文字領域の前部に移動することを特徴とする請求１乃至４のいずれか１項に記載の文書作成方法。
【請求項６】
前記浮動領域配置工程は、前記浮動領域の配置又は大きさが変更された場合、当該浮動領域の前方及び後方の少なくとも一方に配置されている文字行の位置に基づいて当該浮動領域の配置位置を調整する浮動領域配置位置調整工程を備えることを特徴とする請求項１乃至５のいずれか１項に記載の文書作成方法。
【請求項７】
前記浮動領域配置位置調整工程は、前記浮動領域の上端と当該浮動領域の前方に配置されている文字行の下端の距離と、当該浮動領域の下端と当該浮動領域の後方に配置されている文字行の上端との距離とが同一になるように当該浮動領域の配置位置を調整することを特徴とする請求項６記載の文書作成方法。
【請求項８】
テキストデータを文字領域に配置する文字配置手段と、前記文字領域上を移動可能な浮動領域を設定し、前記設定した浮動領域に対応する管理データを作成する浮動領域設定手段と、前記作成された管理データに基づいて前記文字領域上に前記浮動領域を配置する浮動領域配置手段とを備えた文書作成装置であって、
前記浮動領域配置手段は、前記文字配置手段により前記テキストデータが前記文字領域内に設定された固定領域と前記固定領域上を移動可能な浮動領域にそれぞれ配置された場合、前記浮動領域が跨ぐ前記固定領域の数及びサイズに基づいて、当該浮動領域のサイズを変更する浮動領域サイズ変更手段を備えることを特徴とする文書作成装置。
【請求項９】
請求項１乃至７のいずれか１項に記載の文書作成方法をコンピュータに実行させるためのコンピュータに読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書作成方法及び装置、並びにプログラムに関し、特に、コンピュータを用いて書籍や雑誌等のレイアウト編集が可能な文書作成方法及び装置、並びにプログラムに関する。
【背景技術】
【０００２】
従来、パーソナルコンピュータ等を用いて様々なレイアウトの文書を作成することが可能である。特に、雑誌や新聞等の印刷物におけるレイアウト処理は、一般に、ＤＴＰ（Desk Top Publishing）システムによって行われている。ＤＴＰシステムでは、一般に、次のような手順でレイアウト処理が行われる。
【０００３】
１．雑誌等の本文となるテキストデータを作成する。
２．レイアウト枠（文字枠）を設定し、テキストデータを配置する。
３．テキストデータの内容に誤りがあれば、適宜、テキストデータの修正を行う。
【０００４】
ここで、テキストデータの修正により文字数が増加又は減少した場合、文字枠内の文書配置（テキストデータの配置）を変更する必要がある。
【０００５】
また、文字数の増減に応じて見出し等の配置位置を変更した方が、体裁が整った文書を作成することができることから、一般に「浮動枠」という文字枠が用いられている。例えば、図１６（ａ）及び図１６（ｂ）に示すように、浮動枠を見出しとして用いた場合、浮動枠よりも前に配置されている文字数が増加又は減少すると、浮動枠の位置が自動的に後方（下方）又は前方（上方）に移動する。これにより、容易に文書編集することができる。
【０００６】
しかしながら、テキストデータの編集を行う場合、浮動枠より前に配置されたテキストデータの編集が行われ、行数が変化すると、それに伴って浮動枠の位置が移動する。そのため、文書全体の体裁を決めた後にテキストデータの編集を行うと、文書全体の体裁が崩れてしまうという問題がある。このような問題を解決するために、初めに浮動枠を使って大まかな位置を決め、文書全体の体裁を決定した後、浮動枠を固定枠に変換することで、テキストデータの編集をしても全体の体裁に影響を与えない技術が提案されている（例えば、特許文献１参照）。
【特許文献１】特開平０６−４４２３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載された技術では、以下の問題がある。
【０００８】
１．浮動枠よりも前に配置されたテキストデータが大量に増加又は減少した場合、テキストデータの配置位置が大幅に移動してしまうことから、結局は固定枠を浮動枠に戻すような作業が必要となり、編集者にとって負荷が増える。
【０００９】
２．浮動枠よりも前に配置されたテキストデータが増加又は減少するに伴い、下の行又は上の行に移動する浮動枠が異なる段組数の文字枠に移動した場合、文字枠のサイズ変化には対応できず、体裁が崩れる。
【００１０】
３．２．の場合は、浮動枠と他の文字との行の間隔が均一にならないため、体裁が崩れる。
【００１１】
４．見出しとして浮動枠を利用する場合、浮動枠よりも前に配置されたテキストデータの増加に伴って移動した浮動枠がページの最下行に配置されると、見出しとしての本来の目的が達成できない。
【００１２】
そこで、本発明は、上記問題に鑑みて成されたものであり、浮動枠（浮動領域）を用いたページ上でテキストデータが増加又は減少してもページ全体の体裁が崩れることなく、ページレイアウトを容易に作成又は編集することができる文書作成方法及び装置、並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、請求項１記載の文書作成方法は、テキストデータを文字領域に配置する文字配置工程と、前記文字領域上を移動可能な浮動領域を設定し、前記設定した浮動領域に対応する管理データを作成する浮動領域設定工程と、前記作成された管理データに基づいて前記文字領域上に前記浮動領域を配置する浮動領域配置工程とを備えた文書作成方法であって、前記浮動領域配置工程は、前記文字配置工程にて前記テキストデータが前記文字領域内に設定された固定領域と前記固定領域上を移動可能な浮動領域にそれぞれ配置された場合、前記浮動領域が跨ぐ前記固定領域の数及びサイズに基づいて、当該浮動領域のサイズを変更する浮動領域サイズ変更工程を備えることを特徴とする。
【００１４】
上記目的を達成するために、請求項８記載の文書作成装置は、テキストデータを文字領域に配置する文字配置手段と、前記文字領域上を移動可能な浮動領域を設定し、前記設定した浮動領域に対応する管理データを作成する浮動領域設定手段と、前記作成された管理データに基づいて前記文字領域上に前記浮動領域を配置する浮動領域配置手段とを備えた文書作成装置であって、前記浮動領域配置手段は、前記文字配置手段により前記テキストデータが前記文字領域内に設定された固定領域と前記固定領域上を移動可能な浮動領域にそれぞれ配置された場合、前記浮動領域が跨ぐ前記固定領域の数及びサイズに基づいて、当該浮動領域のサイズを変更する浮動領域サイズ変更手段を備えることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、浮動枠（浮動領域）を用いたページ上でテキストデータが増加又は減少してもページ全体の体裁が崩れることなく、ページレイアウトを容易に作成又は編集することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
【００１７】
図１は、本発明の実施形態に係る文書作成装置の構成を示すブロック図である。
【００１８】
図１において、文書作成装置１０１は、ＣＰＵ２０１と、ＲＡＭ２０２と、ＲＯＭ２０３と、ハードディスクドライブ（以下、「ＨＤＤ」という。）２０４と、ネットワークインタフェース（以下、「ネットワークＩ／Ｆ」という。）２０５と、記憶媒体ドライブ２０６と、ポインティングデバイス２０７と、キーボード２０８と、ビデオインタフェース（以下、「ビデオＩ／Ｆ」という。）２０９と、周辺機器インタフェース（以下、「周辺機器Ｉ／Ｆ」という。）２１１とを備える。これらは、夫々システムバス２１２を介して接続されている。また、文書作成装置１０１は、ビデオＩ／Ｆ２０９に接続されたディスプレイ装置２１０を備える。
【００１９】
ＲＯＭ２０３は、文書作成装置１０１のブートプログラムやＢＩＯＳ等を記憶している。ＨＤＤ２０４は、ＯＳ（オペレーティングシステム）や後述する処理をＣＰＵ２０１に実行させるためのプログラム、データ等を格納する。これらは、ＣＰＵ２０１の制御により必要に応じてＲＡＭ２０２に読み出されて実行される。
【００２０】
ＲＡＭ２０２は、ＨＤＤ２０４や記憶媒体ドライブ２０６からロードされたプログラムやデータを一時的に記憶するためのエリアを備えると共に、ＣＰＵ２０１が各種処理を行うために使用するワークエリアを備える。ＣＰＵ２０１は、ＲＡＭ２０２及びＲＯＭ２０３に格納されているプログラムやデータを用いて、文書作成装置１０１全体の制御を行うと共に、後述する処理を実行する。
【００２１】
ネットワークＩ／Ｆ２０５は、文書作成装置１０１を不図示のネットワークに接続するためのものである。文書作成装置１０１は、このネットワークＩ／Ｆ２０５を介して外部のコンピュータ等とデータ通信を行うことが可能である。記憶媒体ドライブ２０６は、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／ＲＷ、ＤＶＤ―ＲＯＭ、ＤＶＤ−Ｒ／ＲＷ、及びＤＶＤ−ＲＡＭ等で構成される。ポインティングデバイス２０７及びキーボード２０８は、入力部として機能し、ユーザによる各種の指示をＣＰＵ２０１に入力する。
【００２２】
ビデオＩ／Ｆ２０９を介してシステムバス２１２に接続されたディスプレイ装置２１０は、ＣＲＴや液晶画面等で構成されており、ビデオＩ／Ｆ２０９を介して送られた信号に基づいて文字や画像等を表示画面上に表示する機能を有する。周辺機器Ｉ／Ｆ２１１は、文書作成装置１０１に周辺機器を接続させるためのポートである。文書作成装置１０１は、周辺機器Ｉ／Ｆ２１１を介して周辺機器とのデータの送受信を行うことが可能である。また、周辺機器Ｉ／Ｆ２１１は、ＵＳＢやＩＥＥＥ１３９４等で構成されており、通常複数のインタフェースを有する。なお、周辺機器との接続形態は、有線／無線を問わない。
【００２３】
次に、図１の文書作成装置１０１における文書のページレイアウト作成又は編集処理の一例として、横組の文書のレイアウト方法について説明する。
【００２４】
図２は、図１の文書作成装置１０１で作成又は編集される文書のページレイアウトの一例を示す図である。図３は、図２に示すような文書のページレイアウトを管理するための管理データの概略を示す図であり、（ａ）は文字枠情報、（ｂ）は段情報、（ｃ）は段落情報、（ｄ）は浮動枠情報を示す。
【００２５】
図２において、文字枠（文字領域）は、テキストデータが配置される紙面上の文字枠である。文字枠の幅をＷ、文字枠の高さをＨとする。なお、不図示であるが、画像データが配置される紙面上の画像枠も存在する。
【００２６】
文字枠内には、少なくとも１つの段（段１〜段ｎ（ｎ：１，２，・・・））が配置されている。各段内にはテキストデータが配置される。段は、文字枠上での位置が原則として変わらない固定領域である。各段の段幅をＷ１〜Ｗｎ、高さをＨ１〜Ｈｎとする。また、各段の左上の頂点の座標を（Ｘｃ１，Ｙｃ１），（Ｘｃ２，Ｙｃ２），・・・，（Ｘｃｎ，Ｙｃｎ）とする。
【００２７】
また、文字枠内には、浮動枠を配置することができる。浮動枠は、テキストデータの作成又は編集により文字数が増減すると文字枠上での配置位置が移動する浮動領域である。浮動枠の幅をＷｆ、高さをＨｆ、左上の頂点の座標を（Ｘｆ，Ｙｆ）とする。なお、図示例では、浮動枠は段２と段３とに跨っているがこれに限定されず、１つの段上に配置されていても、３つ以上の段に跨って配置されていてもよい。
【００２８】
図３（ａ）において、文字枠情報は、「サイズ」として文字枠の高さ（Ｈ）と文字枠の幅（Ｗ）、「段数」として文字枠内にある段数（Ｃｏｌ：本実施の形態ではＣｏｌ＝ｎ）、「段幅」として各段の幅（Ｗｃ：Ｗ１，Ｗ２，・・・，Ｗｎ）、「段間幅」として段間の距離（Ｗｓ）、「リンク」として次の文字枠へのリンク（ｐＮｅｘｔ）で構成される。リンクは、複数の文字枠のリンク先を示すものである。
【００２９】
図３（ｂ）において、段情報は、「サイズ」として段の高さ（Ｈｎ）と段の幅（Ｗｎ）、「位置」として段の左上の頂点の座標（Ｘｃｎ，Ｙｃｎ）で構成される。
【００３０】
図３（ｃ）において、段落は段とは異なり、文字で構成された、いわゆる段落のことである。段落は、テキストデータにおける改行数に応じて１つ又は複数配置される。段落情報は、段落の「サイズ」として段落の高さ（Ｈｐ）と段落の幅（Ｗｐ）、「位置」として段落の左上の頂点の座標（Ｘｐ，Ｙｐ）、「行の位置」として行が位置する左上の頂点の座標（Ｌｘ１１，Ｌｙ１１）と右下の頂点の座標（Ｌｘ１２，Ｌｙ１２）、「行の数」として段落にある行数（Ｌ）、「文字コードリスト」として文字コードのリスト（ＣＨ）、「属性情報」としてフォント、文字色、大きさ等（ＡＴ）で構成される。
【００３１】
図３（ｄ）において、浮動枠情報は、浮動枠の「サイズ」として浮動枠の高さ（Ｈｆ）と浮動枠の幅（Ｗｆ）、「位置」として浮動枠の左上の頂点の座標（Ｘｆ，Ｙｆ）、「行の位置」として行が位置する左上の頂点の座標（Ｌｘｆ１，Ｌｙｆ１）と右下の頂点の座標（Ｌｘｆ２，Ｌｙｆ２）、「行の数」として浮動枠にある行数（Ｌｆ）、「文字コードリスト」として文字コードのリスト（ＣＨｆ）、「属性情報」としてフォント、文字色、大きさ等（ＡＴｆ）、「段数」として浮動枠が段を跨っている段数（Ｃｏｌｆ）で構成される。
【００３２】
次に、図１の文書作成装置１０１で実行される文字配置処理について説明する。
【００３３】
図４は、図１の文書作成装置１０１で実行される文字配置処理の流れを示すフローチャートである。本処理は、ＣＰＵ２０１がＨＤＤ２０４等から読み出したプログラムに基づいて実行される処理である。
【００３４】
図４において、ステップＳ１０１では、ＣＰＵ２０１は、入力されたテキストデータを文字枠に配置する（文字配置処理）。このとき、ＣＰＵ２０１は、上述した図３（ａ）〜図３（ｃ）に示すような管理データを作成する。ステップＳ１０１における文字配置処理の詳細については後述する。
【００３５】
次に、ステップＳ１０２では、ＣＰＵ２０１は、ユーザにより指定された文字枠上の領域に浮動枠を設定し（浮動枠設定処理）、上述した図３（ｄ）に示すような、浮動枠に対応する管理データ（浮動枠情報）を作成する。ステップＳ１０２における浮動枠設定処理の詳細については後述する。
【００３６】
次に、ステップＳ１０３では、ＣＰＵ２０１は、ステップＳ１０２で作成された浮動枠の管理データに基づいて浮動枠を文字枠に配置する（浮動枠配置処理）。ステップＳ１０３における浮動枠配置処理の詳細については後述する。なお、ステップＳ１０２は、ユーザから浮動枠設定の指示を受けた場合に実行される処理であり、当該指示を受けていないときはこれを実行しなくともよい。また、ステップＳ１０３は、当該文字枠に浮動枠が配置される場合に実行される処理であり、当該文字枠に浮動枠が配置されない場合にはこれを実行しなくともよい。
【００３７】
図５は、図４のステップＳ１０１における文字配置処理の詳細を示すフローチャートである。
【００３８】
図５において、ステップＳ２０１では、ＣＰＵ２０１は、入力されたテキストデータにおける改行を検知し、検知した改行毎（段落毎）にテキストデータを分割する。次に、ステップＳ２０２では、ＣＰＵ２０１は、段落毎に分割したテキストデータのうち、１つの段落におけるテキストデータを一行分抜き出して文字枠に配置する。この時点で、文字枠は編集者により予め配置設定されているものとする。
【００３９】
次に、ステップＳ２０３では、ＣＰＵ２０１は、文字枠に配置した一行分のテキストデータに対して、いわゆる禁則処理を実行する。具体的には、行頭等に句読点や括弧などが来た場合には、文字を適切な位置に移動して調整する。
【００４０】
次に、ステップＳ２０４では、ＣＰＵ２０１は、文字枠に一行分のテキストデータを配置することにより当該行の位置を決定する。すなわち、文字枠に配置された行の座標位置を決定し、管理データとしてＨＤＤ２０４等に記憶する。
【００４１】
次に、ステップＳ２０５では、ＣＰＵ２０１は、文字枠にテキストデータを一行ずつ配置し、１つの段落分のテキストデータの文字枠への配置が終了していないと判断したときは（ステップＳ２０５でＮＯ）、ステップＳ２０２以降の処理を行い、文字枠にテキストデータを一行ずつ配置していく。一方、ＣＰＵ２０１は、１つの段落分のテキストデータの文字枠への配置が全て終了したと判断したときは（ステップＳ２０５でＹＥＳ）、ステップＳ２０６へ進む。
【００４２】
次に、ステップＳ２０６では、ＣＰＵ２０１は、次の段落があるか否かすなわちテキストデータが文字枠に配置されていない段落があるか否かを判断する。この結果、ＣＰＵ２０１は、テキストデータが文字枠に配置されていない段落があれば（ステップＳ２０６でＹＥＳ）、次の段落へ移動すなわちテキストデータが文字枠に配置されていない段落に移動して（ステップＳ２０７）、ステップＳ２０２以降の処理を行う。一方、全ての段落のテキストデータが文字枠に配置されたときは（ステップＳ２０６でＮＯ）、リターンする。
【００４３】
図６は、図４のステップＳ１０２の浮動枠設定処理の詳細を示すフローチャートである。
【００４４】
図６において、ステップＳ３０１では、ＣＰＵ２０１は、文字枠に配置されたテキストデータに対して浮動枠を設定する指示をユーザから受けると（ステップＳ３０１でＹＥＳ）、ステップ３０２へ進む。
【００４５】
ステップＳ３０２では、ＣＰＵ２０１は、指示されたテキストデータ（文字）に対応する段落の管理データに基づいて浮動枠を生成する。具体的には、ＣＰＵ２０１は、まず、浮動枠の管理データを生成する。次に、浮動枠に設定するように指示された文字に対応する段落の管理データより、段落の先頭行の左上頂点の座標（Ｌｘ１１、Ｌｙ１１）、段落の最終行の右下の頂点の座標（Ｌｘ１２、Ｌｙ１２）、段落がある段の段幅（Ｗｃ）を取得し、浮動枠の左上頂点の座標（Ｘｆ、Ｙｆ）を（Ｌｘ１１、Ｌｙ１１）に、浮動枠の幅（Ｗｆ）をＷｃに、浮動枠の高さ（Ｈｆ）をＬｙ１２−Ｌｙ１１に設定する。
【００４６】
次に、ステップＳ３０３では、ＣＰＵ２０１は、図１５に示すような浮動枠設定ダイアログをディスプレイ装置２１０に表示する。ユーザは、表示された浮動枠設定ダイアログ上で浮動枠の設定を行うことができる。
【００４７】
図１５において、「自動拡張」設定が「する」に設定された場合は、後述する図８のステップＳ５０８の処理を実行する。また、「段末禁則」設定が「する」に設定された場合は、後述する図１０の浮動枠の段末禁則処理を実行する。また、「段数」や、「行送り方向」の「サイズ」を設定することも可能である。ここで設定される段数は、浮動枠が跨る段数のことである。
【００４８】
「プレビュー」ボタンが押下されるとページレイアウトのプレビュー画面がディスプレイ装置２１０に表示される。「再評価」ボタンが押下されると、枠の大きさから文字枠に配置される行数及び一行に配置される文字数が計算される。「スペック登録」ボタンが押下されると、ダイアログに設定されている情報が、他の文字枠に設定可能なデータとしてＲＡＭ２０２内に格納される。また、「ＯＫ」ボタンが押下されると、設定された内容が管理データに登録され、「キャンセル」ボタンが押下されると、浮動枠の設定をキャンセルする。すなわち、「ＯＫ」ボタンが押下されると、ＣＰＵ２０１は、浮動枠設定ダイアログで設定された「段数」を浮動枠情報における段数（Ｃｏｌｆ）として登録する。
【００４９】
次に、浮動枠設定ダイアログ上で「キャンセル」ボタンが押下されたときは（ステップＳ３０４でＹＥＳ）、ＣＰＵ２０１は、ステップＳ３０２で生成した浮動枠を削除する（ステップＳ３１０）。具体的には、ＣＰＵ２０１は、該浮動枠の管理データを削除する。
【００５０】
一方、浮動枠設定ダイアログ上でキャンセルボタンが押下されず（ステップＳ３０４でＮＯ）、「ＯＫ」ボタンが押下されると（ステップ３０５でＹＥＳ）、浮動枠設定ダイアログ上でユーザによりなされた設定を浮動枠に反映し、その内容を管理データとして登録又は更新する（ステップＳ３０６）。
【００５１】
次に、ステップＳ３０７では、ＣＰＵ２０１は、ユーザにより指示された文字に対応する段落の文字コードリスト（管理データ）を取得して、浮動枠に文字を配置する。具体的には、まず、該段落の管理データから、文字コードリスト、属性情報を、浮動枠の管理データに複製する。次に、該段落の管理データを削除する。
【００５２】
つづいて、ステップ３０８では、ＣＰＵ２０１は、設定された浮動枠が文字枠内の先頭に位置するか否かを、該浮動枠に配置するために切り出した段落の文字枠内での順番に基づいて判断する。具体的には、該段落が文字枠内で先頭の段落であったかを判断する。ここで、段落の文字枠内での順番は、ステップＳ２０１でテキストデータを段落に分割する際に、何番目の改行の検知により分割されたかにより決定することができる。
【００５３】
ステップＳ３０８の判断の結果、ＣＰＵ２０１は、設定した浮動枠が文字枠内の先頭に位置すると判断した場合（ステップＳ３０８でＹＥＳ）、文字枠内の先頭に位置する浮動枠の１つ後の段落に浮動枠へのポインタと先頭の段落である旨を示す識別データを設定する（ステップＳ３０９）。一方、ＣＰＵ２０１は、設定した浮動枠が文字枠内の先頭に位置していないと判断したときは（ステップＳ３０８でＮＯ）、設定した浮動枠の１つ前の段落に浮動枠へのポインタを設定する（ステップＳ３１１）。ここでポインタとは、いわゆるポインタであって、次のデータの場所を示すデータのことであり、ＲＡＭ２０２内に格納されている当該情報を参照するためのデータである。
【００５４】
図７は、図４のステップＳ１０３の浮動枠配置処理の詳細を示すフローチャートである。
【００５５】
図７において、ＣＰＵ２０１は、文字枠において、図６のステップＳ３０９で段落に対して設定された識別データを検索し、当該識別データを検知したか否かを判断する（ステップＳ４０１）。ＣＰＵ２０１は、識別データを検知できなかったときは、ステップＳ４０８へ進む一方、識別データを検知したときは、設定した浮動枠が文字枠の先頭にあることから、ステップＳ４０２〜Ｓ４０７の浮動枠の配置処理を行わずにステップＳ４０２へ進む。
【００５６】
次に、ステップＳ４０２では、ＣＰＵ２０１は、図６のステップＳ３０９又はステップＳ３１１で浮動枠へのポインタが設定された段落を検索する。ステップＳ４０３では、ＣＰＵ２０１は、浮動枠内に配置される文字に応じて浮動枠の幅（Ｗｆ）と高さ（Ｈｆ）を変更する浮動枠サイズ変更処理を実行する。ステップＳ４０３における浮動枠サイズの変更処理の詳細については後述する。
【００５７】
次に、ステップＳ４０４では、ＣＰＵ２０１は、浮動枠の配置位置調整処理を実行する。この配置位置調整処理の詳細については後述する。次に、ステップＳ４０５では、ＣＰＵ２０１は、図１５の浮動枠設定ダイアログ上で段末禁則が「する」に設定されているか否かを判断し、「する」に設定されているときは段末禁則処理を実行する。この段末禁則処理の詳細については後述する。次に、ステップＳ４０６では、ＣＰＵ２０１は浮動枠と該浮動枠の上下に配置された文字行との間を均等する浮動枠配置位置調整処理を実行する。この浮動枠配置位置調整処理の詳細については後述する。
【００５８】
次に、ステップＳ４０７では、ＣＰＵ２０１は、浮動枠へのポインタが設定された浮動枠を全て配置したか否かを判断し、全て配置していないときは（ステップＳ４０７でＮＯ）、ステップＳ４０４以降の処理を繰り返す。一方、全て配置したときは（ステップＳ４０７でＹＥＳ）、ステップＳ４０４〜Ｓ４０６で更新された管理データに基づいて、ページレイアウト画面をディスプレイ装置２１０に表示する（ステップＳ４０８）。
【００５９】
図８は、図７のステップＳ４０３の浮動枠サイズ変更処理の詳細を示すフローチャートである。
【００６０】
図８において、ステップＳ５０１では、ＣＰＵ２０１は、浮動枠が跨ぐ段数（Ｃｏｌｆ）を管理データから取得する。次に、ステップＳ５０２では、ＣＰＵ２０１は、図７のステップＳ４０２で検索された、浮動枠へのポインタが設定された段落のある文字枠内の段数（Ｃｏｌ）を管理データから取得する。ここで、段数（Ｃｏｌ）は、図２に示すように、１つ文字枠に設定された段の数ｎ（ｎ＝１，２，・・・，ｎ）である。
【００６１】
次に、ステップＳ５０３では、ＣＰＵ２０１は、ステップＳ５０２で取得した文字枠内の段数（Ｃｏｌ）とステップＳ５０１で取得した浮動枠が跨ぐ段数（Ｃｏｌｆ）とを比較し、文字枠内の段数（Ｃｏｌ）より浮動枠が跨ぐ段数（Ｃｏｌｆ）が大きいか否かを判断する。この判断の結果、文字枠の段数（Ｃｏｌ）より浮動枠が跨ぐ段数（Ｃｏｌｆ）が大きいときは（ステップＳ５０３でＹＥＳ）、ＣＰＵ２０１は、浮動枠が跨ぐ段数を文字枠の段数に変更する（ステップＳ５０４）。このとき、ＣＰＵ２０１は管理データ内の段数（Ｃｏｌｆ）を更新する。
【００６２】
次に、ステップＳ５０５では、ＣＰＵ２０１は、浮動枠へのポインタが設定された段落がある段の段幅（Ｗｃ）を管理データから取得する。次に、ステップＳ５０６では、ＣＰＵ２０１は、浮動枠が跨ぐ段数（Ｃｏｌｆ）×ステップＳ５０５で取得した段幅（Ｗｃ）＋段間幅（Ｗｓ）×（浮動枠が跨ぐ段数（Ｃｏｌｆ）−１）で浮動枠の幅（Ｗｆ）を算出する。段間幅（Ｗｓ）については浮動枠が跨ぐ段の段間幅であり、ＣＰＵ２０１はステップＳ５０１〜Ｓ５０６のいずれかのタイミングで管理データから取得するものとする。
【００６３】
次に、ステップＳ５０７では、ＣＰＵ２０１は、浮動枠内のテキストデータ（文字）の配置計算を行う。即ち、ステップＳ５０６で算出された浮動枠の幅に、浮動枠にテキストデータを配置した場合の浮動枠の左上頂点の座標（Ｘｆ、Ｙｆ）と、浮動枠に配置される文字の最終行の右下の頂点の座標（Ｌｘｆ２、Ｌｙｆ２）とを算出し、管理データとして記憶又は更新する。そして次に、ステップＳ５０８では、ＣＰＵ２０１は、ステップＳ５０７の計算結果から、浮動枠に配置される文字の最終行の右下の頂点の座標（Ｌｘｆ２、Ｌｙｆ２）、浮動枠の左上頂点の座標（Ｘｆ、Ｙｆ）を管理データから取得し、浮動枠の上端と浮動枠に配置される文字の最終行の下端との距離（Ｌｙｆ２−Ｙｆ）で浮動枠の高さ（Ｈｆ）を算出する。このとき、ＣＰＵ２０１は管理データ内の浮動枠の高さ（Ｈｆ）を更新する。以上の処理により、浮動枠内に配置される文字に応じて浮動枠の適正なリサイズが行われる。
【００６４】
図９は、図７のステップＳ４０４の配置位置調整処理の詳細を示すフローチャートである。本処理は、浮動枠の配置位置が変更された場合又は浮動枠の高さが変更された場合に実行される処理である。
【００６５】
図９において、ＣＰＵ２０１は、浮動枠が複数段に跨っているか否かを判断する（ステップＳ６０２）。この判断の結果、複数段に跨っていないときは（ステップＳ６０２でＮＯ）、移動位置に浮動枠を移動してリターンする。一方、複数段に跨っているときは（ステップＳ６０２でＹＥＳ）、浮動枠が跨ぐ各段の上端から浮動枠の上端までの高さをそれぞれ算出し合計する（ステップＳ６０３）。
【００６６】
次に、ＣＰＵ２０１は、ステップＳ６０３で合計した高さ／文字一行分の高さ／浮動枠が跨ぐ段数を算出し、浮動枠の前方に配置される段の高さ（文字が配置される行数）を算出する（ステップＳ６０４）。複数の段に跨って浮動枠が配置されている場合は、該複数の段の浮動枠までの高さが、当該段内に配置される文字の全行の高さに応じて均等になるように各段の高さが算出される。ステップＳ６０５では、ＣＰＵ２０１は、算出された段の高さに応じて浮動枠を移動してリターンする。
【００６７】
以上の処理により、浮動枠がリサイズされた際の浮動枠と当該浮動枠より前方に配置された段の配置位置を自動的に微調整することができる。
【００６８】
図１０は、図７のステップＳ４０５の段末禁則処理の詳細を示すフローチャートである。図１４は、段末禁則処理による浮動枠の配置位置移動時のページレイアウトの一例を示す図であり、（ａ）は文字の追加入力により浮動枠が段１の後方に移動したときのページレイアウト、（ｂ）は段末禁則処理により浮動枠が段２の先頭に移動したときのページレイアウトを示す。
【００６９】
図１０において、ステップＳ７０１では、ＣＰＵ２０１は、文字枠内又は段内に配置された文字数の増減により移動した浮動枠の後方に一行分の文字を配置できないかを判断する。この判断の結果、例えば、図１４（ａ）に示すように、浮動枠の後方に一行分の文字を配置できるときは（ステップＳ７０１でＮＯ）、そのままリターンする一方、浮動枠の後方に一行分の文字を配置できないときは（ステップＳ７０１でＹＥＳ）、ステップＳ７０２へ進む。
【００７０】
なお、ステップＳ７０１では、ＣＰＵ２０１が浮動枠の後方に一行分の文字を配置できないかを判断しているが、浮動枠に見出しが配置されていた場合、後方に一行分の文字が配置できても見出しとしての目的を成さないことがある。そこで、浮動枠の後方に配置される行数が所定の行数以下か否かを判断するようにしてもよい。この所定の行数は、判定値としてユーザが任意に設定することが可能である。また、ステップＳ７０１では、文字枠内又は段内に配置された文字数の増減により浮動枠が文字枠若しくは段の所定の位置よりも後方（後部）に配置されているか否かを判断するようにしてもよい。また、ステップＳ７０１では、文字枠内又は段内に配置された文字数の増減により浮動枠が文字枠又は段の下端に移動したか否かを判断するようにしてもよい。
【００７１】
ステップＳ７０２では、ＣＰＵ２０１は、浮動枠の右側に段があるか否かを判断する（ステップＳ７０２）。ここでは、ＣＰＵ２０１は、文字枠内の最後の段ｎの左上の頂点の座標（Ｘｃｎ，Ｙｃｎ）と浮動枠の右下の頂点の座標（Ｘｆ＋Ｗｆ，Ｙｆ＋Ｈｆ）が、（Ｘｆ＋Ｗｆ）≦（Ｘｃｎ−Ｗｓ）の関係にあるときは、浮動枠の右側に段があると判断する。なお、ステップＳ７０２では、浮動枠が跨っている段のある文字枠内において、浮動枠が跨っている段に連結した他の段があるか否かを判断するようにしてもよい。また、移動先の段は、移動前の段（リンク先）と連結された関係であってもよい。
【００７２】
そして、移動した浮動枠の右側に段（他の段）があるとＣＰＵ２０１が判断したときは（ステップＳ７０２でＹＥＳ）、浮動枠を右方に１段分移動する（ステップＳ７０３）。ここでは、浮動枠Ｘｆが、Ｘｆ＝Ｘｆ＋Ｗｃ＋Ｗｓとなるように管理データを変更する。浮動枠が複数の段に跨っている場合、段幅Ｗｃは浮動枠の右側の頂点の座標上の段の段幅をいう。例えば、図２の場合、Ｘｆ＝Ｘｆ＋Ｗ２＋Ｗｓとなる。
【００７３】
次に、ステップＳ７０４では、ＣＰＵ２０１は、浮動枠が複数の段に跨っているか否か（Ｃｏｌｆ＞１）を判断する。この判断の結果、複数の段に跨っていないと判断したときは（ステップＳ７０４でＮＯ）、浮動枠を次の段の先頭に移動して配置する（ステップＳ７０５）。ここで、次の段とは、ステップＳ７０３で移動した移動先の段を意味する。また、段の先頭は段の前部を指し、段の上端に浮動枠が移動して配置される必要はなく、前方部分であればよい。このように、文字枠内又は段内に配置された文字数の増減により移動した浮動枠が予め設定された条件と一致した場合には、当該浮動枠を当該文字枠又は当該段に連結する他の文字枠又は他の段の前部に移動するので、例えば、見出しとして浮動枠を利用した場合であっても、当該見出しの浮動枠がテキストデータの増減でページの最下行に移動することなく、見出しとしての体裁を保つことができる。
【００７４】
次に、ＣＰＵ２０１は、浮動枠を先頭に移動した後の文字枠全体の文字の再配置処理を行って（ステップＳ７０６）、リターンする。一方、ステップＳ７０４において、ＣＰＵ２０１は浮動枠が複数の段に跨っていると判断したときは（ステップＳ７０４でＹＥＳ）、ステップＳ７０３で移動した浮動枠を含む文字枠全体の文字の再配置処理を行い（ステップＳ７０７）、図７のステップＳ４０１へ戻る。
【００７５】
ステップＳ７０２の判断の結果、ＣＰＵ２０１は、浮動枠の右側に段がないと判断したときは（ステップＳ７０２でＮＯ）、次の文字枠があるか否か、すなわちリンク先の文字枠があるか否かを判断する（ステップＳ７０８）。この判断の結果、ＣＰＵ２０１は次の文字枠があると判断したときは（ステップＳ７０８でＹＥＳ）、図１４（ｂ）に示すように、浮動枠をリンク先の文字枠に移動して（ステップＳ７０９）、図７のステップＳ４０１へ戻る。一方、次の文字枠がないときは（ステップＳ７０８でＮＯ）、リターンする。
【００７６】
以上の処理により、例えば、浮動枠を見出しとして利用した場合、浮動枠よりも前に配置されたテキストデータの増加に伴って浮動枠が下の行に移動しても、ページの最下行に配置されることなく、見出しとしての本来の目的を確保することができる。
【００７７】
図１１は、図７のステップＳ４０６の浮動枠配置位置調整の詳細を示すフローチャートである。図１２は、図１１の浮動枠配置位置調整処理の概要を示す図である。
【００７８】
図１１において、ステップＳ８０１では、ＣＰＵ２０１は、図１２に示すように、浮動枠の上端と浮動枠のすぐ前方にある行の下端との距離Ｄｕを算出する（Ｄｕ＝Ｙｆ−Ｌｙ１２）。次に、ステップＳ８０２では、ＣＰＵ２０１は、図１２に示すように、浮動枠の下端と浮動枠のすぐ後方にある行の上端との距離Ｄｄを算出する（Ｄｄ＝Ｌｙ２１−（Ｙｆ＋Ｈｆ））。次に、ステップＳ８０３では、ＣＰＵ２０１は、Ｄｕ＝Ｄｄとなるように浮動枠を上下に移動してリターンする。
【００７９】
以上の処理により、浮動枠と該浮動枠の上下に配置された文字行との間を均等することができ、ページレイアウトの体裁を整えることができる。
【００８０】
上記実施の形態によれば、文字枠内に設定された段と当該文字枠又は段上を移動可能な浮動枠にそれぞれテキストデータが配置された場合、浮動枠が跨ぐ段の数及びサイズに基づいて、当該浮動枠のサイズを変更するので、浮動枠を用いたページ上でテキストデータが増加又は減少してもページ全体の体裁が崩れることなく、ページレイアウトを容易に作成又は編集することができる。また、文書のページレイアウト時に、初めに浮動枠を使って大まかな位置を決めて文書全体の体裁を決定した後に浮動枠を固定枠に変換するという処理が不要となり、文書のページレイアウト処理を簡略化することができる。
【００８１】
上記実施の形態では、文書作成時の浮動枠配置処理について説明したが、他の実施形態として、作成された文書の編集時であっても本発明を適用することが可能である。例えば、図１３に文書編集時における浮動枠配置処理の一例を示すフローチャートである。
【００８２】
図１３において、ステップＳ１３０１では、ＣＰＵ２０１は、作成された文書の編集により管理データが更新されたときは（ステップＳ１３０１でＹＥＳ）、更新された管理データに基づいて文字枠抽出処理を行い、変更された文字枠の管理データを抽出する（ステップＳ１３０２）。ここで、浮動枠に対して編集操作が行われた場合には、浮動枠が配置されている文字枠の管理データを抽出する。次に、ＣＰＵ２０１は、上述したステップＳ１０１の文字配置処理及びステップＳ１０３の浮動枠配置処理を行う。以上の処理により、文書作成時だけでなく、文書の作成後であっても浮動枠の配置処理を容易に行うことができる。
【００８３】
上記実施の形態では、横組みの文書を作成する場合について説明したが、縦組みの文書を作成する場合でも、本発明が適用可能であることは云うまでもない。すなわち、縦組みの文書の場合であれば、本実施の形態で説明した「上端」を「右端」に、「下端」を「左端」に、「下の行」を「後の行」に、「上の行」を「前の行」に解釈することで実施可能である。
【００８４】
また、本発明の目的は、以下の処理を実行することによって達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００８５】
また、プログラムコードを供給するための記憶媒体としては、次のものを用いることができる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等である。または、プログラムコードをネットワークを介してダウンロードしてもよい。
【００８６】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００８７】
更に、前述した実施形態の機能が以下の処理によって実現される場合も本発明に含まれる。即ち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行う場合である。
【００８８】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した各実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現する場合も含まれる。この場合、上記プログラムは、該プログラムを記憶した記憶媒体から直接、又はインターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続された不図示の他のコンピュータやデータベース等からダウンロードすることにより供給される。
【図面の簡単な説明】
【００８９】
【図１】本発明の実施形態に係る文書作成装置の構成を示すブロック図である。
【図２】図１の文書作成装置で作成又は編集される文書のページレイアウトの一例を示す図である。
【図３】文書のページレイアウトを管理するための管理データの概略を示す図であり、（ａ）は文字枠情報、（ｂ）は段情報、（ｃ）は段落情報、（ｄ）は浮動枠情報である。
【図４】図１の文書作成装置１０１で実行される文字配置処理の流れを示すフローチャートである。
【図５】図４のステップＳ１０１における文字配置処理の詳細を示すフローチャートである。
【図６】図４のステップＳ１０２の浮動枠設定処理の詳細を示すフローチャートである。
【図７】図４のステップＳ１０３の浮動枠配置処理の詳細を示すフローチャートである。
【図８】図７のステップＳ４０３の浮動枠サイズ変更処理の詳細を示すフローチャートである。
【図９】図７のステップＳ４０４の配置位置調整処理の詳細を示すフローチャートである。
【図１０】図７のステップＳ４０５の段末禁則処理の詳細を示すフローチャートである。
【図１１】図７のステップＳ４０６の浮動枠配置位置調整の詳細を示すフローチャートである。
【図１２】図１１の浮動枠配置位置調整処理の概要を示す図である。
【図１３】図１の文書作成装置で実行される文字配置処理の他の一例を示すフローチャートである。
【図１４】図１０の段末禁則処理による浮動枠の配置位置移動時のページレイアウトの一例を示す図であり、（ａ）は文字の追加入力により浮動枠が段１の後方に移動したときのページレイアウト、（ｂ）は段末禁則処理により浮動枠がリンク先の文字枠の先頭に移動したときのページレイアウトを示す。
【図１５】浮動枠設定ダイアログの一例を示す図である。
【図１６】従来の浮動枠の配置位置移動時のページレイアウトの一例を示す図であり、（ａ）は編集前のページレイアウト、（ｂ）は文字の追加入力により浮動枠の配置位置が移動したページレイアウトを示す図である。
【符号の説明】
【００９０】
１０１  文書作成装置
２０１  ＣＰＵ
２０２  ＲＡＭ
２０３  ＲＯＭ
２０４  ＨＤＤ
２１０  ディスプレイ装置
【図１】
2008129935.tif 000003
【図２】
2008129935.tif 000004
【図３】
2008129935.tif 000005
【図４】
2008129935.tif 000006
【図５】
2008129935.tif 000007
【図６】
2008129935.tif 000008
【図７】
2008129935.tif 000009
【図８】
2008129935.tif 000010
【図９】
2008129935.tif 000011
【図１０】
2008129935.tif 000012
【図１１】
2008129935.tif 000013
【図１２】
2008129935.tif 000014
【図１３】
2008129935.tif 000015
【図１４】
2008129935.tif 000016
【図１５】
2008129935.tif 000017
【図１６】
2008129935.tif 000018