(57)【特許請求の範囲】
【請求項１】
書体情報と文字サイズ情報とを含む印刷属性データおよび文字列データを有するテキスト印刷データを記憶する記憶手段と、
前記テキスト印刷データに基づき出力されるテキスト画像の輪郭を抽出する輪郭抽出手段と、
前記抽出された輪郭から外接矩形を計算する計算手段と、
前記外接矩形の幅と基準文字高さとからレイアウト基準矩形を設定するレイアウト基準矩形設定手段と、
レイアウト位置を設定するレイアウト位置設定手段と、
前記レイアウト基準矩形と前記レイアウト位置とに基づき、前記テキスト画像をレイアウトするレイアウト手段とを有し、
前記基準文字高さは、前記書体情報に対応する基準文字高さ比率と前記文字サイズ情報とから算出されることを特徴とする情報処理装置。
【請求項２】
さらに、前記記憶手段に記憶されたテキスト印刷データに応じたテキスト画像を表示する表示手段を有し、
前記輪郭抽出手段は、前記表示手段の解像度を有する前記表示されるテキスト画像の画像データを用いて、前記輪郭を抽出することを特徴とする請求項１記載の情報処理装置。
【請求項３】
さらに、前記記憶手段に記憶されたテキスト印刷データに応じたテキスト画像を表示する表示手段を有し、
前記輪郭抽出手段は、前記表示されるテキスト画像の画像データに対して、前記表示手段の解像度と印刷手段の解像度とに応じた拡大率を用いて拡大し、該拡大された画像データを用いて前記輪郭を抽出することを特徴とする請求項１記載の情報処理装置。
【請求項４】
記憶手段、輪郭抽出手段、計算手段、前記レイアウト基準矩形設定手段、レイアウト位置設定手段、レイアウト手段とを有する情報処理装置で実施される情報処理方法であって、
前記記憶手段が、書体情報と文字サイズ情報とを含む印刷属性データおよび文字列データを有するテキスト印刷データを記憶し、
前記輪郭抽出手段が、前記テキスト印刷データに基づき出力されるテキスト画像の輪郭を抽出し、
前記計算手段が、前記抽出された輪郭から外接矩形を計算し、
前記レイアウト基準矩形設定手段が、前記外接矩形の幅と基準文字高さとからレイアウト基準矩形を設定し、
前記レイアウト位置設定手段が、レイアウト位置を設定し、
前記レイアウト手段が、前記レイアウト基準矩形と前記レイアウト位置とに基づき、前記テキスト画像をレイアウトする情報処理方法であり、
前記基準文字高さは、前記書体情報に対応する基準文字高さ比率と前記文字サイズ情報とから算出されることを特徴とする情報処理方法。
【請求項５】
請求項１乃至３のいずれかに記載の情報処理装置をコンピュータを用いて実現するためのプログラムがコンピュータが読み取り可能に記録された記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、編集機能を有する情報処理装置及び情報処理方法並びに記憶媒体に関し、例えば、高精細の版下を作成するための情報処理装置及び情報処理方法並びに記憶媒体に用いて好適なものである。
【０００２】
【従来の技術】
上述した編集機能を有する情報処理装置の一例として、印刷データ、特に、製品本体やその外装パッケージやマニュアル類などに表示する、図形や文字やイラストなどの版下用の印刷データを作成する、ＣＡＤやＤＴＰ（Ｄｅｓｋ Ｔｏｐ Ｐｕｂｌｉｓｈｉｎｇ）などの、対話形式の作図システムがある。このようなシステムを用いて印刷データを作成する場合には、従来、次のような方法があった。
（１）印刷した時のイメージとは異なる、おおまかなイメージを表示装置に表示しながら、対話形式で図形や文字の編集やレイアウトを行なった後に、印刷に必要な属性を付加した、印刷用のデータを別に作成して、印刷装置で印刷する方法。
（２）印刷した時のイメージと同様のイメージを表示装置に表示しながら、対話形式で図形や文字の編集やレイアウトを行なった後に、表示装置に表示されたデータを、ほぼそのままの形で、印刷装置で印刷する方法。
【０００３】
この（２）の方法は、表示装置に表示されるイメージが、印刷装置で印刷されるイメージと同じ表示形態となる、ＷＹＳＩＷＹＧ（Ｗｈａｔ Ｙｏｕ Ｓｅｅ Ｉｓ Ｗｈａｔ Ｙｏｕ Ｇｅｔ）と呼ばれる技術による方法である。
【０００４】
また、印刷データを、対話形式の作図システムを用いずに作成する場合には、従来、次のような方法があった。
（３）ＴｅＸなどのマークアップ言語を用いて、図形や文字のデータとともに、印刷に必要な属性や、レイアウト情報などを記述したプログラムを作成し、そのプログラムを一括処理で実行することにより、印刷データを生成して、印刷装置で印刷する方法。
【０００５】
【発明が解決しようとする課題】
しかしながら、上記従来例は、それぞれ、以下に述べるような課題を有している。なお、以下に述べる課題は、それぞれ上記従来例に付した番号に対応した番号を付して記載している。
（１）印刷装置で印刷した時のイメージが、表示装置に表示した時のイメージとかなり異なるために、ユーザーが思った通りの印刷結果を得るためには、何度も印刷し直しては修正する必要があり、ユーザーインターフェイスがよくない、という問題があった。
【０００６】
また、印刷用のデータを、表示用のデータとは別に作成しなければならないため、データ作成の効率がよくない、という問題があった。
（２）また、上述したようなＷＹＳＩＷＹＧの機能を用いて、対話形式で図形や文字をレイアウトする場合、ユーザーは、表示装置に表示されたイメージに従ってレイアウトのための操作を行なうことになる。
【０００７】
しかしながら、その際の精度は、表示装置の解像度に依存するので、表示装置よりも格段に解像度の高い印刷装置で印刷するような場合には、表示装置に表示された内容と印刷装置による印刷結果との間に、解像度の違いによる誤差が生じてしまう、という問題があった。
【０００８】
例えば、版下などの印刷データを作成する際に、「文字や図形の可視部分の外接矩形の端点を、既存の点に合わせて配置する」などといった精密なレイアウトが必要な場合、ユーザーには、表示装置上で正しくレイアウトされているように見える場合でも、実際に、表示装置の５〜３０倍程度の解像度を持つような高精細な印刷装置で印刷してみると、多少の誤差が生じてしまい、精密な位置合わせを行うことは、極めて困難だった。
（３）また、ＴｅＸなどのマークアップ言語を用いる場合は、正しいレイアウトの指示さえしておけば、上記（２）の方法のような解像度の違いによる誤差は生じないが、対話形式による処理ではないために、ユーザーが、レイアウトの結果を見ながらレイアウトのための操作を行なうことができず、上記（１）の方法よりもさらに、ユーザーインターフェイスがよくない、という問題があった。また、精密なレイアウトを必要としない場合でも、すべて正確にレイアウトの指示をしておかなければならないため、印刷データを作成する手間や不要な操作が増加して、ユーザーの作業効率が低下してしまう、という問題があった。
【０００９】
本発明は、上記従来の技術の様々な問題点を解決するためになされたものであり、ユーザーの作業効率を低下させることなく、しかも、精度の高い印刷データ、特に、文字データを含む印刷データを正確かつ容易に作成することのできる、情報処理装置及び情報処理方法並びに記憶媒体を提供することを目的とする。
【００１０】
【課題を解決するための手段】
上述の目的を達成するために、本発明の情報処理装置は、書体情報と文字サイズ情報とを含む印刷属性データおよび文字列データを有するテキスト印刷データを記憶する記憶手段と、前記テキスト印刷データに基づき出力されるテキスト画像の輪郭を抽出する輪郭抽出手段と、前記抽出された輪郭から外接矩形を計算する計算手段と、前記外接矩形の幅と基準文字高さとからレイアウト基準矩形を設定するレイアウト基準矩形設定手段と、レイアウト位置を設定するレイアウト位置設定手段と、前記レイアウト基準矩形と前記レイアウト位置とに基づき、前記テキスト画像をレイアウトするレイアウト手段とを有し、前記基準文字高さは、前記書体情報に対応する基準文字高さ比率と前記文字サイズ情報とから算出されることを特徴とする。
【００１３】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態について、詳細に説明する。
【００１４】
（第１の実施形態）
〔ハードウエア構成の説明〕
図１は、本発明の一実施形態に係る情報処理装置のハードウエア構成を示すブロック図である。
【００１５】
この図１において、２１は中央処理装置（ＣＰＵ）であり、本装置の全体の制御や演算処理を行なう。また、１１は、文字や数値の入力を行なうためのキーボードであり、１２は、座標や図形を指示するためのマウスである。また、４１は表示装置であり、図形データおよび文字データ、各種操作パネルやボタンを表示する。
【００１６】
また、３１は読出専用記憶装置（ＲＯＭ）であり、本実施形態に係るプログラムは、このＲＯＭ３１に格納され、ＣＰＵ２１によって実行される。３２は読出書込記憶装置（ＲＡＭ）であり、本実施形態に係るプログラムの実行中、ＣＰＵ２１は、必要に応じて、ＲＡＭ３２に、データを読み書きしながら処理を行なう。３３は、フロッピーディスク装置（ＦＤ）やハードディスク装置（ＨＤ）などの外部記憶装置であり、文字の書体情報やコード情報などのデータが格納されている。
【００１７】
なお、本実施形態に係るプログラムを、外部記憶装置３３に格納させておき、ＲＡＭ３２に読み込んでから、ＣＰＵ２１によって実行するようにしてもよいし、また、文字の書体情報やコード情報などのデータを、ＲＯＭ３１に格納させておき、ＣＰＵ２１が、必要に応じて、それらのデータを読み出して使用するようにしてもよい。
【００１８】
また、５１はレーザープリンタであり、本装置によって作成された印刷データを、校正刷り（印刷データの確認のための出力）し、また、印刷ログファイルの内容を出力する。５２はイメージセッターであり、本装置によって作成された印刷データを、清刷り（正式な版下となる高精度な出力）する。５３はレーザーマーカーであり、本装置によって作成された印刷データを、レーザーで直接、製品に焼き付ける。
【００１９】
以下、レーザープリンタ５１と、イメージセッター５２と、レーザーマーカー５３の違いについて説明する。
【００２０】
まず、レーザープリンタ５１は、レーザーを感光ドラムに照射してトナーを吸着させ、それを紙に転写するプリンタであり、解像度は、１５００ＤＰＩ程度まで可能である。また、イメージセッター５２は、レーザーを直接、感光紙に照射するプリンタであり、解像度は、４０００ＤＰＩ程度まで可能であり、また、用紙サイズは、Ａ１程度まで可能である。また、レーザーマーカー５３は、レーザーを直接、成形品に照射し、樹脂材料を溶融して黒化させるか、充填材を配合した特殊材料を使用して発色させる印刷装置である。
【００２１】
なお、２２はシステムバスであり、本装置を構成するハードウエアの各要素は、全て、このシステムバス２２を介して、プログラムおよびデータの受け渡しを行なっている。
【００２２】
次に、本実施形態に係る表示装置４１における表示機能について説明する。
【００２３】
本実施形態に係る情報処理装置は、図形データおよび文字データを、印刷時の出力形態と同じ表示形態のイメージで、表示装置４１へ表示する制御を行なう、いわゆるＷＹＳＩＷＹＧの機能を有しており、これを説明する図が、図2である。
【００２４】
図２（ａ）は、ＷＹＳＩＷＹＧの表示例であり、この図２（ａ）の表示形態は、印刷時の出力結果の例である図２（ｃ）の出力形態と同じとなっている。一方、図２（ｂ）は、ＷＹＳＩＷＹＧではない表示の例であり、この図２（ｂ）の表示形態は、印刷時の出力結果の例である図２（ｃ）の出力形態とは異なっている。
【００２５】
次に、本実施形態に係る表示装置４１上の操作画面について説明する。
【００２６】
図３は、本実施形態に係るプログラム実行時に表示装置４１に表示されるメインパネル６１を示した図である。
【００２７】
この図３において、６１はメインパネル、６２は作画エリア、６３はマウスポインタ、６４は文字入力エリア、６５はボタン群、６６は汎用ボタン、６７はコマンドメニュー、６８はガイダンスエリア、７１はメインパネル以外のパネル、７２はパネル７１上のボタンである。また、これら図３上のボタンは、全てソフトキーである。
【００２８】
このメインパネル６１上で、キーボード１１や、マウス１２などの入力装置を操作することによって、対話的に、印刷データの作成および編集作業を行なう。作成された印刷データは、作画エリア６２に表示される。
【００２９】
また、必要に応じて、メインパネル６１以外に、各種のパネル７１が表示され、パネル７１上で、操作を行なうこともある。
【００３０】
以下、この図３を用いて、本実施形態における、さまざまな入力方法について説明する。
【００３１】
キーボード１１から入力を行なう場合には、文字入力エリア６４を、マウス１２またはキーボード１１で指示してから、文字または数値を入力する。
【００３２】
また、マウス１２から入力を行なう場合には、以下の方法を用いる。
【００３３】
まず、特定の要素やボタンを選択する方法としては、次の（１）と（２）の、２つの方法がある。
【００３４】
（１）要素選択：作画エリア６２に表示されている、印刷データのある場所に、マウスポインタ６３を移動させて、その位置で、例えばマウス左ボタンを押し下げることによって、操作の対象とする要素を選択する。
【００３５】
（２）ボタン選択：メインパネル６１に表示されている、各種のボタン６５や汎用ボタン６６や、必要に応じて表示されるパネル７１に表示されている、各種のボタン７２の位置に、マウスポインタ６３を移動させて、その位置で、例えばマウス左ボタンを押し下げることによって、操作の対象とするボタンを選択する。
【００３６】
また、作画エリア６２上の特定の位置を指定する方法として、次の（３）から（７）までの、５つの方法がある。
【００３７】
（３）任意指定：作画エリア６２上の、任意の位置に、マウスポインタ６３を移動させて、その位置で、例えばマウス右ボタンを押し下げることによって、位置を指定する。
【００３８】
（４）点指定：作画エリア６２に表示されている、点を要素選択することによって、位置を指定する。
【００３９】
（５）特徴点指定：作画エリア６２に表示されている、点以外の要素を要素選択することによって、その要素の特徴となる点をＣＰＵ２１が抽出し、位置を指定する。
【００４０】
ここで、特徴点が複数存在する場合に、１点を特定する方法には、要素選択した際のマウスポインタ６３の位置に最も近い特徴点をＣＰＵ２１が自動的に抽出する方法、複数存在する特徴点の中からさらに１点を点指定する方法、などがある。
【００４１】
図４に、図形データの各要素の特徴点の例を示す。図中、＊印で示した点が、特徴点である。なお、これら特徴点の具体的な位置は、以下に示す通りである。
・線分：両端点、中点
・円：中心点、円の中心からＸおよびＹ軸方向に引いた直線と円との交点（４点）
・円弧：中心点、両端点、中点（円弧の距離を二分する円弧上の点）
・楕円：中心点、楕円の短軸および長軸と楕円との交点（４点）
・楕円弧：中心点、両端点、楕円弧の短軸および長軸と楕円弧を含む楕円との交点（４点）、中点（楕円弧の距離を二分する楕円弧上の点）
・線分列：線分列を構成する各線分の両端点、中点
・自由曲線：両端点、曲線の制御点、中点（自由曲線の距離を二分する点）
【００４２】
（６）交点指定：作画エリア６２に表示されている、線分や円などの線要素を、１個または２個、要素選択することによって、それらの要素の交点をＣＰＵ２１が算出し、位置を指定する。
【００４３】
ここで、単一の線要素が、それ自体で交点を持つ場合、すなわち、自己交差している場合は、線要素を１個、要素選択するだけでよい。その他の場合は、２個の線要素を指定する。
【００４４】
交点が複数存在する場合に、１点を特定する方法には、先または後に要素選択した際のマウスポインタ６３の位置に最も近い交点をＣＰＵ２１が自動的に抽出する方法、複数存在する交点の中からさらに１点を点指定する方法、などがある。
【００４５】
図５に、線分と円弧を要素選択して、交点指定によって、位置を指定した例を示す。図中、レ印で示した位置で、線分、円弧、の順で、要素選択を行ない、＊印の位置が、交点指定によって指定されたことを示している。
【００４６】
（７）線上点指定：作画エリア６２に表示されている、線分、円などの、線要素を１個、要素選択することによって、その時のマウスポインタ６３の位置に最も近い、線要素上の点をＣＰＵ２１が算出し、位置を指定する。
【００４７】
図６に、円弧を要素選択して、線上点指定によって、位置を指定した例を示す。図中、レ印で示した位置で、要素選択を行ない、＊印の位置が、線上点指定によって指定されたことを示している。レ印の点は、円弧近傍の点、＊印の点は、円弧上の点である。
【００４８】
次に、本実施形態で扱う「コマンド」について説明する。本実施形態では、印刷データの作成および編集作業の各単位を「コマンド」と呼んでいる。
【００４９】
本実施形態で扱うコマンドには、点、直線、円、曲線、など、各要素を作成するコマンド（作図コマンド）や、移動、複写、削除、属性、など、各要素の形状や属性などを修正するコマンド（修正コマンド）や、その他、ファイル、プリント、トンボ、バーコード、等に関するコマンドなどがある。
【００５０】
印刷データの作成や編集を行なうには、まず、作業単位に合わせた、任意のコマンドを１つ選択する。コマンドの選択には、文字入力エリア６４で、コマンドの名称をキーボード１１から入力する方法や、コマンドの名称があらかじめ設定されているメインパネル６１上のボタン６５を、ボタン選択する方法などがある。
【００５１】
コマンドの選択が行なわれると、それまで、すでに選択されているコマンドがあった場合には、そのコマンドの終了処理が行なわれる。続いて、新たに選択されたコマンドの初期処理が行なわれ、コマンド内の処理に入る。
【００５２】
コマンドが選択されると、表示装置４１上に、選択されたコマンド内での、さらに細かい作業単位を選択するための、コマンドメニュー６７が表示される。ユーザーは、コマンドメニュー６７の任意のメニュー項目のボタンをボタン選択することによって、各種の編集作業を行なうことができる。ユーザーがどのような操作を行なえばよいかといった指示は、作業の状況に応じて、その都度、ガイダンスエリア６８に表示されるので、ユーザーは、この指示に従って、操作を行なえばよい。
【００５３】
〔印刷データの説明〕
○印刷データの要素
次に、本実施形態に係る情報処理装置で作成できる印刷データを構成する、図形データおよび文字データの要素に、どのような種類が存在するのかを、具体的に説明することにする。
【００５４】
本実施形態に係る情報処理装置で作成できる、図形データおよび文字データの要素には、大きく分けて、以下の（Ａ）〜（Ｅ）の５つの種類がある。
（Ａ）基本図形：点、線分、線分列（開／閉）、円、円弧、楕円、楕円弧、自由曲線（開／閉）
（Ｂ）塗り潰し図形
（Ｃ）その他の図形：トンボ、バーコード
（Ｄ）テキスト
（Ｅ）グループ図形：シンボル、イラスト
【００５５】
ここでいう要素とは、図形データまたは文字データに、印刷データとして必要な属性（印刷属性と呼ぶ）を付加して、実際に、印刷データとしてレイアウトされる、データの単位を意味している。また、印刷データとしてレイアウトされた複数の要素をまとめてグループ化すれば、それを１つの要素として扱うこともできる。
【００５６】
それでは、以上の（Ａ）〜（Ｅ）の５つの種別について、以下に詳細に説明することにする。
【００５７】
まず、（Ａ）の基本図形は、最も基本となる図形データの要素である。このほか、線分列によって構成される、矩形（各辺がＸおよびＹ軸に平行である長方形）、正多角形などを、基本図形の要素として扱うこともできる。また、自由曲線としては、ベジェ、有理ベジェ、Ｂスプライン、エルミート、ＮＵＲＢＳなどの表現形式を扱うことができる。
【００５８】
また、（Ｂ）の塗り潰し図形は、（Ａ）の要素（点を除く）を単独で、または、複数を連結させることで、閉領域を形成し、その内部を塗り潰した図形データの要素である。塗り潰しの方法には、次の４種類がある。
（１）フィルエリア：内部を均一に塗り潰す。
（２）ハッチング：一定の傾きと間隔を持った複数の線分で塗り潰す。塗り潰し図形内の特定の点を、ハッチングの基準点として指定することもできる。
（３）メッシュ：円、矩形、正多角形など、一定の形状の図形の繰り返しで塗り潰す。塗り潰し図形内の特定の点を、メッシュの基準点として指定することもできる。
（４）パターン：あらかじめ作成されたビットパターンの繰り返しで塗り潰す。
【００５９】
また、（Ｃ）のその他の図形には、トンボ、バーコードなどがある。これらの要素は、図形データと、文字データの両方を含んでいる。
【００６０】
また、（Ｄ）のテキストは、文字データの要素である。図形データの要素と同様に、印刷データとしてレイアウトすることができるが、印刷属性の種類や、レイアウトの方法は、図形データの要素とは異なる。
【００６１】
最後に、（Ｅ）のグループ図形は、（Ａ）の基本図形、（Ｂ）の塗り潰し図形、（Ｃ）のその他の図形、（Ｄ）のテキストの各要素を、１つ以上任意の数だけ選択して、まとめて１つの要素として扱うためのもので、シンボルとイラストがある。
【００６２】
○印刷データの印刷属性
次に、本実施形態に係る情報処理装置で作成できる印刷データである、図形データおよび文字データの印刷属性に、どのような種類が存在するのかを、具体的に説明することにする。
【００６３】
本実施形態に係る情報処理装置で作成できる、図形データおよび文字データの印刷属性には、大きく分けて、以下の（ａ）〜（ｇ）の７つの種類がある。
【００６４】
まず、図形データおよび文字データに共通の印刷属性には、次に示す（ａ）〜（ｃ）の３つの種類がある。
（ａ）表示属性：要素を表示するか否か、また、表示する場合に、どのような上下関係で表示するか（表示プライオリティと呼ぶ）を指定する。
（ｂ）選択属性：要素選択が可能であるか否かを指定する。要素選択を不可にすると、その要素に対しての操作は行なえなくなる。
（ｃ）色属性：ＲＧＢあるいはＨＬＳなどのカラーモデルの種別、および、カラーコードの値を与えることによって、要素の色を表現する。白と黒以外の色が表現できないモノクロームの、表示装置４１またはレーザープリンタ５１などの印刷装置を使用している場合、色属性に応じて、白または黒のどちらかの色に変換されて、出力される。
【００６５】
次に、図形データ固有の印刷属性には、次に示す（ｄ）〜（ｆ）の３つの種類がある。
（ｄ）点属性：点要素の場合、点のある位置に記号を表示したり、文字列を表示したりすることができる。
（ｅ）線属性：点以外の基本図形の要素（線要素）の場合、次に示す、さまざまな線の属性を表現することができる。
・線種：線要素の形状を示し、実線、破線、一点鎖線、二点鎖線、などがある。・線幅：線要素の法線方向の大きさを示す。あらかじめ定められた、細線、中線、太線、などの種別を指定したり、実寸で指定したりすることができる。
・線幅方向：線幅を考慮しない場合から、法線方向のどちらに線幅分だけオフセットさせるかを示す。
・終端形状：線分や円弧などの開図形の終端の形状で、ラウンド、フラット、スクエア、などがある。
・接続形状：線分列や矩形などの図形の角の形状で、マイター、ラウンド、ベベル、などがある。
・線ピッチ：線種が実線以外の場合、線が存在する部分と、存在しない部分の長さを、それぞれ、実寸またはパラメータで与えることができる。
（ｆ）塗り潰し属性：塗り潰し図形要素の場合、フィルエリア、ハッチング、メッシュ、パターン、などの内部の塗り潰し方法の種類や、ハッチングやメッシュの場合の、必要な詳細データ、パターンの場合の、パターン番号を与える。
【００６６】
最後に、文字データ固有の印刷属性には、次に示す（ｇ）の１種類のみがある。
（ｇ）文字列属性：テキスト要素の場合、次に示すような、文字列全体の属性、および文字列を構成する各文字の属性を表現することができる。
【００６７】
なお、文字列属性やテキストに関するその他の用語については、後に、テキストの作成の手順を説明する際に、必要に応じて解説する。
・書体：ひと組の文字のデザインを表し、クーリエ、ヘルベチカ、ゴシック、などがある。
・平体率：文字を、文字の行送り方向（高さ方向）にどれだけ縮めるかを比率で表す。
・長体率：文字を、文字の字送り方向（幅方向）にどれだけ縮めるかを比率で表す。
・文字サイズ：文字の大きさを表し、一般には（正確には、斜体角が０、平体率が１の場合には）１つの文字が専有する矩形領域（文字ボックス）の行送り方向の高さと等しい。
・ベース角：文字の字送り方向（幅方向）がＸ軸となす角度を表す。
・文字方向：文字の字送り方向（幅方向）に対する、文字の回転角度を表す。
・斜体角：文字の字送り方向（幅方向）に対する、文字の傾斜角度を表す。
・字間：同一行の隣接する２文字の字送り方向（幅方向）の間隔を表す。
・行間：複数行で構成される文字列の隣接する２行にある文字の行送り方向（高さ方向）の間隔を表す。
・横反転フラグ：文字列を横方向に反転する。文字列開始点座標（基本文字列のデータ：後述）を通り、文字の行送り方向（高さ方向）線を軸とする線対称の形状となる。
・縦反転フラグ：文字列を縦方向に反転する。文字列開始点座標（基本文字列のデータ：後述）を通り、文字の字送り方向（幅方向）線を軸とする線対称の形状となる。
【００６８】
図４７に、文字列属性のうち、ベース角を説明する図を示す。図中、各文字を囲む実線の矩形は各文字の文字ボックスを表している。点線の矩形は、ベース角が０の場合の文字ボックスの位置を表している。
【００６９】
図４８に、文字列属性のうち、文字方向を説明する図を示す。図中、各文字を囲む実線の矩形は各文字の文字ボックスを表している。点線の矩形は、文字方向が０の場合の文字ボックスの位置を表している。
【００７０】
図４９に、文字列属性のうち、斜体角を説明する図を示す。図中、各文字を囲む実線の平行四辺形は各文字の文字ボックスを表している。点線の矩形は、斜体角が０の場合の文字ボックスの位置を表している。
【００７１】
図５０に、文字列属性のうち、横反転フラグと縦反転フラグを説明する図を示す。図中、水平および鉛直の２本の直線は、反転させた場合の対称軸を表している。２本の直線の交点が、各文字列の文字列開始点である。
【００７２】
○印刷データのデータ構造
次に、本実施形態における印刷データのデータ構造について説明する。本実施形態における印刷データは、一般に、既に説明したような、複数の要素データ、複数の印刷属性データから構成されている。
【００７３】
ここで、各要素データは、基本的に、データ種別コード、データ番号、各要素ごとの必要データ、各要素ごとの必要印刷属性データのデータ番号、という構成になっている。
【００７４】
そして、印刷データ内でユニークに付けられたデータ種別コードによって、印刷データ内の各要素データの種別を特定することができる。また、印刷データ内でユニークに付けられたデータ番号によって、印刷データ内の各要素データを特定することができる。各要素ごとに、必要データ、必要印刷属性の種類は異なるが、データ種別コードによって、ＣＰＵ２１は、これらを識別することが可能である。
【００７５】
また、各印刷属性については、各要素データごとに保持するのではなく、各要素データでは、必要な印刷属性データのデータ番号のみを保持するようにしている。これによって、印刷属性データの重複を避け、印刷データの容量を縮小することや、複数の要素データの印刷属性を一度の操作で変更することなどが可能になっている。
【００７６】
それでは、まず、図形データおよび文字データの各要素のデータ構造を、以下に具体的に示すことにする。
【００７７】
（Ａ）基本図形
（１）点
・データ種別コード
・データ番号
・点座標：ｃ〔２〕
・表示属性のデータ番号
・選択属性のデータ番号
・色属性のデータ番号
・点属性のデータ番号
（２）線分
・データ種別コード
・データ番号
・始点座標：ｓ〔２〕
・終点座標：ｅ〔２〕
・表示属性のデータ番号
・選択属性のデータ番号
・色属性のデータ番号
・線属性のデータ番号
（３）線分列
・データ種別コード
・データ番号
・通過点数：ｎｐ
・各通過点座標：ｐｐ〔２〕（ｎｐ個）
・表示属性のデータ番号
・選択属性のデータ番号
・色属性のデータ番号
・線属性のデータ番号
（４）円
・データ種別コード
・データ番号
・中心座標：ｃ〔２〕
・半径：ｒ
・表示属性のデータ番号
・選択属性のデータ番号
・色属性のデータ番号
・線属性のデータ番号
（５）円弧
・データ種別コード
・データ番号
・始点座標：ｓ〔２〕
・終点座標：ｅ〔２〕
・中心座標：ｃ〔２〕
・回り方向フラグ（時計回り／反時計回り）
・表示属性のデータ番号
・選択属性のデータ番号
・色属性のデータ番号
・線属性のデータ番号
（６）楕円
・データ種別コード
・データ番号
・中心座標：ｃ〔２〕
・長軸ベクトル：ａ〔２〕
・短軸ベクトル：ｂ〔２〕
・表示属性のデータ番号
・選択属性のデータ番号
・色属性のデータ番号
・線属性のデータ番号
（７）楕円弧
・データ種別コード
・データ番号
・始点座標：ｓ〔２〕
・終点座標：ｅ〔２〕
・中心座標：ｃ〔２〕
・長軸ベクトル：ａ〔２〕
・短軸ベクトル：ｂ〔２〕
・回り方向フラグ（時計回り／反時計回り）
・表示属性のデータ番号
・選択属性のデータ番号
・色属性のデータ番号
・線属性のデータ番号
（８）自由曲線（ベジェ曲線の場合）
・データ種別コード
・データ番号
・曲線数：ｎｖ
・各曲線の制御点データ（ｎｖ個）：
制御点数：ｎｃ
各制御点座標：ｐｃ〔２〕（ｎｃ個）
重み係数：ｗ
・通過点数：ｎｐ
・各通過点座標：ｐｐ〔２〕（ｎｐ個）
・表示属性のデータ番号
・選択属性のデータ番号
・色属性のデータ番号
・線属性のデータ番号
【００７８】
（Ｂ）塗り潰し図形
・データ種別コード
・データ番号
・レイアウト基準矩形左下点座標：ｐ１〔２〕
・レイアウト基準矩形右上点座標：ｐ２〔２〕
・ループ数：ｎｌ
・各ループの構成要素データ（ｎｌ個）：
構成要素数：ｎｄ
構成要素データ：点を除く基本図形要素データ（ｎｄ個）
・通過基準点座標：ｐｐ〔２〕
・表示属性のデータ番号
・選択属性のデータ番号
・色属性のデータ番号
・塗り潰し属性のデータ番号
・枠の表示属性のデータ番号
・枠の色属性のデータ番号
・枠の線属性のデータ番号
（塗り潰し図形では、印刷属性として、塗り潰し図形の内部の印刷属性の他に、塗り潰し図形の枠の印刷属性を別に持っている。例えば、内部の色属性と、枠の色属性を変えて表示することなどが可能である。）
【００７９】
（Ｃ）その他の図形
（１）トンボ
・データ種別コード
・データ番号
・トンボ種別フラグ（トンボ／スケールトンボ）
・トンボ形状フラグ（トンボの場合は１１種類／スケールトンボの場合は３種類）
・トンボオフセットフラグ（オフセットあり／なし）
・印刷データ名称（スケールトンボの場合）
・トンボ長さ（スケールトンボの場合）
・レイアウト基準点座標：ｐｂ〔２〕
・出力倍率：ｓｃ
・レイアウト基準矩形左下点座標：ｐ１〔２〕
・レイアウト基準矩形右上点座標：ｐ２〔２〕
・構成要素数：ｎｄ
・構成要素データ：トンボの場合は線分、スケールトンボの場合は線分、円、テキストのいずれかの要素データ（ｎｄ個）
（２）バーコード
・データ種別コード
・データ番号
・バーコード種別フラグ（４種類）
・コードデータ
・コード表示フラグ（コード表示あり／なし）
・レイアウト基準位置フラグ（左下／中央／右上など９種類）
・レイアウト基準点座標：ｐｂ〔２〕
・レイアウト角度：ａｎｇ
・レイアウトスケール：ｓｃ
・レイアウト基準矩形左下点座標：ｐ１〔２〕
・レイアウト基準矩形右上点座標：ｐ２〔２〕
・構成要素数：ｎｄ
・構成要素データ：線分、テキストのいずれかの要素データ（ｎｄ個）
【００８０】
（Ｄ）テキスト
（１）基本文字列（テキストを構成する要素）
・データ種別コード
・データ番号
・文字列開始点座標：ｐｔ〔２〕
・文字列バイト数：ｎｃｈ
・文字列データ：ｓｔｒ（ｎｃｈバイト）
・レイアウト角度：ａｎｇ
・レイアウトスケール：ｓｃ
・表示属性のデータ番号
・選択属性のデータ番号
・色属性のデータ番号
・文字列属性のデータ番号
（２）テキスト
・データ種別コード
・データ番号
・文字列登録名称：ｒｇｎａｍ
・制御文字列データ：ｃｔｅｘｔ
・組形式フラグ（横組／縦組）：ｆｏｒｍ
・レイアウト対象種別（点／矩形）：ｌｙｔｙｐ
・レイアウト基準点座標：ｐｂ〔２〕
・全体長さ：ｗｉｄｌｎ（点レイアウトの場合のみ有効）
・高さ優先フラグ：ｈｆｉｘ（点レイアウトの場合のみ有効）
・レイアウト基準位置フラグ（左下／中央／右上など９種類）：ｄａｔｕｍ（点レイアウトの場合のみ有効）
・自動カーニングフラグ（あり／なし）：ａｋｅｒ
・レイアウト対象矩形幅：ｗｒｅｃｔ（矩形レイアウトの場合のみ有効）
・レイアウト対象矩形高さ：ｈｒｅｃｔ（矩形レイアウトの場合のみ有効）
・レイアウト対象矩形傾き：ａｒｅｃｔ（矩形レイアウトの場合のみ有効）
・行揃えフラグ（左／中央／右／両端）：ａｄｊ（矩形レイアウトの場合のみ有効）
・テキストレイアウト矩形左下点座標：ｐｌｌ〔２〕
・テキストレイアウト矩形右上点座標：ｐｌｒ〔２〕
・テキスト外接矩形左下点座標：ｐｄｌ〔２〕
・テキスト外接矩形右上点座標：ｐｄｒ〔２〕
・構成要素数：ｎｄ
・基本文字列データ：基本文字列の要素データ（ｎｄ個）
・基本文字列レイアウト情報データ：基本文字列をレイアウトするためのデータ（ｎｄ個）
（テキスト要素は、複数の基本文字列要素を組み合わせて構成される。これによって、ひとつのテキスト要素の中で、複数の文字列属性を持った文字列を扱うことが可能となる。例えば、ひとつのテキストの途中で文字の書体を変更したり、文字の高さや幅を変更したり、といった制御が可能である。）
【００８１】
（Ｅ）グループ図形
（１）シンボル
・データ種別コード
・データ番号
・フォルダー名称
・ファイル名称
・レイアウト基準位置フラグ（左下／中央／右上など９種類）
・レイアウト基準点座標：ｐｂ〔２〕
・レイアウト角度：ａｎｇ
・レイアウトスケール：ｓｃ
・レイアウト基準矩形左下点座標：ｐ１〔２〕
・レイアウト基準矩形右上点座標：ｐ２〔２〕
・反転フラグ（反転あり／なし）
・線幅スケールフラグ（線幅スケールあり／なし）
・線幅スケール値
（２）イラスト
・データ種別コード
・データ番号
・フォルダー名称
・ファイル名称
・レイアウト基準位置フラグ（左下／中央／右上など９種類）
・レイアウト基準点座標：ｐｂ〔２〕
・レイアウト角度：ａｎｇ
・レイアウトスケール：ｓｃ
・レイアウト基準矩形左下点座標：ｐ１〔２〕
・レイアウト基準矩形右上点座標：ｐ２〔２〕
・反転フラグ（反転あり／なし）
・構成要素数：ｎｄ
・構成要素データ：任意の要素データ（ｎｄ個）
（シンボルおよびイラストのデータ構造の特徴、およびシンボルデータファイルおよびイラストデータファイルのファイル構造については、後述する。）
【００８２】
次に、上述したようなデータ構造を有する要素データに対する印刷属性データのデータ構造について説明する。
【００８３】
ここで、各印刷属性データは、基本的に、データ種別コード、データ番号、属性設定フラグ、各印刷属性ごとの必要データ、という構成になっている。
【００８４】
印刷データ内でユニークに付けられたデータ種別コードによって、印刷データ内の各印刷属性データの種別を特定することができる。また、印刷データ内でユニークに付けられたデータ番号によって、印刷データ内の各印刷属性データを特定することができる。各印刷属性ごとに、必要データは異なるが、データ種別コードによって、ＣＰＵ２１は、これらを識別することが可能である。
【００８５】
また、属性設定フラグとは、その印刷属性データが有効であるか否かを指定するフラグである。属性設定フラグが有効である印刷属性データを指示している要素データでは、該当する印刷属性データに従って、要素が表示される。一方、属性設定フラグが無効である印刷属性データを指示している要素データでは、該当する印刷属性は設定されていない状態であると見なし、あらかじめＲＯＭ３１や外部記憶装置３３に記憶されているデフォルトの印刷属性に従って、要素が表示される。
【００８６】
また、各要素データに階層関係を持たせることが可能なデータ構造とした場合には、上位の（または下位の）要素の印刷属性に従って表示を行なったりする制御も可能である。
【００８７】
それでは、各印刷属性データのデータ構造を、以下に具体的に示すことにする。
（ａ）表示属性
・データ種別コード
・データ番号
・属性設定フラグ（有効／無効）
・表示フラグ（表示／非表示）
・表示プライオリティ
（ｂ）選択属性
・データ種別コード
・データ番号
・属性設定フラグ（有効／無効）
・要素選択フラグ（可／不可）
（ｃ）色属性
・データ種別コード
・データ番号
・属性設定フラグ（有効／無効）
・カラーコード種別フラグ（ＲＧＢ／ＨＬＳ）
・カラーコード１、２、３
（ｄ）点属性
・データ種別コード
・データ番号
・属性設定フラグ（有効／無効）
・マーカー文字列
（ｅ）線属性
・データ種別コード
・データ番号
・属性設定フラグ（有効／無効）
・線種フラグ（実線／破線／一点鎖線／二点鎖線／任意破線／任意一点鎖線／任意二点鎖線）
・線幅フラグ（細線／中線／太線／極太線／任意線幅）
・線幅方向フラグ（中央／内側／外側）
・終端形状フラグ（ラウンド／フラット／スクエア）
・接続形状フラグ（マイター／ラウンド／ベベル）
・線種データ１、２、３、４（線種＝任意のとき）
・線幅データ（線幅＝任意のとき）
（ｆ）塗り潰し属性
・データ種別コード
・データ番号
・属性設定フラグ（有効／無効）
・塗り潰し種別フラグ（塗り潰しあり／塗り潰しなし／ハッチング／メッシュ番号／パターン番号など）
・データグループ数：ｎｄ
・塗り潰しデータ１、２、３（ｎｄ個）
（ｇ）文字列属性
・データ種別コード
・データ番号
・属性設定フラグ（有効／無効）
・書体コード：ｆｏｎｔｎｏ
・平体率：ｒｅｘｐ
・長体率：ｒｃｎｄ
・文字サイズ：ｈｂｏｘ
・ベース角：ａｂａｓ
・文字方向：ａｌｅｔ
・斜体角：ａｓｌｎ
・字間：ｄｆｌｅｔ
・行間：ｄｆｌｉｎ
・横反転フラグ（あり／なし）：ｈｆｌｐ
・縦反転フラグ（あり／なし）：ｖｆｌｐ
【００８８】
図７に、以上示した印刷データのデータ構造に基いて、本実施形態に係る情報処理装置で作成された、印刷データファイルの一例を示す。
【００８９】
この図７に示された印刷データは、図８に示すような形状の図形を印刷するためのものであり、本実施形態においては、図７に示す印刷データにより表現される図形が、基本図形の要素から成り、１個の線分列と２個の円と、これら３要素の外接矩形の左下点および右上点の２点（この２点は非表示で選択不可）から構成されるものとし、また、これら１個の線分列と２個の円が、それぞれ同じ表示属性（表示）、選択属性（選択可）、線属性（実線、線幅２０ｍｍ）を持ち、互いに異なる色属性を持っているものとする。
【００９０】
○グループ図形のデータ構造
それでは、上述した印刷データのデータ構造のうち、特に、グループ図形であるシンボルとイラストのデータ構造について、詳しく説明することにする。
【００９１】
まず、シンボルのデータ構造について説明する。
【００９２】
本実施形態において、シンボルとは、規格で定められた記号や、ロゴマークのように、繰り返し使用される図形で、図形データの要素（線分や円など）や、文字データの要素（テキスト）を組み合わせて、作成される要素である。
【００９３】
シンボルデータの場合、規格が変更されるなどして、シンボルデータファイルの内容が更新された場合には、既に印刷データの一部としてレイアウト済みである、該当するシンボルを、全て更新してデータの同期を維持できるようになっている。
【００９４】
そこで、本実施形態に係る情報処理装置では、シンボルのデータを、次に示すようなデータ構造で保持している。
【００９５】
すなわち、印刷データ内には、シンボルデータファイルの存在場所を特定するための、フォルダー名称およびファイル名称、そして、シンボルをレイアウトするために必要な情報のみを保持する。
【００９６】
また、印刷データをファイルに保存した印刷データファイルとは別個に、シンボルデータファイルを作成する。シンボルデータファイルは、次に示すようなファイル構造となっている。
・レイアウト基準矩形左下点座標：ｐ１〔２〕
・レイアウト基準矩形右上点座標：ｐ２〔２〕
・構成要素データ：任意の要素データ（複数）
・印刷属性データ：必要な印刷属性データ（複数）
【００９７】
レイアウト基準矩形については後述するが、レイアウト基準矩形を定めておけば、シンボルを印刷データとしてレイアウトする際に必要な、位置と大きさの情報を特定することが可能である。例えば、レイアウト基準矩形としては、シンボルの可視部分を囲む最小の矩形（外接矩形と呼ぶ）を指定しておくことなどが可能である。
【００９８】
シンボルデータファイルを作成する際に、該当するシンボルの外接矩形のデータをレイアウト基準矩形として登録しておけば、シンボルデータファイルを再度、読み込んだ際などに、シンボルの外接矩形を再計算する必要がなくなる。
【００９９】
シンボルの各構成要素データは、レイアウト基準矩形左下点を基準とする相対座標値で、表現されている。
【０１００】
また、各印刷属性データについては、印刷データの場合と同様に、各構成要素データを表示する際に必要な印刷属性データを、要素データとは別に保持している。
【０１０１】
これによって、変更のあったシンボルを含む印刷データファイルの更新を行なわなくても、該当する印刷データファイルを、外部記憶装置３３から、ＲＡＭ３２に再度、読み込んで来るだけで、印刷データ内のシンボルデータは最新のシンボルデータファイルの内容に置き換わり、データの同期が自動的に取れるようになっている。
【０１０２】
次に、もう一つのグループ図形であるイラストのデータ構造について説明する。
【０１０３】
本実施形態において、イラストとは、テンプレート図形のように、繰り返し使用される図形で、これもまた、シンボルと同様に、図形データの要素（線分や円など）や、文字データの要素（テキスト）を組み合わせて、作成される要素である。
【０１０４】
イラストは、シンボルとは異なり、いったん、印刷データの一部として、レイアウトされた後は、元のイラストデータファイルの内容とは、同期を取らずに、自由に変更を加えたい場合に使用される。
【０１０５】
従って、イラストデータの場合、シンボルデータとは異なり、イラストデータファイルの内容が更新された場合でも、既に印刷データの一部としてレイアウト済みである、該当するイラストを、更新して同期を維持することはない。
【０１０６】
そこで、本実施形態に係る情報処理装置では、イラストのデータを、次に示すようなデータ構造で保持している。
【０１０７】
すなわち、印刷データ内には、イラストデータファイルの存在場所を特定するための、フォルダー名称およびファイル名称、そして、イラストをレイアウトするために必要な情報、の他に、イラストデータファイルから読み込んだ、実際にイラストを構成する各要素データを保持している。
【０１０８】
また、印刷データファイルとは別個に、イラストデータファイルを作成する。イラストデータファイルは、次に示すようなファイル構造となっている。
・レイアウト基準矩形左下点座標：ｐ１〔２〕
・レイアウト基準矩形右上点座標：ｐ２〔２〕
・構成要素データ：任意の要素データ（複数）
・印刷属性データ：必要な印刷属性データ（複数）
【０１０９】
この構造は、シンボルデータファイルのファイル構造と同様である。これを印刷データに読み込む際には、指定したレイアウト基準点座標を原点とし、指定したレイアウト角度、レイアウトスケールに従って、イラストデータファイル内の各構成要素データを展開して（座標変換して）、印刷データのイラスト要素データとして、全て保持する点が、シンボルとは異なっている。
【０１１０】
〔印刷データの作成〕
それでは、具体的に印刷データを作成する手順を、図形データ、文字データ、の２つの場合に分けて、詳細に説明する。本実施形態においては、図形データの例として、シンボルを作成する場合を説明し、また、文字データの例として、テキストを作成する場合を説明する。
【０１１１】
○シンボルの作成
まず、図形データを作成する例として、図８に示すような図形を作成する場合について説明する。
【０１１２】
この図８に示すシンボルは、２個の円要素、１個の線分列要素、といった基本図形から構成されている。ここでは、
（Ａ）基本図形を印刷データとしてレイアウトする
（Ｂ）シンボルの構成要素をグループ化し、シンボルとして登録する
（Ｃ）登録されたシンボルを呼び出して、印刷データとしてレイアウトする
という、３つのフローに分けて説明する。
【０１１３】
まず、基本図形を印刷データとしてレイアウトする処理について説明する。
【０１１４】
（Ａ）基本図形のレイアウト
図９に、基本図形を印刷データとしてレイアウトする手順を説明するフローチャートを示す。
【０１１５】
まず、基本図形を作成するために必要な、座標値や半径などの、必要情報を入力する（ステップＳ０９０１）。この必要情報の入力処理については、後で詳しく説明する。次に、図形データに印刷属性を付加して、印刷データとして使用できるようにする（ステップＳ０９０２）。この印刷属性の付加処理については、後で詳しく説明する。
【０１１６】
そして、ステップＳ０９０２で印刷属性が付加されると、次に、ＣＰＵ２１は、作成された基本図形要素のデータを、印刷データとして、ＲＡＭ３２に登録する（ステップＳ０９０３）。そして、さらに、ＣＰＵ２１は、作成された基本図形要素を、作画エリア６２に表示する（ステップＳ０９０４）。
【０１１７】
以下、ステップＳ０９０１における必要情報の入力処理について説明する。
【０１１８】
これは、基本図形の種類によって異なった操作となる。
【０１１９】
例えば、円を作成する場合には、次のような操作となる。
（１）円の中心の位置を、マウス１２で既に存在する点を要素選択、または任意指定したり、キーボード１１でＸおよびＹの座標値を入力することによって指定する。
（２）円周上の１点の位置を、マウス１２で既に存在する点を要素選択、または任意指定したり、キーボード１１でＸおよびＹの座標値を入力することによって、指定する。または、キーボード１１で半径を入力する。
【０１２０】
中心と円周上の１点、または、中心と半径を指定する上記の方法以外にも、円周上の異なる３点を指定する方法、円周上の異なる２点と半径を指定する方法、などがある。
【０１２１】
また、これらの操作手順は、ガイダンスエリア６８に表示されるので、ユーザーは、この指示に従って、操作を行なえばよい。
【０１２２】
線分列を作成する場合には、次のような操作となる。
（１）線分列の始点の位置を、マウス１２で既に存在する点を要素選択、または任意指定したり、キーボード１１でＸおよびＹの座標値を入力することによって、指定する。
（２）同様にして、通過点をいくつでも指定する。
（３）汎用ボタン６６をボタン選択することなどによって、通過点の指定の終了を指示する。
【０１２３】
次に、以下、ステップＳ０９０２における印刷属性の付加処理について説明する。
【０１２４】
まず、図形データの印刷属性の種類については、前述した通りである。
【０１２５】
例として、図１０に、印刷属性の付加されていない状態の図形データと、付加されている状態の図形データを示す。印刷属性が付加されていない状態では、線幅、終端形状、接続形状、などの違いが表現できていないことがわかる。印刷属性が付加されていない状態とは、前述した印刷属性データの構造の中で、属性設定フラグが無効となっている場合である。なお、属性設定フラグが無効となっている場合でも、図形データの形状は、所定の印刷属性で出力される。
【０１２６】
印刷属性を、図形データの要素に付加するには、表示装置４１に表示される専用のパネルが必要である。
【０１２７】
図１１に、そのような図形データの要素を付加するために使用する、図形データ印刷属性編集パネル１１０１を示す。ユーザーは、この図形データ印刷属性編集パネル１１０１で、印刷属性を編集することができる。
【０１２８】
図形データ印刷属性編集パネル１１０１が表示された状態で、線種として、実線以外の種別を選択し、さらに、図形データ印刷属性編集パネル１１０１の、「線ピッチ」ボタンを、ボタン選択すると、図１２に示すような、破線、一点鎖線、二点鎖線のそれぞれの種別に応じた、線ピッチ編集パネル１２０１が表示される。そして、この線ピッチ編集パネル１２０１上で、線ピッチデータを編集することが可能となる。図１２に示したのは、二点鎖線の場合の表示例である。
【０１２９】
印刷属性を編集するには、図形データ印刷属性編集パネル１１０１上で、編集したい印刷属性の文字入力エリアを、マウス１２またはキーボード１１で指示し、キーボード１１で、数値データを入力するか、または、選択する項目のボタンを、ボタン選択してから、「設定」ボタンを、ボタン選択すればよい。
【０１３０】
これから作成しようとする印刷データに対して、印刷属性の設定を行なう場合には、図形データ印刷属性編集パネル１１０１上で、上記の方法で各印刷属性の入力を行なってから、図形データの各要素を作成すればよい。
【０１３１】
また、いったん、印刷属性を設定しておけば、ＣＰＵ２１はこれらを、カレントな印刷属性として、ＲＡＭ３２に保存しておくので、要素を作成するたびに、印刷属性を設定する必要はない。
【０１３２】
また、プログラムを終了する際に、ＣＰＵ２１は、カレントな印刷属性を、外部記憶装置３３に保存し、次に、プログラムを実行する際に、再び、ＲＡＭ３２に、読み込んで来るので、プログラムを実行するたびに、カレントな印刷属性を設定し直す必要もない。カレントな印刷属性は、ユーザーによらず共通のものと、ユーザーが各自設定した個別のものを、別々に、ＲＡＭ３２や外部記憶装置３３に、保存しておくこともできる。
【０１３３】
すでに作成された印刷データに対して、印刷属性の編集を行なう場合には、作画エリア６２に表示されている要素を要素選択すれば、ＣＰＵ２１が、図形データか文字データかを判断して、図形データの場合は、図形データ印刷属性編集パネル１１０１を、表示装置４１に表示する。
【０１３４】
この際、要素選択された要素の現在の印刷属性が、図形データ印刷属性編集パネル１１０１に表示されるので、上記の方法で印刷属性を編集してから、「設定」ボタンを、ボタン選択すればよい。作画エリア６２上の対象要素は、編集された新しい印刷属性に従って、再描画される。
【０１３５】
以上、基本図形を印刷データとしてレイアウトする手順を説明した。
【０１３６】
次に、シンボルの構成要素をグループ化し、シンボルとして登録する処理について説明する。
【０１３７】
（Ｂ）要素のグループ化とシンボルの登録
図１３に、シンボルの構成要素をグループ化し、シンボルとして登録する手順を説明するフローチャートを示す。
【０１３８】
まず、シンボルとして登録したい対象要素をグループ化する（ステップＳ１３０１）。この対象要素のグループ化処理については、後で詳しく説明する。
【０１３９】
次に、ステップＳ１３０１でシンボルを構成する要素が特定されると、ＣＰＵ２１は、この各要素について、印刷属性を考慮して、輪郭情報を抽出する（ステップＳ１３０２）。この輪郭情報の抽出処理については、後で詳しく説明する。
【０１４０】
ステップＳ１３０２で、対象となる各要素の輪郭情報を抽出した後、ＣＰＵ２１は、抽出した輪郭情報から、外接矩形を計算する（ステップＳ１３０３）。
【０１４１】
ここでいう外接矩形とは、要素の可視部分を囲む最小サイズの矩形、のことであり、対角の２点のＸおよびＹ座標を与えることによって特定される。
【０１４２】
このように、要素の外接矩形は、対角の２点によって特定できるので、抽出した輪郭情報から、最大のＸおよびＹ座標、最小のＸおよびＹ座標の値を算出し、外接矩形の左下点と右上点を、
左下点（輪郭情報の最小のＸ座標，輪郭情報の最小のＹ座標）
右上点（輪郭情報の最大のＸ座標，輪郭情報の最大のＹ座標）
と与えれば、外接矩形を容易に得ることができる。
【０１４３】
そして、ステップＳ１３０３で、グループ化された要素の外接矩形が求まると、ＣＰＵ２１は、作画エリア６２に既に表示されているグループ化された要素に重ねて、その外接矩形を表示する（ステップＳ１３０４）。その表示は、例えば、図２１のようになる。
【０１４４】
次に、グループ化された要素のレイアウト基準情報を定義するレイアウト基準矩形を設定する（ステップＳ１３０５）。このレイアウト基準矩形の設定処理については、後で詳しく説明する。
【０１４５】
そして、以上の一連の処理により、シンボルとして登録するための要素がグループ化され、そのレイアウト基準矩形が求まったので、そのシンボルを識別するキーとしてユーザーによりキーボード１１等から入力された文字列を、シンボルの名称として決定する（ステップＳ１３０６）。
【０１４６】
最後に、ＣＰＵ２１は、先に図７で示したような構造を持つシンボルデータファイルとして、当該シンボルに関するデータを、外部記憶装置３３に保存する（ステップＳ１３０７）。
【０１４７】
なお、このようにレイアウト基準矩形を設定した場合、図７に示すシンボルデータファイルの構造におけるレイアウト基準位置を明示的に指定しているわけではないが、シンボルデータファイルに保存する際には、レイアウト基準矩形の、例えば左下点を、常にレイアウト基準位置としておけばよい。
【０１４８】
また、シンボルを構成する各要素の座標データは、レイアウト基準位置からの相対座標で表現する。
【０１４９】
以下、ステップＳ１３０１における対象要素のグループ化処理について説明する。
【０１５０】
要素をグループ化するには、次のような方法がある。この方法は、要素をグループ化する場合に限らず、複数の要素をまとめて、複写、移動、削除などの処理を一括して行なう場合にも、使うことができる方法である。
【０１５１】
（１）連続要素選択：グループ化の対象とする要素を、１要素ずつ要素選択していく。要素選択を終了する際には、メインパネル６１上の、汎用ボタン６６を押すか、作画エリア６２上で、マウスのどれかのボタンをダブルクリック（ボタンを短時間に２度押し下げる）する。
【０１５２】
（２）矩形領域指定：グループ化の対象とする要素が含まれる領域を、矩形で囲むことによって指定する。矩形を特定するためには、対角の２点の位置を、任意指定や点指定などの方法で指定すればよい。この場合、指定した矩形の内部に全体が含まれる要素を対象とする。
【０１５３】
図１４に、この方法によって、対象となる要素が選択された状態の一例を示す。
【０１５４】
この図１４において、＊印で示した位置を指定すると、作画エリア６２に、領域を示す矩形が表示される。図中、「選択」と示されている要素が選択され、実際には、赤色などで表示されて、識別できるようになっている。
【０１５５】
なお、指定した矩形の内部に一部が含まれる要素を対象としたり、指定した矩形の内部に全く含まれない要素を対象としてもよい。
【０１５６】
（３）任意領域指定：グループ化の対象とする要素が含まれる領域を、多角形で囲むことによって指定する。多角形を構成する各点は、任意指定や点指定などの方法で指定すればよい。この場合、指定した多角形の内部に一部が含まれる要素を対象とする。
【０１５７】
図１５に、この方法によって、対象となる要素が選択された状態の一例を示す。
【０１５８】
この図１５において、＊印で示した位置を指定すると、作画エリア６２に、領域を示す多角形が表示される。図中、「選択」と示されている要素が選択され、実際には、赤色などで表示されて、識別できるようになっている。
【０１５９】
なお、指定した多角形の内部に全体が含まれる要素を対象としたり、指定した多角形の内部に全く含まれない要素を対象としてもよい。
【０１６０】
次に、ステップＳ１３０２における輪郭情報の抽出処理について説明する。
【０１６１】
図１６は、図８に示すシンボルの輪郭情報を抽出した結果を示した図である。
【０１６２】
輪郭情報は、線分、円、円弧、楕円、楕円弧、自由曲線などの、線要素が連結したものとして表現できる。ただし、輪郭情報においては、線幅などの印刷属性は考慮する必要はなく、それ自体、領域を持たない図形であると見なす。
【０１６３】
印刷属性の付加された、図形データおよび文字データの輪郭情報を抽出する方法には、以下のものがある。
【０１６４】
（１）そのまま表示装置に表示する方法：
本実施形態に係る情報処理装置では、図２で示したように、ＷＹＳＩＷＹＧの機能が実現されているので、印刷属性の付加されたデータは、印刷時の出力形態と同じ表示形態のイメージで、表示装置４１に表示される。
【０１６５】
例えば、このＷＹＳＩＷＹＧの機能が、ディスプレイポストスクリプト（ＤＰＳ）によって、実現されている場合には、図形データまたは文字データの、輪郭情報を抽出するための、ポストスクリプト（ＰＳ）の命令（オペレータ）を、表示されている、図形データまたは文字データに対して、発行してやればよい。
【０１６６】
これによって得られる輪郭情報の座標データは、表示装置４１の画面上のドットの大きさが最小単位となる量子化されたデータである。そのため、この値は、一般に、誤差を含んでいる。
【０１６７】
表示装置４１の１ドットの幅および高さをＤｄ（インチ）とすると、図１７に示すように、実際の座標が、（ｂ）や（ｃ）のように、２つのドットの境界や、（ｄ）のように、４つのドットの角の位置に一致する場合を考慮すると、得られる座標データの誤差は、最大で、Ｄｄ＊２（インチ）となる。
【０１６８】
図１７の、＊印で示した位置が、量子化されていない実際の座標位置、斜線で示した矩形が、その時の画面上のドット、すなわち、量子化された値を示している。
【０１６９】
表示装置４１の解像度Ｒｄが、およそ、Ｒｄ＝１００（ＤＰＩ）であるとすると、誤差は、
Ｄｄ＊２＝（１／Ｒｄ）＊２ ＝  １／５０（インチ）    （式１）
程度となる。
【０１７０】
イメージセッター５２などの、高解像度の印刷装置では、解像度Ｒｐはおよそ、Ｒｐ＝３０００（ＤＰＩ）程度であり、１ドットの幅および高さをＤｐ（インチ）とすると、出力時の誤差は、
Ｄｐ＊２＝（１／Ｒｐ）＊２ ＝  １／１５００（インチ）（式２）
程度となり、表示装置４１に表示した結果から得られる座標データでは、必ずしも、十分な精度があるとは言えない可能性が高い。
【０１７１】
しかし、この方法は、ＰＳのオペレータを呼ぶだけで、図形データおよび文字データの輪郭情報を容易に得ることができるので、特に、表示装置４１の解像度以上の高い精度を要求しない印刷データ、例えば、出版物や包装紙などの印刷データを作成する場合や、表示装置４１の解像度以上の高い精度を要求する部分のある印刷データでも、他の要素や特定の座標値に、正確に合わせて出力する必要がない部分には、この方法を用いて、輪郭情報を抽出すれば十分である。
【０１７２】
（２）一時的に拡大して表示装置に表示する方法：
しかしながら、上記（１）の方法では、イメージセッター５２などの印刷装置の解像度に相当する、高い精度を要求する印刷データで、しかも、他の要素や特定の座標値に、正確に合わせて出力する必要がある部分については、表示装置４１とイメージセッター５２などの印刷装置との解像度が異なるために、表示装置４１上では、正確に輪郭情報を抽出したつもりでも、イメージセッター５２などの印刷装置で印刷した際には、目に見える誤差となってしまう場合がある。
【０１７３】
上記（１）の方法では、表示装置４１上での１ドットの誤差が、イメージセッター５２に出力した際には、３０ドットもの誤差となって、現れてしまうことになる。
【０１７４】
そこで、図形データまたは文字データの、輪郭情報を抽出する際に、ポストスクリプト（ＰＳ）の命令（オペレータ）を、図形データまたは文字データに対して発行する前に、対象となるデータを、一時的に拡大して表示してやれば、解像度による誤差を軽減できる。
【０１７５】
ただし、ここで言う「表示」とは、表示装置４１に対してデータを送信するという意味であって、必ずしも、可視である必要はない。
【０１７６】
図１８に、一時的に要素を拡大して表示装置に表示し、輪郭情報を抽出する手順を説明するフローチャートを示す。
【０１７７】
まず、拡大の倍率を決定する（ステップＳ１８０１）。拡大の倍率は、表示装置４１とイメージセッター５２の解像度の比率より大きくとればよい。従って、上記（１）の方法で示した解像度の場合、
Ｒｐ／Ｒｄ＝３０００／１００ ＝３０（倍）            （式３）
より大きい倍率で、輪郭情報を得たい要素を拡大してやればよい。このとき、要素の印刷属性のうち、拡大の影響を受ける、線幅、終端形状、接続形状なども同じ倍率で拡大するようにする。
【０１７８】
次に、ステップＳ１８０１で決定された倍率で拡大した要素を、表示装置４１に表示する（ステップＳ１８０２）。
【０１７９】
次に、上記（１）の方法と同様に、ＰＳのオペレータなどを使用することによって、拡大した要素の輪郭情報を抽出する（ステップＳ１８０３）。ここで抽出された輪郭情報の精度は、イメージセッター５２の精度に匹敵するものとなる。
【０１８０】
次に、抽出した輪郭情報を、拡大する前の大きさに復元する（ステップＳ１８０４）。
【０１８１】
最後に、輪郭情報を抽出するために使用した、一時的に拡大した要素のデータは、輪郭情報を抽出した後は不要となるので、消去する（ステップＳ１８０５）。
【０１８２】
（３）幾何学的な手法による方法：
あらかじめ幾何学的な形状がわかっている図形データ、特に、線分、円、円弧、楕円、楕円弧、自由曲線などの、線要素の場合には、次のような方法を取ることによって、表示装置４１の解像度とは無関係に、高い精度の輪郭情報を抽出することができる。
【０１８３】
図１９に、幾何学的な手法によって、線要素の輪郭情報を抽出する手順を説明するフローチャートを示す。
【０１８４】
まず、線要素の線幅方向を考慮して、該線要素を線幅分だけオフセットさせた図形を作成する（ステップＳ１９０１）。
【０１８５】
次に、この線要素が、終端を持っているかどうかを判定する（ステップＳ１９０２）。終端を持っていると判定された場合には、ステップＳ１９０３に進み、そこで、終端形状に応じた図形を作成する。終端を持っていないと判定された場合には、ステップＳ１９０４に進む。
【０１８６】
次に、この線要素が、接続を持っているかどうかを判定する（ステップＳ１９０４）。接続を持っていると判定された場合には、ステップＳ１９０５に進み、そこで、接続形状に応じた図形を作成する。接続を持っていないと判定された場合には、ステップＳ１９０６に進む。
【０１８７】
そして、作成された図形に基づいて閉図形を作成して、その輪郭情報を抽出する（ステップＳ１９０６）。
【０１８８】
次に、一例として、図２０に示すような、印刷属性を持つ線分列の輪郭情報を、幾何学的な手法によって抽出する方法を説明する。この例では、線幅が２ｄ、線幅方向が両側、終端形状がラウンドキャップ、接続形状がマイタージョインであるとする。
【０１８９】
まず、ステップＳ１９０１において、線分列ＡＢＣの、線分ＡＢを、線幅の１／２（＝ｄ）だけ、線分の法線方向、両側にオフセットさせた、線分ＤＥ、線分ＦＧを作成する。同様に、線分ＢＣを、線幅の１／２（＝ｄ）だけ、線分の法線方向、両側にオフセットさせた、線分ＨＪ、線分ＫＬを作成する。
【０１９０】
次に、ステップＳ１９０２において、この線分列は、終端を持っていると判断されるので、ステップＳ１９０３に進み、終端形状を作成する。この場合、終端形状はラウンドキャップなので、ＤＦを直径とする半円弧、および、ＪＬを直径とする半円弧、をそれぞれ作成すればよい。
【０１９１】
次に、ステップＳ１９０４において、この線分列は、接続を持っていると判断されるので、ステップＳ１９０５に進み、接続形状を作成する。この場合、接続形状はマイターキャップなので、線分ＤＥと線分ＪＨを、両者が交差する点Ｍまで延長してやればよい。また、線分ＦＧと線分ＫＬの交点をＮとする。
【０１９２】
以上から、ステップＳ１９０６において、この線分列の輪郭情報を、点Ｍ、Ｊ、Ｌ、Ｎ、Ｆ、Ｄ、Ｍ、を接続してできる閉図形で表現することができる。ＪＬおよびＦＤは円弧、その他の区間は線分で接続する。
【０１９３】
また、対象とする線要素が、自由曲線などの場合には、ステップＳ１９０１において線幅分だけオフセットさせた図形を作成する際に、どの程度の大きさの区間に曲線を分割してオフセット図形を作成するかを判断するのに、上記（１）または（２）の方法を使用することもある。
【０１９４】
（４）印刷装置に相当するソフトウエアまたはハードウエアに出力する方法：
上記（２）の方法では、一時的に要素を拡大してから、表示装置４１に表示することによって、印刷装置との解像度の差によって生じる誤差を軽減しようとしたが、印刷装置の解像度に相当する精度を実現するソフトウエアまたはハードウエアに対してデータを出力することによって、高い精度の輪郭情報を抽出することもできる。
【０１９５】
上記のソフトウエアとは、イメージセッター５２などの印刷装置が表現しうるドット数に相当するだけの十分な大きさを持った２次元の整数の配列に対して、データの読み書きを行なう機能を持ったソフトウエアのことである。
【０１９６】
また、上記のハードウエアとは、イメージセッター５２などの印刷装置が表現しうるドット数に相当するだけの十分な大きさを持った２次元の表示データバッファに対して、データの読み書きを行なう機能を持ったハードウエアのことである。
【０１９７】
上記の、ソフトウエア、ハードウエア、のいずれの場合においても、描画命令（この例の場合は、ＰＳのオペレータ）を解釈し、それをドットイメージに展開する機能を有することも必要である。
【０１９８】
次に、ステップＳ１３０５におけるレイアウト基準矩形の設定処理について説明する。
【０１９９】
まず、レイアウト基準矩形が定義するレイアウト基準情報について説明する。
【０２００】
このレイアウト基準情報とは、要素を印刷データとしてレイアウトするための、位置と大きさの基準となる情報のことであり、要素ごとに保持する必要があり、本実施形態では、位置の基準を、レイアウト基準位置、大きさの基準を、レイアウト基準サイズ、と呼ぶ。
【０２０１】
また、レイアウト基準矩形を設定する場合に、該矩形の特徴点の１点を、後述するレイアウト処理時のレイアウト基準点に定めることができる。この矩形の特徴点には、図２２に＊印で示したように、矩形の角の点（４点）、各辺の中点（４点）、中心点、の９個の点がある。
【０２０２】
なお、レイアウト基準点は、あらかじめ特定の１点を決めておかなくても、レイアウト処理時に選択することもできる。その場合は、要素のレイアウト基準点を変更する変換（平行移動）が発生する。
【０２０３】
また、レイアウト基準矩形を設定するには、次のような方法がある。
【０２０４】
（１）任意矩形：作画エリア６２上の任意の２点の位置を、任意指定、点指定、特徴点指定、交点指定、線上点指定、のいずれかの方法で指定することによって、指定した２点を対角点とする矩形を設定する。
【０２０５】
このうち、任意指定以外の、要素選択を伴う方法では、レイアウト基準矩形を設定する対象の要素、この例の場合では、グループ化された要素のいずれかを選択することが普通であるが、それ以外の要素を選択することも可能である。
【０２０６】
グループ化された要素に対して、構成要素の１つである円を選び、その円の中心点を特徴点指定、他の１点を任意指定して、レイアウト基準矩形とした場合の例を、図２３に示す。
【０２０７】
（２）外接矩形：次のような外接矩形を算出する。
・要素全体の外接矩形：対象とする要素全体の外接矩形を算出する。グループ化された要素の場合は、グループを構成する全要素についての外接矩形を算出する。
【０２０８】
グループ化された要素に対して、外接矩形を算出し、それをレイアウト基準矩形とした場合の例は、すでに、図２１に示した通りである。
・要素を構成する任意の要素の外接矩形：複数の要素を持つ、グループ図形の場合には、要素を構成する任意の要素を選択し、その外接矩形を算出することもできる。
【０２０９】
グループ化された要素に対して、構成要素の１つである円を選び、その円の外接矩形を算出し、それをレイアウト基準矩形とした場合の例を、図２４に示す。
【０２１０】
以上、シンボルの構成要素をグループ化し、シンボルとして登録する手順を説明した。
【０２１１】
次に、登録されたシンボルを呼び出して、印刷データとしてレイアウトする処理について説明する。
【０２１２】
（Ｃ）シンボルの呼び出しとレイアウト
図２５に、登録されたシンボルを呼び出して、印刷データとしてレイアウトする手順を説明するフローチャートを示す。
【０２１３】
まず、レイアウトしたいシンボルを選択する（ステップＳ２５０１）。
【０２１４】
具体的には、以下のような処理を行なう。
【０２１５】
まず、外部記憶装置３３などに記憶されたシンボルを呼び出すために、メインパネル６１上のボタン６５中のコマンド「シンボル」のボタンを、ボタン選択するか、または、文字入力エリア６４で、コマンド「シンボル」の名称を、キーボード１１から入力する。
【０２１６】
すると、表示装置４１には、図２６に示すような、シンボルレイアウトパネル２６０１が、表示される。そして、保存されているシンボル名称一覧２６０２の中から、レイアウトしたいシンボルを、マウス１２で選択する。また、その代わりに、シンボル名称入力エリア２６０４で、シンボル名称を、直接キーボード１１から入力することもできる。その場合、シンボル名称一覧２６０２の選択状態は、シンボル名称入力エリア２６０４での入力処理と連動して変化する。
【０２１７】
記憶されているシンボルの数が多い場合には、シンボル検索条件入力エリア２６０３で、シンボル名称の一部をキーボード１１から入力後に、リターンキーを押してもよい。その場合、入力した条件に該当するシンボル名称のみが、シンボル名称一覧２６０２に表示されるので、この中から、レイアウトしたいシンボルを、マウス１２で選択すればよい。
【０２１８】
また、シンボルを選択する際に、名称だけでなく形状を見てから選択を行ないたい、という場合のために、必要に応じて、シンボルレイアウトパネル２６０１の、「一覧」ボタンを、ボタン選択することによって、図２７に示すような、シンボル形状一覧パネル２７０１が、表示装置４１に表示される。
【０２１９】
シンボル形状一覧が、複数ページにわたる場合は、総ページ数がシンボル形状一覧パネル２７０１に表示されるので、ページ番号入力エリア２７０２に、キーボード１１で、直接ページ番号を入力するか、前ページボタン２７０３、または、次ページボタン２７０４を、ボタン選択することによって、現在表示されているページの、前後のページを表示することができる。
【０２２０】
そして、シンボル形状一覧２７０５から、レイアウトしたいシンボルを、マウス１２で選択すると、シンボル名称一覧２６０２の選択状態は、これと連動して変化する。
【０２２１】
また、選択したシンボルの内容を、詳細に確認したい場合には、シンボルレイアウトパネル２６０１の、「内容」ボタンを、ボタン選択することによって、図２８に示すような、シンボル内容確認パネル２８０１が、表示装置４１に表示される。
【０２２２】
シンボル内容確認パネル２８０１には、シンボルの形状の他、レイアウト基準矩形などの情報も同時に表示される。図中、点線で示した矩形がレイアウト基準矩形であり、この図の場合、シンボル全体の外接矩形が、レイアウト基準矩形となっている。
【０２２３】
このようにして、レイアウトするシンボルが決まったら、次に、レイアウト基準位置を選択する（ステップＳ２５０２）。
【０２２４】
レイアウト基準位置は、シンボルレイアウトパネル２６０１上のレイアウト基準位置選択ボタン２６０５の中から１個を、ボタン選択することによって、選択することができる。このレイアウト基準位置選択ボタン２６０５の中に示された９つの基準位置は、それぞれレイアウト基準矩形の９個の特徴点に対応している。
【０２２５】
レイアウト基準位置を選択すると、シンボルデータファイルに保存されている、シンボルを構成する各要素の座標データは、ＲＡＭ３２に呼び出される際に、選択されたレイアウト基準位置からの相対座標での表現に変換される。
【０２２６】
また、レイアウトする際に必要な情報として、レイアウトサイズと、レイアウト角度を、入力する（ステップＳ２５０３）。
【０２２７】
レイアウトサイズとは、シンボルをレイアウトする際の大きさを指定するもので、例えば、レイアウト基準矩形の高さか幅の、一方を指定すればよい。その手順は、シンボルレイアウトパネル２６０１の、レイアウトサイズ選択ボタン２６０６の「高さ」ボタンまたは「幅」ボタンのいずれかを、ボタン選択した後に、レイアウトサイズ入力エリア２６０７に、キーボード１１で、高さまたは幅の数値を入力すればよい。
【０２２８】
レイアウトサイズ入力エリア２６０７に、例えば、「０」などの特別な数値を入力した場合に、シンボルデータファイルに保存されている大きさのままで、シンボルをレイアウトするといったことも可能である。
【０２２９】
レイアウト角度とは、シンボルをレイアウトする際の角度を指定するもので、例えば、レイアウト基準矩形の、水平な辺（上辺または底辺）が、Ｘ軸の正方向となす角度で指定すればよい。その手順は、シンボルレイアウトパネル２６０１の、レイアウト角度入力エリア２６０８に、キーボード１１から角度の数値を入力すればよい。
【０２３０】
以上の情報をすべて入力した後、シンボルのレイアウトを実行する場合には、シンボルレイアウトパネル２６０１の「実行」ボタンを、ボタン選択し、シンボルをレイアウトするのをやめる場合には、「取消」ボタンを、ボタン選択する。
【０２３１】
次に、選択されたシンボルを、作画エリア６２においてレイアウトする位置を指定する（ステップＳ２５０４）。
【０２３２】
シンボルのレイアウト位置を指定する方法には、次のものがある。
（１）点レイアウト：作画エリア６２上の任意の位置を、任意指定、点指定、特徴点指定、交点指定、線上点指定、のいずれかの方法で指定する。この場合、指定した位置に、レイアウトするシンボルの、レイアウト基準位置が一致するように、レイアウトされる。
（２）矩形レイアウト：作画エリア６２上に、印刷データとしてすでに存在する矩形を、要素選択によって指定する。この場合、シンボルレイアウトパネル２６０１で指定したレイアウト基準位置とレイアウト角度によらず、指定した矩形の左上点に、レイアウトするシンボルの、レイアウト基準矩形の左上点が一致し、かつ、指定した矩形の左上点をはさむ２辺に、レイアウト基準矩形が沿うように、レイアウトされる。
【０２３３】
また、シンボルレイアウトパネル２６０１で、レイアウトサイズを、高さで指定している場合は、指定した矩形の高さに、レイアウト基準矩形の高さが一致するように、幅で指定している場合は、指定した矩形の幅に、レイアウト基準矩形の幅が一致するように、レイアウトされる。
【０２３４】
以上の操作が終わると、ＣＰＵ２１は、外部記憶装置３３から呼び出されたシンボル要素のデータを、印刷データとして、ＲＡＭ３２に登録する（ステップＳ２５０５）。
【０２３５】
また、この際、ステップＳ１３０３で求めた、シンボル要素の外接矩形のデータを、シンボル要素のデータの一部として保存する（ステップＳ２５０６）。外接矩形のデータを要素データの一部として保持しておけば、例えば、指定した要素を作画エリア６２いっぱいに表示したい、というような場合に、再度、輪郭情報を抽出する必要がない。
【０２３６】
そして、ＣＰＵ２１は、作成されたシンボル要素を、作画エリア６２に表示する（ステップＳ２５０７）。
【０２３７】
なお、ステップＳ２５０６で保存した外接矩形を、明示的に作成するには、メインパネル６１上のボタン６５中の、矩形を描画するコマンド「矩形」のボタンを、ボタン選択するか、または、文字入力エリア６４で、コマンド「矩形」の名称を、キーボード１１から入力した後、コマンドメニュー６７の「外接矩形」メニューを、ボタン選択してから、外接矩形を作成したい要素を、要素選択すればよい。
【０２３８】
以下、上記の方法で呼出したシンボルをレイアウトした場合の具体的な表示例を示す。
【０２３９】
図２９は、シンボルの外接矩形をレイアウト基準矩形に設定し、矩形の左下点をレイアウト基準位置に選び、レイアウトサイズを高さで５０ｍｍと指定し、レイアウト角度を３０度と指定して、当該シンボルを点レイアウトした場合の例である。なお、この図２９では、説明のために、レイアウト基準矩形を同時に表示しているが、実際には、シンボルのみが表示される。もちろん、レイアウト基準矩形を同時に表示するように、仕様変更することも可能である。
【０２４０】
図３０は、シンボルの外接矩形をレイアウト基準矩形に設定し、矩形レイアウトした場合の例である。図３０（ａ）が、レイアウトサイズで高さを設定している場合であり、図３０（ｂ）が、レイアウトサイズで幅を設定している場合である。両図中において、破線で示した矩形が、レイアウトの対象となる矩形であり、実線で示した矩形が、レイアウト基準矩形である。なお、この図３０では、説明のために、レイアウト基準矩形を同時に表示しているが、実際には、シンボルのみが表示される。もちろん、レイアウト基準矩形を同時に表示するように、仕様変更することも可能である。
【０２４１】
以上、登録されたシンボルを呼び出して、印刷データとしてレイアウトする手順を説明した。
【０２４２】
また、以上、図８に示すようなシンボルを作成する手順を、（Ａ）基本図形を印刷データとしてレイアウトする、（Ｂ）シンボルの構成要素をグループ化し、シンボルとして登録する、（Ｃ）登録されたシンボルを呼び出して、印刷データとしてレイアウトする、という、３つのフローに分けて説明した。
【０２４３】
○テキストの作成
次に、文字データを作成する例として、図５１に示すようなテキストを作成する場合について説明する。
【０２４４】
図３１に、テキストを印刷データとしてレイアウトする手順を説明するフローチャートを示す。
【０２４５】
なお、以下の記述では、テキスト要素をレイアウトする場合について説明しているが、テキスト要素に限らず、シンボル、イラスト、トンボ、バーコードの各要素内に含まれるテキスト要素についても同様である。
【０２４６】
まず、メインパネル６１上のボタン６５中のコマンド「テキスト」のボタンを、ボタン選択するか、または、文字入力エリア６４で、コマンド「テキスト」の名称を、キーボード１１から入力する。
【０２４７】
すると、表示装置４１には、コマンドメニュー６７が表示される。コマンドメニュー６７の項目には、
（１）新規：これから新規にテキストを作成する。
（２）修正：すでに作成されているテキストを修正する。
がある。ユーザーは、いずれかのメニュー項目をボタン選択することによって、テキストの編集を行なう。
【０２４８】
では、「新規」メニューを選択した場合について説明する。
【０２４９】
まず、テキストをレイアウトするために必要な情報（レイアウト必要情報）を入力し（ステップＳ３１０１）、次に、テキストの文字列データを入力し（ステップＳ３１０２）、文字データの印刷属性すなわち文字列属性を付加して、印刷データとして使用できるようにする（ステップＳ３１０３）。
【０２５０】
これらの、ステップＳ３１０１からステップＳ３１０３までの処理は、図３９に示すテキスト新規作成パネル３９０１、図４０に示す文字列入力パネル４００１を使用して、どのような順序で行なってもよい。
【０２５１】
図５５に、文字データに印刷属性を付加した例を示す。
【０２５２】
図５５（ａ）に、印刷属性が付加されていない文字データの例を示す。印刷属性が付加されていない状態とは、前述した印刷属性データの構造の中で、属性設定フラグが無効となっている場合であり、文字データは、予め設定されているデフォルトの形状や大きさで表現される。従って、書体、平体率、長体率、文字サイズ、ベース角、斜体角、などが固定となっていることがわかる。
【０２５３】
一方、図５５（ｂ）に、印刷属性が付加された文字データの例を示す。印刷属性が付加されていると、書体、平体率、長体率、文字サイズ、ベース角、斜体角、などの印刷属性の違いが表現されていることがわかる。
【０２５４】
さて、「新規」メニューをボタン選択すると、表示装置４１には、図３９に示すような、テキスト新規作成パネル３９０１が、表示される。
【０２５５】
このテキスト新規作成パネル３９０１上で、テキストを作成するために必要な情報をキーボード１１またはマウス１２によるボタン選択によって入力する。
【０２５６】
テキスト新規作成パネル３９０１で入力する情報には、テキストをレイアウトするために必要な情報として、レイアウト基準位置の選択、組形式の選択、行揃えの選択、全体長さ、高さ優先の有無の選択、自動カーニングの有無の選択がある。これらの情報は、テキストのデータとして保存される。
【０２５７】
テキストの文字列データは、テキスト新規作成パネル３９０１の「文字列入力」ボタンをボタン選択することによって表示される、文字列入力パネル４００１の文字列入力エリア４００２に、キーボード１１から入力する。この情報は、テキストおよび基本文字列のデータとして保存される。
【０２５８】
また、テキスト新規作成パネル３９０１では、文字データの印刷属性すなわち文字列属性である、書体名称、ベース角、平体率、長体率、斜体角、字間、行間、文字の大きさとしての基準文字高さまたは文字サイズ、を入力する。これらの情報は、テキストを構成する基本文字列の文字列属性のデータとして保存される。
【０２５９】
ここで、文字に関する用語の定義を行なっておく。図５２に、文字に関する用語を説明する図を示す。
【０２６０】
文字ボックスとは、本実施形態では、１つの文字が専有する矩形（斜体角が０の場合）または平行四辺形（斜体角が０以外の場合）の仮想的な領域で、大部分の文字はこの文字ボックスの内部にデザインされるように定めている。文字の形状が文字ボックスの外側に出る場合もある。斜体角が０以外の場合は、文字ボックスも斜体がかかった平行四辺形となる。
【０２６１】
基準文字とは、書体ごとに、ユーザーがあらかじめ定めた１文字で、文字の大きさを指定する際や、文字のレイアウト位置を指定する際の基準となる文字である。一般に、矩形に近い形状の文字が定められることが多い。本実施形態では、英文書体の場合には、大文字の「Ｅ」を基準文字に定めている。
【０２６２】
文字サイズとは、文字の大きさを表す一般的な数値である。ただし、実際に文字の可視部分の高さを示すものではない。
【０２６３】
文字ボックス高さは、本実施形態では、文字サイズに平体率を考慮して、実際に表示される文字の高さ方向の大きさを示すように定めている。単一の基本文字列では、各文字の文字ボックス高さは共通である。文字ボックス高さと文字サイズの関係は、式４に示す通りである。
【０２６４】
文字ボックス高さ＝文字サイズ＊平体率                 （式４）
【０２６５】
基準文字高さとは、本実施形態では、基準文字の可視部分の高さのことで、この数値で文字の大きさを指定することができる。実際に見えている部分をもとにして、文字のレイアウトを行ないたい場合には、基準文字高さで指定した方が有効である。
【０２６６】
文字サイズと基準文字高さは、書体ごとに、式５に示す一定の関係にある。文字高さ比率は、あらかじめ書体ごとに算出され、外部記憶装置３３などに格納されている。
【０２６７】
基準文字高さ＝文字サイズ＊文字高さ比率               （式５）
【０２６８】
文字ベースラインとは、文字ボックス内での、文字の高さ方向の仮想的な基準線を示し、本実施形態では、基準文字「Ｅ」の外接矩形下辺を通る直線と定めている。文字ベースラインは、文字ボックス下辺に水平な直線となる。
【０２６９】
文字ボックス原点とは、文字ボックス内での、文字の位置を示すための仮想的な原点を示し、本実施形態では、文字ベースラインと文字ボックス左辺の交点と定める。
【０２７０】
文字ボックス幅は、文字ボックス原点から、同一基本文字列内の次の文字の文字ボックス原点までの水平距離（字送り方向距離）で定める。これは、字間が０の場合の数値である。一般に、文字ボックス幅は、同一の基本文字列であっても、文字によって異なる。特に、長体率が１の場合の文字ボックス幅を、その文字の文字幅と呼ぶ。文字ボックス幅と文字幅の関係は、式６に示す通りである。
【０２７１】
テキスト、基本文字列、文字列属性のデータ構造については、前述した通りである。
【０２７２】
文字ボックス幅＝文字幅＊長体率                       （式６）
【０２７３】
文字ボックス原点から文字ボックスの上辺までの高さをアセンダ高さ、文字ボックスの下辺までの高さをディセンダ高さと呼ぶ。従って、次の式７が成り立つ。
【０２７４】
文字ボックス高さ＝アセンダ高さ＋ディセンダ高さ       （式７）
【０２７５】
文字ボックスの左辺から文字の可視部分の左端までの水平距離（字送り方向距離）を左サイドベアリング、文字の可視部分の右端から文字ボックス右辺までの水平距離（字送り方向距離）を右サイドベアリングと呼ぶ。文字の斜体角が０である場合の数値で表す。言い換えれば、文字の斜体角によらない数値である。また、サイドベアリングには、字間は含まれないとする。文字ボックス内に文字の可視部分が含まれているとは限らないので、サイドベアリングは字送り方向を正とする、符号付きの数値である。
【０２７６】
図５３に、サイドベアリングが負である文字の例を示す。この例では、左サイドベアリング、右サイドベアリングがともに負の場合を示している。このように、サイドベアリングが負の文字の場合、文字ボックスの外側に文字の可視部分が存在する。
【０２７７】
字間については、文字列属性の説明で定義した通りであるが、文字ボックスを使った表現を使えば、字間とは、同一行の隣接する２文字の文字ボックスの間隔を表す。しかし、本実施形態での行間とは、隣接する２行のテキスト行レイアウト矩形（後述）の間隔であり、隣接する２行にある文字の文字ボックスの間隔を表すわけではない。
【０２７８】
以上で、文字に関する用語の定義を終わる。
【０２７９】
書体名称は、書体名称一覧３９０２に使用可能な書体の一覧が表示されるので、その中から１つをマウス１２で選択するか、書体名称入力エリアに直接、キーボード１１から書体名称を入力する。書体名称一覧３９０２で選択した書体名称は、書体名称入力エリアに反映され、逆に、書体名称入力エリアで入力した書体名称は、それが使用可能な書体であれば、書体名称一覧３９０２の該当する項目が選択状態になる。
【０２８０】
文字の大きさ（文字大きさ）は、基準文字高さまたは文字サイズのいずれかで指定する。基準文字高さと文字サイズには、式５で示す関係があるので、基準文字高さと文字サイズの入力エリアのデータは、どちらか一方のデータを設定すれば、他方のデータはそれに応じて、自動的に更新される。
【０２８１】
ベース角は、キーボード１１から角度を度単位で入力する。デフォルト値は０度である。点レイアウトの場合のみ有効である。
【０２８２】
平体率および長体率は、キーボード１１から比率をパーセント単位で入力する。デフォルト値は、いずれも１００％である。
【０２８３】
図５４に、平体率および長体率を説明する図を示す。図中の矩形は各文字の文字ボックスを示している。
【０２８４】
斜体角は、キーボード１１から角度を度単位で入力する。デフォルト値は０度である。点レイアウトの場合のみ有効である。
【０２８５】
字間は、キーボード１１から文字の幅方向の大きさを基準としてパーセント単位で入力する。これを、字間比率と呼ぶことにする。文字の幅方向の大きさの基準としては、各文字によらない量として、文字サイズと長体率を使用する。字間比率と実際の字間の関係は、式８に示す通りである。
【０２８６】
字間＝文字サイズ＊長体率＊字間比率                   （式８）
【０２８７】
行間は、キーボード１１から長さをｍｍ単位で入力する。デフォルト値は０ｍｍである。
【０２８８】
字間および行間を設定した場合の詳細については後述する。
【０２８９】
全体長さは、テキストの可視部分の幅を指定するもので、キーボード１１から長さをｍｍ単位で入力する。デフォルト値は０ｍｍである。デフォルト値の０ｍｍを指定したときは、全体長さの指定はないと見なされる。
【０２９０】
高さ優先の有無は、高さ優先選択ボタン３９０４における、あり／なしのボタンのどちらかを、ボタン選択することにより指定する。点レイアウトの場合でかつ、全体長さを指定した場合のみ有効である。
【０２９１】
全体長さを指定した場合の詳細については後述する。
【０２９２】
レイアウト基準位置は、レイアウト基準矩形選択ボタン３９０３における、レイアウト基準矩形の９個の特徴点を示すボタンの中から１個を、ボタン選択することにより指定する。点レイアウトの場合のみ有効である。
【０２９３】
テキストの場合の、レイアウト基準矩形およびレイアウト基準位置の設定方法の詳細については後述する。
【０２９４】
組形式は、テキストを横書きにするか縦書きにするかを、組形式選択ボタン３９０６における、横／縦のボタンのどちらかを、ボタン選択することにより指定する。
【０２９５】
行揃え位置は、行揃え位置選択ボタン３９０７における、左揃え、右揃え、中央揃え、両端揃え、の４個のボタンの中から１個を、ボタン選択することにより指定する。矩形レイアウトの場合のみ有効である。
【０２９６】
点レイアウト／矩形レイアウトの方法、矩形レイアウトの場合の行揃え位置の決定方法については後述する。
【０２９７】
上記の各項目のうち、キーボード１１から数値データを入力する、書体名称、文字の大きさ、ベース角、平体率、長体率、斜体角、字間、行間、全体長さ、については、入力したい項目の文字入力エリアを、マウス１２またはキーボード１１で指示した後で、キーボード１１から数値データを入力する。
【０２９８】
テキスト新規作成パネル３９０１上で、最後に設定したレイアウト必要情報および文字データの印刷属性は、ＣＰＵ２１によって、カレントな値（初期値と呼ぶ）として、ＲＡＭ３２に保存されるので、次にテキストを新規に作成する際には、テキスト新規作成パネル３９０１に表示される初期値の一部を変更するだけでよい。
【０２９９】
また、プログラムを終了する際に、ＣＰＵ２１は、初期値を、外部記憶装置３３に保存し、次に、プログラムを実行する際に、再び、ＲＡＭ３２に読み込んで来るので、プログラムを実行するたびに、初期値を設定し直す必要もない。初期値は、ユーザーによらず共通のものと、ユーザーが各自設定した個別のものを、別々に、ＲＡＭ３２や外部記憶装置３３に、保存しておくこともできる。
【０３００】
以上の操作を終えたら、ユーザーは、文字列入力パネル４００１の「設定」ボタンをボタン選択し、テキストを作成するために必要な情報（テキストをレイアウトするための情報、文字列データ、文字データの印刷属性）を確定する。
【０３０１】
このようにして、テキストを作成するために必要な情報が確定されると、ＣＰＵ２１は、設定された内容に従って、テキストのデータを作成し、その輪郭情報を抽出する（ステップＳ３１０４）。
【０３０２】
図５６に、図５１に示したテキストの輪郭情報を抽出した結果を示す。図中、実線で示した矩形はこのテキストのレイアウト基準矩形である。
【０３０３】
この輪郭情報を抽出する方法としては、前述した、
（１）そのまま表示装置に表示する方法
（２）一時的に拡大して表示装置に表示する方法
（３）幾何学的な手法による方法
（４）印刷装置に相当するソフトウエアまたはハードウエアに出力する方法
のいずれかの方法を取ることができる。
【０３０４】
なお、文字データの場合、（３）の方法を取るためには、文字データの形状が、幾何学的な形状で与えられている必要がある。
【０３０５】
次に、ステップＳ３１０４で抽出した輪郭情報から、ＣＰＵ２１は、テキストの外接矩形を計算する（ステップＳ３１０５）。外接矩形の計算方法は、図１３のステップＳ１３０３における方法と同様である。
【０３０６】
なお、外接矩形を明示的に作成するには、矩形を描画するコマンド「矩形」のボタンを、メインパネル６１上のボタン６５からボタン選択するか、文字入力エリア６４で、コマンド「矩形」の名称をキーボード１１から入力し、さらに、コマンドメニュー６７上の「外接矩形」メニューを、ボタン選択してから、外接矩形を作成したい要素を、要素選択すればよい。
【０３０７】
なお、テキストの場合、基準文字高さがレイアウトの基準として使われるので、あらかじめ、基準文字の輪郭情報から、式５の文字高さ比率を計算しておく。
【０３０８】
図３２に、文字高さ比率を計算する手順を説明するフローチャートを示す。
【０３０９】
まず、一定の文字列属性で基準文字を作成する（ステップＳ３２０１）。
【０３１０】
文字サイズと基準文字高さの比率を求めるのが目的であるから、例えば、１つの書体について、文字サイズ＝１０ｍｍ、平体率＝１００％、長体率＝１００％、ベース角＝０度、文字方向＝０度、斜体角＝０度、字間＝０ｍｍ、行間＝０ｍｍ、横反転フラグ＝なし、縦反転フラグ＝なし、という文字列属性で、基準文字の「Ｅ」を作成すればよい。
【０３１１】
次に、ステップＳ３１０４と同様の方法で、ステップＳ３２０１で作成された基準文字の輪郭情報を抽出する（ステップＳ３２０２）。
【０３１２】
次に、ステップＳ３１０５と同様の方法で、ステップＳ３２０２で抽出された輪郭情報から、基準文字の外接矩形を計算する（ステップＳ３２０３）。
【０３１３】
そして、ステップＳ３２０１で設定した文字サイズと、ステップＳ３２０３で求まった外接矩形の高さの比率から、式５に従って、この書体の文字高さ比率が求まる（ステップＳ３２０４）。
【０３１４】
求まった文字高さ比率は、外部記憶装置３３に保存しておく（ステップＳ３２０５）。
【０３１５】
以上の処理を、各書体について繰り返す（ステップＳ３２０６）。
【０３１６】
次に、テキストのレイアウト基準情報として、レイアウト基準矩形を設定する（ステップＳ３１０６）。レイアウト基準矩形は、テキストの各行ごとに設定する。
【０３１７】
上述したシンボルの例では、レイアウト基準矩形を設定する際に、
（１）任意矩形
（２）外接矩形
を用いる場合を説明したが、テキストの場合は、
（３）基準文字高さと文字列の可視部分幅で決まる矩形
を、レイアウト基準矩形とすることがある。
【０３１８】
ここで、基準文字高さは、あらかじめ求まっており、また、文字列の可視部分幅は、ステップＳ３１０５で求めた外接矩形の幅に等しいので、これより、レイアウト基準矩形の左下点と右上点は、
左下点（輪郭情報の最小のＸ座標，文字列に基準文字が含まれていると仮定した場合の基準文字の輪郭情報の最小のＹ座標）
右上点（輪郭情報の最大のＸ座標，文字列に基準文字が含まれていると仮定した場合の基準文字の輪郭情報の最大のＹ座標）
と与えられる。
【０３１９】
図５７に、図５１で示したテキストに対して設定した、テキストのレイアウト基準矩形と、９個のレイアウト基準位置を示したものを示す。図中、実線で示した矩形が、テキストの各行のレイアウト基準矩形であり、また、図中、＊印で示した点が、レイアウト基準位置である。
【０３２０】
この例の場合、「Ａ」および「Ｂ」の文字外接矩形下線と文字ベースライン（基準文字「Ｅ」の文字外接矩形下線）は一致しており、かつ、「Ａ」および「Ｂ」の文字外接矩形高さと基準文字高さが一致しているため、「Ａ」および「Ｂ」の文字外接矩形上辺とレイアウト基準矩形上辺、文字外接矩形下辺とレイアウト基準矩形下辺は、
それぞれ一致している。しかし、「Ｃ」の場合など一般には、文字外接矩形（可視部分）とレイアウト基準矩形は一致しない。例えば、「Ｃ」の場合は、文字の可視部分は、レイアウト基準矩形の外部の領域にも存在する。
【０３２１】
次に、テキストを、作画エリア６２にレイアウトする位置を指定する（ステップＳ３１０７）。
【０３２２】
テキストのレイアウト位置を指定する方法には、次のものがある。
【０３２３】
（１）点レイアウト：作画エリア６２上の任意の位置を、任意指定、点指定、特徴点指定、交点指定、線上点指定、のいずれかの方法で指定する。この場合、指定した位置に、ステップＳ３１０１で指定された、テキストの先頭行のレイアウト基準位置が一致するように、レイアウトされる。
【０３２４】
図５８に、レイアウト基準矩形の左下点をレイアウト基準位置に選び、テキストを点レイアウトした場合の例を示す。図中、＊印で示した位置が、レイアウト位置である。なお、この図５８では、説明のために、レイアウト基準矩形を、実線で同時に表示しているが、実際には、テキストのみが表示される。もちろん、レイアウト基準矩形を同時に表示するように、仕様変更することも可能である。この例では、１行のみのテキストを示しているが、複数行のテキストであっても、点レイアウトの場合のレイアウト位置は、先頭行のレイアウト基準位置で決定される。
【０３２５】
（２）矩形レイアウト：作画エリア６２上に、印刷データとしてすでに存在する矩形を、要素選択によって指定する。この場合、テキストの先頭行のレイアウト基準矩形の上辺が、指定した矩形の上辺に沿うように、かつ、ステップＳ３１０１で指定された、行揃え位置に従って、次のようにレイアウトされる。
・左揃え：テキストの各行のレイアウト基準矩形を、指定した矩形の左辺に揃えてレイアウトする。
・右揃え：テキストの各行のレイアウト基準矩形を、指定した矩形の右辺に揃えてレイアウトする。
・中央揃え：テキストの各行のレイアウト基準矩形が、指定した矩形の幅の中央に位置するようにレイアウトする。
・両端揃え：テキストの各行のレイアウト基準矩形の幅が、指定した矩形の幅に一致するように、各行のテキストの字間を調整してレイアウトする。
【０３２６】
矩形レイアウトの各行揃え位置に応じたレイアウト方法については後述する。
【０３２７】
以上の処理が終わると、ＣＰＵ２１は、作成されたテキスト要素のデータを、印刷データとして、ＲＡＭ３２に登録する（ステップＳ３１０８）。
【０３２８】
また、この際、ステップＳ３１０５で求めた、テキスト要素の外接矩形のデータを、テキスト要素のデータの一部として保存する（ステップＳ３１０９）。
【０３２９】
このように、外接矩形のデータを、要素データの一部として保持しておけば、例えば、指定した要素を作画エリア６２いっぱいに表示したい、というような場合に、再度、輪郭情報を抽出する必要がない。
【０３３０】
最後に、ＣＰＵ２１は、作成されたテキスト要素を、作画エリア６２に表示する（ステップＳ３１１０）。
【０３３１】
さらに詳細に、テキストのレイアウトについて説明する。
【０３３２】
では、テキストのレイアウト情報を制御するさまざまな方法について説明する。
【０３３３】
まず、字間を設定する場合について説明する。
【０３３４】
字間を設定するには、テキスト新規作成パネル３９０１で、「字間」入力エリアに字間を入力すればよい。テキスト新規作成パネル３９０１で入力する字間は、字間比率であるから、実際の、例えばｍｍ単位で表現される字間は、式８で求められる通りである。
【０３３５】
図５９に、テキストの字間を設定した場合の例を示す。
【０３３６】
この例の場合、テキストは１個の基本文字列で構成される。一般に、基本文字列を構成する各データ、基本文字列の各属性データがテキストの途中で変更される場合に、テキストは、複数の基本文字列に分割される。従って、後述するが、改行される（文字列開始点座標が変わる）、カーニングが設定される（文字列開始点座標が変わる）、書体情報が変更される（文字列属性が変わる）などの場合には、テキストは複数の基本文字列から構成されることになる。
【０３３７】
図中、各文字を囲む矩形は、各文字の文字ボックスである。また、文字列全体を囲む矩形は、テキスト行レイアウト矩形である。
【０３３８】
ここで、１行のテキストのレイアウト基準矩形（基準文字高さと文字列の可視部分幅で決まる矩形）を、テキスト行レイアウト矩形、テキスト行レイアウト矩形の高さと幅を、それぞれ、テキスト行高さ、テキスト行幅と呼ぶことにする。１行のテキストは、このテキスト行レイアウト矩形をもとにしてレイアウトされる。
【０３３９】
図５９（ａ）は、字間がない場合の例を示し、図５９（ｂ）は、字間がある場合の例を示している。図５９（ａ）では、各文字の文字ボックスの字送り方向の間隔はないが、図５９（ｂ）では、各文字ボックスの字送り方向の間隔が字間となっている。
【０３４０】
次に、行間を設定する場合について説明する。
【０３４１】
行間を設定するには、テキスト新規作成パネル３９０１で、「行間」入力エリアに行間を入力すればよい。テキスト新規作成パネル３９０１で入力する行間は、例えばｍｍ単位で表現される実寸値である。
【０３４２】
図６０に、テキストの行間を設定した場合の例を示す。
【０３４３】
この例の場合、改行があるので、各行ごとに別の基本文字列となる。
【０３４４】
図中、文字列全体を囲む矩形は、テキスト行レイアウト矩形である。
【０３４５】
図６０（ａ）は、行間がない場合の例を示し、図６０（ｂ）は、行間がある場合の例を示している。図６０（ａ）では、各行のテキスト行レイアウト矩形の行送り方向の間隔はないが、図６０（ｂ）では、行送り方向の間隔が行間となっている。
【０３４６】
次に、字間カーニングを設定する場合について説明する。
【０３４７】
字間カーニングとは、同一行にある特定の文字の出力位置を左右方向、上下方向に微調整するための手法で、それぞれ、左右字間カーニング、上下字間カーニングと呼ぶことにする。
【０３４８】
また、後述する行間カーニングとは、隣接する２行の行間を上下方向に微調整するための手法で、特定の行間だけを変更するために主に使用される。
【０３４９】
字間カーニングを設定するには、文字列入力パネル４００１で「カーニング入力」ボタンをボタン選択することによって表示される、カーニング入力パネル４１０１の「字間左右」入力エリアに、字間左右カーニングの数値を、「字間上下」入力エリアに、字間上下カーニングの数値を、入力すればよい。
【０３５０】
その際、文字列入力パネル４００１の「文字列」入力エリアに入力されている文字列の、字間カーニングを設定したい位置にカーソルを移動させておく。
【０３５１】
カーニング入力パネル４１０１で入力する字間カーニングは、基準文字高さを基準として、それを例えば９６分割した値を単位とするパラメータ（カーニングパラメータ）で入力する。実際の、例えばｍｍ単位で表現される字間カーニングは、式９および式１０で求められる通りである。
【０３５２】
字間カーニングは、符号を持つ数値で、右方向、上方向をそれぞれ正方向とする。
【０３５３】
左右字間カーニング＝（左右字間カーニングパラメータ／９６）＊基準文字高さ＊長体率                                     （式９）
上下字間カーニング＝（上下字間カーニングパラメータ／９６）＊基準文字高さ＊平体率                                   （式１０）
【０３５４】
図６１に、テキストの字間カーニングを設定した場合の例を示す。
【０３５５】
この例の場合、字間カーニングの前後で、別の基本文字列となる。
【０３５６】
図中、各文字を囲む矩形は、各文字の文字ボックスである。また、文字列全体を囲む矩形は、テキスト行レイアウト矩形である。
【０３５７】
図６１（ａ）は、左右字間カーニングがある場合の例を示し、図６１（ｂ）は、上下字間カーニングがある場合の例を示している。簡単のため字間は設定されていない。
【０３５８】
図６１（ａ）では、右方向に２４の左右字間カーニングパラメータが設定されており、基本文字列「Ａ」と基本文字列「ＢＣ」の文字ボックスの字送り方向の間隔が式９で求められる値（正値）になっている。
【０３５９】
図６１（ｂ）では、下方向に２４の上下字間カーニングパラメータが設定されており、基本文字列「Ａ」と基本文字列「ＢＣ」の文字ボックスの行送り方向の間隔が式１０で求められる値（負値）になっている。
【０３６０】
カーニング入力パネル４１０１での、字間カーニングの入力フォーマットは、例えば、次のようにすればよい。
・右方向の字間カーニング入力：「＞数値」または「＋数値」
・左方向の字間カーニング入力：「＜数値」または「−数値」
・上方向の字間カーニング入力：「＾数値」または「＋数値」
・下方向の字間カーニング入力：「ｖ数値」または「−数値」
【０３６１】
字間カーニングを入力して、カーニング入力パネル４１０１の「設定」ボタンをボタン選択すると、字間カーニング量が決定され、カーニング入力パネル４１０１は消去され、文字列入力パネル４００１が表示された状態に戻る。
【０３６２】
すると、文字列入力パネル４００１の「文字列」入力エリアに入力されている文字列のカーソル位置には、字間カーニングが設定されたことを示す、例えば、次のような制御フォーマットが表示される。
・右方向の字間カーニング制御：「￥ｔ＞数値＠」
・左方向の字間カーニング制御：「￥ｔ＜数値＠」
・上方向の字間カーニング制御：「￥ｔ＾数値＠」
・下方向の字間カーニング制御：「￥ｔｖ数値＠」
【０３６３】
もちろん、左右字間カーニングと上下字間カーニングを同時に設定することも可能であり、その場合の制御フォーマットは、次のようになる。
・「￥ｔ＞数値￥ｔｖ数値＠」
【０３６４】
この、文字列入力パネル４００１の「文字列」入力エリアに入力されている文字列を、制御文字列と呼び、テキストのデータとして保持される。
【０３６５】
図６１（ａ）の例では、制御文字列は、次のようになる。
・「Ａ￥ｔ＞２４＠ＢＣ」
【０３６６】
図６１（ｂ）の例では、制御文字列は、次のようになる。
・「Ａ￥ｔｖ２４＠ＢＣ」
【０３６７】
次に、行間カーニングを設定する場合について説明する。
【０３６８】
行間カーニングを設定するには、文字列入力パネル４００１で「カーニング入力」ボタンをボタン選択することによって表示される、カーニング入力パネル４１０１の「行間上下」入力エリアに、行間カーニングの数値を入力すればよい。
【０３６９】
その際、文字列入力パネル４００１の「文字列」入力エリアに入力されている文字列の、字間カーニングを設定したい行と行の間に空行を１行作成して、そこにカーソルを移動させておく。
【０３７０】
カーニング入力パネル４１０１で入力する行間カーニングは、基準文字高さを基準として、それを例えば９６分割した値を単位とするパラメータ（カーニングパラメータ）で入力する。実際の、例えばｍｍ単位で表現される行間カーニングは、式１１で求められる通りである。
【０３７１】
行間カーニングは、符号を持つ数値で、上方向を正方向とする。
【０３７２】
行間カーニング＝（行間カーニングパラメータ／９６）＊基準文字高さ＊平体率                                           （式１１）
【０３７３】
図６２に、テキストの行間カーニングを設定した場合の例を示す。
【０３７４】
この例の場合、行間カーニングの前後で、別の基本文字列となるが、改行時には、もともと別の基本文字列になるので、行間カーニングの有無によってテキストの基本文字列の構成は変わらない。図６２の例の場合、「ＡＢＣ」「ＤＥ」「ＦＧ」の３個の基本文字列で構成されるテキストである。
【０３７５】
図中、文字列全体を囲む矩形は、テキスト行レイアウト矩形である。
【０３７６】
図６２（ａ）は、行間カーニングがない場合の例を示し、図６２（ｂ）は、行間カーニングがある場合の例を示している。図６２（ａ）、図６２（ｂ）両者とも、各行間には、一定の行間が設定されている。
【０３７７】
図６２（ａ）では、各行間に一定の行間のみが設定されており、各行のテキスト行レイアウト矩形の行送り方向の間隔が、設定された行間になっている。
【０３７８】
図６２（ｂ）では、１行目と２行目の行間に下方向に２４の行間カーニングパラメータが設定されており、１行目と２行目のテキスト行レイアウト矩形の行送り方向の間隔が式１１で求められる値（負値）の絶対値に行間を加えた値になっている。２行目と３行目の行間は（ａ）の場合と同じである。
【０３７９】
カーニング入力パネル４１０１での、行間カーニングの入力フォーマットは、例えば、次のようにすればよい。これは、上下字間カーニングの場合と同様である。
・上方向の行間カーニング入力：「＾数値」または「＋数値」
・下方向の行間カーニング入力：「ｖ数値」または「−数値」
【０３８０】
行間カーニングを入力して、カーニング入力パネル４１０１の「設定」ボタンをボタン選択すると、行間カーニング量が決定され、カーニング入力パネル４１０１は消去され、文字列入力パネル４００１が表示された状態に戻る。
【０３８１】
すると、文字列入力パネル４００１の「文字列」入力エリアに入力されている文字列のカーソル位置には、行間カーニングが設定されたことを示す、例えば、次のような制御フォーマットが表示される。
・上方向の行間カーニング制御：「￥ｌ＾数値＠」
・下方向の行間カーニング制御：「￥ｌｖ数値＠」
【０３８２】
図６２（ａ）の例では、制御文字列は、次のようになる。
0004174117.tif 000002
【０３８３】
図６２（ｂ）の例では、制御文字列は、次のようになる。
0004174117.tif 000003
【０３８４】
次に、書体情報を変更する場合について説明する。
【０３８５】
書体情報とは、書体名称、文字の大きさ、平体率、長体率、斜体角、字間、行間、の文字列属性を総称している。書体情報を変更することによって、同一のテキスト内で、さまざまな形状を持った文字が表現できる。
【０３８６】
書体情報を変更するには、文字列入力パネル４００１で「書体情報変更」ボタンをボタン選択することによって表示される、書体情報変更パネル４４０１の変更したい項目の文字入力エリアを、マウス１２またはキーボード１１で指示した後で、キーボード１１から変更したい書体情報の数値データを入力する。
【０３８７】
書体名称は、書体名称一覧４４０２に使用可能な書体の一覧が表示されるので、その中から１つをマウス１２で選択するか、書体名称入力エリアに直接、キーボード１１から書体名称を入力する。書体名称一覧４４０２で選択した書体名称は、書体名称入力エリアに反映され、逆に、書体名称入力エリアで入力した書体名称は、それが使用可能な書体であれば、書体名称一覧４４０２の該当する項目が選択状態になる。
【０３８８】
その際、文字列入力パネル４００１の「文字列」入力エリアに入力されている文字列の、書体情報を変更したい位置にカーソルを移動させておく。
【０３８９】
書体情報変更パネル４４０１で入力する各項目の内容は、テキスト新規作成パネル３９０１の同名称の項目と同様である。
【０３９０】
図６３に、テキストの書体情報を変更した場合の例を示す。
【０３９１】
この例の場合、書体情報変更の前後で、別の基本文字列となる。
【０３９２】
図中、各文字を囲む矩形は、各文字の文字ボックスである。また、文字列全体を囲む矩形は、テキスト行レイアウト矩形である。１行の間で基準文字高さが変わる場合など、テキスト行レイアウト矩形の計算方法については後述する。
【０３９３】
図６３（ａ）は、文字サイズを変更した場合の例を示し、図６３（ｂ）は、書体を変更した場合の例を示している。簡単のため字間は設定されていない。
【０３９４】
図６３（ａ）では、「Ａ」と「Ｂ」の間で、文字サイズを例えば４０ｍｍから６０ｍｍに変更する書体情報変更が設定されている。
【０３９５】
図６３（ｂ）では、「Ａ」と「Ｂ」の間で、書体を例えばＨｅｌｖｅｔｉｃａからＴｉｍｅｓに変更する書体情報変更が設定されている。
【０３９６】
書体情報を変更して、書体情報変更パネル４４０１の「設定」ボタンをボタン選択すると、書体情報が変更され、書体情報変更パネル４４０１は消去され、文字列入力パネル４００１が表示された状態に戻る。
【０３９７】
すると、文字列入力パネル４００１の「文字列」入力エリアに入力されている文字列のカーソル位置には、書体情報が変更されたことを示す、例えば、次のような制御フォーマットが表示される。
・書体名称変更制御：「￥ＦＯＮＴ｛書体名称｝＠」
・文字サイズ変更制御：「￥ｈ＾数値＠」
・平体率変更制御：「￥ＥＸ数値＠」
・長体率変更制御：「￥ＣＯ数値＠」
・斜体角変更制御：「￥／数値＠」
・字間変更制御：「￥＃数値＠」
・行間変更制御：「￥！数値＠」
【０３９８】
ここで、文字サイズの数値は、直前の値に対する相対値で表される。こうしておけば、初期値、すなわち先頭の文字の文字サイズを変更するだけで、テキスト全体を拡大または縮小することができるので好都合である。
【０３９９】
図６３（ａ）の例では、制御文字列は、次のようになる。
・「Ａ￥ｈ＾１．５０＠ＢＣ」
【０４００】
図６３（ｂ）の例では、制御文字列は、次のようになる。
・「Ａ￥ＦＯＮＴ｛Ｔｉｍｅｓ｝＠ＢＣ」
【０４０１】
次に、書体情報の初期値を変更する場合について説明する。
【０４０２】
書体情報の初期値とは、テキスト新規作成時に、テキスト新規作成パネル３９０１で入力した書体情報のことである。
【０４０３】
初期値を変更するには、文字列入力パネル４００１で「初期値変更」ボタンをボタン選択することによって表示される、テキスト新規作成パネル３９０１の変更したい項目の文字入力エリアを、マウス１２またはキーボード１１で指示した後で、キーボード１１から変更したい書体情報の数値データを入力する。テキスト新規作成パネル３９０１の各項目の内容およびその設定方法については、前述した通りである。
【０４０４】
初期値を変更して、テキスト新規作成パネル３９０１の「設定」ボタンをボタン選択すると、初期値が変更され、テキスト新規作成パネル３９０１は消去され、文字列入力パネル４００１が表示された状態に戻る。
【０４０５】
初期値を変更しても、文字列入力パネル４００１の「文字列」入力エリアに入力されている文字列には、制御フォーマットは表示されない。
【０４０６】
次に、書体情報を初期値に復帰する場合について説明する。
【０４０７】
前述した方法で、テキストのある位置で書体情報を任意の回数だけ変更した後に、それより後ろのある位置で書体情報を初期値に復帰させたい場合には、文字列入力パネル４００１で「初期値復帰」ボタンをボタン選択すればよい。
【０４０８】
その際、文字列入力パネル４００１の「文字列」入力エリアに入力されている文字列の、書体情報を初期値に復帰したい位置にカーソルを移動させておく。
【０４０９】
図６４に、テキストの書体情報を初期値に復帰した場合の例を示す。
【０４１０】
この例の場合、書体情報を変更した位置の前後、書体情報を初期値に復帰した位置の前後で、別の基本文字列となる。図６４の例の場合、「ＡＢ」「ＣＤ」「ＥＦ」「ＧＨ」「ＪＫ」の５個の基本文字列で構成されるテキストである。
【０４１１】
図中、文字列全体を囲む矩形は、テキスト行レイアウト矩形である。
【０４１２】
図６４では、「Ｂ」と「Ｃ」の間で、文字サイズを１．５倍に書体変更し、「Ｄ」と「Ｅ」の間で、斜体角を１５度に書体変更し、改行後、「Ｈ」と「Ｊ」の間で、初期値に復帰した場合の例を示している。
【０４１３】
書体情報を初期値に復帰すると、文字列入力パネル４００１の「文字列」入力エリアに入力されている文字列のカーソル位置には、書体情報が初期値に復帰されたことを示す、例えば、次のような制御フォーマットが表示される。
・初期値復帰制御：「￥ＤＥＦ＠」
【０４１４】
図６４の例では、制御文字列は、次のようになる。
・「ＡＢ￥ｈ＾１．５０＠ＣＤ￥／１５．００＠ＥＦ
ＧＨ￥ＤＥＦ＠ＪＫ」
【０４１５】
なお、制御フォーマットと実際に表示される文字の区別がわかりやすいように、文字列入力パネル４００１の「文字列」入力エリアの制御文字列は、両者が別の色で表示されるようになっている。
【０４１６】
例えば、図６４の例では、実際に表示される文字である、「ＡＢ」「ＣＤ」「ＥＦ」「ＧＨ」「ＪＫ」は黒で表示され、制御フォーマットである、「￥ｈ＾１．５０＠」「￥／１５．００＠」「￥ＤＥＦ＠」は赤で表示される。
【０４１７】
では次に、テキストを点レイアウトする際のデータ作成方法について説明する。
【０４１８】
ここでは、テキストのレイアウト必要情報、文字列データ、書体情報、カーニングや書体変更の情報が全て与えられた時に、実際にテキストのデータおよびテキストを構成する各基本文字列のデータがどのように作成されるか、について説明する。
【０４１９】
テキストのレイアウト必要情報、文字列データ、書体情報、カーニングや書体変更の情報が全て与えられると、各基本文字列データへの分解、各基本文字列レイアウト情報データの作成が行なわれる。
【０４２０】
この、基本文字列レイアウト情報データは、テキストを構成する基本文字列をレイアウトするためのデータとして、各基本文字列ごとに作成されるデータである。前述したテキストのデータ構造に示すように、テキストのデータとして保持していてもよいが、テキストのデータから作成することも可能なので、データ量を削減したい場合には、テキストのデータとして保持しないことも可能である。
【０４２１】
基本文字列レイアウト情報データのデータ構造は、以下の通りである。
・欧文／和文種別：ｔｙｐｅｆ
・文字高さ比率：ｒｈｐａｒｍ
・文字数：ｎｎ
・文字列幅：ｔｗ
・相対開始点：ｐｗ〔２〕
・左右字間カーニング：ｄｈｘ
・上下字間カーニング：ｄｈｙ
・行間カーニング：ｄｌｎ
・アセンダ高さ：ｈａｓ
・ディセンダ高さ：ｈｄｓ
・先頭文字左サイドベアリング：ｓｂｌ
・末尾文字右サイドベアリング：ｓｂｒ
【０４２２】
ここで、文字列幅とは、着目している基本文字列の先頭文字ボックス原点から、次の基本文字列の先頭文字ボックス原点までの字送り方向の距離であり、この値には字間は考慮されているが、字間カーニングは考慮されていない。
【０４２３】
また、相対開始点とは、カーニングがない場合の、テキストの先頭行先頭基本文字列の先頭文字ボックス原点を（０，０）とした時の、各基本文字列の先頭文字ボックス原点の相対的な座標値を示すものである。
【０４２４】
図３３に、テキストを点レイアウトする際のデータ作成方法を説明するフローチャートを示す。
【０４２５】
また、図６５に、テキストを点レイアウトした際の作成データの例を示す。ここでの各処理の説明は、この図の例に基づいて行なう。
【０４２６】
図中、各文字を囲む矩形（実線）は、各文字の文字ボックスである。また、各行の文字列全体を囲む矩形（点線）は、テキスト行レイアウト矩形である。
【０４２７】
このテキストは、書体名称＝Ｈｅｌｖｅｔｉｃａ、基準文字高さ＝３０ｍｍ、ベース角＝０度、平体率＝１００％、長体率＝１００％、斜体角＝０度、字間＝５％、行間＝１０ｍｍ、全体長さ＝０ｍｍ（指定なし）、レイアウト基準位置＝左下、高さ優先＝なし、自動カーニング＝なし、組形式＝横、で新規作成された後、以下のカーニング、書体変更、初期値復帰を実施したものである。
・「￥ｔ＜２４＠ＡＢ￥ｈ＾１．３３＠ＣＤ￥ＤＥＦ＠
ＥＦ￥ｔ＞２４￥ｔｖ２４＠Ｇ
￥ｌｖ４８＠
￥ｔ＞２４＠ＨＪ」
【０４２８】
レイアウト基準点は、図中「Ａ」の文字外接矩形左下点を指定した。図では「Ａ」の文字ボックス原点と同一の点に見えるが、実際はわずかに異なる点となる。
【０４２９】
この例では、基本文字列は、「ＡＢ」「ＣＤ」「ＥＦ」「Ｇ」「ＨＪ」の５個であるので、各基本文字列の番号を順に１から５とする。
【０４３０】
まず、各基本文字列の相対開始点ｐｗ１〜ｐｗ５の計算を行なう（ステップＳ３３０１）。
【０４３１】
この時点で、テキスト、各基本文字列、各基本文字列レイアウト情報のうち、未設定のデータは、以下の通りである。これらを計算しなければならない。
（基本文字列レイアウト情報）
・相対開始点：ｐｗ〔２〕
（基本文字列）
・文字列開始点座標：ｐｔ〔２〕
（テキスト）
・テキストレイアウト矩形左下点座標：ｐｌｌ〔２〕
・テキストレイアウト矩形右上点座標：ｐｌｒ〔２〕
【０４３２】
まず、先頭行の先頭基本文字列の相対開始点ｐｗ１は、着目基本文字列の字間カーニングｄｈｘ１（負値）およびｄｈｙ１（＝０）、行間カーニングｄｌｎ１（＝０）を考慮して、以下のように求められる。
【０４３３】
行間カーニングは、各行で一意に定まるので、各行の先頭基本文字列のデータのみ有効であるとする。この例の場合では、ｄｌｎ１、ｄｌｎ３、ｄｌｎ５のみが有効なデータである。文字列属性データの行間ｄｆｌｉｎも同様に、ｄｆｌｉｎ１、ｄｆｌｉｎ３、ｄｆｌｉｎ５のみが有効なデータである。
【０４３４】
カーニングパラメータからカーニング値を求める方法は、式９から式１１に示した通りである。
【０４３５】
ｐｗ１〔０〕＝ｄｈｘ１
ｐｗ１〔１〕＝ｄｈｙ１＋ｄｌｎ１                    （式１２）
【０４３６】
次に、先頭行の２番目の基本文字列の相対開始点ｐｗ２は、直前の基本文字列の文字列幅ｔｗ１、着目基本文字列の字間カーニングｄｈｘ２（＝０）およびｄｈｙ２（＝０）を考慮して、以下のように求められる。
【０４３７】
ｐｗ２〔０〕＝ｐｗ１〔０〕＋ｔｗ１＋ｄｈｘ２
ｐｗ２〔１〕＝ｐｗ１〔１〕＋ｄｈｙ２                （式１３）
【０４３８】
書体変更で、文字サイズを大きくした効果は、文字列幅ｔｗ１に反映されている。
【０４３９】
各行の２番目以降の基本文字列の相対開始点は、同一行の直前の基本文字列の相対開始点と文字列幅を元にして、同様に求められる。各行の最終基本文字列の末尾文字の後ろに左右字間カーニングが設定されている場合には、後述するテキスト行幅の計算の際に考慮するために、文字列幅ｔｗ＝０、左右字間カーニングｄｈｘの基本文字列を便宜上、作成して対応する。
【０４４０】
次に、２行目の先頭基本文字列の相対開始点ｐｗ３は、前行の先頭基本文字列の相対開始点ｐｗ１、字間カーニングｄｈｘ１およびｄｈｙ１、着目基本文字列の字間カーニングｄｈｘ３（＝０）およびｄｈｙ３（＝０）、文字列高さｔｈ３、行間ｄｆｌｉｎ３、行間カーニングｄｌｎ３を考慮して、以下のように求められる。
【０４４１】
着目基本文字列の文字列高さｔｈ３は、基準文字高さに平体率をかけたもので、式１４で表される。
【０４４２】
２行目の先頭基本文字列の相対開始点ｐｗ３は、式１５で表される。文字列高さｔｈ３および行間ｄｆｌｉｎ３は正値であるが、改行方向はｙの負方向なので、符号が変わる。カーニング量は符号を持った数値なので、そのままの符号で加算すればよい。改行されたときは、前行の先頭基本文字列の字間カーニングを無効とするために、ｄｈｘ１およびｄｈｙ１を減算している。
【０４４３】
ｔｈ３＝ｈｂｏｘ３＊ｒｈｐａｒｍ３＊ｒｅｘｐ３     （式１４）
ｐｗ３〔０〕＝ｐｗ１〔０〕−ｄｈｘ１＋ｄｈｘ３
ｐｗ３〔１〕＝ｐｗ１〔１〕−ｄｈｙ１＋ｄｈｙ３
−ｔｈ３−ｄｆｌｉｎ３＋ｄｌｎ３                 （式１５）
【０４４４】
２行目以降の先頭基本文字列の相対開始点は、前行の先頭基本文字列の相対開始点、文字列高さ、字間カーニングを元にして、同様に求められる。
【０４４５】
以上の、式１２から式１５の計算を、各基本文字列について行なうことによって、各基本文字列の相対開始点ｐｗ〔２〕が求められる。
【０４４６】
次に、各行のテキスト行幅（テキスト行レイアウト矩形の幅）ｌｉｎｅｗ１〜ｌｉｎｅｗ３の計算を行なう（ステップＳ３３０２）。
【０４４７】
テキストの行数、各行を構成する基本文字列の番号は、この時点でわかっている。
【０４４８】
基本的にテキスト行幅は、着目行のテキストの可視部分幅であるが、例外として、行頭および行末の左右字間カーニングを考慮する。左右字間カーニングを考慮することによって、テキスト行幅は、テキストの可視部分幅より長くなったり、短くなったりする。
【０４４９】
図６６に、この様子を示す。図６６（ａ）は行頭および行末に左右字間カーニングがない場合、図６６（ｂ）は行頭に右方向の左右字間カーニングがある場合、図６６（ｃ）は行頭に左方向の左右字間カーニングがある場合、図６６（ｄ）は行末に右方向の左右字間カーニングがある場合、図６６（ｅ）は行末に左方向の左右字間カーニングがある場合、の例を示している。図中、実線の矩形はテキスト行レイアウト矩形である。点線は左右字間カーニングがなかった場合のテキスト行レイアウト矩形の位置を参考に示している。
【０４５０】
図６６（ｂ）および図６６（ｄ）では、テキスト行幅はテキストの可視部分幅より長くなり、図６６（ｃ）および図６６（ｅ）では、テキスト行幅はテキストの可視部分幅より短くなる。
【０４５１】
同様に、テキスト行幅を計算する際には、行頭および行末の空白文字も考慮する。しかし、特に欧文の場合、空白文字の文字幅がわかりにくいことから、行頭および行末の空白文字によって、出力位置を制御することは困難である。
【０４５２】
図６５の例で、各行のテキスト行幅は、各行の最終基本文字列の相対開始点Ｘ座標、文字列幅、末尾文字右サイドベアリング、字間、各行の先頭基本文字列の先頭文字左サイドベアリングを考慮して、以下のように求められる。
【０４５３】
式１６では、字間カーニングが考慮されていないように見えるが、ステップＳ３３０１で計算した相対開始点の値に含まれている。
【０４５４】
ｌｉｎｅｗ１＝ｐｗ２〔０〕＋（ｔｗ２−ｄｆｌｅｔ２）
−ｓｂｌ１＋ｓｂｒ２
ｌｉｎｅｗ２＝ｐｗ４〔０〕＋（ｔｗ４−ｄｆｌｅｔ４）
−ｓｂｌ３＋ｓｂｒ４
ｌｉｎｅｗ３＝ｐｗ５〔０〕＋（ｔｗ５−ｄｆｌｅｔ５）
−ｓｂｌ５＋ｓｂｒ５                             （式１６）
【０４５５】
式１６によって、各行のテキスト行幅を計算する際に、最大テキスト行幅、最大テキスト行幅行番号を同時に計算し、ＲＡＭ３２に保存しておく。
【０４５６】
次に、各行のテキスト行高さ（テキスト行レイアウト矩形の高さ）ｌｉｎｅｈ１〜ｌｉｎｅｈ３の計算を行なう（ステップＳ３３０３）。
【０４５７】
テキスト行高さは、着目行を構成する基本文字列の文字列高さの最大値である。従って、図６５の例では、各行のテキスト行高さは、式１４で求められる文字列高さを用いて、以下のように表される。
【０４５８】
ｌｉｎｅｈ１＝ｔｗ２
ｌｉｎｅｈ２＝ｔｗ３（＝ｔｗ４）
ｌｉｎｅｈ３＝ｔｗ５                               （式１７）
【０４５９】
式１７によって、各行のテキスト行高さを計算する際に、最大テキスト行高さ、最大テキスト行高さ行番号を同時に計算し、ＲＡＭ３２に保存しておく。
【０４６０】
次に、各基本文字列の文字列開始点ｐｔ１〜ｐｔ５の計算を行なう（ステップＳ３３０４）。
【０４６１】
点レイアウトの場合、先頭行のテキスト行レイアウト矩形がレイアウトの際の基準となる。各基本文字列の文字列開始点は、ユーザーが指定したレイアウト基準点座標（テキストデータに保持されるｐｂ〔２〕）に、先頭行のテキスト行レイアウト矩形の指定したレイアウト基準位置フラグの位置が合うように調整すればよい。
【０４６２】
まず、レイアウト基準位置フラグの位置に応じて平行移動を行なう。先頭行のテキスト行幅をｌｉｎｅｗ１、テキスト行高さをｌｉｎｅｈ１とすると、レイアウト基準位置フラグｄａｔｕｍの９種類の値に応じて、全ての相対開始点の平行移動量ｄｖｘ、ｄｖｙは、次の通りである。
【０４６３】
ｄａｔｕｍ＝左下のとき、
ｄｖｘ＝０，ｄｖｙ＝０
ｄａｔｕｍ＝中下のとき、
ｄｖｘ＝−ｌｉｎｅｗ１／２，ｄｖｙ＝０
ｄａｔｕｍ＝右下のとき、
ｄｖｘ＝−ｌｉｎｅｗ１，ｄｖｙ＝０
ｄａｔｕｍ＝左中のとき、
ｄｖｘ＝０，ｄｖｙ＝−ｌｉｎｅｈ１／２
ｄａｔｕｍ＝中中のとき、
ｄｖｘ＝−ｌｉｎｅｗ１／２，ｄｖｙ＝−ｌｉｎｅｈ１／２
ｄａｔｕｍ＝右中のとき、
ｄｖｘ＝−ｌｉｎｅｗ１，ｄｖｙ＝−ｌｉｎｅｈ１／２
ｄａｔｕｍ＝左上のとき、
ｄｖｘ＝０，ｄｖｙ＝−ｌｉｎｅｈ１
ｄａｔｕｍ＝中上のとき、
ｄｖｘ＝−ｌｉｎｅｗ１／２，ｄｖｙ＝−ｌｉｎｅｈ１
ｄａｔｕｍ＝右上のとき、
ｄｖｘ＝−ｌｉｎｅｗ１，ｄｖｙ＝−ｌｉｎｅｈ１    （式１８）
【０４６４】
さらに、可視部分を基準にＸ方向の出力位置の平行移動を行なう。各基本文字列の相対開始点の平行移動量は、以下の通りである。
【０４６５】
各基本文字列のｄｖｘ＝
−着目行先頭基本文字列の先頭文字左サイドベアリング      （式１９）
【０４６６】
そして、先頭行先頭基本文字列のベース角（基本文字列の文字列属性データに保持されるａｂａｓ）と、レイアウト基準点座標（テキストデータに保持されるｐｂ〔２〕）を考慮して、回転移動、平行移動を、全ての基本文字列に対して行なえばよい。
【０４６７】
最後に、テキストレイアウト矩形の計算を行なう（ステップＳ３３０５）。
【０４６８】
テキストレイアウト矩形は、各行のテキスト行レイアウト矩形から求められるが、テキストレイアウト矩形幅ｔｅｘｔｗ、テキストレイアウト矩形高さｔｅｘｔｈは、ステップＳ３３０１で求めた相対開始点を利用すれば、次のように求められる。
【０４６９】
ｔｅｘｔｗ＝最大テキスト行幅
ｔｅｘｔｈ＝先頭行のテキスト行高さ
−（最終行先頭基本文字列の相対開始点Ｙ座標
−最終行先頭基本文字列の上下字間カーニング）      （式２０）
【０４７０】
図６７に、テキストレイアウト矩形の計算結果の例を示す。図中、実線の矩形はテキストレイアウト矩形である。点線の矩形は各行のテキスト行レイアウト矩形である。
【０４７１】
図６７（ａ）は、字間カーニングがある場合の例を示している。図６７（ｂ）は、先頭行の前と最終行の後に行間カーニングがある場合の例を示している。最終行の後の行間カーニングは無視される。図６７（ｃ）は、先頭行の前と最終行の後に空行（改行のみの行）がある場合の例を示している。最終行の後の空行は無視される。
【０４７２】
あとは、レイアウト基準位置フラグに応じた平行移動、ベース角に応じた回転移動、レイアウト基準点座標に応じた平行移動を行なって、テキストレイアウト矩形の位置、すなわち、
・テキストレイアウト矩形左下点座標：ｐｌｌ〔２〕
・テキストレイアウト矩形右上点座標：ｐｌｒ〔２〕
を求めればよい。
【０４７３】
では次に、テキストの点レイアウトで、全体長さおよび高さ優先を指定した場合のデータ作成方法について説明する。
【０４７４】
図３４に、テキストの点レイアウトで全体長さおよび高さ優先を指定した際のデータ作成方法を説明するフローチャートを示す。
【０４７５】
前述した通り、全体長さの指定、全体長さを指定した際の高さ優先の有無の指定は、テキスト新規作成パネル３９０１上で行なう。いずれの指定も、点レイアウトの場合のみ有効である。
【０４７６】
まず、各基本文字列の相対開始点ｐｗ〔２〕の計算を行なう（ステップＳ３４０１）。この計算は、全体長さを指定していないものとして行なった、ステップＳ３３０１の計算と同様である。
【０４７７】
次に、各行のテキスト行幅ｌｉｎｅｗの計算を行なう（ステップＳ３４０２）。この計算は、全体長さを指定していないものとして行なった、ステップＳ３３０２の計算と同様である。
【０４７８】
次に、各行のテキスト行高さｌｉｎｅｈの計算を行なう（ステップＳ３４０３）。この計算は、全体長さを指定していないものとして行なった、ステップＳ３３０３の計算と同様である。
【０４７９】
以降の処理は、ステップＳ３４０４による、高さ優先が指定されているかどうかの判定と、ステップＳ３４０５による、最大テキスト行幅と指定した全体長さとの大小判定と、によって、
・図３５に示す、高さ優先指定なしの場合、
・図３６に示す、高さ優先指定あり、最大テキスト行幅≦全体長さの場合、
・図３７に示す、高さ優先指定あり、最大テキスト行幅＞全体長さの場合、
の３通りの処理に分かれる。
【０４８０】
なお、図６８に、テキストの点レイアウトで、全体長さおよび高さ優先を指定した場合の例を示す。図中、実線の矩形はテキスト行レイアウト矩形を示す。
【０４８１】
図６８（ａ）は、全体長さ指定がない場合（＝０を入力）である。図６８（ｂ）は、高さ優先指定あり、最大テキスト行幅＞全体長さの場合である。図６８（ｃ）は、高さ優先指定あり、最大テキスト行幅≦全体長さの場合である。図６８（ｄ）は、高さ優先指定なし、最大テキスト行幅＞全体長さの場合である。図６８（ｅ）は、高さ優先指定なし、最大テキスト行幅≦全体長さの場合である。
【０４８２】
では、図３５のフローチャートに基づき、高さ優先指定なしの場合について説明する。
【０４８３】
この場合は、図６８（ｄ）および図６８（ｅ）の例に示すように、１行のテキストが、指定した全体長さにおさまるように、文字サイズを調整する。図６８（ｄ）のように、最大テキスト行幅＞全体長さの場合は、文字サイズは縮小され、図６８（ｅ）のように、最大テキスト行幅≦全体長さの場合は、文字サイズは拡大される。
【０４８４】
まず、指定した全体長さｗｉｄｌｎとステップＳ３４０２で求められた最大テキスト行幅ｌｉｎｅｗｍの比率ｓｃｌ（＞１）を求める（ステップＳ３５０１）。
【０４８５】
ｓｃｌ＝ｗｉｄｌｎ／ｌｉｎｅｗｍ                   （式２１）
【０４８６】
次に、テキストを構成する各基本文字列の文字列属性およびレイアウト情報データを変更する（ステップＳ３５０２）。文字サイズの変更に伴って、影響を生じるデータも同時に変更する。具体的には、文字サイズ、字間、行間、先頭文字左サイドベアリング、末尾文字右サイドベアリング、文字列幅の各データに、ステップＳ３５０１で求められたｓｃｌを乗じる。
【０４８７】
次に、各基本文字列の相対開始点を再計算する（ステップＳ３５０３）。
【０４８８】
相対開始点の計算方法はステップＳ３４０１と同様であるが、各文字列属性およびレイアウト情報データには、ステップＳ３５０２による変更後のデータを使用して再計算する。
【０４８９】
また、カーニング量は、式９から式１１に基づき、ステップＳ３５０２による変更後のデータを使用してカーニングパラメータから再計算する。
【０４９０】
次に、各行のテキスト行幅を再計算する（ステップＳ３５０４）。
【０４９１】
テキスト行幅の計算方法はステップＳ３４０２と同様であるが、各文字列属性およびレイアウト情報データには、ステップＳ３５０２による変更後のデータを使用して再計算する。
【０４９２】
次に、各行のテキスト行高さを再計算する（ステップＳ３５０５）。
【０４９３】
テキスト行高さの計算方法はステップＳ３４０３と同様であるが、各文字列属性およびレイアウト情報データには、ステップＳ３５０２による変更後のデータを使用して再計算する。
【０４９４】
これ以降の、各基本文字列の文字列開始点の計算ステップＳ３４０９と、テキストレイアウト矩形の計算ステップＳ３４１０は、これらの計算は、全体長さを指定していない場合の、それぞれステップＳ３３０４およびステップＳ３３０５の計算と同様である。
【０４９５】
では、図３６のフローチャートに基づき、高さ優先指定あり、最大テキスト行幅≦全体長さの場合について説明する。
【０４９６】
この場合は、図６８（ｃ）の例に示すように、１行のテキストが、指定した全体長さになるように、一定の字間を追加して調整する。本実施形態では、１行のテキストを構成する各基本文字列がそれぞれ異なる字間を設定している場合でも、一定の字間を追加するとしているが、既に設定されている各基本文字列の字間の比率が変わらないように字間を追加することや、各基本文字列の文字サイズの比率に応じて字間を追加することなども可能である。
【０４９７】
まず、指定した全体長さｗｉｄｌｎとステップＳ３４０２で求められた最大テキスト行幅ｌｉｎｅｗｍの差ｄｉｆ（正値）を求める（ステップＳ３６０１）。
【０４９８】
ｄｉｆ＝ｗｉｄｌｎ−ｌｉｎｅｗｍ                   （式２２）
【０４９９】
次に、ステップＳ３４０２で求められた最大テキスト行幅行の１行の文字数ｎｃｈを計算する。ｎｃｈは、最大テキスト行幅行の各基本文字列の文字数ｎｎの和である。文字数ｎｃｈのとき、字間数は（ｎｃｈ−１）であるから、全体長さに合わせるための１文字あたりの追加字間ｄｉｆｃｈは、次の式２３で表される（ステップＳ３６０２）。
【０５００】
ｄｉｆｃｈ＝ｄｉｆ／（ｎｃｈ−１）                  （式２３）
【０５０１】
次に、テキストを構成する各基本文字列の文字列属性およびレイアウト情報データを変更する（ステップＳ３６０３）。字間の変更に伴って、影響を生じるデータも同時に変更する。具体的には、字間のデータに、ステップＳ３６０２で求められたｄｉｆｃｈを加え、文字列幅のデータに、ｄｉｆｃｈ＊ｎｎを加える。
【０５０２】
次に、各基本文字列の相対開始点を再計算する（ステップＳ３６０４）。
【０５０３】
相対開始点の計算方法はステップＳ３４０１と同様であるが、各文字列属性およびレイアウト情報データには、ステップＳ３６０３による変更後のデータを使用して再計算する。
【０５０４】
また、カーニング量は、式９から式１１に基づき、ステップＳ３６０３による変更後のデータを使用してカーニングパラメータから再計算する。この場合、基準文字高さ、長体率、平体率は変わっていないので、カーニング量そのものは変わっておらず、変更前のカーニングデータが保存されていれば、再計算は不要である。
【０５０５】
次に、各行のテキスト行幅を再計算する（ステップＳ３６０５）。
【０５０６】
テキスト行幅の計算方法はステップＳ３４０２と同様であるが、各文字列属性およびレイアウト情報データには、ステップＳ３６０３による変更後のデータを使用して再計算する。
【０５０７】
これ以降の、各基本文字列の文字列開始点の計算ステップＳ３４０９と、テキストレイアウト矩形の計算ステップＳ３４１０は、全体長さを指定していない場合の、それぞれステップＳ３３０４およびステップＳ３３０５の計算と同様である。
【０５０８】
最後に、図３７のフローチャートに基づき、高さ優先指定あり、最大テキスト行幅＞全体長さの場合について説明する。
【０５０９】
この場合は、図６８（ｂ）の例に示すように、１行のテキストが、指定した全体長さにおさまるように、長体率を調整（小さく）する。
【０５１０】
まず、指定した全体長さｗｉｄｌｎとステップＳ３４０２で求められた最大テキスト行幅ｌｉｎｅｗｍの比率ｓｃｌ（＞１）を求める（ステップＳ３７０１）。計算式は、式２１に示した通りである。
【０５１１】
次に、テキストを構成する各基本文字列の文字列属性およびレイアウト情報データを変更する（ステップＳ３７０２）。長体率の変更の他に、各文字基本文字列の幅方向のデータも同時に変更する。具体的には、字間、先頭文字左サイドベアリング、末尾文字右サイドベアリング、文字列幅の各データに、ステップＳ３７０１で求められたｓｃｌを乗じる。
【０５１２】
次に、各基本文字列の相対開始点を再計算する（ステップＳ３７０３）。
【０５１３】
相対開始点の計算方法はＳ３４０１と同様であるが、各文字列属性およびレイアウト情報データには、ステップＳ３７０２による変更後のデータを使用して再計算する。
【０５１４】
また、カーニング量は、式９から式１１に基づき、ステップＳ３７０２による変更後のデータを使用してカーニングパラメータから再計算する。
【０５１５】
次に、各行のテキスト行幅を再計算する（ステップＳ３７０４）。
【０５１６】
テキスト行幅の計算方法はステップＳ３４０２と同様であるが、各文字列属性およびレイアウト情報データには、ステップＳ３７０２による変更後のデータを使用して再計算する。
【０５１７】
これ以降の、各基本文字列の文字列開始点の計算ステップＳ３４０９と、テキストレイアウト矩形の計算ステップＳ３４１０は、全体長さを指定していない場合の、それぞれステップＳ３３０４およびステップＳ３３０５の計算と同様である。
【０５１８】
では次に、テキストを矩形レイアウトする際のデータ作成方法について説明する。
【０５１９】
図３８に、テキストを矩形レイアウトする際のデータ作成方法を説明するフローチャートを示す。
【０５２０】
また、図６９に、テキストを矩形レイアウトした際の作成データの例を示す。
【０５２１】
図中、実線で示した矩形は、矩形レイアウトの際のレイアウト対象矩形である。また、点線で示した各行の文字列を囲む矩形は、テキスト行レイアウト矩形である。
【０５２２】
図６９（ａ）は、左揃えを指定した場合の例、図６９（ｂ）は、右揃えを指定した場合の例、図６９（ｃ）は、中央揃えを指定した場合の例、図６９（ｄ）は、両端揃えを指定した場合の例、をそれぞれ示している。
【０５２３】
まず、各行のテキスト行幅を計算する（ステップＳ３８０１）。
【０５２４】
テキスト行幅ｌｉｎｅｗはステップＳ３４０２と同様の方法でも計算できるが、この時点では、各基本文字列の相対開始点は求められていないので、着目行について、各基本文字列の文字列幅ｔｗ１〜ｔｗｎ（ｎは着目行の基本文字列数）、左右字間カーニングｄｈｘ１〜ｄｈｘｎ、最終基本文字列の末尾文字右サイドベアリングｓｂｒｎ、字間ｄｆｌｅｔｎ、先頭基本文字列の先頭文字左サイドベアリングｓｂｌ１を考慮して、以下のように求められる。字間ｄｆｌｅｔｎを減算しているのは、最終基本文字列の末尾文字の後ろの字間を除くためである。
【０５２５】
ｌｉｎｅｗ＝（ｄｈｘ１＋ｔｗ１）＋．．．＋（ｄｈｘｎ＋ｔｗｎ）
−ｄｆｌｅｔｎ−ｓｂｌ１＋ｓｂｒｎ               （式２４）
【０５２６】
次に、各行のテキスト行幅とレイアウト対象矩形幅の大小判定をする。（ステップＳ３８０２）
【０５２７】
レイアウト対象矩形幅ｗｒｅｃｔは、テキストのデータとして格納されており、ステップＳ３１０７で、テキストのレイアウト位置を指定する際に、矩形を要素選択によって指定した場合、すなわち、矩形レイアウトを指定した場合に有効なデータである。
【０５２８】
各行について、テキスト行幅とレイアウト対象矩形幅の大小判定を行ない、テキスト行幅の方が大きかった場合には、その該当行について、テキスト行幅がレイアウト対象矩形幅を超えず、かつ、最もテキスト行幅が大きくなるように、ＣＰＵ２１は、自動的に改行を挿入する。（ステップＳ３８０３）
【０５２９】
例えば「ＡＢＣＤＥＦＧ」というテキスト行について、「ＡＢＣＤＥ」までのテキスト行幅を式２４に基づいて計算した場合には、レイアウト対象矩形幅より小さく、または等しくなり、「ＡＢＣＤＥＦ」までのテキスト行幅を式２４に基づいて計算した場合には、レイアウト対象矩形幅より大きくなるという例では、「Ｅ」と「Ｆ」の間に改行が挿入され、このテキスト行は「ＡＢＣＤＥ」と「ＦＧ」の２行に分割される。
【０５３０】
ステップＳ３８０３で、改行が挿入された場合には、その前後で基本文字列が分割されることになるので、このテキストの基本文字列データ、基本文字列レイアウト情報データを再作成する。（ステップＳ３８０４）
【０５３１】
テキスト行幅とレイアウト対象矩形幅の大小判定を行ない、レイアウト対象矩形幅の方が大きかった場合には、そのテキスト行については、ステップＳ３８０３およびステップＳ３８０４の処理は行なう必要がない。
【０５３２】
次に、各基本文字列の相対開始点ｐｗ〔２〕の計算を行なう（ステップＳ３８０５）。この計算は、点レイアウトの場合の、ステップＳ３３０１の計算と同様である。
【０５３３】
次に、各行のテキスト行幅ｌｉｎｅｗの計算を行なう（ステップＳ３８０６）。この計算は、点レイアウトの場合の、ステップＳ３３０２の計算と同様である。
【０５３４】
次に、各行のテキスト行高さｌｉｎｅｈの計算を行なう（ステップＳ３８０７）。この計算は、点レイアウトの場合の、ステップＳ３３０３の計算と同様である。
【０５３５】
さて、矩形レイアウトの場合の行揃え位置には、前述したように、左揃え、右揃え、中央揃え、両端揃え、の４種類がある。これらは、テキスト新規作成パネル３９０１の、行揃え位置選択ボタン３９０７で指定されたものが、行揃えフラグａｄｊとして、テキストのデータに格納されている。
【０５３６】
以降の処理は、行揃えフラグが両端揃えの場合と、両端揃え以外の、左揃え、右揃え、中央揃えの場合とで、処理が異なるので、その判定を行なう。（ステップＳ３８０８）
【０５３７】
ステップＳ３８０８で、行揃えフラグが両端揃え以外と判定された場合の処理を説明する。
【０５３８】
この場合は、レイアウト対象矩形幅ｗｒｅｃｔに合わせて、各テキスト行をＸ方向に移動させる。ｉ行目のＸ方向移動量をｄｘ〔ｉ〕は、テキスト行幅をｌｉｎｅｗ〔ｉ〕とすると、行揃えフラグに応じて、次の式で表される。なお、ここで、ｉ行目のテキスト行幅ｌｉｎｅｗ〔ｉ〕は、ステップＳ３８０６で計算済である。
【０５３９】
左揃えの場合、
ｄｘ〔ｉ〕＝０
右揃えの場合、
ｄｘ〔ｉ〕＝ｗｒｅｃｔ−ｌｉｎｅｗ〔ｉ〕
中央揃えの場合、
ｄｘ〔ｉ〕＝（ｗｒｅｃｔ−ｌｉｎｅｗ〔ｉ〕）／２  （式２５）
【０５４０】
式２５で求まったｄｘ〔ｉ〕を、ｉ行目に存在する各基本文字列の相対開始点のＸ座標ｐｗ〔０〕に加算して、相対開始点を修正する。（ステップＳ３８１１）
【０５４１】
一方、ステップＳ３８０８で、行揃えフラグが両端揃えと判定された場合の処理は次のようになる。
【０５４２】
この場合は、レイアウト対象矩形幅ｗｒｅｃｔに合わせて、各テキスト行の基本文字列に適当な字間を追加して、両端をレイアウト矩形に揃えるようにする。
【０５４３】
ｉ行目の基本文字列について、追加する字間の合計ｄｉｆ〔ｉ〕は、次のように求められる。
【０５４４】
ｄｉｆ〔ｉ〕＝ｗｒｅｃｔ−ｌｉｎｅｗ〔ｉ〕          （式２６）
【０５４５】
ｉ行目の総文字数ｎｃｈ〔ｉ〕は、ｉ行目に存在する各基本文字列の文字数ｎｎの和である。文字数ｎｃｈ〔ｉ〕のとき、字間数は（ｎｃｈ〔ｉ〕−１）であるから、レイアウト対象矩形幅に合わせるためのｉ行目の１文字あたりの追加字間ｄｉｆｃｈ〔ｉ〕は、次の式で表される。
【０５４６】
ｄｉｆｃｈ〔ｉ〕＝ｄｉｆ〔ｉ〕／（ｎｃｈ〔ｉ〕−１）（式２７）
【０５４７】
ただし、式２７が適用されるのは、ｉ行目の総文字数ｎｃｈ〔ｉ〕が１より大きい場合に限られる。ｎｃｈ〔ｉ〕が０または１の場合には、字間を追加しても、両端に揃えることはできないので、この行については、中央揃えと同じ処理を行なう。
【０５４８】
式２６および式２７に基づいて、ｉ行目に存在する各基本文字列の字間のデータに、ｄｉｆｃｈ〔ｉ〕を加え、文字列幅のデータに、ｄｉｆｃｈ〔ｉ〕＊ｎｎを加える。その上で、ｉ行目に存在する各基本文字列の相対開始点のＸ座標ｐｗ〔０〕を再計算して、相対開始点を修正する。（ステップＳ３８０９）
【０５４９】
次に、各行のテキスト行幅を再計算する（ステップＳ３８１０）。ステップＳ３８０９で再計算された相対開始点のデータ、字間のデータ、文字列幅のデータを使用して、ステップＳ３３０２と同様に計算すればよい。
【０５５０】
以降の処理は、行揃えフラグが両端揃えの場合でも、両端揃え以外の、左揃え、右揃え、中央揃えの場合でも、処理は同様である。
【０５５１】
次に、各基本文字列の文字列開始点ｐｔ〔２〕の計算を行なう（ステップＳ３８１２）。
【０５５２】
矩形レイアウトの場合も、点レイアウトの場合と同様、先頭行のテキスト行レイアウト矩形がレイアウトの際の基準となる。矩形レイアウトの場合は、先頭行のテキスト行レイアウト矩形が、レイアウト対象矩形の上辺、左辺、右辺に内接するように、全ての相対開始点をＹ方向に平行移動する。
【０５５３】
その移動量、ｄｖｘ、ｄｖｙは、次の通りである。ｌｉｎｅｈ１は、先頭行のテキスト行高さである。
【０５５４】
ｄｖｘ＝０
ｄｖｙ＝−ｌｉｎｅｈ１                             （式２８）
【０５５５】
さらに、可視部分を基準にＸ方向の出力位置の平行移動を行なう。各基本文字列の相対開始点の平行移動量は、前述した式１９に示した通りである。
【０５５６】
そして、レイアウト対象矩形傾き（テキストデータに保持されるａｒｅｃｔ）と、レイアウト基準点（矩形レイアウトの場合は回転基準点となる）座標（テキストデータに保持されるｐｂ〔２〕）を考慮して、回転移動、平行移動を、全ての基本文字列に対して行なえばよい。
【０５５７】
最後に、テキストレイアウト矩形の計算を行なう（ステップＳ３８１３）。
【０５５８】
テキストレイアウト矩形は、各行のテキスト行レイアウト矩形から求められるが、テキストレイアウト矩形幅ｔｅｘｔｗ、テキストレイアウト矩形高さｔｅｘｔｈは、ステップＳ３８０９またはステップＳ３８１１で求めた相対開始点を利用すれば、前述した式２０のように求められる。
【０５５９】
あとは、式２８に従った平行移動、レイアウト対象矩形傾きに応じた回転移動、レイアウト基準点座標に応じた平行移動を行なって、テキストレイアウト矩形の位置、すなわち、
・テキストレイアウト矩形左下点座標：ｐｌｌ〔２〕
・テキストレイアウト矩形右上点座標：ｐｌｒ〔２〕
を求めればよい。
【０５６０】
次に、文字データを修正する場合について説明する。
【０５６１】
前述したように、「テキスト」コマンドのコマンドメニュー６７の項目には、（１）新規：これから新規にテキストを作成する。
（２）修正：すでに作成されているテキストを修正する。
があり、このうち「修正」メニューを選択した場合について説明する。
【０５６２】
図３１に、テキストを印刷データとしてレイアウトする手順を説明するフローチャートを示したが、テキストを修正する場合も、新規作成する場合と同様に、このフローに従う。
【０５６３】
「修正」メニューをボタン選択した場合は、次に、修正するテキストを選択するように、ガイダンスエリア６８に表示されるので、ユーザーは、この指示に従って、修正したいテキストを要素選択する。
【０５６４】
すると、要素選択したテキストの現在の状態が、図４５に示すような、テキスト修正パネル４５０１に表示される。
【０５６５】
このテキスト修正パネル４５０１上で、テキストを作成するために必要な情報をキーボード１１またはマウス１２によるボタン選択によって入力する。これは「新規作成」メニューを選択した場合の、ステップＳ３１０１からステップＳ３１０３までの処理と同様である。ただし、修正の場合は、既に設定されている情報を変更したい場合のみ、編集を行なえばよい。
【０５６６】
テキスト修正パネル４５０１で入力する情報には、テキストをレイアウトするために必要な情報として、レイアウト基準位置の選択、組形式の選択、行揃えの選択、全体長さ、高さ優先の有無の選択、自動カーニングの有無の選択がある。いずれも、選択されたテキストの現在の状態が表示される。これらの情報は、テキストのデータとして再保存される。
【０５６７】
テキストの文字列データは、テキスト修正パネル４５０１の「文字列修正」ボタンをボタン選択することによって表示される、文字列入力パネル４００１の文字列入力エリア４００２に、キーボード１１から入力する。選択されたテキストの現在の文字列が表示される。この情報は、テキストおよび基本文字列のデータとして再保存される。
【０５６８】
また、テキスト修正パネル４５０１では、文字データの印刷属性すなわち文字列属性である、書体名称、ベース角、平体率、長体率、斜体角、字間、行間、文字の大きさとしての基準文字高さまたは文字サイズ、を入力する。いずれも、選択されたテキストの現在の状態が表示される。これらの情報は、テキストを構成する基本文字列の文字列属性のデータとして再保存される。
【０５６９】
以上の操作を終えたら、ユーザーは、テキスト修正パネル４５０１の「設定」ボタンをボタン選択し、テキストを作成するために必要な情報（テキストをレイアウトするための情報、文字列データ、文字データの印刷属性）を確定する。
【０５７０】
なお、テキスト修正パネル４５０１では、修正対象として選択されたテキストの、テキスト高さ（テキストレイアウト矩形の高さ）、テキスト幅（テキストレイアウト矩形の幅さ）、各行のテキスト行高さ（テキスト行レイアウト矩形の高さ）、各行のテキスト行幅（テキスト行レイアウト矩形の幅）を、テキストレイアウト矩形情報表示エリア４５０８に表示し、ユーザーのテキスト修正作業を助ける。また、テキスト修正パネル４５０１で、各データを修正した後に、「再計算」ボタンをボタン選択すれば、修正されたデータに従って、テキストレイアウト矩形情報の再計算を行なう。
【０５７１】
また、テキスト修正パネル４５０１では、修正対象として選択されたテキストが、点レイアウトされたのか、矩形レイアウトされたのかを、レイアウト情報表示エリア４５０９に表示する。この際、レイアウトの対象となっている、点または矩形は、作画エリア６２上で、赤色などでハイライト表示されて、識別できるようになっている。
【０５７２】
この後の、ステップＳ３１０４からステップＳ３１１０までの処理は、新規作成の場合と同様であるが、ステップＳ３１０７のレイアウト位置を指定する処理は、レイアウト位置の変更がなければ不要である。
【０５７３】
文字列入力パネル４００１で入力された文字列データは、必要に応じて、その書体情報やカーニング情報とともに、外部記憶装置３３に登録しておいて、呼び出すことができる。
【０５７４】
まず、文字列データの登録方法について説明する。
【０５７５】
「テキスト」コマンドのコマンドメニュー６７の項目には、前述した「新規」「修正」の他に、「登録」メニューがあるので、これをボタン選択する。
【０５７６】
次に、登録するテキストを選択するように、ガイダンスエリア６８に表示されるので、ユーザーは、この指示に従って、登録したいテキストを要素選択する。
【０５７７】
すると、図４６に示すような、文字列登録パネル４６０１が表示される。登録名称一覧４６０２には、すでに登録されている文字列データの登録名称がリスト表示される。登録名称一覧４６０２の項目から１つをマウス１２で選択すると、選択された登録名称が、登録名称入力エリア４６０３に、登録時に入力したメモがメモ入力エリア４６０４に表示される。
【０５７８】
すでに登録されている登録名称の文字列データの内容を変更したい場合には、ここで「登録」ボタンをボタン選択すればよい。この際、メモ入力エリア４６０４の内容を変更することはもちろん可能である。
【０５７９】
または、新しい登録名称で文字列データを登録したい場合には、登録名称一覧４６０２の項目から１つをマウス１２で選択してから、登録名称、メモを編集して、「登録」ボタンをボタン選択するか、直接、登録名称入力エリア４６０３に登録名称を、メモ入力エリア４６０４にメモを、キーボード１１から入力してから、「登録」ボタンをボタン選択すればよい。
【０５８０】
文字列データを登録する際には、文字列情報の他に、書体情報、カーニング情報も同時に保存される。
【０５８１】
一方、登録された文字列データの呼出方法は以下の通りである。
【０５８２】
第１の方法は、テキスト新規作成パネル３９０１の「文字列呼出」ボタンをボタン選択する方法である。すると、図４２に示すような、文字列呼出パネル４２０１が表示される。第１の方法では、新規に作成される文字列データが、登録文字列のデータとなる。
【０５８３】
第２の方法は、文字列入力パネル４００１の「文字列呼出」ボタンをボタン選択する方法である。するとやはり、図４２に示すような、文字列呼出パネル４２０１が表示される。第２の方法では、「文字列」入力エリアのカーソル位置に、登録文字列のデータが挿入される。
【０５８４】
呼び出す文字列データの登録名称は、登録名称一覧４２０２にすでに登録されている文字列データの登録名称の一覧がリスト表示されるので、その中から１つをマウス１２で選択するか、登録名称入力エリア４２０３に直接、キーボード１１から登録名称を入力する。登録名称一覧４２０２で選択した登録名称は、登録名称入力エリア４２０３に反映され、逆に、登録名称入力エリア４２０３で入力した登録名称は、それがすでに登録されていれば、登録名称一覧４２０２の該当する項目が選択状態になる。
【０５８５】
登録されていない登録名称を登録名称入力エリア４２０３に表示した状態で、「確認」ボタン、または「呼出」ボタンをボタン選択すると、再入力を促す警告画面が表示されるので、ユーザーは、再度、呼び出す文字列データの登録名称を入力する必要がある。
【０５８６】
文字列データを呼び出す際には、文字列情報とともに、書体情報、カーニング情報も同時に呼び出すかどうかを選択することができる。
【０５８７】
例えば、図６５のテキストを呼び出す場合を例にとって説明する。このテキストは、前述したように、制御文字列で表現すると、以下の通りである。
・「￥ｔ＜２４＠ＡＢ￥ｈ＾１．３３＠ＣＤ￥ＤＥＦ＠
ＥＦ￥ｔ＞２４￥ｔｖ２４＠Ｇ
￥ｌｖ４８＠
￥ｔ＞２４＠ＨＪ」
【０５８８】
文字列データのみを呼び出す場合には、書体情報呼出選択ボタン４２０４で「なし」を、カーニング情報呼出選択ボタン４２０５で「なし」を、ボタン選択すればよい。
【０５８９】
この場合に呼び出される情報を、制御文字列で表現すると、以下の通りである。
・「ＡＢＣＤ
ＥＦＧ
ＨＪ」
【０５９０】
文字列データに書体情報を付加して呼び出す場合には、書体情報呼出選択ボタン４２０４で「あり」を、カーニング情報呼出選択ボタン４２０５で「なし」を、ボタン選択すればよい。
【０５９１】
この場合に呼び出される情報を、制御文字列で表現すると、以下の通りである。
・「ＡＢ￥ｈ＾１．３３＠ＣＤ￥ＤＥＦ＠
ＥＦＧ
ＨＪ」
【０５９２】
文字列データにカーニング情報を付加して呼び出す場合には、書体情報呼出選択ボタン４２０４で「なし」を、カーニング情報呼出選択ボタン４２０５で「あり」を、ボタン選択すればよい。
【０５９３】
この場合に呼び出される情報を、制御文字列で表現すると、以下の通りである。
・「￥ｔ＜２４＠ＡＢＣＤ
ＥＦ￥ｔ＞２４￥ｔｖ２４＠Ｇ
￥ｌｖ４８＠
￥ｔ＞２４＠ＨＪ」
【０５９４】
文字列データに書体情報およびカーニング情報を付加して呼び出す場合には、書体情報呼出選択ボタン４２０４で「あり」を、カーニング情報呼出選択ボタン４２０５で「あり」を、ボタン選択すればよい。
【０５９５】
この場合に呼び出される情報を、制御文字列で表現すると、以下の通りで、登録文字列データと同じである。
・「￥ｔ＜２４＠ＡＢ￥ｈ＾１．３３＠ＣＤ￥ＤＥＦ＠
ＥＦ￥ｔ＞２４￥ｔｖ２４＠Ｇ
￥ｌｖ４８＠
￥ｔ＞２４＠ＨＪ」
【０５９６】
ここで、文字列呼出パネル４２０１の「確認」ボタンをボタン選択すると、図４３に示すような、呼出内容確認パネル４３０１が表示されるので、ユーザーは、呼び出される文字列データの内容を確認できる。
【０５９７】
文字列呼出パネル４２０１の「呼出」ボタンをボタン選択すると、第１の方法、第２の方法のそれぞれに従って、登録文字列の制御文字列データが、文字列入力パネル４００１の「文字列」入力エリアに呼び出される。
【０５９８】
字間カーニングの設定方法については前述した通りだが、各書体名称ごとに、あらかじめ、字間カーニング量を設定しておくことができる。これを、自動カーニングと呼ぶことにする。自動カーニングには、特定の２文字の間の字間カーニング量を設定する場合と、特定の文字の前または後の字間カーニング量を設定する場合と、がある。
【０５９９】
自動カーニングを有効にするには、テキスト新規作成パネル３９０１の自動カーニング選択ボタン３９０５、または、テキスト修正パネル４５０１の自動カーニング選択ボタン４５０５で、「あり」をボタン選択すればよい。この情報は、テキストデータの、自動カーニングフラグとして保存される。
【０６００】
自動カーニングのデータは、あらかじめ、自動カーニングデータファイルとして、外部記憶装置３３に、書体名称ごとに作成しておく。
【０６０１】
特定の２文字の間の字間カーニング量を設定するフォーマットは次の通りである。指定の方法には、２つの方法があり、文字を「”」〔”〕でくくって指定する方法と、文字コードを「＜」「＞」でくくって指定する方法がある。
【０６０２】
文字で指定する方法は、以下のフォーマットで表される。「Ａ」は、文字で指定する方法を示すキーワードで、文字の前後関係も考慮して、ある書体の、”ｃｈａｒ１”と”ｃｈａｒ２”の間の字間カーニングパラメータを、
Ｘ方向にｄｘｐ、Ｙ方向にｄｙｐに設定することを表している。
【０６０３】
Ａ  ”ｃｈａｒ１”  ”ｃｈａｒ２”  ｄｘｐ  ｄｙｐ
【０６０４】
例えば、ある書体の文字「Ａ」と文字「Ｂ」の間の字間カーニングパラメータを、Ｘ方向に−２、Ｙ方向に＋２に設定する場合は、次のように表現される。
【０６０５】
Ａ  ”Ａ”  ”Ｂ”  −２  ２
【０６０６】
文字コードで指定する方法は、以下のフォーマットで表される。「Ｃ」は、文字コードで指定する方法を示すキーワードで、文字の前後関係も考慮して、ある書体の、＜ｃｏｄｅ１＞と＜ｃｏｄｅ２＞の間の字間カーニングパラメータを、Ｘ方向にｄｘｐ、Ｙ方向にｄｙｐに設定することを表している。
【０６０７】
Ｃ  ＜ｃｏｄｅ１＞  ＜ｃｏｄｅ２＞  ｄｘｐ  ｄｙｐ
【０６０８】
例えば、ある書体の文字コードｄａと文字コードｄｂの間の字間カーニングパラメータを、Ｘ方向に４、Ｙ方向に０に設定する場合は、次のように表現される。
【０６０９】
Ｃ  ＜ｄａ＞  ＜ｄｂ＞  ４  ０
【０６１０】
特定の文字の前または後の字間カーニング量を設定するフォーマットは次の通りである。すなわち、特定の２文字の間の字間カーニング量を設定するフォーマットで、特定の文字の前の字間カーニングを設定する場合には、
”ｃｈａｒ１”の代わりに””を指定するか、＜ｃｏｄｅ１＞の代わりに＜００＞を指定すればよい。また、特定の文字の後の字間カーニングを設定する場合には、”ｃｈａｒ２”の代わりに””を指定するか、＜ｃｏｄｅ２＞の代わりに＜００＞を指定すればよい。
【０６１１】
Ａ  ””  ”ｃｈａｒ２”  ｄｘｐ  ｄｙｐ
Ｃ  ＜００＞  ＜ｃｏｄｅ２＞  ｄｘｐ  ｄｙｐ
Ａ  ”ｃｈａｒ１”  ””  ｄｘｐ  ｄｙｐ
Ｃ  ＜ｃｏｄｅ１＞  ＜００＞  ｄｘｐ  ｄｙｐ
【０６１２】
例えば、ある書体のハイフン「−」（文字コードは、例えば９５）の前の字間カーニングパラメータを、Ｘ方向に−１０、Ｙ方向に＋２０に設定する場合は、次のどちらかの表現をすればよい。
【０６１３】
Ａ  ””  ”−”  −１０  ２０
Ｃ  ＜００＞  ＜９５＞  −１０  ２０
【０６１４】
また例えば、ある書体のハイフン「−」（文字コードは、例えば９５）の後の字間カーニングパラメータを、Ｘ方向に−１０、Ｙ方向に−２０に設定する場合は、次のどちらかの表現をすればよい。
【０６１５】
Ａ  ”−”  ””  −１０  −２０
Ｃ  ＜９５＞  ＜００＞  −１０  −２０
【０６１６】
自動カーニングデータは、文字列入力パネル４００１の「文字列」入力エリアで、ユーザーが前述の方法で入力した字間カーニングのデータに加算して評価される。従って、基本文字列レイアウト情報データの左右字間カーニングｄｈｘ、上下字間カーニングｄｈｙのデータには、自動カーニングを加味した値が設定される。
【０６１７】
また、自動カーニングデータの制御フォーマットは「文字列」入力エリアには表示されない。これは、自動カーニングには、ユーザーによらず一定の適切な字間カーニングを与えるという目的があるので、ユーザーが意図なしに容易に変更できないようにするためである。
【０６１８】
〔印刷データの印刷〕
次に、作成された印刷データを、レーザープリンタ５１やイメージセッター５２などの印刷装置で印刷する手順を説明する。
【０６１９】
印刷データが、例えば、版下として使用される場合、レーザープリンタ５１は、印刷データを、校正刷り（印刷データの確認のための出力）し、また、印刷ログファイルの内容を出力するのに用いられ、イメージセッター５２は、印刷データを、清刷り（正式な版下となる高精度な出力）するのに用いられる。
【０６２０】
本実施形態に係る情報処理装置においては、図形データおよび文字データを、印刷時の出力形態と同じ表示形態のイメージで、表示装置４１へ表示する制御を行なう、いわゆるＷＹＳＩＷＹＧの機能を有している、
しかしながら、ＷＹＳＩＷＹＧの機能を有していても、表示装置４１は、１００ＤＰＩ程度の解像度しかないため、細かいレイアウトの確認や、ミスのチェックなどを行なうためには、５００ＤＰＩ程度といった、表示装置４１よりはるかに高い解像度を持つ、レーザープリンタ５１で、印刷データを印刷しなければならない。
【０６２１】
もちろん、直接、イメージセッター５２で印刷データを印刷して、これらの確認を行なうことも可能ではあるが、イメージセッター５２は、解像度が３０００ＤＰＩ程度と、極めて高いために、専用の用紙を使用しなければならず、また、印刷のコストがかかり、出力のスピードが遅いなどの欠点があるので、最終的にイメージセッター５２で印刷するような場合でも、あらかじめ、レーザープリンタ５１で印刷データを印刷して、出力形態の確認を行なっておくのが普通である。
【０６２２】
（実施形態による効果）
以上説明したように、本発明に係る第１の実施形態によれば、次のような効果がある。
【０６２３】
まず、版下などの印刷データとして、図形データや文字データ、特に文字データを印刷する場合に、容易に正確なレイアウトを実現することができる。
【０６２４】
また、単なる図形データや文字データだけではなく、イラストやシンボルといったようなグループデータも、容易に取り扱うことができる。
【０６２５】
また、レーザープリンターやイメージセッター等で印刷する場合に、その印刷装置の種類によって、校正刷りや清刷りなどの適切な印刷方法を選択することができる。
【０６２６】
【発明の効果】
以上説明したように、本発明によれば、ユーザーの作業効率を低下させることなく、しかも、精度の高い印刷データ、特に、文字データを含む印刷データを正確かつ容易に作成することが可能になるという効果がある。
【図面の簡単な説明】
【図１】本発明の一実施形態の情報処理装置のハードウエア構成を示すブロック図である。
【図２】ＷＹＳＩＷＹＧの機能を説明する図である。
【図３】本実施形態のプログラムのメインパネルを示す図である。
【図４】各要素の特徴点を示す図である。
【図５】交点指定による位置の指定の例を示す図である。
【図６】線上点指定による位置の指定の例を示す図である。
【図７】印刷データファイルの例を示す図である。
【図８】シンボルの例を示す図である。
【図９】基本図形を印刷データとしてレイアウトする手順を説明するフローチャートである。
【図１０】図形データに印刷属性を付加した例を示す図である。
【図１１】図形データ印刷属性編集パネルを示す図である。
【図１２】線ピッチ編集パネル（二点鎖線の例）を示す図である。
【図１３】要素のグループ化とシンボルの登録をする手順を説明するフローチャートである。
【図１４】矩形領域指定によって対象となる要素が選択された様子を示す図である。
【図１５】任意領域指定によって対象となる要素が選択された様子を示す図である。
【図１６】シンボルの輪郭情報を抽出した結果の例を示す図である。
【図１７】座標データの量子化を説明する図である。
【図１８】一時的に要素を拡大表示して輪郭情報を抽出する手順を説明するフローチャートである。
【図１９】幾何学的な手法で輪郭情報を抽出する手順を説明するフローチャートである。
【図２０】線分列の輪郭情報を幾何学的な手法で抽出した例を示す図である。
【図２１】グループ化された要素とその外接矩形を示す図である。
【図２２】矩形の特徴点を示す図である。
【図２３】任意矩形をグループ図形のレイアウト基準矩形に設定した例を示す図である。
【図２４】構成要素の外接矩形をグループ図形のレイアウト基準矩形に設定した例を示す図である。
【図２５】シンボルの呼び出しとレイアウトをする手順を説明するフローチャートである。
【図２６】シンボルレイアウトパネルを示す図である。
【図２７】シンボル形状一覧パネルを示す図である。
【図２８】シンボル内容確認パネルを示す図である。
【図２９】シンボルを点レイアウトした例を示す図である。
【図３０】シンボルを矩形レイアウトした例を示す図である。
【図３１】テキストを印刷データとしてレイアウトする手順を説明するフローチャートである。
【図３２】文字高さ比率を計算する手順を説明するフローチャートである。
【図３３】テキストを点レイアウトする際のデータ作成方法を説明するフローチャートである。
【図３４】テキストの点レイアウトで全体長さおよび高さ優先を指定した際のデータ作成方法を説明するフローチャートである。
【図３５】高さ優先指定なしの場合のデータ作成方法を説明するフローチャートである。
【図３６】高さ優先指定あり、最大テキスト行幅≦全体長さの場合のデータ作成方法を説明するフローチャートである。
【図３７】高さ優先指定あり、最大テキスト行幅＞全体長さの場合のデータ作成方法を説明するフローチャートである。
【図３８】テキストを矩形レイアウトする際のデータ作成方法を説明するフローチャートである。
【図３９】テキスト新規作成パネルを示す図である。
【図４０】文字列入力パネルを示す図である。
【図４１】カーニング入力パネルを示す図である。
【図４２】文字列呼出パネルを示す図である。
【図４３】呼出内容確認パネルを示す図である。
【図４４】書体情報変更パネルを示す図である。
【図４５】テキスト修正パネルを示す図である。
【図４６】文字列登録パネルを示す図である。
【図４７】文字列属性のベース角を説明する図である。
【図４８】文字列属性の文字方向を説明する図である。
【図４９】文字列属性の斜体角を説明する図である。
【図５０】文字列属性の横反転フラグと縦反転フラグを説明する図である。
【図５１】テキストの例を示す図である。
【図５２】文字に関する用語を説明する図である。
【図５３】サイドベアリングが負である文字の例を示す図である。
【図５４】平体率および長体率を説明する図である。
【図５５】文字データに印刷属性を付加した例を示す図である。
【図５６】テキストの輪郭情報を抽出した結果の例を示す図である。
【図５７】テキストのレイアウト基準矩形とレイアウト基準位置を示す図である。
【図５８】テキストを点レイアウトした場合の例を示す図である。
【図５９】テキストの字間を設定した場合の例を示す図である。
【図６０】テキストの行間を設定した場合の例を示す図である。
【図６１】テキストの字間カーニングを設定した場合の例を示す図である。
【図６２】テキストの行間カーニングを設定した場合の例を示す図である。
【図６３】テキストの書体情報を変更した場合の例を示す図である。
【図６４】テキストの書体情報を初期値に復帰した場合の例を示す図である。
【図６５】テキストを点レイアウトした際の作成データの例を示す図である。
【図６６】テキスト行幅の計算結果の例を示す図である。
【図６７】テキストレイアウト矩形の計算結果の例を示す図である。
【図６８】テキストの点レイアウトで全体長さおよび高さ優先を指定した場合の例を示す図である。
【図６９】テキストを矩形レイアウトした際の作成データの例を示す図である。
【符号の説明】
１１  キーボード
１２  マウス
２１  中央処理装置（ＣＰＵ）
２２  システムバス
３１  読出専用記憶装置（ＲＯＭ）
３２  読出書込記憶装置（ＲＡＭ）
３３  外部記憶装置
４１  表示装置
５１  レーザープリンタ
５２  イメージセッター
５３  レーザーマーカー
６１  メインパネル
６２  作画エリア
６３  マウスポインタ
６４  文字入力エリア
６５  ボタン
６６  汎用ボタン
６７  コマンドメニュー
６８  ガイダンスエリア
７１  パネル
７２  ボタン
【図１】
0004174117.tif 000004
【図２】
0004174117.tif 000005
【図３】
0004174117.tif 000006
【図４】
0004174117.tif 000007
【図５】
0004174117.tif 000008
【図６】
0004174117.tif 000009
【図７】
0004174117.tif 000010
【図８】
0004174117.tif 000011
【図９】
0004174117.tif 000012
【図１０】
0004174117.tif 000013
【図１１】
0004174117.tif 000014
【図１２】
0004174117.tif 000015
【図１３】
0004174117.tif 000016
【図１４】
0004174117.tif 000017
【図１５】
0004174117.tif 000018
【図１６】
0004174117.tif 000019
【図１７】
0004174117.tif 000020
【図１８】
0004174117.tif 000021
【図１９】
0004174117.tif 000022
【図２０】
0004174117.tif 000023
【図２１】
0004174117.tif 000024
【図２２】
0004174117.tif 000025
【図２３】
0004174117.tif 000026
【図２４】
0004174117.tif 000027
【図２５】
0004174117.tif 000028
【図２６】
0004174117.tif 000029
【図２７】
0004174117.tif 000030
【図２８】
0004174117.tif 000031
【図２９】
0004174117.tif 000032
【図３０】
0004174117.tif 000033
【図３１】
0004174117.tif 000034
【図３２】
0004174117.tif 000035
【図３３】
0004174117.tif 000036
【図３４】
0004174117.tif 000037
【図３５】
0004174117.tif 000038
【図３６】
0004174117.tif 000039
【図３７】
0004174117.tif 000040
【図３８】
0004174117.tif 000041
【図３９】
0004174117.tif 000042
【図４０】
0004174117.tif 000043
【図４１】
0004174117.tif 000044
【図４２】
0004174117.tif 000045
【図４３】
0004174117.tif 000046
【図４４】
0004174117.tif 000047
【図４５】
0004174117.tif 000048
【図４６】
0004174117.tif 000049
【図４７】
0004174117.tif 000050
【図４８】
0004174117.tif 000051
【図４９】
0004174117.tif 000052
【図５０】
0004174117.tif 000053
【図５１】
0004174117.tif 000054
【図５２】
0004174117.tif 000055
【図５３】
0004174117.tif 000056
【図５４】
0004174117.tif 000057
【図５５】
0004174117.tif 000058
【図５６】
0004174117.tif 000059
【図５７】
0004174117.tif 000060
【図５８】
0004174117.tif 000061
【図５９】
0004174117.tif 000062
【図６０】
0004174117.tif 000063
【図６１】
0004174117.tif 000064
【図６２】
0004174117.tif 000065
【図６３】
0004174117.tif 000066
【図６４】
0004174117.tif 000067
【図６５】
0004174117.tif 000068
【図６６】
0004174117.tif 000069
【図６７】
0004174117.tif 000070
【図６８】
0004174117.tif 000071
【図６９】
0004174117.tif 000072