(57)【特許請求の範囲】
【請求項１】
プログラムされたコンピュータによって、文字列を指定された領域の内部に配置する組版方法であって、
前記領域として、任意形状の閉図形を設定する工程（１）と、
前記文字列の採字を行う工程（２）と、
前記文字列の各文字の文字サイズとして仮想文字サイズを採用し、該仮想文字サイズに適した仮想行高さで前記各文字を仮想的に一行で配列した場合の仮想一行領域の面積を演算する工程（３）と、
所定の行高さで前記閉図形を複数行に区分し、該複数行を区分する区分線と前記閉図形領域との交点を求めることにより、前記区分した各行において文字の配置を可能とする矩形領域を定め、前記各行の該矩形領域を総て合わせた領域を、前記文字列を配置するための仮想の流し込み領域として設定し、該仮想の流し込み領域の面積を演算する工程（４）と、
前記仮想一行領域の面積と前記仮想の流し込み領域の面積の面積比を演算する工程（５）と、
前記演算した面積比が１に近似した値となるように、前記仮想文字サイズと前記所定の行高さの少なくとも一方を調整しつつ前記工程（３）から工程（５）を少なくとも１回実施し、前記面積比が１に近似した値となったときの前記仮想文字サイズを文字列配置のための最終的な文字サイズに設定する工程（６）と、
前記面積比が１に近似した値となったときの前記所定の行高さを用いて前記閉図形を区分した各行における前記矩形領域に、前記文字列の各文字を前記最終的な文字サイズで順次流し込む工程（７）と、
を備えることを特徴とする組版方法。
【請求項２】
指定された領域の内部に文字列を配置する組版装置であって、
前記領域として、任意形状の閉図形を設定する図形設定手段と、
前記文字列の文字を入力するための採字手段と、
前記文字列の各文字の文字サイズとして仮想文字サイズを採用し、該仮想文字サイズに適した仮想行高さで前記各文字を仮想的に一行で配列した場合の仮想一行領域の面積を演算する仮想行面積演算手段と、
所定の行高さで前記閉図形を複数行に区分し、該複数行を区分する区分線と前記閉図形領域との交点を求めることにより、前記区分した各行において文字の配置を可能とする矩形領域を定め、前記各行の該矩形領域を総て合わせた領域を、前記文字列を配置するための仮想の流し込み領域として設定し、該仮想の流し込み領域の面積を演算する仮想領域面積演算手段と、
前記仮想一行領域の面積と前記仮想の流し込み領域の面積の面積比を演算する面積比演算手段と、
前記面積比を値１と比較し、前記面積比が１に近似した値でなければ、前記仮想文字サイズと前記所定の行高さの少なくとも一方を変更しつつ前記面積比が１に近似するまで、前記仮想一行領域の面積、前記仮想の流し込み領域の面積および前記面積比の再演算を実行させる再演算実行手段と、
前記面積比が１に近似した値となったときの前記仮想文字サイズを文字列配置のための最終的な文字サイズに設定する設定手段と、
前記面積比が１に近似した値となったときの前記所定の行高さを用いて前記閉図形を区分した各行における前記矩形領域に、前記文字列の各文字を前記最終的な文字サイズで順次流し込む流し込み手段と、
を備えることを特徴とする組版装置。
【請求項３】
指定された領域の内部に文字列を配置するためのコンピュータプログラムを記録したコンピュータ読取可能な記録媒体であって、
前記領域として、任意形状の閉図形を設定する図形設定手段と、
前記文字列の文字を入力するための採字手段と、
前記文字列の各文字の文字サイズとして仮想文字サイズを採用し、該仮想文字サイズに適した仮想行高さで前記各文字を仮想的に一行で配列した場合の仮想一行領域の面積を演算する仮想行面積演算手段と、
所定の行高さで前記閉図形を複数行に区分し、該複数行を区分する区分線と前記閉図形領域との交点を求めることにより、前記区分した各行において文字の配置を可能とする矩形領域を定め、前記各行の該矩形領域を総て合わせた領域を、前記文字列を配置するための仮想の流し込み領域として設定し、該仮想の流し込み領域の面積を演算する仮想領域面積演算手段と、
前記仮想一行領域の面積と前記仮想の流し込み領域の面積の面積比を演算する面積比演算手段と、
前記面積比を値１と比較し、前記面積比が１に近似した値でなければ、前記仮想文字サイズと前記所定の行高さの少なくとも一方を変更しつつ前記面積比が１に近似するまで、前記仮想一行領域の面積、前記仮想の流し込み領域の面積および前記面積比の再演算を実行させる再演算実行手段と、
前記面積比が１に近似した値となったときの前記仮想文字サイズを文字列配置のための最終的な文字サイズに設定する設定手段と、
前記面積比が１に近似した値となったときの前記所定の行高さを用いて前記閉図形を区分した各行における前記矩形領域に、前記文字列の各文字を前記最終的な文字サイズで順次流し込む流し込み手段と、
の機能をコンピュータに実現させるためのコンピュータプログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、指定された領域の内部に文字列を配置するための組版方法とその装置、並びに、その処理を実行するためのプログラムを記録した記録媒体に関するものである。
【０００２】
【従来の技術】
印刷物においては、文字列を流し込んで配置したい領域（以下、「流し込み領域」と呼ぶ）の位置と大きさは、組版処理の際の１頁の画像内における図形や絵柄などの画像要素と流し込み領域との関係を考慮して指定される。一方、流し込み領域内に配置すべき文字の数は、流し込み領域の大きさをあまり深く考慮せずに決定される。これは、行間や字間を調整すれば、一定の流し込み領域内に収納可能な文字数をかなりの幅で変更できるからである。このように文字数を変更可能であっても、指定された流し込み領域に文字列を所望の文字サイズで配置する（この処理を「流し込み」と呼ぶ）を行った場合、流し込み領域内に空白部分を生じたり、流し込み領域内に収まりきらない文字が生じたりすることがあった。
【０００３】
このような事態が生じると、従来は、組版装置のオペレータによる字間・行間の再設定という手作業が必要であった。このため、例えば、特開平７−１７００７号のように、流し込みに伴う字間・行間の設定をコンピュータで行い、手作業の軽減を図る技術が種々提案されている。
【０００４】
【発明が解決しようとする課題】
上記公報で提案された技術は、流し込み領域を単純な矩形である場合には極めて簡単に文字列の流し込みを行うことができる。しかしながら、流し込み領域が任意形状の閉図形の内部領域である場合には、流し込み領域を単純な矩形とできないので、このような閉図形の内部領域に流し込みを行えなかった。
【０００５】
この発明は、従来技術における上述の課題を解決するためになされたものであり、流し込み領域が任意形状の閉図形の内部領域であっても支障なく文字列の流し込みを行い、流し込みの汎用性を高めることを目的とする。
【０００６】
【課題を解決するための手段】
上記した目的を達成するために、本発明の組版方法は、
プログラムされたコンピュータによって、文字列を指定された領域の内部に配置する組版方法であって、
前記領域として、任意形状の閉図形を設定する工程（１）と、
前記文字列の採字を行う工程（２）と、
前記文字列の各文字の文字サイズとして仮想文字サイズを採用し、該仮想文字サイズに適した仮想行高さで前記各文字を仮想的に一行で配列した場合の仮想一行領域の面積を演算する工程（３）と、
所定の行高さで前記閉図形を複数行に区分し、該複数行を区分する区分線と前記閉図形領域との交点を求めることにより、前記区分した各行において文字の配置を可能とする矩形領域を定め、前記各行の該矩形領域を総て合わせた領域を、前記文字列を配置するための仮想の流し込み領域として設定し、該仮想の流し込み領域の面積を演算する工程（４）と、
前記仮想一行領域の面積と前記仮想の流し込み領域の面積の面積比を演算する工程（５）と、
前記演算した面積比が１に近似した値となるように、前記仮想文字サイズと前記所定の行高さの少なくとも一方を調整しつつ前記工程（３）から工程（５）を少なくとも１回実施し、前記面積比が１に近似した値となったときの前記仮想文字サイズを文字列配置のための最終的な文字サイズに設定する工程（６）と、
前記面積比が１に近似した値となったときの前記所定の行高さを用いて前記閉図形を区分した各行における前記矩形領域に、前記文字列の各文字を前記最終的な文字サイズで順次流し込む工程（７）と、
を備えることを要旨とする。
【０００７】
また、本発明の組版装置は、
指定された領域の内部に文字列を配置する組版装置であって、
前記領域として、任意形状の閉図形を設定する図形設定手段と、
前記文字列の文字を入力するための採字手段と、
前記文字列の各文字の文字サイズとして仮想文字サイズを採用し、該仮想文字サイズに適した仮想行高さで前記各文字を仮想的に一行で配列した場合の仮想一行領域の面積を演算する仮想行面積演算手段と、
所定の行高さで前記閉図形を複数行に区分し、該複数行を区分する区分線と前記閉図形領域との交点を求めることにより、前記区分した各行において文字の配置を可能とする矩形領域を定め、前記各行の該矩形領域を総て合わせた領域を、前記文字列を配置するための仮想の流し込み領域として設定し、該仮想の流し込み領域の面積を演算する仮想領域面積演算手段と、
前記仮想一行領域の面積と前記仮想の流し込み領域の面積の面積比を演算する面積比演算手段と、
前記面積比を値１と比較し、前記面積比が１に近似した値でなければ、前記仮想文字サイズと前記所定の行高さの少なくとも一方を変更しつつ前記面積比が１に近似するまで、前記仮想一行領域の面積、前記仮想の流し込み領域の面積および前記面積比の再演算を実行させる再演算実行手段と、
前記面積比が１に近似した値となったときの前記仮想文字サイズを文字列配置のための最終的な文字サイズに設定する設定手段と、
前記面積比が１に近似した値となったときの前記所定の行高さを用いて前記閉図形を区分した各行における前記矩形領域に、前記文字列の各文字を前記最終的な文字サイズで順次流し込む流し込み手段と、
を備えることを要旨とする。
【０００８】
本発明において、上記の仮想行高さおよび所定の行高さは、行と行の行間を含むものであり、この行間がゼロの場合は行高さそのものとなり、行間がゼロでないときは行高さに行間を加えたものとなる。
【０００９】
上記の本発明の組版方法並びに組版装置では、仮想一行領域の面積と仮想の流し込み領域の面積の面積比が１に近似した値となると、文字列配置のための最終的な文字サイズと、閉図形を区分した各行における矩形領域とが定まる。この矩形領域の和領域は、面積比が１に近似した値となるまでは仮想の流し込み領域であるものの、面積比が１に近似した値となると、上記したように矩形領域が定まることから、最終的な流し込み領域となる。面積比が１に近似すれば、最終的な文字サイズでの仮想一行領域の面積と最終的な流し込み領域の面積がほぼ等しくなり、この際の仮想一行領域の面積は文字列を配列するに必要な面積に等しいことから、最終的な流し込み領域は文字列配列に必要な面積にほぼ等しくなる。そして、この最終的な流し込み領域に文字列が流し込まれる。よって、本発明によれば、流し込み領域が任意形状の閉図形の内部領域であっても支障なく文字列の流し込みを行うことができ、流し込みの汎用性を高めることができる。
【００１０】
また、本発明のコンピュータ読取可能な記録媒体は、
指定された領域の内部に文字列を配置するためのコンピュータプログラムを記録したコンピュータ読取可能な記録媒体であって、
前記領域として、任意形状の閉図形を設定する図形設定手段と、
前記文字列の文字を入力するための採字手段と、
前記文字列の各文字の文字サイズとして仮想文字サイズを採用し、該仮想文字サイズに適した仮想行高さで前記各文字を仮想的に一行で配列した場合の仮想一行領域の面積を演算する仮想行面積演算手段と、
所定の行高さで前記閉図形を複数行に区分し、該複数行を区分する区分線と前記閉図形領域との交点を求めることにより、前記区分した各行において文字の配置を可能とする矩形領域を定め、前記各行の該矩形領域を総て合わせた領域を、前記文字列を配置するための仮想の流し込み領域として設定し、該仮想の流し込み領域の面積を演算する仮想領域面積演算手段と、
前記仮想一行領域の面積と前記仮想の流し込み領域の面積の面積比を演算する面積比演算手段と、
前記面積比を値１と比較し、前記面積比が１に近似した値でなければ、前記仮想文字サイズと前記所定の行高さの少なくとも一方を変更しつつ前記面積比が１に近似するまで、前記仮想一行領域の面積、前記仮想の流し込み領域の面積および前記面積比の再演算を実行させる再演算実行手段と、
前記面積比が１に近似した値となったときの前記仮想文字サイズを文字列配置のための最終的な文字サイズに設定する設定手段と、
前記面積比が１に近似した値となったときの前記所定の行高さを用いて前記閉図形を区分した各行における前記矩形領域に、前記文字列の各文字を前記最終的な文字サイズで順次流し込む流し込み手段と、
の機能をコンピュータに実現させるためのコンピュータプログラムを記録した記録媒体である。
【００１１】
この場合、記録媒体としては、フレキシブルディスクやＣＤ−ＲＯＭ、光磁気ディスク、ＩＣカード、ＲＯＭカートリッジ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ）および外部記憶装置等の、コンピュータが読取り可能な種々の媒体を利用できる。
【００１２】
このような本発明の記録媒体に記録されたコンピュータプログラムがコンピュータによって実行されると、上記した組版方法および組版装置と同様に、流し込み領域が任意形状の閉図形の内部領域であっても、最終的な流し込み領域を文字列配列に必要な面積にほぼ等しくすることができ、文字列を支障なく流し込むことを通して、流し込みの汎用性を高めることができる。
【００１３】
【発明の実施の形態】
以下、本発明の実施の形態を実施例に基づいて説明する。図１は、本発明の一実施例としての組版装置１００の概略構成を示すブロック図である。図示するように、この組版装置１００は、ＣＰＵ２０と、内部メモリ２８と、キーボード３０と、マウス３２と、ハードディスク装置３４と、ディスプレイ３８と、これらの各要素を接続するバス４０とを備えるコンピュータである。
【００１４】
ＣＰＵ２０は、本装置の各種制御や各種演算等を行なうものであり、面積演算・比較処理部２２、文字サイズ・流し込み領域決定処理部２４、文字列流し込み処理部２６を備えている。実際には、ＣＰＵ２０がプログラムに従って動作し、面積演算・比較処理部２２、文字サイズ・流し込み領域決定処理部２４、文字列流し込み処理部２６等として機能する。内部メモリ２８は、ＣＰＵをこのように機能させるためのプログラムや後述する図形データ、採字入力データ、組版データなど各種データを記憶するための記憶部である。ＣＰＵ２０と内部メモリ２８はコンピュータ本体内に収納されている。なお、ＣＰＵの面積演算・比較処理部２２、文字サイズ・流し込み領域決定処理部２４、文字列流し込み処理部２６をハードウェアによって実現するようにしても良いことは勿論である。
【００１５】
キーボード３０およびマウス３２は、それぞれコンピュータ本体に図形や文字を入力したり、オペレータの指示を伝えたりするための入力装置として用いられる。ハードディスク装置３４は、本装置により文字列の流し込みを行うに当たり各文字について必要とされる種々のデータ、例えば文字ごとの文字枠の大きさで規定される文字幅データ等を格納している記憶装置である。ディスプレイ３８は、図形や文字を表示するための表示装置である。以上の各構成要素は、それぞれ、コンピュータ本体のバス４０に直接または間接的に接続されている。なお、上記の他にも必要に応じて、図形や文字等を紙やフィルム等に印刷するためのプリンタや、他の処理装置等に図形や文字等を転送するためのインターフェース装置などが接続される。また、組版装置１００を、通信回線３６に接続されたモデム３７を有するよう構成し、この通信回線３６を介して、図示しないサーバを含むネットワークに接続するようにしても良い。この場合、サーバは、通信回線３６を介してコンピュータプログラムを本実施例の組版装置１００に供給するプログラム供給装置としての機能を有する。
【００１６】
後述するように、閉図形に倣って文字列の流し込みを行うに当たり、本実施例の組版装置１００並びにその構成機器各部の機能を実現するコンピュータプログラムは、フレキシブルディスクやＣＤ−ＲＯＭ等の、コンピュータ読み取り可能な記録媒体に記録された形態で提供可能である。そして、コンピュータは、その記録媒体からコンピュータプログラムを読み取って内部メモリ２８やハードディスク装置３４等の内部記憶装置、又はその他の外部記憶装置に転送する。あるいは、通信経路を介してコンピュータにコンピュータプログラムを供給するようにしてもよい。コンピュータプログラムの機能を実現する時には、内部記憶装置に格納されたコンピュータプログラムがコンピュータのマイクロプロセッサによって実行される。また、記録媒体に記録されたコンピュータプログラムをコンピュータが読み取って直接実行するようにしてもよい。
【００１７】
図２は、この実施例における組版処理を示すフローチャートであり、ＣＰＵ２０の面積演算・比較処理部２２、文字サイズ・流し込み領域決定処理部２４、文字列流し込み処理部２６で実施される。この処理が開始されると、まず、文字列の流し込み対象となる閉図形を作成する処理を行なう（ステップＳ５０）。即ち、オペレータがディスプレイ３８の表示画面を見ながらマウス３２などを操作して、円や、楕円、或いは多角形や曲線図形等の所望の任意の形状の閉図形の作成する。ＣＰＵ２０は、この作成された図形の図形データを内部メモリ２８に記憶すると共に、ディスプレイ３８の画面上に表示する。
【００１８】
図３は、内部メモリ２８に記憶される図形データの例を示す説明図である。この図形データは、文字列の流し込みを所望する閉図形を特定するに必要なデータ群であり、図形識別情報と形状情報が含まれる。
【００１９】
図形識別情報は、作成した図形を区別するための情報であり、閉図形が三角形、正方形、長方形、台形、円、楕円等の一般的な名称の図形であれば、その名称がそのまま使用とされる。また、これらの一般的な名称でない形状（例えば、卵形、ひょうたん型等）であるときには、任意形状であることを示す特定の名称、例えば「任意」が使用される。また、形状情報は、閉図形の軌跡を特定するに必要なデータであり、閉図形の形状に応じたデータ数を含んでいる。
【００２０】
図３に示すような閉図形を作成した場合は、図形識別情報の第１データは、”任意”となる。形状情報は、作成した図形の輪郭点数（”ｉ”）と、各輪郭点Ｑ１〜ＱｉのＸ，Ｙ座標値とを含んでいる。この一連の図形データが、内部メモリ２８に順次記憶される。この座標値のデータ収集は、次のようになされる。マウス３２の操作軌跡の座標を逐次読み込み、その読み込んだ座標値を輪郭点Ｑ１〜Ｑｉの座標値として記憶し、この輪郭点数を記憶する。或いは、キーボード３０から予め指定された輪郭点の点数と、各輪郭点についてマウス３２にて指定された座標の座標値とを記憶するようにすることもできる。
【００２１】
上記したオペレータによる閉図形の作成指示は、オペレータがマウス３２を操作して、例えば、図４に示すような画面４２上の作図処理ボタン４４をクリックすることにより開始される。また、作成された図形５０は図４に示す如く画面４２上に表示される。なお、複数の閉図形に異なる文字列を流し込む場合には、まず、ステップＳ５０にて、オペレータが予め閉図形を複数作成し、次いで、オペレータはディスプレイ３８の表示画面を見ながらマウス３２などを操作して、流し込み対象となる閉図形を指定するようにする。これにより、文字列の流し込み対象となる図形が設定される。
【００２２】
次に、採字入力の処理を行なう（ステップＳ５２）。即ち、オペレータが、キーボード３０等を用いて、流し込みを所望する文字を順次入力する。また、予め採字入力した文字列データをハードディスク装置３４に記憶しておき、それを読み出してもよい。ＣＰＵ２０は、入力された文字列を採字入力データとして内部メモリ２８に記憶すると共に、ディスプレイ３８の画面上に表示する。なお、この採字入力処理は、図形の作成処理に先立って行うようにすることができることは勿論である。
【００２３】
図５は、内部メモリ２８に記憶される採字入力データの一例を示す説明図である。この採字入力データは、文字列内の文字数と各文字の文字コードとを含んでいる。この採字データは内部メモリ２８（図１）に記憶される。
【００２４】
採字入力に続いては、所定の文字サイズＳ０で文字列を一行に配列した場合の仮想行の長さＬｐとその仮想行についての仮想行領域面積Ｓｐを演算する（ステップＳ５４）。図６は、所定の文字サイズＳ０で仮想的に一行に配列された文字列を示す説明図である。各文字はそれぞれ正方形状の文字枠内に設定されており、この文字枠の高さおよび幅が文字サイズＳ０となる。図示するように、本実施例では、各文字の字間をゼロとし、上記の文字サイズＳ０に対応した高さの行間Ｇを文字列下部に設定した。そして、各文字の並びとこの行間Ｇとを含む領域（以下、「仮想一行領域」と呼ぶ）は、長さＬｐで高さＨｐの矩形の領域である。
【００２５】
行間Ｇと仮想一行領域の高さＨｐおよび長さＬｐは、いずれも文字サイズＳ０に比例する形で以下の数式１〜数式３に示すように与えられ、仮想行領域面積Ｓｐは数式４で与えられる。
【００２６】
Ｇ＝ｋ１・Ｓ０      …数式１
Ｈｐ＝文字サイズ＋行間＝Ｓ０＋Ｇ＝（１＋ｋ１）・Ｓ０      …数式２
Ｌｐ＝ｎ・Ｓ０      …数式３
Ｓｐ＝Ｈｐ・Ｌｐ＝ｎ・（１＋ｋ１）・Ｓ０2    …数式４
【００２７】
ここで、ｋ１は所定の定数であり、ｎは図５に示した採字入力データにおける文字数である。本実施例では、この文字サイズＳ０は例えば１０ｍｍに設定されている。
【００２８】
次に、作成した閉図形５０の外接矩形ＨＫを求め、行高さＧ０で複数行に区分して行数Ｇｎを定め、各行の矩形領域Ｋｉを設定する（ステップＳ５６）。具体的に説明すると、図７に示すように、まず、図３に示した図形データを読み込み、輪郭点の座標から外接矩形ＨＫの各頂点を求める。次いで、この外接矩形ＨＫをその上辺から行高さＧ０を用いて切り出し、この切出線と閉図形５０の交点を求める。そして、この交点から各行の矩形領域を設定する。この矩形領域は、最終定期に文字列の流し込みが行われる領域となるので、上記のように切り出して求めた矩形領域のうち、文字の配列が可能なものだけを選択し、ステップＳ５６で設定される矩形領域とする。つまり、図示するように外接矩形ＨＫを切出線で切り出した場合、閉図形５０の形状によっては、最上段の矩形領域Ｋ０が行高さＧ０に満たない幅となることがある。このような矩形領域Ｋ０には、行高さＧ０に近似した値の文字サイズを有する文字を配置することはできない。よって、この最上段の矩形領域Ｋ０は除外され、図示する閉図形５０についてこのステップＳ５６を行うと、その下段の矩形領域が１行目の矩形領域Ｋ１とされ、ｉ行目の矩形領域Ｋｉまで設定される。また、このように矩形領域の設定ができた行数が、上記の行数Ｇｎとされる。この矩形領域Ｋｉ設定のための行高さＧ０は、本ルーチンの最初の処理時には、所定の初期値とされており、後述のステップＳ６４にてステップＳ５４以降の処理が繰り返された場合には、この初期値ではなく後述のステップＳ６８で定められた値とされる。
【００２９】
次に、このように設定した各矩形領域Ｋｉの開始点（左上点又は左下点）を算出し、これを内部メモリ２８に記憶する（ステップＳ５８）。この記憶した開始点は、後述する組版結果データの構築に用いられる。その後は、各行の矩形領域Ｋｉの矩形長さＬｉと矩形面積Ｓｉを演算し、全行の矩形面積の累積値Ｓｃを算出・記憶する（ステップＳ６０）。矩形領域Ｋ１を例に採り説明すると、矩形領域Ｋ１の開始点から右端の終了点までの矩形長さＬ１と、図中に斜線で示す矩形面積Ｓ１が演算されて、累積値Ｓｃが算出される。記憶した各行の矩形領域Ｋｉの矩形長さＬｉは、後述するように、この矩形領域Ｋｉに配置できる文字数を定めるために用いられる。
【００３０】
上記のステップＳ６０に続いては、仮想行領域面積Ｓｐ（数式４）と矩形面積の累積値Ｓｃとの面積比Ｓｐ／Ｓｃの平方根Ｒを算出し、これを記憶する（ステップＳ６２）。この平方根Ｒは次の数式５で与えられる。記憶した平方根Ｒは、後述するように、上記した各行の矩形領域Ｋｉを再度定めるために用いられる。
【００３１】
0003699581.tif 000002
【００３２】
この数式５から明らかなように、平方根Ｒは、文字サイズＳ０に比例する。この場合、数式５における右辺のルートの中のｎ、ｋ１は文字列が採字された時点で定まる定数であり、累積値Ｓｃは上記のように定まる。
【００３３】
次に、上記の面積比Ｓｐ／Ｓｃが１を中心とする所定の許容範囲の値であるか否かを判断する（ステップＳ６４）。例えば、面積比Ｓｐ／Ｓｃが０．９以上で１．１以下であるか否かを判断する。なお、平方根Ｒは面積比Ｓｐ／Ｓｃから求めたものであるので、面積比Ｓｐ／Ｓｃの替わりに平方根Ｒが１を中心とする所定の許容範囲の値であるか否かを判断するようにしても良い。
【００３４】
このステップＳ６４で肯定判断した場合には、図６の仮想行領域面積Ｓｐと図７の矩形面積の累積値Ｓｃとがほぼ等しいことになる。このため、矩形面積の累積値ＳｃはステップＳ５２で採字した文字列の配列に必要な面積にほぼ等しくなるので、ステップＳ６４の肯定判断に続いては、文字列の流し込み処理（ステップＳ６６）に移行できる。なお、この文字列の流し込み処理の詳細については、後述する。その一方、ステップＳ６４で否定判断した場合には、矩形面積の累積値Ｓｃが文字列の配列に必要な面積より不足している、或いはこの面積より過剰であることになる。この状態のまま文字列の流し込みを行うと、上記した面積の関係から、過度の余白や文字のはみ出しが起こる。よって、ステップＳ６４の否定判断に続いては、仮想行領域面積Ｓｐと矩形面積の累積値Ｓｃとがほぼ等しくなるよう、以下の処理を行う。
【００３５】
ステップＳ６４で否定判断した場合は、矩形面積の累積値Ｓｃを求めるために用いた行高さＧ０（初期値）の再設定を行う（ステップＳ６８）。詳しくは、この行高さＧ０に設定行高さＧ０’をセットする。設定行高さＧ０’は、以下の数式６，７で表される設定文字サイズＳＴと設定行間ＧＴの和であることから、行高さＧ０を設定行高さＧ０’とすることで、行における文字サイズと行間が調整される。
【００３６】
設定文字サイズＳＴ＝Ｓ０／Ｒ    …数式６
設定行間ＧＴ＝Ｇ／Ｒ    …数式７
【００３７】
仮想行領域面積Ｓｐが矩形面積の累積値Ｓｃより大きいときには平方根Ｒはその分だけ１より大きくなる。このため、数式６，７に示すように文字サイズＳ０、行間Ｇ（数式１）を平方根Ｒで除算した設定文字サイズＳＴ、設定行間ＧＴは、文字サイズＳ０、行間Ｇより小さくなる。その反面、仮想行領域面積Ｓｐが矩形面積の累積値Ｓｃより小さいときには、設定文字サイズＳＴは文字サイズＳ０より大きく、設定行間ＧＴは行間Ｇより大きくなる。従って、仮想行領域面積Ｓｐが矩形面積の累積値Ｓｃより大きいときには、設定行高さＧ０’は、このステップＳ６８に移行する以前のステップＳ５６で用いられた行高さＧ０より小さくなり、仮想行領域面積Ｓｐが矩形面積の累積値Ｓｃより小さいときには、設定行高さＧ０’は、上記の行高さＧ０より大きくなる。
【００３８】
この場合、数式６，７には仮想一行領域の仮想行領域面積Ｓｐを定める文字サイズＳ０と行間Ｇが含まれている。よって、行高さＧ０を設定行高さＧ０’とすることで、各行の矩形領域Ｋｉを仮想一行領域の行高さと行間に合わせて調整することにもなる。
【００３９】
こうしてステップＳ６８で行高さＧ０の再設定を行った後には、既述したステップＳ５６に移行しその後の処理が繰り返される。このため、ステップＳ６４で仮想行領域面積Ｓｐと矩形面積の累積値Ｓｃがほぼ等しいと肯定判断されるまで、各行の矩形領域Ｋｉが調整されることになる。例えば、繰り返しの際のステップＳ５６では、図８に示すように、前回の行高さＧ０に替わる設定行高さＧ０’で閉図形５０の外接矩形ＨＫが区分され、新たな行数Ｇｎと矩形領域Ｋｉ’が設定される。
【００４０】
ステップＳ６４での肯定判断に続く文字列の流し込み処理（ステップＳ６６）は、上記のように各行について設定した矩形領域ＫｉにステップＳ５２で入力した文字列を順次流し込む。この流し込み処理の詳細を示す図９のフローチャートに示すように、まず、行番号ｉを１にセットし（ステップＳ７０）、流し込みの対象となる行を１行目に設定する。その後、ステップＳ５８で記憶したｉ番目の行における矩形領域Ｋｉの開始点と矩形長さＬｉを読み込む（ステップＳ７２）。次に、読み込んだ矩形長さＬｉの矩形領域Ｋｉに配列可能な文字数Ｍｉを、矩形長さＬｉと文字サイズＳ０から、例えば数式３に倣って、算出し（ステップＳ７４）、この文字数Ｍｉの文字を文字列から切り出す（ステップＳ７６）。
【００４３】
次に、ステップＳ７６で切り出した文字列を矩形領域Ｋｉに流し込む（ステップＳ８４）。この流し込みに際しては、ステップＳ５８で記憶された開始点から文字が流し込まれる。その後は、次の行の矩形領域Ｋｉへの文字列の流し込みを図るべく、行番号ｉを値「１」だけインクリメントする（ステップＳ８６）。続いて、この行番号ｉをステップＳ５６で記憶した行数Ｇｎと比較し、行番号ｉが行数Ｇｎを越えたか否かを判断する（ステップＳ８８）。そして、このステップＳ８６で否定判断した場合は、上記のステップＳ７２に移行し、ステップＳ８８で肯定判断するまで、ステップＳ７２以降の処理を繰り返す。なお、ステップＳ８８で肯定判断すると、総ての行の矩形領域Ｋｉに文字列の流し込みが終了する。
【００４４】
以上説明したように、本実施例によれば、任意の形状の閉図形５０の内部にその形状に倣って文字列を流し込むに当たり、この閉図形内部の各行の矩形領域Ｋｉの矩形面積の累積値Ｓｃと仮想行領域面積Ｓｐとがほぼ等しくなるまで各行の矩形領域Ｋｉを調整し、両面積がほぼ等しくなると、各行の矩形領域Ｋｉに文字列の文字を順次流し込む。このため、本実施例の組版装置１００によれば、流し込み領域が任意形状の閉図形５０の内部領域であっても支障なく文字列の流し込みを行うことができ、流し込みの汎用性を高めることができる。
【００４５】
また、本実施例では、各行の矩形領域Ｋｉの長さＬｉと当該矩形領域に流し込むべき文字数の文字列の長さＭｉ・Ｓ０とを比較し、その結果に応じて文字列の文字枠幅を調節したり、字間を設定する。このため、各行の矩形領域Ｋｉにおいて文字のはみ出しや空白を起こさないので、より整然とした流し込みをもたらすことができる。
【００４６】
次に、変形例について説明する。上記の実施例では、各行の矩形領域Ｋｉを行間を有するものとしたが、最下段の行の矩形領域については行間を削除するよう変形することができる。このように変形した場合は、ステップＳ６８での行高さＧ０の設定に際して、設定行間ＧＴを（Ｇ／Ｒ）・（Ｍｉ／（Ｍｉ−１））で与えればよい。このようにすれば、最下段の行の下部にある行間を、その上方に存在する（Ｍｉ−１）個の行間に均等に割り当てるので、文字列をより整然と流し込むことができる。
【００４７】
なお、この発明は上記実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。例えば、本実施例では、仮想一行領域を設定するに当たり、字間をゼロとし行間Ｇを所定の値にしたが、字間を所定の値Ｆとしたり、行間Ｇをゼロとすることもできることは勿論である。字間を値Ｆとした場合の長さＬｐと仮想行領域面積Ｓｐは数式８，９で与えられ、この長さＬｐと仮想行領域面積Ｓｐを上記した数式に替えて用いればよい。
【００４８】
Ｌｐ＝ｎ・Ｓ０＋（ｎ−１）・Ｆ      …数式８
Ｓｐ＝Ｈｐ・Ｌｐ＝ｎ・（１＋ｋ１）・Ｓ０2 ＋（１＋ｋ１）・（ｎ−１）・Ｆ・Ｓ０      …数式９
【００４９】
また、字間および行間Ｇをゼロとした場合の仮想行領域面積Ｓｐは数式１０で与えられ、この仮想行領域面積Ｓｐを上記した数式に替えて用いればよい。
【００５０】
Ｓｐ＝Ｈｐ・Ｌｐ＝ｎ・Ｓ０2    …数式１０
【００５１】
また、図２に示した組版処理が開始された後の最初のステップＳ５６では、行高さＧ０で複数行に区分した場合の行数Ｇｎと各行の矩形領域Ｋｉを設定したが、行数Ｇｎを所定の初期値（例えば５０行）に設定し、この行数で閉図形５０の外接矩形ＨＫの高さを除算して行高さＧ０を定め、各行の矩形領域Ｋｉを設定することもできる。この場合にあっても、ステップＳ６８では、除算演算値の行高さＧ０に設定行高さＧ０’がセットされる。なお、このように行数Ｇｎの初期値を用いると、初期の行高さＧ０よりも閉図形５０の高さが小さい場合にも、処理をうまく実行することができる利点がある。
【００５２】
更に、上記の実施例では、各行の矩形領域Ｋｉの矩形面積の累積値Ｓｃと仮想行領域面積Ｓｐとがほぼ等しくなるようにするに当たり、文字サイズＳ０を固定したままステップＳ６８で行高さＧ０を調整したが、行高さＧ０を固定して文字サイズＳ０を調整したり、行高さＧ０と文字サイズＳ０の両者とも調整するようにすることもできる。
【図面の簡単な説明】
【図１】  本発明の一実施例としての組版装置１００の概略構成を示すブロック図である。
【図２】  本発明の一実施例としての組版処理の流れを示すフローチャートである。
【図３】  内部メモリ２８に記憶される図形データの例を示す説明図である。
【図４】  組版を行う際にディスプレイ３８に表示される画面の一例を示す説明図である。
【図５】  採字された文字列を示す採字データを示す説明図である。
【図６】  所定の文字サイズＳ０で文字を仮想的に一行に配置した仮想一行領域を示す説明図である。
【図７】  閉図形５０を行高さＧ０で複数行に区分して、行数Ｇｎ並びに各行の矩形領域Ｋｉを設定する様子を説明する説明図である。
【図８】  再設定を行った設定行高さＧ０'で閉図形５０を区分して、新たな行数Ｇｎと矩形領域Ｋｉ'が設定される様子を説明する説明図である。
【図９】  図２の流し込み処理の詳細をしめるフローチャートである。
【符号の説明】
２０...ＣＰＵ
２２...面積演算・比較処理部
２４...文字サイズ・流し込み領域決定処理部
２６...文字列流し込み処理部
２８...内部メモリ
３０...キーボード
３２...マウス
３４...ハードディスク装置
３６...通信回線
３７...モデム
３８...ディスプレイ
４０...バス
４２...画面
４４...作図処理ボタン
５０...閉図形
１００...組版装置
ＨＫ...外接矩形
Ｋｉ...矩形領域
ＭＷ...文字枠
【図１】
0003699581.tif 000003
【図２】
0003699581.tif 000004
【図３】
0003699581.tif 000005
【図４】
0003699581.tif 000006
【図５】
0003699581.tif 000007
【図６】
0003699581.tif 000008
【図７】
0003699581.tif 000009
【図８】
0003699581.tif 000010
【図９】
0003699581.tif 000011