(57)【特許請求の範囲】
【請求項１】
表の各矩形領域の相対位置関係と各矩形領域に割り付けられるテキストを保持するグリッドストラクチャ保持手段と、前記各テキストに対してある幅または高さを与えた際に該それぞれの幅または高さにおいて該テキストを割り付けるのに最低必要な矩形領域の該幅に対応する高さまたは該高さに対応する幅を与える関数における全てもしくは一部の不連続点における幅もしくは高さもしくは幅と高さの組を矩形領域寸法として提供するテキスト領域寸法境界値提供手段と、前記各テキストに対して該テキストに対応して前記テキスト領域寸法境界値提供手段が提供する前記矩形領域寸法の一つとの対応づけを記録するテキスト領域寸法保持手段と、前記テキスト領域寸法保持手段に保持されている前記矩形領域寸法から前記各テキスト間での幅または高さを比較し大きい幅または高さを持つテキストＴｍと該テキストの幅ＴＷｍまたは高さＴＨｍを得て前記テキスト領域寸法境界値提供手段に保持されている該テキストＴｍに対応する前記矩形領域寸法の中で幅ＴＷｍまたは高さＴＨｍよりも小さくかつそれらの中で幅または高さが大きいものを選択して前記テキスト領域寸法保持手段中の前記テキストＴｍに対応する前記矩形領域寸法を追加もしくは変更して表の割付けを行なう表割付手段と、評価手段を有し、前記評価手段は、表の全体もしくは表の一部の割付結果から表の幅または高さを計算して該幅または高さが表の幅または高さの条件を満たしているか否かの判定を行ない、該判定の結果に基づいて前記表割付手段に表の再割付を行なわせ、前記表割付手段は、表の再割付処理としてテキスト領域寸法境界値提供手段が提供する別の前記矩形領域寸法を選択して該矩形領域寸法により前記テキスト領域寸法保持手段がテキストに対応づけて保持している矩形領域寸法を変更し、前記表の割付けを行うことを特徴とする表割付装置。
【請求項２】
さらに各行または列ごとの行幅または列幅の上限値を保持する幅上限値保持手段を有し、前記表割付手段が該幅上限値保持手段中の行幅または列幅の上限値を設定もしくは変更する際に、各テキストを囲む最小の矩形領域の高さまたは幅が前記幅上限値保持手段に保持されている該テキストが対応する行または列の行幅または列幅の上限値を超えない前記テキスト領域寸法境界値提供手段が提供する前記矩形領域寸法を選択してテキスト領域寸法保持手段に記録し前記各テキストを割り付けることを特徴とする請求項１に記載の表割付装置。
【請求項３】
前記表割付手段は、表中の１行における高さまたは１列における幅を求め、該行または列中の各テキストに対して前記テキスト領域寸法境界値提供手段が提供する矩形領域寸法のうち、該テキストに対応しかつ高さまたは幅が当該行の高さ以下または当該列の幅以下のものの中で高さまたは幅が最大である矩形領域寸法を選択してテキスト領域寸法保持手段に記録し、割付けを行なうことを特徴とする請求項１または２に記載の表割付装置。
【請求項４】
表の各矩形領域の相対位置関係と各矩形領域に割り付けられるテキストを保持するグリッドストラクチャ保持手段と、表中の各列または各行に対して該列または行に含まれる前記テキストをＴ１，・・・，Ｔｍとしある幅または高さを与えた際に該幅または高さにおいてテキストＴｉを割り付けるのに最低必要な矩形領域の高さまたは幅を与える関数における不連続点それぞれにおける幅または高さの集合をＳｉとしたとき∪i=1mＳｉの全てもしくは一部の要素を提供する寸法境界値提供手段と、各列または各行に対して該列または行に対応して前記寸法境界値提供手段が提供する要素の一つとの対応づけを記録する寸法保持手段と、各列または各幅間で幅または高さを比較し大きい幅または高さを持つ列Ｃｍまたは行Ｒｍと該列Ｃｍまたは該行Ｒｍの幅ＣＷｍまたは高さＲＨｍを得て前記寸法境界値提供手段に保持されている列Ｃｍまたは行Ｒｍに対応する前記要素の中で幅ＣＷｍまたは高さＲＨｍよりも小さくかつそれらの中で幅または高さが大きいものを選択して前記寸法保持手段中の列Ｃｍまたは行Ｒｍに対応する要素を変更し表の割付けを行なう表割付手段と、評価手段を有し、前記評価手段は、表の全体もしくは表の一部の割付結果から表の幅または高さを計算して該幅または高さが表の幅または高さの条件を満たしているか否かの判定を行ない、該判定の結果に基づいて前記表割付手段に表の再割付けを行なわせ、前記表割付手段は、表の再割付処理として寸法境界値提供手段が提供する別の要素を選択して該要素により前記寸法保持手段が各列に対応づけて保持している要素を変更し、前記表の割付けを行うことを特徴とする表割付装置。
【請求項５】
さらに各行または各列ごとの行幅または列幅の上限値を保持する幅上限値保持手段を有し、前記表割付手段が前記幅上限値保持手段中の行幅上限値または列幅上限値を設定もしくは変更するとともに、各行または各列の行幅または列幅が前記幅上限値保持手段に保持されている行幅または列幅の上限値を越えない前記寸法境界値提供手段が提供する要素を選択して寸法保持手段に記録し前記行または列を割り付けることを特徴とする請求項４に記載の表割付装置。
【請求項６】
表の各矩形領域の相対位置関係と各矩形領域に割り付けられるテキストをグリッドストラクチャ保持手段が保持しており、前記各テキストに対してある幅または高さを与えた際に該それぞれの幅または高さにおいて該テキストを割り付けるのに最低必要な矩形領域の該幅に対応する高さまたは該高さに対応する幅を与える関数における全てもしくは一部の不連続点における幅もしくは高さもしくは幅と高さの組を矩形領域寸法としてテキスト領域寸法境界値提供手段が格納しており、前記各テキストと該テキストに対応して前記テキスト領域寸法境界値提供手段に格納されている前記矩形領域寸法の一つとの対応づけをテキスト領域寸法保持手段が記録しており、評価手段が表の全体もしくは表の一部の割付結果から表の幅または高さを計算して該幅または高さが表の幅または高さの条件を満たしているか否かの判定を行ない、表割付手段が、該判定の結果に基づいてテキスト領域寸法境界値提供手段に格納されている別の前記矩形領域寸法を選択して該矩形領域寸法により前記テキスト領域寸法保持手段がテキストに対応づけて保持している矩形領域寸法を変更し、前記テキスト領域寸法保持手段に保持されている前記矩形領域寸法から前記各テキスト間での幅または高さを比較し、大きい幅または高さを持つテキストＴｍと該テキストの幅ＴＷｍまたは高さＴＨｍを得て、前記テキスト領域寸法境界値提供手段に保持されている該テキストＴｍに対応する前記矩形領域寸法の中で幅ＴＷｍまたは高さＴＨｍよりも小さくかつそれらの中で幅または高さが大きいものを選択して、前記テキスト領域寸法保持手段中の前記テキストＴｍに対応する前記矩形領域寸法を追加もしくは変更して表の再割付を行なうことを特徴とする表割付方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、与えられた情報に従って作表を行なう際に、該情報を自動的に表中に割り付ける表割付装置および表割付方法に関するものである。
【０００２】
【従来の技術】
近年、文書処理システムにおいて、作表機能は欠かせないものとなっている。従来の簡単なシステムでは、ユーザが罫線を描画し、区分けされた表の各セルにテキストを配置している。このようなシステムでは、テキストがセルに入りきらなかったり、空間が空きすぎたりした場合、罫線を引き直し、表の形状そのものを修正する必要がある。そのため、ユーザは試行錯誤を繰り返し、無益な時間を費やすことになる。
【０００３】
表を作成するためには、表の各行の高さ、各列の幅を決定し、セルに配置されるテキストを、横書きの場合には列の幅に、また縦書きの場合には行の高さに合わせて行折りを行なって配置すればよい。表の行の高さ、列の幅は割り付けられるテキストや、表全体の大きさなど、種々の条件により決定される。
【０００４】
従来の作表方法では、これらの要素をユーザが勘案、決定して作表を行なっていたので、ユーザによってはうまく作表できなかったり、多大の労力を必要としていた。よって、表の行の高さと列の幅を自動決定するシステムがあれば、ユーザにとってのメリットは極めて大きなものがある。
【０００５】
このようなメリットが存在するにもかかわらず、一般に広く使用されているシステムにおいて、表の行高、列幅の自動決定とテキストの自動行折りを同時に達成する機能が提供されていない。その理由は、以下に述べるような技術課題に由来する。
【０００６】
水平インターバル（列の幅）があらかじめ決定されている時に、垂直インターバル（行の高さ）の自動決定とテキストの自動行折りを共存させることは実現されている。たとえば、Ｊ−Ｓｔａｒ（登録商標）、ＬａＴｅＸ、Ｉｎｔｅｒｌｅａｆ５（商品名）では、以下の方法でこの機能が実現されている。まず、セルにテキストを流し込むことによって、あらかじめ与えられたセルの幅（セルが交わっている列の幅の和）にテキストが納まるようにテキストの行折りを計算する。計算された行折りのもとで、テキストの高さを求める。そして、セルの高さが、流し込まれるテキストの高さ以上になるように、最小の垂直インターバルを計算する。これにより、水平インターバルがあらかじめ決定されている場合に、垂直インターバルの決定及びテキストの行折りを自動的に行なうことができる。
【０００７】
一方、列幅及び行高とテキストの行折りのすべてを自動的に決定することは、上述の列幅があらかじめ決定されている場合のように簡単ではない。図２は、図３は、図４は、表の一例の説明図である。図２〜図４に示した表は、４つのセルを持つ単純な表である。ｄ１、ｄ２はそれぞれ第１列、第２列の幅を表わすものとし、ｄ１＋ｄ２＝ｄという制約のもとで自由な値を取りうるとする。ここで、ｄはページの幅等から定まる定数とする。
【０００８】
前述したように、列幅を決定すれば行高及びテキスト行折りは自動的に決定できるが、列幅の定め方は、例えば、図２に示すようにｄ１＝０．５ｄとすることも、図３に示すようにｄ１＝０．２ｄとすることも、図４に示すようにようにｄ１＝０．８ｄとすることも可能であり、実際、無限の定め方がある。よって列幅等を決定するには、ある条件を定めて、それら無限の列幅の定め方のうちからその条件を満たすものを選択するといったことが必要となる。
【０００９】
しかしながら、例えば、「表面積を可能な限り小さくする」といったような条件を定めたとしても、今度はその条件を満たすような列幅の定め方をどのようにして見つけるかが問題となる。
【００１０】
この問題に対して、一つの解決方法が特開平３−３８７７４号公報及び特開平７−３３４４９０号公報に述べられている。まず特開平３−３８７７４号公報に記載されている方法について説明する。この文献では、ユーザが一つのセルのサイズを変更した際に、そのセルの高さをそのセルを含む行の高さとし、そのセルの幅をそのセルを含む列の幅とする。行の高さが決定すれば、その行に含まれる各セルについてセル内テキストを納められる最小の幅が決まるので、その幅を各々のセルの幅とする。同様に、列の幅よりその列内のセルの高さが決定される。これによって表内の全行／列の高さ／幅が決定されるが、さらにテキストの溢れが生じたセルがあれば、テキストが納まるようにセルの大きさを調節する。
【００１１】
しかし、この特開平３−３８７７４号公報にて述べられている手法は、基準となるセルのサイズを与えなくてはならないので、全自動で行高、列幅、行折りを計算できないという問題がある。また、基準のセルと同一の行に含まれる他のセルの幅の決定方法について、セル幅を１文字サイズだけ増減させてゆきテキストがちょうど納まるセル幅を求めている。この手法では、テキスト内で文字サイズが異なった場合に対応できないし、セル幅を大幅に変更しなくてはならない場合でも１ステップに１文字サイズずつしか変更しないので、求めるセル幅に到達するのにステップ数がかかるという問題もある。
【００１２】
次に、特開平７−３３４４９０号公報で述べられている手法について説明する。まず行折り関数について説明する。いま、テキストＴを固定し、テキストＴを矩形領域内に割り付けることを考える。矩形領域の幅ｗに対してテキストＴを割り付けるために必要な最低限の矩形領域の高さｈを返す関数ｆをテキストＴに関する行折り関数と呼ぶ。但し、関数ｆの定義域は０≦ｈであり、割付けが不可能なｈに対しては特殊値⊥を返すものとする。
【００１３】
図５は、行折り関数の一例の説明図である。図５では、フィックスドピッチで文字サイズが一律で、文字列長が９であるテキストの行折り関数を一例として示している。図５に示したように、行折り関数は階段関数である。つまり、テキストを割り付ける矩形領域の幅をＷとすると、ある値Ｗi とＷi+1 が存在して、Ｗi ≦Ｗ＜Ｗi+1 の範囲では矩形領域の高さが変化しない。そして、矩形領域の幅がある幅よりも狭くなったときに行折りが発生して矩形領域の高さが増える。そして、またある幅より狭くなるまで、行内の空隙の量により調整されるため、一定の矩形領域の高さとなる。
【００１４】
ここではテキスト内の文字サイズが同一の場合であるが、たとえ同一でなくとも行折り関数が図５のように階段関数であることには変わりはない。但し、減少関数とは限らなくなる。以降の説明において、矩形領域の幅に対して高さを返す行折り関数を用いて説明してゆくが、高さに対して幅を返す行折り関数であっても同様である。
【００１５】
特開平７−３３４４９０号公報で述べられている表割付装置では、各テキストが階段関数のどの段の高さに対応するかで場合分けを行なう。そこで表の各カラム幅をパラメータとすれば、それぞれの場合においてはテキスト高さは一意であるので、各セルの面積はパラメータの一次式で表わせることになる。よって、表の面積（＝各セルの面積の総和）もパラメータの一次式で表わせる。このことを利用し、表の面積を最小にするパラメータの取り方、つまりその場合において表を最も小さくする列幅の取り方を線形計画法で求める。このように場合分けを行なった各場合について表の面積を最小とする列幅の取り方を各々求めてから、それらを比較してその中で最小な表を与える列幅の取り方を採用する。
【００１６】
特開平７−３３４４９０号公報にて述べられた手法は、厳密に表の面積を最小にする列幅の取り方を与え、さらにパラメータ（列幅）の一次式で表わせるような、例えば、「表の幅は５０ｍｍ以下である」等といった制限をも任意に設定することができる。しかし、テキストの長さが長くなり行折り関数の段数が増えたり、表中のテキストの数が増えたりした場合、場合分けの個数が数千や数万のオーダーになってしまい、さらに各々の場合について計算コストの高い線形計画法を解かねばならないため、表割付に非常にコストがかかるという問題点があった。
【００１７】
【発明が解決しようとする課題】
本発明は、上述した事情に鑑みてなされたもので、表の水平、垂直罫線間の間隔の自動決定と、項目欄中のテキストの自動行折りを両立させた上で、計算コストのかからない表割付装置および表割付方法を提供することを目的とするものである。
【００１８】
【課題を解決するための手段】
請求項１に記載の発明は、表割付装置において、表の各矩形領域の相対位置関係と各矩形領域に割り付けられるテキストを保持するグリッドストラクチャ保持手段と、前記各テキストに対してある幅または高さを与えた際に該それぞれの幅または高さにおいて該テキストを割り付けるのに最低必要な矩形領域の該幅に対応する高さまたは該高さに対応する幅を与える関数における全てもしくは一部の不連続点における幅もしくは高さもしくは幅と高さの組を矩形領域寸法として提供するテキスト領域寸法境界値提供手段と、前記各テキストに対して該テキストに対応して前記テキスト領域寸法境界値提供手段が提供する前記矩形領域寸法の一つとの対応づけを記録するテキスト領域寸法保持手段と、前記テキスト領域寸法保持手段に保持されている前記矩形領域寸法から前記各テキスト間での幅または高さを比較し大きい幅または高さを持つテキストＴｍと該テキストの幅ＴＷｍまたは高さＴＨｍを得て前記テキスト領域寸法境界値提供手段に保持されている該テキストＴｍに対応する前記矩形領域寸法の中で幅ＴＷｍまたは高さＴＨｍよりも小さくかつそれらの中で幅または高さが大きいものを選択して前記テキスト領域寸法保持手段中の前記テキストＴｍに対応する前記矩形領域寸法を追加もしくは変更して表の割付けを行なう表割付手段と、評価手段を有し、前記評価手段は、表の全体もしくは表の一部の割付結果から表の幅または高さを計算して該幅または高さが表の幅または高さの条件を満たしているか否かの判定を行ない、該判定の結果に基づいて前記表割付手段に表の再割付を行なわせ、前記表割付手段は、表の再割付処理としてテキスト領域寸法境界値提供手段が提供する別の前記矩形領域寸法を選択して該矩形領域寸法により前記テキスト領域寸法保持手段がテキストに対応づけて保持している矩形領域寸法を変更し、前記表の割付けを行うことを特徴とするものである。
【００１９】
請求項２に記載の発明は、請求項１に記載の表割付装置において、さらに各行または列ごとの行幅または列幅の上限値を保持する幅上限値保持手段を有し、前記表割付手段が該幅上限値保持手段中の行幅または列幅の上限値を設定もしくは変更する際に、各テキストを囲む最小の矩形領域の高さまたは幅が前記幅上限値保持手段に保持されている該テキストが対応する行または列の行幅または列幅の上限値を超えない前記テキスト領域寸法境界値提供手段が提供する前記矩形領域寸法を選択してテキスト領域寸法保持手段に記録し前記各テキストを割り付けることを特徴とするものである。
【００２０】
請求項３に記載の発明は、請求項１または２に記載の表割付装置において、前記表割付手段は、表中の１行における高さまたは１列における幅を求め、該行または列中の各テキストに対して前記テキスト領域寸法境界値提供手段が提供する矩形領域寸法のうち、該テキストに対応しかつ高さまたは幅が当該行の高さ以下または当該列の幅以下のものの中で高さまたは幅が最大である矩形領域寸法を選択してテキスト領域寸法保持手段に記録し、割付けを行なうことを特徴とするものである。
【００２１】
請求項４に記載の発明は、表割付装置において、表の各矩形領域の相対位置関係と各矩形領域に割り付けられるテキストを保持するグリッドストラクチャ保持手段と、表中の各列または各行に対して該列または行に含まれる前記テキストをＴ１，・・・，Ｔｍとしある幅または高さを与えた際に該幅または高さにおいてテキストＴｉを割り付けるのに最低必要な矩形領域の高さまたは幅を与える関数における不連続点それぞれにおける幅または高さの集合をＳｉとしたとき∪i=1mＳｉの全てもしくは一部の要素を提供する寸法境界値提供手段と、各列または各行に対して該列または行に対応して前記寸法境界値提供手段が提供する要素の一つとの対応づけを記録する寸法保持手段と、各列または各幅間で幅または高さを比較し大きい幅または高さを持つ列Ｃｍまたは行Ｒｍと該列Ｃｍまたは該行Ｒｍの幅ＣＷｍまたは高さＲＨｍを得て前記寸法境界値提供手段に保持されている列Ｃｍまたは行Ｒｍに対応する前記要素の中で幅ＣＷｍまたは高さＲＨｍよりも小さくかつそれらの中で幅または高さが大きいものを選択して前記寸法保持手段中の列Ｃｍまたは行Ｒｍに対応する要素を変更し表の割付けを行なう表割付手段と、評価手段を有し、前記評価手段は、表の全体もしくは表の一部の割付結果から表の幅または高さを計算して該幅または高さが表の幅または高さの条件を満たしているか否かの判定を行ない、該判定の結果に基づいて前記表割付手段に表の再割付けを行なわせ、前記表割付手段は、表の再割付処理として寸法境界値提供手段が提供する別の要素を選択して該要素により前記寸法保持手段が各列に対応づけて保持している要素を変更し、前記表の割付けを行うことを特徴とするものである。
【００２２】
請求項５に記載の発明は、請求項４に記載の表割付装置において、さらに各行または各列ごとの行幅または列幅の上限値を保持する幅上限値保持手段を有し、前記表割付手段が前記幅上限値保持手段中の行幅上限値または列幅上限値を設定もしくは変更するとともに、各行または各列の行幅または列幅が前記幅上限値保持手段に保持されている行幅または列幅の上限値を越えない前記寸法境界値提供手段が提供する要素を選択して寸法保持手段に記録し前記行または列を割り付けることを特徴とするものである。
【００２３】
請求項６に記載の発明は、表割付方法において、表の各矩形領域の相対位置関係と各矩形領域に割り付けられるテキストをグリッドストラクチャ保持手段が保持しており、前記各テキストに対してある幅または高さを与えた際に該それぞれの幅または高さにおいて該テキストを割り付けるのに最低必要な矩形領域の該幅に対応する高さまたは該高さに対応する幅を与える関数における全てもしくは一部の不連続点における幅もしくは高さもしくは幅と高さの組を矩形領域寸法としてテキスト領域寸法境界値提供手段が格納しており、前記各テキストと該テキストに対応して前記テキスト領域寸法境界値提供手段に格納されている前記矩形領域寸法の一つとの対応づけをテキスト領域寸法保持手段が記録しており、評価手段が表の全体もしくは表の一部の割付結果から表の幅または高さを計算して該幅または高さが表の幅または高さの条件を満たしているか否かの判定を行ない、表割付手段が、該判定の結果に基づいてテキスト領域寸法境界値提供手段に格納されている別の前記矩形領域寸法を選択して該矩形領域寸法により前記テキスト領域寸法保持手段がテキストに対応づけて保持している矩形領域寸法を変更し、前記テキスト領域寸法保持手段に保持されている前記矩形領域寸法から前記各テキスト間での幅または高さを比較し、大きい幅または高さを持つテキストＴｍと該テキストの幅ＴＷｍまたは高さＴＨｍを得て、前記テキスト領域寸法境界値提供手段に保持されている該テキストＴｍに対応する前記矩形領域寸法の中で幅ＴＷｍまたは高さＴＨｍよりも小さくかつそれらの中で幅または高さが大きいものを選択して、前記テキスト領域寸法保持手段中の前記テキストＴｍに対応する前記矩形領域寸法を追加もしくは変更して表の再割付を行なうことを特徴とするものである。
【００２５】
【発明の実施の形態】
図１は、本発明の表割付装置の第１の実施の形態を示す構成図である。図中、１はグリッドストラクチャ保持部、２はテキスト領域寸法境界値提供部、３は表割付部、４はテキスト領域寸法保持部、５は割付評価部である。また、図中の矢印はデータの流れを表わしている。
【００２６】
グリッドストラクチャ保持部１は、表のセルの相対位置関係と、各セルに割り付けられるテキストを保持する。図６は、本発明の表割付装置の第１の実施の形態におけるグリッドストラクチャ保持部１に保持されるグリッドストラクチャ情報の一例の説明図である。図６（Ａ）はテキストを割り付ける表の構造を示しており、図６（Ａ）に示した例では、表は３×３のマトリクス型をしている。しかし、このような升目状の表に限らず、マルチカラムやマルチローのセルが含まれるなど、複雑な構造の表であってもかまわない。また、図６（Ａ）では表の形式で示しているが、実際には各セルの相対位置や隣接するセルに関する情報などを有している。また、図６（Ａ）に示した例では、各セルについて、割り付けるべきテキストを示すテキスト番号が示されている。テキスト番号に限らず、各セルの情報としてテキストへのポインタを有する構成など、種々のデータ構造によって表現可能である。
【００２７】
図６（Ｂ）に示すように、各テキスト番号に対応して、各セルに割り付けられるテキストを保持している。図６（Ｂ）では、一例として「３文字」、「文字数４」・・・といった文字列のみを示しているが、文字サイズが全て同じである必要はない。また、数式のように複数の文字が密接不可分の場合があっても、図や画像が存在していてもよく、これらの場合には、分割できないブロックごとに１文字として考えればよい。このような画像などのブロックを含む場合でも、以下の説明ではテキストと呼んでいる。
【００２８】
テキスト領域寸法境界値提供部２は、表中に割り付けるべき各テキストに対し、ある幅を与えた際にその幅において該テキストを割り付けるのに最低必要な矩形領域の高さを与える関数における不連続点それぞれにおける幅と高さの組からなる矩形領域寸法の集合を保持する。
【００２９】
図７は、行折りの一例の説明図である。上述のように、行折り関数は階段関数である。一般に表においては、無駄な空白がないほうがよりよいと考えられるので、高さが同じであるならば、幅は小さいほうがよいと考えられる。つまりＷi ≦Ｗ＜Ｗi+1 の範囲で幅を考えると、Ｗ＝Ｗi である時が一番望ましい。例えば図５に示した行折り関数について考えると、幅５以上、９未満において、高さが２であるが、この場合、例えば幅を８にしてテキストを割り付ければ図５（Ｂ）に示すようになり、図５（Ａ）に示す幅が５である場合に比べて無駄な空白面積が大きい。この「一番望ましい幅」を行折り関数の各段について考えれば、これらは「行折り関数の不連続点」として与えられることがわかる。テキスト領域寸法境界値提供部２は、このような行折り関数の不連続点を保持している。なお、テキストを固定したとき、このような矩形領域寸法の集合を求める方法については上述の特開平７−３３４４９０号公報にて述べられている。
【００３０】
表の任意の列について、その列の幅がその列に含まれる個々のテキストの行折り関数の不連続点のどれとも一致しない場合、各テキストを囲む、幅が列の幅に等しく高さが最小である矩形領域を考えれば、各々の矩形領域には無駄な空白領域が存在し、矩形領域の幅を狭めることにより矩形の高さを変更させずにその空白領域面積を減少させることが可能である。この対偶を取れば、上記のような無駄な空白領域を減少させ得ない場合、列の幅がその列に含まれる個々のテキストの行折り関数の不連続点のどれか一つ以上と一致することになる。このことから、行折り関数の不連続点を用いて割付けを行なうことによって、無駄な空白領域をこれ以上減少させることのできない、「一番望ましい幅」を有する表が作成できることになる。またこのことは行についても同様に言うことができる。
【００３１】
図８は、本発明の表割付装置の第１の実施の形態においてテキスト領域寸法境界値提供部が保持するテキスト領域寸法境界値の一例の説明図である。テキスト領域寸法境界値提供部２は、例えば図８に示すような形式でテキスト領域寸法境界値を保持する。ここでは、図６（Ｂ）に示したグリッドストラクチャ保持部１が保持するテキストの具体例について、それぞれのテキスト領域寸法境界値を示している。図８の左欄は図６（Ｂ）に示したテキストとの対応をとるためのテキスト番号である。また、図８の右欄はテキスト領域寸法境界値であり、ここでは一例として、テキストは固定の大きさのフォントおよびピッチであるものとし、行折り関数の不連続点を、便宜上、文字数によって示している。実際には、文字の大きさやピッチなどが一様でないことも考えられるので、ある単位の長さ等で示すことになる。
【００３２】
例えば、テキスト番号３のテキストは文字数が９であるので、行折り関数は図５に示したようになり、５つの不連続点（幅＝１，高さ＝９）、（幅＝２，高さ＝５）、（幅＝３，高さ＝３）、（幅＝５，高さ＝２）、（幅＝９，高さ＝１）がテキスト領域寸法境界値としてテキスト領域寸法境界値提供部２に保持される。
【００３３】
テキスト領域寸法保持部４は、各テキストに対して、そのテキストに対応するテキスト領域寸法境界値提供部２中の値の一つとの対応づけであるテキスト領域寸法を記録する。図９は、本発明の表割付装置の第１の実施の形態においてテキスト領域寸法保持部４が保持するテキスト領域寸法の一例の説明図である。この例では、テキストを特定するためのテキスト番号と、そのテキストに対応するテキスト領域寸法境界値提供部２が保持しているテキスト領域寸法境界値のうち、高さが１のテキスト領域寸法境界値をテキスト領域寸法として保持している。
【００３４】
表割付部３は、テキスト領域寸法保持部４に保持されているテキストとテキスト領域寸法の対応を追加もしくは変更させ、表の割付けを行なうものである。
【００３５】
割付評価部５は、テキスト領域寸法保持部４中に保持されたテキスト領域寸法から、表もしくはその一部の割付結果を評価し、評価の結果、必要であれば表の再割付を表割付部３に行なわせる。
【００３６】
図１０は、本発明の表割付装置の第１の実施の形態における動作の一例を示すフローチャートである。ここでは具体例として、表の幅が１５文字以内となるように表割付を行なうものとする。
【００３７】
Ｓ１１において、表割付部３は初期割付けを行なう。初期割付けでは、テキスト領域寸法境界値提供部２に保持されているテキスト領域寸法境界値の中で、各テキストにおいて幅が最大であるものを選択し、その寸法をテキスト領域寸法としてテキストと対応づけてテキスト領域寸法保持部４に記録する。
【００３８】
次に、割付評価部５は、表の割付結果の評価を行なう。ここでは条件として、表の幅が１５文字以内という条件が与えられているので、表の幅が１５文字以内に納まっているか否かを判定する。この判定は、まずＳ１２において表の幅の計算を行ない、Ｓ１３において、計算した結果が条件を満たしているか否かの判定を行なう。
【００３９】
Ｓ１２において行なわれる表の幅の計算方法について説明する。ただし、以下の説明で「テキストの幅」というときは、テキスト領域寸法保持部に保持されたそのテキストに対するテキスト領域寸法の幅の部分を、「テキストの高さ」というときは同様にテキスト領域寸法の高さ部分を指すものとする。表の幅は、各列の幅を求め、その幅の総和として求める。ここで各列には左より順番に番号がふってあるものとすると、列１より順番に次のような取り決めで列の幅を定める。
列ｉの幅＝ｍａｘ（列ｉを右端とするセルの、列ｉ必要長）
ここでセルｊの「カラムｉ必要長」とは
Ｗj −Σk=Fji-1 ＣＷk 
のことである。ただし、Ｗj はセルｊ中に割り付けられるべきテキストの幅であり、Ｆｊはセルｊが左端とする列の番号であり、ＣＷk は番号ｋの列の幅である。ここで、どのテキストがどの列に含まれるかは、グリッドストラクチャ保持部１に保持された内容により知ることができる。このような計算を行なうことにより、例えばマルチカラムのセルが存在していても各列の幅を計算することができる。
【００４０】
次にＳ１３において、Ｓ１２で求めた表の幅が１５以内に納まっているか否かを判定し、納まっているならば表の割付けを終了する。納まっていなければ、割付評価部５は表割付部３にＳ１４〜Ｓ１６の再割付処理を行なわせる。
【００４１】
再割付処理では、まずＳ１４において、表割付部３は各テキスト間で幅を比較し、一番大きい幅を持つテキストＴｍとその幅ＴＷｍを得る。さらに、Ｓ１５において、テキスト領域寸法境界値提供部２に保持されているテキストＴｍに対応するテキスト領域寸法境界値の中で、幅がＴＷｍよりも小さくかつそれらの中で幅が一番大きいものを選択する。そして、Ｓ１６において、テキスト領域寸法保持部４中のテキストＴｍに対応するテキスト領域寸法を、Ｓ１５で選択したテキスト領域寸法境界値に変更する。再割付処理が終わったら、Ｓ１２へ戻る。
【００４２】
上述の表割付動作の一例を、具体例を用いて説明する。図１１は、本発明の表割付装置の第１の実施の形態の動作の一例における具体的な処理過程においてテキスト領域寸法保持部が保持するテキスト領域寸法の一例の説明図、図１２は、同じく具体的な処理終了時においてテキスト領域寸法保持部が保持するテキスト領域寸法の一例の説明図、図１３は、同じく作成された表の一例の説明図である。
【００４３】
初期状態では、グリッドストラクチャ保持部１には図６に示すグリッドストラクチャ情報が、また、テキスト領域寸法境界値提供部２には図８のようなテキスト領域寸法境界値がそれぞれ保持されているものとする。さらに、テキスト領域寸法保持部４には何も保持されていないものとする。
【００４４】
Ｓ１１において、表割付部３は初期割付けを行なう。その結果、テキスト領域寸法保持部４には、図９に示すようなテキスト領域寸法が各テキストに対応して保持される。
【００４５】
次に、Ｓ１２において、割付評価部５は表の幅の計算を行なう。列１に含まれるセルのテキスト番号は１，４，７であるので、これらの幅をテキスト領域寸法保持部４から求めると、３，８，８である。最大値は８であるので、列１の幅は８となる。同様に、列２の幅は７、列３の幅は９である。列１、列２、列３の幅の値から、表の幅は２４となる。次に、Ｓ１３において、表の幅が１５以内に納まっているか否かの判定を行なう。ここでは納まっていないので、割付評価部５は表割付部３に再割付処理を行なわせる。
【００４６】
表割付部３は、Ｓ１４において、各テキスト間で幅を比較し、一番大きい幅を持つテキストＴｍとその幅ＴＷｍを得る。ここではテキスト番号が３であるテキストが一番大きい幅を持ち、その幅は９であるので、このテキスト番号と幅を得る。さらに、Ｓ１５において、テキスト領域寸法境界値提供部２に保持されたテキスト番号３に対応するテキスト領域寸法境界値の中で、幅が９よりも小さくかつそれらの中で幅が一番大きいものを選択する。該当する値は（幅＝５、高さ＝２）であるので、これを選択する。Ｓ１６において、選択した値を、テキスト領域寸法保持部４中のテキスト番号３に対応するテキスト領域寸法を、Ｓ１５で選択したテキスト領域寸法境界値（幅＝５、高さ＝２）に変更する。この変更により、テキスト領域寸法保持部４に保持されているテキスト領域寸法は、図１１に示すように変更される。
【００４７】
Ｓ１２へ戻り、テキスト領域寸法保持部４に保持されている図１１に示すような新たなテキスト領域寸法に従って表の幅を計算する。新たな表の幅は２１であり、これは１５以下ではないので（Ｓ１３）、さらに再割付処理を行なう。
【００４８】
以下同様にテキスト番号４，７，８についてテキスト領域寸法保持部４に保持されているテキスト領域寸法が変更される。その結果、テキスト領域寸法保持部４が保持するテキスト領域寸法は、図１２に示すように変更される。この時の表の幅は１５であり、これは１５以下であるので、表割付は終了する。
【００４９】
実際に表を作成するためには、上述の表割付処理で得られた図１２に示すようなテキスト領域寸法から、グリッドストラクチャ保持部１に保持されているグリッドストラクチャ情報に従って表の各列の幅および各行の高さを求め、表の枠組みを生成して、テキストを各セル内に配置する。このようにして作成された表を図１３に示している。
【００５０】
図１３に示した例では、各セルへのテキストの配置をテキスト領域寸法保持部４に保持されているテキスト領域寸法に従って配置している。そのため、テキスト番号３や８では、列の幅が５、６であるのに対し、テキストは４文字、５文字で行折りしている。このようなテキストの割付けのほか、テキストをセルに割り付ける際には列の幅に従って割り付けてもよい。
【００５１】
次に、本発明の表割付装置の第２の実施の形態について説明する。この第２の実施の形態は、上述の第１の実施の形態と構成は同じである。上述の第１の実施の形態では、全てのセルにテキストを割り付けてから表全体を見ながら幅を調整したが、この第２の実施の形態では、表を部分的に割り付けてゆく例を示す。
【００５２】
図１４は、本発明の表割付装置の第２の実施の形態における動作の一例を示すフローチャートである。ここでも具体例として、表の幅が１５文字以内となるように表割付を行なうものとする。
【００５３】
まずＳ２１において、表割付部３は表中に全てのテキストが割り付けられているか、つまり全てのテキストに対してなんらかのテキスト領域寸法境界値がテキスト領域寸法保持部にて対応づけられているかを判定する。もし全てのテキストが割り付けられているならば、割付けは終了する。
【００５４】
まだ割り付けられていないテキストが存在するならば、Ｓ２２において、表割付部３は割り付けられていないセルを含む行のうち、一番上に存在するものを選択し、その行に含まれるセルの各テキストに対し、テキスト領域寸法境界値提供部２に保持されたテキスト領域寸法境界値の中で各テキストにおいて幅が最大であるものを選択し、そのテキスト領域寸法境界値をテキストと対応づけてテキスト領域寸法保持部にテキスト領域寸法として記録する。
【００５５】
次に、割付評価部５はすでに割り付けた部分の表の割付結果を評価する。ここでは、表の幅が１５以内に納まっているか否かを判定する。まず、Ｓ２３において、既に割り付けた部分の表の幅を求める。この方法は上述の第１の実施の形態におけるＳ１２における処理と同じである。次に、Ｓ２４において、先に求めた表の幅が１５以内に納まっているか否かを判定し、納まっているならば表割付が終了したか否かの判定ステップＳ２１へ戻る。納まっていないならば、Ｓ２５〜Ｓ２７の再割付処理を行なう。
【００５６】
再割付処理では、表割付部３は、Ｓ２５において、既に割り付けられた各テキスト間で幅を比較し、一番大きい幅を持つテキストＴｍとその幅ＴＷｍを得る。さらにＳ２６において、テキスト領域寸法境界値提供部２に保持されたテキストＴｍに対応するテキスト領域寸法境界値の中で、幅がＴＷｍよりも小さくかつそれらの中で幅が一番大きいものを選択する。Ｓ２７において、テキスト領域寸法保持部５中のテキストＴｍに対応する値をＳ２６で選択したテキスト領域寸法境界値に変更する。再割付処理が終了したら再度条件を満足しているか否かを判定すべく、Ｓ２３に戻る。
【００５７】
上述の第１の実施の形態において用いた具体例において、この第２の実施の形態によって図６（Ａ）に示す表にテキストを割り付ける場合には、まずテキスト番号１，２，３を割り付け、条件を満足するように必要に応じて再割付を行なう。条件を満足する割付けが行なわれたら、次にテキスト番号４，５，６を割り付け、条件を満足するように必要に応じてテキスト番号１〜６の再割付を行なう。さらに、テキスト番号７，８，９を割り付け、条件を満足するように必要に応じて全てのテキストについて再割付を行なう。
【００５８】
図１５は、本発明の表割付装置の第２の実施の形態の動作の一例における具体的な処理過程においてテキスト領域寸法保持部が保持するテキスト領域寸法の変化の一例の説明図である。第１の実施の形態と同様、初期状態では、グリッドストラクチャ保持部１には図６に示すグリッドストラクチャ情報が、また、テキスト領域寸法境界値提供部２には図８のようなテキスト領域寸法境界値がそれぞれ保持されているものとする。さらに、テキスト領域寸法保持部４には何も保持されていないものとする。
【００５９】
まず、テキスト番号１，２，３が割り付けられ、条件判定が行なわれる。表の幅は１６であるので再割付処理が行なわれ、テキスト番号３のテキスト領域寸法が変更されて、テキスト領域寸法保持部４の内容は図１５（Ａ）に示すようになる。
【００６０】
次にテキスト番号４，５，６が割り付けられ、条件判定が行なわれる。表の幅は１８であるので再割付処理が行なわれ、今度はテキスト番号４のテキスト領域寸法が変更される。これにより、テキスト領域寸法保持部４の内容は図１５（Ｂ）に示すようになる。
【００６１】
さらに、テキスト番号７，８，９が割り付けられ、条件判定が行なわれる。表の幅は２１であるので再割付処理が行なわれ、最初にテキスト番号７のテキスト領域寸法が変更され、まだ条件を満足しないのでにテキスト番号８のテキスト領域寸法が変更される。このようにして、上述の第１の実施の形態と同様、図１２に示すテキスト領域寸法がテキスト領域寸法保持部４に保持され、図１３に示すような表が作成される。
【００６２】
図１６は、本発明の表割付装置の第３の実施の形態を示す構成図である。図中、図１と同様の部分には同じ符号を付して説明を省略する。６は列幅上限値保持部である。この第３の実施の形態では、一つの列中のテキストの幅が極端に異なって見栄えが悪くなってしまうことを防ぐ表割付の例を示している。
【００６３】
この第３の実施の形態では、列幅上限値保持部６を有している。列幅上限値保持部６は、各列ごとに、その列幅の上限値を保持する。ここでは、列幅の上限値として、各列においてテキスト幅が最小のものの１．５倍とする。もちろん、種々の値を設定することが可能である。
【００６４】
図１７は、本発明の表割付装置の第３の実施の形態における動作の一例を示すフローチャートである。ここでは、表幅が１５以内で、かつ各列において、テキスト幅がその列内で最大のものと最小のものの比が１．５を越えないように表割付を行なうものとする。なお、列幅上限値保持部６に保持される上限値の初期値は「無限大」を表わす値とする。
【００６５】
Ｓ３１において、表割付部３は表中の全てのテキストが割り付けられているか、つまり全てのテキストに対してなんらかのテキスト領域寸法境界値がテキスト領域寸法保持部４にて対応づけられているかを判定する。もし全てのテキストが割り付けられているならば、割付けは終了する。
【００６６】
まだ割り付られていないテキストが存在するならば、Ｓ３２において、割り付けられていないセルを含む行のうち、一番上に存在する行を選択し、その行に含まれるセルの各テキストに対し、テキスト領域寸法境界値提供部２に保持されたテキスト領域寸法境界値の中で、そのテキストを含む列の列幅上限値保持部６に保持された列幅上限値未満のもので幅が最大であるものを選択し、テキストと対応づけてテキスト領域寸法としてテキスト領域寸法保持部４に記録する。
【００６７】
次に、割付評価部５はすでに割り付けた部分の表の割付結果を評価し、表の幅が１５以内に納まっているか否かを判定する。まずＳ３３において、すでに割り付けた部分の表の幅を求める。この方法は上述の第１の実施の形態におけるＳ１２の処理と同じである。次に、Ｓ３４において、Ｓ３３で求めた表の幅が１５以内に納まっているか否かを判定し、納まっているならば列幅上限値を変更すべきか否かを判定するステップＳ３８へ、納まっていないならばＳ３５〜Ｓ３７の再割付処理を行なう。
【００６８】
ここで行なう再割付処理は、次の手順を踏む。まずＳ３５において、既に割り付けられたテキスト間で幅を比較し、一番大きい幅を持つテキストＴｍと領域の幅ＴＷｍを得る。さらにＳ３６において、テキスト領域寸法境界値提供部２に保持されたテキストＴｍに対応するテキスト領域寸法境界値の中で、幅がＴＷｍよりも小さくかつそれらの中で幅が一番大きいものを選択する。Ｓ３７において、テキスト領域寸法保持部４中のテキストＴｍに対応するテキスト領域寸法をＳ３６で得たテキスト領域寸法境界値に変更する。再割付が終了したらＳ３８ヘ進む。
【００６９】
Ｓ３８において、列幅上限値保持部６に保持されている列幅上限値を変更すべきか否かを判断する。ここでは、表中のいずれかの列において、その列中で一番小さい幅を持つテキストの幅を１．５倍した値が、列幅上限値保持部６に保持されているその列の列幅上限値と異なるものがあるか否かを判定する。もしなければ列幅上限値を変更する必要はないので、Ｓ３１へ戻る。そうでなければ最も小さい幅を持つテキストの幅が変更されている列が存在するので、以下の処理で列幅上限値を更新する。
【００７０】
Ｓ３９において、列幅上限値保持部６に保持されている各列幅上限値を、その列中で一番小さい幅を持つテキストの幅を１．５倍した値とする。Ｓ４０において、新たな列幅上限値に従ってテキスト領域寸法を調べる。すなわち、既に割り付けられた各テキストにおいて、そのテキスト幅がその列に対する列幅上限値を越えている場合は、テキスト領域寸法保持部４中の該テキストに対応するテキスト領域寸法を、テキスト領域寸法境界値提供部２に保持された該テキストに対応するテキスト領域寸法境界値の中で、幅が列幅上限値を越えずかつそれらの中で幅が一番大きいものに変更する。そして、列幅上限値を変更すべきか否かの判定ステップＳ３８ヘ戻る。
【００７１】
図１８は、本発明の表割付装置の第３の実施の形態の動作の一例における具体的な処理過程においてテキスト領域寸法保持部が保持するテキスト領域寸法および列幅上限値保持部６が保持する列幅上限値の変化の一例の説明図である。第１の実施の形態と同様、初期状態では、グリッドストラクチャ保持部１には図６に示すグリッドストラクチャ情報が、また、テキスト領域寸法境界値提供部２には図８のようなテキスト領域寸法境界値がそれぞれ保持されているものとする。さらに、テキスト領域寸法保持部４には何も保持されていないものとし、列幅上限値保持部６は各列の列幅上限値として「無限大」を保持するものとする。
【００７２】
まず、テキスト番号１，２，３が割り付けられ、条件判定が行なわれる。表の幅は１６であるので再割付処理が行なわれ、テキスト番号３のテキスト領域寸法が変更されて、テキスト領域寸法保持部４の内容は図１８（Ａ）に示すようになる。ここで、各列における一番小さい幅を持つテキストの幅を１．５倍した値が、列幅上限値保持部６に保持されているその列の列幅上限値と異なるものがあるか否かを判定する。各列の列幅上限値は「無限大」であるので、この条件を満足し、列幅上限値の変更処理を行なう。ここでは、図１８（Ｂ）に示すように、テキスト番号１，２，３の各テキストの幅の１．５倍の値４．５，６，７．５が各列の列幅上限値として列幅上限値保持部６に保持される。
【００７３】
次にテキスト番号４，５，６が割り付けられる。このとき、図１８（Ｂ）に示す列幅上限値未満であるという条件のもとで、テキスト領域寸法境界値提供部２に保持されたテキスト領域寸法境界値の中で最大のものを選択するので、テキスト番号４については最大幅のテキスト領域寸法境界値ではなく、次に大きい（幅＝４，高さ＝２）が選択される。これにより、図１８（Ｃ）に示すようなテキスト領域寸法がテキスト領域寸法保持部４に保持される。この割付けによる表の幅は１４であり、条件を満足しているので再割付は行なわない。また、列幅上限値も変更はない。
【００７４】
さらに、テキスト番号７，８，９が割り付けられる。このとき、テキスト番号７，８については、テキスト領域寸法境界値提供部２に保持されている最大幅のテキスト領域寸法境界値は、列幅上限値を越えるので次に大きい幅のテキスト領域寸法境界値を選択する。これにより、上述の第１の実施の形態と同様、図１２に示すテキスト領域寸法がテキスト領域寸法保持部４に保持される。この割付けによる表の幅は１５であり、条件を満足しているので再割付は行なわない。また、列幅上限値も変更はない。このようにして得られたテキスト領域寸法から、図１３に示すような表が作成される。
【００７５】
次に、本発明の表割付装置の第４の実施の形態について説明する。この第４の実施の形態では、表中の任意の１行中のテキストＴ１，・・・，Ｔｍに対応してテキスト領域寸法保持部４に保持されたテキスト領域の高さをＬ１，・・・，Ｌｍとしたとき、テキストＴ１，・・・，Ｔｍ中の任意のテキストＴｉに対し、そのテキストに対するテキスト領域寸法境界値提供部２中の高さ／幅の中にＬｉ＜Ｌ≦ｍａｘ（Ｌ１，・・・，Ｌｍ）を満たすようなＬが存在しないように表割付部３が割り付ける例を示す。これは、例えば１行中のあるセルにテキストを割り付けた際に、割り付けられたテキストの下部に大きな空白領域ができてしまう場合に、テキストの行折りを増やして下部の空白をなるべく埋めようとするものである。これにより、一行中のテキストの高さが揃えられ、見栄えのよい表を得ることができる。また、もしＬｉ＜Ｌ≦ｍａｘ（Ｌ１，・・・，Ｌｍ）を満たすＬが存在すれば、行折り関数が単調減少であるとき、高さがＬであるときのテキストの幅はＬｉであるときよりも小さくなるので、現在よりコンパクトな表が割り付けられる。なお、この第４の実施の形態における構成は、図１と同じであるので、ここでは説明を省略する。
【００７６】
図１９は、本発明の表割付装置の第４の実施の形態における動作の一例を示すフローチャートである。この例においても、具体例として表の幅が１５文字以内となるように表割付を行なうものとする。
【００７７】
Ｓ４１において、表割付部３は、表中の全てのテキストが割り付けられているか否か、つまり全てのテキストに対してなんらかのテキスト領域寸法境界値がテキスト領域寸法保持部４にて対応づけられているか否かを判定する。もし、全てのテキストが割り付けられているならば、割付けは終了する。
【００７８】
まだ割り付けられていないテキストが存在するならば、Ｓ４２において、割り付けられていないセルを含む行のうち、一番上に存在する行Ｒｉを選択し、その行に含まれるセルの各テキストに対し、テキスト領域寸法境界値提供部２に保持されているテキスト領域寸法境界値の中で、そのテキストにおいて幅が最大であるものを選択し、そのテキスト領域寸法境界値をテキストと対応づけてテキスト領域寸法保持部４に記録する。
【００７９】
次に、Ｓ４３において、上述の第１の実施の形態で述べられた手法により行Ｒｉの高さＲＨｉを求める。さらに、Ｓ４４において、行Ｒｉ中のそれぞれのテキストに対して、テキスト領域寸法境界値提供部２中のテキスト領域寸法境界値で、そのテキストに対応しかつ高さがＲＨｉ以下のものの中で高さが最大であるテキスト領域寸法値を選択し、該テキストに対応させてテキスト領域寸法保持部４に保持させる。
【００８０】
次に、割付評価部５はすでに割り付けた部分の表の割付結果を評価し、表の幅が１５以内に納まっているか否かを判定する。まずＳ４５において、すでに割り付けた部分の表の幅を求める。この方法は上述の第１の実施の形態と同じである。次にＳ４６において、Ｓ４５で求めた表の幅が１５以内に納まっているか否かを判定し、納まっているならば表割付の終了判定を行なうＳ４１へ戻り、納まっていないならば以降の再割付処理を行なう。
【００８１】
再割付処理では、表割付部３は、Ｓ４７において、既に割り付けられた各テキスト間で幅を比較し、一番大きい幅を持つテキストＴｍとその幅ＴＷｍを得る。さらにＳ４８において、テキスト領域寸法境界値提供部２に保持されたテキストＴｍに対応するテキスト領域寸法境界値２の中で、幅がＴＷｍよりも小さくかつそれらの中で幅が一番大きいものを選択する。そして、Ｓ４９において、テキスト領域寸法保持部４中のテキストＴｍに対応する値をＳ４８で得たテキスト領域寸法境界値に変更する。
【００８２】
次に、Ｓ５０において、再割付処理を行なったテキストを含む行をＲｉとしたとき、上述の第１の実施の形態で示した手法により行Ｒｉの高さＲＨｉを求める。さらに、Ｓ５１において、行Ｒｉ中のそれぞれのテキストに対して、テキスト領域寸法境界値提供部２中のテキスト領域寸法で、そのテキストに対応しかつ高さがＲＨｉ以下のものの中で高さが最大であるテキスト領域寸法値を選択し、そのテキストに対応させてテキスト領域寸法保持部４に保持させる。そして、再度、条件を満足しているか否かを判定するため、Ｓ４５へ戻る。
【００８３】
図２０は、本発明の表割付装置の第４の実施の形態の動作の一例における具体的な処理過程においてテキスト領域寸法保持部が保持するテキスト領域寸法の変化の一例の説明図、図２１は、同じく作成された表の一例の説明図である。第１の実施の形態と同様、初期状態では、グリッドストラクチャ保持部１には図６に示すグリッドストラクチャ情報が、また、テキスト領域寸法境界値提供部２には図８のようなテキスト領域寸法境界値がそれぞれ保持されているものとする。さらに、テキスト領域寸法保持部４には何も保持されていないものとする。
【００８４】
まず、テキスト番号１，２，３が割り付けられ、条件判定が行なわれる。表の幅は１６であるので再割付処理が行なわれ、テキスト番号３のテキスト領域寸法が変更される。さらに、このテキスト番号３の再割付によって１行目の高さは２となるので、テキスト番号１，２について、高さが２以下で最大となるテキスト領域寸法境界値を選択する。これにより、テキスト番号１については（幅＝２，高さ＝２）、テキスト番号２については（幅＝２，高さ＝２）が選択され、テキスト領域寸法保持部４の内容は図２０（Ａ）に示すようになる。
【００８５】
次にテキスト番号４，５，６が割り付けられ、条件判定が行なわれる。表の幅は１８であるので再割付処理が行なわれ、今度はテキスト番号４のテキスト領域寸法が変更される。ここでテキスト番号４の高さが２となるので、テキスト番号５，６について、高さが２以下で最大となるテキスト領域寸法境界値を選択し、テキスト番号５，６とも（幅＝３，高さ＝２）が選択される。これにより、テキスト領域寸法保持部４の内容は図１５（Ｂ）に示すようになる。
【００８６】
さらに、テキスト番号７，８，９が割り付けられ、条件判定が行なわれる。表の幅は２１であるので再割付処理が行なわれ、テキスト番号７のテキスト領域寸法が変更される。ここで、テキスト番号７の高さが２となるので、テキスト番号８，９について、高さが２以下で最大となるテキスト領域寸法境界値を選択し、テキスト番号８については（幅＝４，高さ＝２）が、テキスト番号９については（幅＝３，高さ＝２）が選択される。この時点で表の幅は１３となり、条件を満たしている。このようにして、図２０（Ｃ）に示すテキスト領域寸法がテキスト領域寸法保持部４に保持され、図２１に示すような表が作成される。
【００８７】
第４の実施の形態においては、極力テキストの行折りを増やすことによって、行折り関数が単調減少であるときはテキストの幅が減少し、コンパクトな表が割付けられる。しかし、行折り関数が単調減少でない場合は、テキストの行折りを増やすことによってテキストの幅が増加する場合があり、コンパクトな表を割付けるという目的には反する可能性がある。行折り関数が単調減少でない場合であってもコンパクトな表を得るためには、テキスト幅が減少する条件内で極力テキストの行折りを増やせばよい。すなわち、ある１行中のテキストＴ１， ・・・，Ｔｍに対応して前記テキスト領域寸法保持部４に保持されたテキスト領域の高さと幅をそれぞれＨ１，・・・，ＨｍとＷ１，・・・，Ｗｍとしたとき、テキストＴ１，・・・，Ｔｍ中の任意のテキストＴｉに対し、テキスト領域寸法境界値提供部２が提供する矩形領域寸法境界値の中にＷｊ＜ＷｉかつＨｊ≦ｍａｘ（Ｈ１，・・・，Ｈｍ）を満たすような幅Ｗｊ、高さＨｊの矩形領域寸法境界値が存在しないように割付けを行なえばよい。
【００８８】
図２２は、本発明の表割付装置の第５の実施の形態を示す構成図である。図中、図１と同様の部分には同じ符号を付して説明を省略する。７は列寸法境界値提供部、８は列寸法保持部である。
【００８９】
列寸法境界値提供部７は、表中の各列に対し、その列に含まれるテキストをＴ１，・・・，Ｔｍとし、ある幅を与えた際にその幅においてテキストＴｉを割り付けるのに最低必要な矩形領域の高さを与える行折り関数における不連続点それぞれにおける幅の集合をＳｉとしたとき、∪i=1mＳｉを保持する。図２３は、本発明の表割付装置の第５の実施の形態において列寸法境界値提供部７が保持する列寸法境界値の一例の説明図である。ここで、列番号は表の各列に付されたインデックスである。例えば、図６（Ｂ）に示すグリッドストラクチャ情報がグリッドストラクチャ保持部１に保持されているとき、これらのテキストから得られる行折り関数の境界値は、上述のように図８に示したテキスト領域寸法境界値であった。例えば、左端の列を列１とすると、この列にはテキスト番号１，４，７が割り付けられるので、テキスト番号１，４，７のテキスト領域寸法境界値の幅として取りうる全ての値を列寸法境界値として列寸法境界値提供部７に格納している。他の列についても同様である。
【００９０】
列寸法保持部８は、各列に対して、その列に対応する列寸法境界値提供部７中の値の一つとの対応づけを記録する。図２４は、本発明の表割付装置の第５の実施の形態において列寸法保持部８が保持する列寸法の一例の説明図である。図２４に示すように、列番号に対応づけて、その列の幅を列寸法として保持させている。
【００９１】
表割付部３は、列寸法保持部８における列と列寸法の対応を追加もしくは変更させ、表の割付けを行なう。また、割付評価部５は、列寸法保持部８中に保持されている列寸法をもとに、表もしくはその一部の割付結果を評価し、評価の結果、必要であれば表の再割付を表割付部３に行なわせる。
【００９２】
図２５は、本発明の表割付装置の第５の実施の形態における動作の一例を示すフローチャートである。ここでも具体例として、表の幅が１５文字以内となるように表割付を行なうものとする。
【００９３】
まずＳ６１において、表割付部３は初期割付けを行なう。初期割付けでは、列寸法境界値提供部７に保持された列寸法の中で、各列において幅が最大であるものを選択し、その寸法を列と対応づけて列寸法保持部８に記録する。
【００９４】
次に、割付評価部５は表の割付結果を評価し、表の幅が１５以内に納まっているか否かを判定する。この判定は、Ｓ６２における表の幅の計算と、Ｓ６３におけるＳ６２で計算した結果が条件を満たしているか否かの判定の二つのステップからなる。Ｓ６２において、表の幅は列寸法保持部８に保持された列寸法の総和を取ることによって計算され、次にＳ６３においてＳ６２で求めた表の幅が１５以内に納まっているか否かを判定し、納まっているならば表割付を終了する。納まっていなければ、割付評価部５は表割付部３に再割付処理を行なわせる。
【００９５】
再割付処理では、Ｓ６４において、表割付部３は各列間で幅を比較し、一番大きい幅を持つ列Ｃｍとその幅ＣＷｍを得る。さらに、Ｓ６５において、列寸法境界値提供部７に保持された列Ｃｍに対応する列寸法境界値の中で、ＣＷｍよりも小さくかつそれらの中で一番大きいものを選択する。そして、Ｓ６６において、列寸法保持部８中の列Ｃｍに対応する値をＳ６５で得た列寸法境界値に変更する。そして、Ｓ６２へ戻る。
【００９６】
上述の表割付動作の一例を、具体例を用いて説明する。図２６は、本発明の表割付装置の第５の実施の形態の動作の一例における具体的な処理過程において列寸法保持部が保持する列寸法の変化の一例の説明図、図２７は、同じく作成された表の一例の説明図である。
【００９７】
初期状態では、グリッドストラクチャ保持部１には図６に示すグリッドストラクチャ情報が、また、列寸法境界値提供部７には図２３のような列寸法境界値がそれぞれ保持されているものとする。さらに、列寸法保持部８には何も保持されていないものとする。
【００９８】
まず表割付部３は初期割付けを行ない、列寸法保持部８には、図２４に示すような列寸法が各列に対応して保持される。表の幅は２４であるので、再割付が行なわれる。一番大きい幅を持つ列は、列寸法として幅９を有する列番号３の列である。この列について、幅９よりも小さく、かつ、最も大きい列寸法境界値を列寸法境界値提供部７から選択し、列寸法保持部８を変更する。これにより、列寸法保持部８の内容は図２６（Ａ）に示すようになる。
【００９９】
ここでは表の幅は２１であり、条件を満たさないので列番号１について再割付を行ない、列寸法保持部８の内容は図２６（Ｂ）に示すようになる。しかしまだ表の幅は条件を満たさないので、列番号２について再割付が行なわれ、最終的に列寸法保持部８の内容は図２６（Ｃ）に示すようになる。これで表の幅は条件を満たすので、割付処理は終了する。このようにして表の幅が決定されるので、あとは各行ごとに高さを決定し、テキストを割り付ければよい。作成される表を図２７に示している。
【０１００】
この第５の実施の形態によれば、各列ごとに幅として取りうる列寸法境界値を用いて割付けを行なっているので、各セルごとにテキスト領域寸法境界値を有してその組み合わせによって列幅が決定される場合に比べて、試行する組み合わせが減少し、演算量を減少させることができる。
【０１０１】
以上、いくつかの実施の形態について述べた。本発明においては割付対象の行折り関数の不連続点が求められれば割付けが可能であるので、第１の実施の形態でも述べたように、表に割り付ける対象は文字サイズが同じで一定ピッチのテキストに限らず、アルファベット等を含み、プロポーショナルな割付けを行なうようなテキストや、強制改行を含んだテキスト、文字サイズや文字ピッチ、行間が一定でないテキスト、縦書きのテキスト、図形、グラフ、表、数式等であってもよい。
【０１０２】
また、上述の例のように、割付評価部５が表の大きさを計算する際に、罫線の太さやセル内のマージン、テキストのアラインメント等をも考慮してもよい。さらに割付評価部５が評価する対象も、表幅だけではなく、表の高さ、表の面積、行高／列幅の分散等であってもよいし、複数の対象を同時に評価の対象とするなど、種々の条件を設定することができる。
【０１０３】
また、上述の第１ないし第４の実施の形態におけるテキスト領域寸法境界値提供部２、および、第５の実施の形態における列寸法境界値提供部７では、予めテキスト領域寸法境界値を全て保持していたが、割付けの途中で必要に応じてテキスト領域寸法境界値や列寸法境界値を計算して提供するようにしてもよい。
【０１０４】
また、上述の第１ないし第４の実施の形態におけるテキスト領域寸法保持部４、および、第５の実施の形態における列寸法保持部８では、テキスト領域寸法あるいは列寸法を直接保持したが、テキスト領域寸法境界値提供部２あるいは列寸法境界値保持部７が提供する各テキスト領域寸法境界値あるいは列寸法境界値に個別のインデックスをふり、テキスト領域寸法保持部４、列寸法保持部８は各テキストとインデックスの対応を保持するようにしてもよい。
【０１０５】
また、上述の各実施の形態の組み合わせも可能である。例えば、上述の第４、第５の実施の形態として示した構成に、第３の実施の形態で示した列幅上限値を導入して構成することも可能である。
【０１０６】
なお、上述の各実施の形態において、行と列、幅と高さを入れ替えて構成することもできる。例えば、上述の第２の実施の形態では、列ごとに割り付けてゆく構成とすることができる。また、上述の第５の実施の形態では、行寸法境界値を用いて行ごとに高さを決定してゆく構成とすることができる。このような行と列、幅と高さを入れ替えた構成は、当業者であれば容易に構成できるので、ここでは詳述しない。
【０１０７】
本発明は、例えばワードプロセッサ等と組み合わせ、表内のテキストが編集される度に本発明の表割付装置を動作させることで、その時点でのテキストにあった表を常に得るように構成ことも可能である。
【０１０８】
【発明の効果】
以上の説明から明らかなように、本発明によれば、各テキストに対して、行折り関数の境界値という有限の個数の値の中から一つを選択するので、無限の定め方がある罫線間隔を直接定めることなく、高速にかつ無駄な空白領域が少ない表割付を行なうことが可能となる。さらに、表の全体、もしくは表の一部の割付結果を評価し、評価結果に基づいて表の再割付をおこなうので、一度割り付けた表をサイズや空白面積等、種々の条件で評価し、例えば「サイズがページ幅に納まらない」「空白面積が大きすぎる」等といった場合に表の再割付を行なわせ、より望ましい表を得ることができるという効果がある。
【０１０９】
請求項２，７に記載の発明によれば、各行／列ごとの行／列幅の上限値を用いて割付けを行なうことで、一つの行／列中のテキストの高さ／幅が極端に異なって見栄えが悪くなってしまうことを防ぎ、またページサイズ等からくる行／列幅の制限値を行／列幅上限値保持手段に保持させておくことにより、それらの制限値を越えない表割付を得ることができる。
【０１１０】
請求項３に記載の発明によれば、一行／列中のテキストの高さ／幅が揃えられ、見栄えの良い表が得られるとともに、コンパクトな表が得られる。
【０１１１】
請求項４，５に記載の発明によれば、極力幅／高さが小さいテキスト領域寸法を選択することによって、コンパクトな表の割付けを得ることができる。
【０１１２】
請求項６に記載の発明によれば、各列／行に対して、有限の個数である列／行寸法境界値の中から一つを選択することで、高速にかつ無駄な空白領域が少ない表割付を行なうことが可能となる。
【図面の簡単な説明】
【図１】  本発明の表割付装置の第１の実施の形態を示す構成図である。
【図２】  図３は、図４は、表の一例の説明図である。
【図３】  図４は、表の一例の説明図である。
【図４】  表の一例の説明図である。
【図５】  行折り関数の一例の説明図である。
【図６】  本発明の表割付装置の第１の実施の形態におけるグリッドストラクチャ保持部１に保持されるグリッドストラクチャ情報の一例の説明図である。
【図７】  行折りの一例の説明図である。
【図８】  本発明の表割付装置の第１の実施の形態においてテキスト領域寸法境界値提供部が保持するテキスト領域寸法境界値の一例の説明図である。
【図９】  本発明の表割付装置の第１の実施の形態においてテキスト領域寸法保持部４が保持するテキスト領域寸法の一例の説明図である。
【図１０】  本発明の表割付装置の第１の実施の形態における動作の一例を示すフローチャートである。
【図１１】  本発明の表割付装置の第１の実施の形態の動作の一例における具体的な処理過程においてテキスト領域寸法保持部が保持するテキスト領域寸法の一例の説明図である。
【図１２】  本発明の表割付装置の第１の実施の形態の動作の一例における具体的な処理終了時においてテキスト領域寸法保持部が保持するテキスト領域寸法の一例の説明図である。
【図１３】  本発明の表割付装置の第１の実施の形態の動作の一例における具体的な処理過程において作成された表の一例の説明図である。
【図１４】  本発明の表割付装置の第２の実施の形態における動作の一例を示すフローチャートである。
【図１５】  本発明の表割付装置の第２の実施の形態の動作の一例における具体的な処理過程においてテキスト領域寸法保持部が保持するテキスト領域寸法の変化の一例の説明図である。
【図１６】  本発明の表割付装置の第３の実施の形態を示す構成図である。
【図１７】  本発明の表割付装置の第３の実施の形態における動作の一例を示すフローチャートである。
【図１８】  本発明の表割付装置の第３の実施の形態の動作の一例における具体的な処理過程においてテキスト領域寸法保持部が保持するテキスト領域寸法および列幅上限値保持部６が保持する列幅上限値の変化の一例の説明図である。
【図１９】  本発明の表割付装置の第４の実施の形態における動作の一例を示すフローチャートである。
【図２０】  本発明の表割付装置の第４の実施の形態の動作の一例における具体的な処理過程においてテキスト領域寸法保持部が保持するテキスト領域寸法の変化の一例の説明図である。
【図２１】  本発明の表割付装置の第４の実施の形態の動作の一例における具体的な処理過程において作成された表の一例の説明図である。
【図２２】  本発明の表割付装置の第５の実施の形態を示す構成図である。
【図２３】  本発明の表割付装置の第５の実施の形態において列寸法境界値提供部７が保持する列寸法境界値の一例の説明図である。
【図２４】  本発明の表割付装置の第５の実施の形態において列寸法保持部８が保持する列寸法の一例の説明図である。
【図２５】  本発明の表割付装置の第５の実施の形態における動作の一例を示すフローチャートである。
【図２６】  本発明の表割付装置の第５の実施の形態の動作の一例における具体的な処理過程において列寸法保持部が保持する列寸法の変化の一例の説明図である。
【図２７】  本発明の表割付装置の第５の実施の形態の動作の一例における具体的な処理過程において作成された表の一例の説明図である。
【符号の説明】
１…グリッドストラクチャ保持部、２…テキスト領域寸法境界値提供部、３…表割付部、４…テキスト領域寸法保持部、５…割付評価部、６…列幅上限値保持部、７…列寸法境界値提供部、８…列寸法保持部。
【図１】
0003970357.tif 000002
【図２】
0003970357.tif 000003
【図３】
0003970357.tif 000004
【図４】
0003970357.tif 000005
【図５】
0003970357.tif 000006
【図６】
0003970357.tif 000007
【図７】
0003970357.tif 000008
【図８】
0003970357.tif 000009
【図９】
0003970357.tif 000010
【図１０】
0003970357.tif 000011
【図１１】
0003970357.tif 000012
【図１２】
0003970357.tif 000013
【図１３】
0003970357.tif 000014
【図１４】
0003970357.tif 000015
【図１５】
0003970357.tif 000016
【図１６】
0003970357.tif 000017
【図１７】
0003970357.tif 000018
【図１８】
0003970357.tif 000019
【図１９】
0003970357.tif 000020
【図２０】
0003970357.tif 000021
【図２１】
0003970357.tif 000022
【図２２】
0003970357.tif 000023
【図２３】
0003970357.tif 000024
【図２４】
0003970357.tif 000025
【図２５】
0003970357.tif 000026
【図２６】
0003970357.tif 000027
【図２７】
0003970357.tif 000028