(57)【特許請求の範囲】
【請求項１】
メモデータ取得手段、関連付け情報取得手段、余白特定手段、およびメモレイアウト生成手段とを備えた表示装置が実行する表示方法であって、
上記メモデータ取得手段が、メモを表すメモデータを取得するメモデータ取得ステップと、
上記関連付け情報取得手段が、表示対象要素を表す構成要素データの一つ以上の集まりからなるコンテンツデータの一部である参照データと上記メモデータとの表示状態における対応関係を特定した関連付け情報であって、上記参照データのデータ範囲を上記コンテンツデータ内で特定したデータ位置およびメモデータのレイアウトの仕方に関する情報を含む関連付け情報を取得する関連付け情報取得ステップと、
上記余白特定手段が、上記表示対象要素の一つ以上を座標空間上に配置したレイアウトの中から、表示対象要素が配置されていない余白範囲を、上記レイアウトを記述したレイアウトデータに含まれる、上記表示対象要素についての上記座標空間上の座標位置および大きさによって特定する余白特定ステップと、
上記余白特定手段が、表示対象要素が配置されたレイアウト範囲および上記余白範囲を、複数の分割レイアウト範囲および複数の分割余白範囲に分割し、各分割レイアウト範囲および分割余白範囲の上記座標空間上の座標位置および大きさを、上記レイアウトデータに含まれる、上記表示対象要素についての座標位置および大きさによって求め、求めた座標位置および大きさを基にして、各分割レイアウト範囲に隣接する一つ以上の分割余白範囲を求める隣接余白特定ステップと、
上記メモレイアウト生成手段が、上記レイアウトデータを走査し、上記レイアウトデータに含まれる、上記表示対象要素の上記コンテンツデータ内におけるデータ位置と、上記関連付け情報に含まれる、上記参照データの上記データ位置とを比較して等しいときに、上記関連付け情報によってメモデータと対応付けられた参照データを上記レイアウトデータの中から特定する参照データ特定ステップと、
上記メモレイアウト生成手段が、上記参照データ特定ステップにて特定した参照データのデータ位置と、上記分割レイアウト範囲のレイアウトデータに含まれるデータ位置とを比較することによって、上記参照データが属する分割レイアウト範囲を特定するとともに、この特定した分割レイアウト範囲に隣接する上記一つ以上の分割余白範囲の中から、上記関連付け情報に含まれる、メモデータのレイアウトの仕方に関する情報を参照して、メモデータを配置すべき分割余白範囲を特定する余白範囲特定ステップと、
上記メモレイアウト生成手段が、上記メモデータ取得ステップにて取得したメモデータを、上記余白範囲特定ステップで特定した上記分割余白範囲に配置することによって、配置されたメモデータと表示対象要素との重なり部分が無いメモデータ、あるいは配置されたメモデータの面積に対する上記重なり部分の面積の割合が所定割合以下となるメモデータ、あるいは上記重なり部分の面積が所定面積以下となるメモデータのレイアウトを記述したメモレイアウトデータを生成するメモレイアウト生成ステップと、を有することを特徴とする表示方法。
【請求項２】
上記表示装置は、さらにレイアウト出力手段を備え、
上記メモレイアウト生成手段が、上記参照データ特定ステップにて特定した上記参照データのデータ位置に基づいて、上記レイアウトデータから、上記参照データの座標位置を取得するとともに、生成された上記メモレイアウトデータに含まれた、上記メモデータの座標位置を取得し、
上記レイアウト出力手段が、前記関連付け情報に含まれた参照データとメモデータとの関連付け表示の仕方に関する関連付け表示情報と、上記メモレイアウト生成手段が取得した上記参照データおよびメモデータの各座標位置とに基づいて、前記参照データと前記メモデータとを関連付けて自動的に表示する表示ステップを有することを特徴とする請求項１に記載の表示方法。
【請求項３】
上記関連付け表示情報が、参照データとメモデータとの関連付け表示の仕方として引き出し線を指定している場合、上記表示ステップにおいて、上記レイアウト出力手段が、前記参照データと前記メモデータとを線で結んで表示することを特徴とする請求項２に記載の表示方法。
【請求項４】
上記関連付け情報が、コンテンツデータの複数部分の参照データとメモデータとの表示状態における対応関係を特定しており、上記関連付け表示情報が、参照データとメモデータとの関連付け表示の仕方として引き出し線を指定している場合、上記表示ステップにおいて、上記レイアウト出力手段が、上記複数部分の参照データと一つのメモデータとを線で結んで表示する表示ステップを有することを特徴とする請求項２に記載の表示方法。
【請求項５】
上記関連付け情報が、参照データと複数のメモデータとの表示状態における対応関係を特定しており、上記関連付け表示情報が、参照データとメモデータとの関連付け表示の仕方として引き出し線を指定している場合、上記表示ステップにおいて、上記レイアウト出力手段が、上記参照データと上記複数のメモデータとを線で結んで表示することを特徴とする請求項２に記載の表示方法。
【請求項６】
前記メモデータが、表示の有無を表す情報を持ち、
前記メモデータが表示しないという情報を持つ場合は、上記表示ステップにおいて、上記レイアウト出力手段が、前記メモデータのレイアウトの表示とそのメモデータに関連付けられた関連付け情報に基づく関連付け表示を行わないことを特徴とする請求項２から５のいずれか一項に記載の表示方法。
【請求項７】
メモを表すメモデータを取得するメモデータ取得手段と、
表示対象要素を表す構成要素データの一つ以上の集まりからなるコンテンツデータの一部である参照データと上記メモデータとの表示状態における対応関係を特定した関連付け情報であって、上記参照データのデータ範囲を上記コンテンツデータ内で特定したデータ位置およびメモデータのレイアウトの仕方に関する情報を含む関連付け情報を取得する関連付け情報取得手段と、
上記表示対象要素の一つ以上を座標空間上に配置したレイアウトの中から、表示対象要素が配置されていない余白範囲を、上記レイアウトを記述したレイアウトデータに含まれる、上記表示対象要素についての上記座標空間上の座標位置および大きさによって特定する余白特定ステップと、表示対象要素が配置されたレイアウト範囲および上記余白範囲を、複数の分割レイアウト範囲および複数の分割余白範囲に分割し、各分割レイアウト範囲および分割余白範囲の上記座標空間上の座標位置および大きさを、上記レイアウトデータに含まれる、上記表示対象要素についての座標位置および大きさによって求め、求めた座標位置および大きさを基にして、各分割レイアウト範囲に隣接する一つ以上の分割余白範囲を求める隣接余白特定ステップとを実行する余白特定手段と、
上記レイアウトデータを走査し、上記レイアウトデータに含まれる、上記表示対象要素の上記コンテンツデータ内におけるデータ位置と、上記関連付け情報に含まれる、上記参照データの上記データ位置とを比較して等しいときに、上記関連付け情報によってメモデータと対応付けられた参照データを上記レイアウトデータの中から特定する参照データ特定ステップと、上記参照データ特定ステップにて特定した参照データのデータ位置と、上記分割レイアウト範囲のレイアウトデータに含まれるデータ位置とを比較することによって、上記参照データが属する分割レイアウト範囲を特定するとともに、この特定した分割レイアウト範囲に隣接する上記一つ以上の分割余白範囲の中から、上記関連付け情報に含まれる、メモデータのレイアウトの仕方に関する情報を参照して、メモデータを配置すべき分割余白範囲を特定する余白範囲特定ステップと、上記メモデータ取得手段が取得したメモデータを、上記余白範囲特定ステップで特定した上記分割余白範囲に配置することによって、配置されたメモデータと表示対象要素との重なり部分が無いメモデータ、あるいは配置されたメモデータの面積に対する上記重なり部分の面積の割合が所定割合以下となるメモデータ、あるいは上記重なり部分の面積が所定面積以下となるメモデータのレイアウトを記述したメモレイアウトデータを生成するメモレイアウト生成ステップとを実行するメモレイアウト生成手段と、
を有することを特徴とする表示装置。
【請求項８】
請求項１ないし６のいずれか一項に記載の表示方法が備える各ステップを、コンピュータに実行させるための表示プログラム。
【請求項９】
請求項７に記載の表示装置が備える各手段として、コンピュータを機能させるための表示プログラム。
【請求項１０】
請求項８または９に記載の表示プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、文字、文字列または画像等の表示対象要素を座標空間にレイアウト（配置）して、表示装置に表示する方法、その方法を実施するための装置、プログラムおよびプログラム媒体に関する。
【０００２】
【従来の技術】
従来、文書などを電子的に見るプログラムや装置において、書き込みやメモ（付箋）を貼り付けることができるものが存在する。
【０００３】
例えば、Ａｄｏｂｅ社の文書処理プログラムＡｃｒｏｂａｔ  Ｅｘｃｈａｎｇｅでは、レイアウト上にメモを追加することができ、テキストを入力できる。文書の本文は固定したレイアウトで表示され、メモはユーザによって指定された位置に表示される。もし既存の本文レイアウトと重なるような位置にメモを表示した場合、メモの表示で重なる部分の本文の表示は隠れてしまう。
【０００４】
また、Ｍｉｃｒｏｓｏｆｔ社のワープロ（ワードプロセッサ）ソフトＷｏｒｄは、文字の大きさなどの変更によってレイアウトが動的に変わるが、選択したテキストに対して「コメント」（メモ）情報を関連付けることができ、テキストや音声データ、画像などを貼り付けることができる。また、レイアウトの変更があれば追従してコメントの位置も変化する。文書ウィンドウ上で、コメントに対応するテキスト部分はハイライト表示され、マウスカーソルを重ねることで、文書ウィンドウ上にコメントの内容がポップアップウィンドウとして表示される。コメントの編集は、文書表示範囲とは別のウィンドウで行う。コメントにはそれぞれ固有の識別文字列が自動的に振られ、選択したテキストと編集ウィンドウの対応は識別文字列によって視認可能となっている。
【０００５】
また、電子書籍コンソーシアムの電子書籍リーダーＰＣ  Ｖｉｅｗｅｒでは、文書は固定したレイアウトで表示され、文書の上に直接、手書き入力することができる。レイアウトが固定されているので、入力された手書きデータに対応する文字などを選択する必要はなく、必要ならば対応するテキストに対して下線や矢印を手書き入力したりするなどして対応関係を示すことができる。また独立したウィンドウとして「付箋」を貼り付けることができ、付箋内にテキストや手書き文字を入力することができる。付箋はＡｃｒｏｂａｔ  Ｅｘｃｈａｎｇｅ同様、固定したレイアウト上の位置情報を持っている。
【０００６】
また、Ｍｉｃｒｏｓｏｆｔ社のワープロソフトＰｏｃｋｅｔＷｏｒｄでは、テキストと手書き文字、手書き図を一緒に扱うことができる。手書き文字は通常のテキストと同様、「文字」として扱われ、編集の対象となり、属する行があり、その行内では他のテキスト文字と重なることはない。手書き図は手書き文字のようには分離できず、全体が一塊となって表示され、その一塊を単位として編集の対象となり、属する行があるが、その属する行以外では他のテキスト文字と重ねて表示される。
【０００７】
【発明が解決しようとする課題】
ところが、上記従来の表示方法では、メモを本文の該当個所と関連付けた状態で、かつ本文がメモに隠されないように、メモをレイアウトして表示するという使い勝手の良い表示状態を得ることが困難である。
【０００８】
また、上記の使い勝手の良い表示状態が得られたとしても、本文のレイアウトを変更した場合には、その表示状態が崩れてしまうという問題点もある。
【０００９】
具体的には、Ａｃｒｏｂａｔ  ＥｘｃｈａｎｇｅやＰＣ  Ｖｉｅｗｅｒなどは固定レイアウトの文書データを持つので、表示デバイスの大きさや文字の大きさなどを変更してレイアウトし直して表示することはできず、小さな表示デバイス上ではスクロールや縮小表示などをせねばならず、またユーザが見やすいように文字の大きさなどを自由に変更することもできないという欠点がある。
【００１０】
また、Ｗｏｒｄは、動的にレイアウトを変更でき、レイアウトの変更に伴い、コメントに関連付けられたテキスト部分も追従して移動するが、コメントの内容の表示は、編集時は文書ウィンドウに隣接する別ウィンドウで、閲覧時は文書ウィンドウに重ねて表示されて下の文書の一部が隠れてしまうようなポップアップウィンドウで行われる。
【００１１】
紙の本に手で書き込むメモは、通常は関連する本文の近くに書き込むので、対応関係が分かりやすいが、Ｗｏｒｄの様に編集時に隣接する別ウィンドウで表示させると、コメントに関連付けられたテキストと距離的に離れて表示されるので、対応関係が分かりにくい欠点がある。
【００１２】
また、紙の本に手で書き込むメモは、通常は関連する本文と重ならない様に、あるいは読むのに支障が無い程度にしか重ならない様に書き込まれるが、Ｗｏｒｄの様に閲覧時にポップアップウィンドウでメモが表示されると、文書に重ねて表示されるため、下の文書の一部が隠れてしまう。すなわち、文書とコメントを同時に見ることができないという欠点がある。
【００１３】
また、紙の本に手で書き込むメモでは、複数のテキストや図などの間で矢印などで関連付けの表現をしたり、複数のテキストや図などに対して同じ内容のメモを関連付けたりすることができる。これに対し、Ｗｏｒｄのコメントの関連付けは、一つのコメントに対して一つのテキスト範囲だけであり、一つのコメントに対して複数のテキスト範囲を関連付けたり、一つのテキスト範囲に対して複数のコメントを関連付けたりすることはできないという欠点がある。
【００１４】
また、ＰｏｃｋｅｔＷｏｒｄでは、手書き文字や手書き図をレイアウト変更に追従して移動させることはできるが、それらは通常の文字同様、本文の一部となっている為に追従できるだけであり、そのレイアウト範囲は、本文のレイアウト範囲内にとどまる。また、他の本文の部分を参照するような情報も持っていない。従って、紙の本に書き込むような、本文のレイアウト範囲の外（行間など）で、本文の一部を下線や矢印で参照するような形では表示させることができないという欠点がある。
【００１５】
また、手書き入力は複数の行にまたがったようなものも入力できるが、属する行は１つであり、手書き文字は属する行内では他の文字とは重ならないが、その行をはみでる部分は他の行の表示と重なってしまう欠点がある。
【００１６】
また、手書き図は属する行内でも重なってしまう欠点がある。
【００１７】
本発明の目的は、レイアウトを動的に変更できるという紙の本にない特徴を持ちながら、手書きデータやテキストデータなどからなるメモで、本文のレイアウト変更に追従して自動的にメモのレイアウトを変更して表示したり、紙の書籍と同じような使い勝手、すなわち文書本文とメモの表示ができるだけ重ならずに同時に視認できることや、本文の該当個所と関連付けて使えること、該当個所とメモの関連付けがお互いに複数に対して行えることなど、を実現する表示方法、その方法を実施するための装置、プログラムおよびプログラム媒体を提供することにある。
【００１８】
【課題を解決するための手段】
本発明に係る表示方法は、上記の課題を解決するために、概略的には、表示対象要素の一つ以上を座標空間上に配置したレイアウトの中から、表示対象要素が配置されていない余白範囲を、上記レイアウトを記述したレイアウトデータを用いて特定する余白特定ステップと、メモを表すメモデータを、上記余白範囲に配置することによって、表示対象要素との重なりが無い、あるいは所定割合以下、あるいは所定面積以下となるメモデータのレイアウトを記述したメモレイアウトデータを生成するメモレイアウト生成ステップとを有している。
【００１９】
ここで、「表示対象要素」とは、文字、文字列、画像などのレイアウトされる単位を意味し、レイアウトとは、座標空間における表示対象要素の配置を意味する。したがって、座標空間における表示対象要素の配置、すなわちレイアウトに従って、出力先の表示装置、印刷装置等における出力／表示媒体に、表示対象要素を出力／表示することができる。
【００２０】
分かり易くする為に「表示対象要素」と呼んでいるが、必ずしも「表示」だけに限らず、印刷やデータ出力、ファイル出力などのあらゆる「出力」に関わる要素を含むものである。したがって、ここで使われている「表示」という言葉は全て「出力」の意味も含まれている。なお、以降、単に「要素」と述べた場合は、「表示対象要素」を意味する。
【００２１】
また、表示対象要素の数は、レイアウトの枠組みの中に１つ以上あれば、特に限定されない。例えば、出力先の表示媒体が印刷用紙の場合に、白い紙面中の一部領域に写真が１枚、あるいは文字が１文字、レイアウトされるような場合や、２枚の紙面にまたがるように写真が１枚、レイアウトされるような場合にも本発明が適用される。
【００２２】
「余白範囲」は、レイアウトの枠組みの中で表示対象要素をレイアウトした残り部分を指す。データとして説明すると、レイアウトの枠組みに対応する座標空間に、表示対象要素のデータの一つ以上の集まりとしてのコンテンツデータをレイアウトした残り部分であり、メモデータをレイアウトできる範囲を指す。
【００２３】
よりわかりやすく「余白範囲」を言い表せば、紙面（全レイアウト範囲＝最大のレイアウト可能範囲）の周囲の余白部分と、コンテンツデータのレイアウトの行間の余白部分とに大きく分けられる。厳密に言えば、文字間や文字や図形の中の空白部なども余白と言えなくもないが、実際にメモデータをレイアウト可能な範囲と考えると、周囲と行間が主な余白範囲となる。
【００２４】
なお、上記の「紙面（全レイアウト範囲）の周囲の余白部分」とは、表示対象要素をレイアウトできる範囲として、例えば行内文字数および頁内行数の指定等によって設定されるレイアウト可能範囲と、レイアウト可能範囲の最大範囲としての全レイアウト範囲との差分に相当する。
【００２５】
そこで、本発明に係る表示方法によれば、表示対象要素の一つ以上を座標空間上に配置したレイアウト範囲を得たら、得られたレイアウト範囲を全レイアウト範囲から除いた範囲も求めることができるので、それを余白範囲として余白特定ステップで特定する。
【００２６】
次に、ユーザが入力する、あるいは別ファイルとして保存された文書中から複写するなどして得られたメモデータを、余白特定ステップで得られた余白範囲に配置してみることで、表示対象要素との重なり具合を求めることができる。その重なり具合が、重なりが無い、あるいは所定割合以下、あるいは所定面積以下となる時のメモデータのレイアウトを選ぶことで、このような重なり具合の条件を満たしたメモデータのレイアウトを記述したメモレイアウトデータをメモレイアウト生成ステップで生成することができる。
【００２７】
これによって、例えば文字サイズ、行内文字数、頁内行数のような表示設定を変更する等してコンテンツのレイアウトが動的に変更されても、変更されたレイアウトについて余白範囲を特定するので、レイアウトの変更に追従して、上述した重なり具合の条件を常に満たすメモデータのレイアウトを得ることができる。
【００２８】
したがって、それらのレイアウトに従ってコンテンツデータ及びメモデータを出力することで、文字サイズ等の表示設定を読みやすい様に動的に変えるなどという紙の本にない特徴を持ちながら、手書きデータやテキストデータなどからなるメモで、紙の書籍と同じような使い勝手、すなわち文書本文とメモの表示が同時に視認できるという効果が出てくる。
【００２９】
言い換えれば、コンテンツのレイアウトを例えば見やすく変更しても、常に文書本文に重ならないように、新たな余白にレイアウトし直された状態でメモを見ることができるという、特有の効果を得ることができる。
【００３０】
また、コンテンツがメモデータに影響されずにレイアウトされるので（例えば余白や行間の大きさがメモデータによって変えられることがない）、コンテンツのレイアウトをコンテンツデータが最も見やすい状態でレイアウトすることができるという効果が出てくる。
【００３１】
なお、表示対象要素とメモとの重なりが全く無いことを、メモデータのレイアウトを決めるときの第１条件とし、この第１条件を満たせないときに、重なりが所定割合以下または所定面積以下となる第２条件を満たすようにメモデータのレイアウトを決めてもよい。
【００３２】
また、メモと関連付けたい表示対象要素のできるだけ近くにメモを配置することを第１条件とし、その場合の重なりが所定割合以下または所定面積以下となるようにメモデータのレイアウトを決めてもよい。
【００３３】
また、メモデータが大き過ぎて、余白特定ステップで特定した余白範囲にメモを配置し切れない場合には、配置できるだけのメモの一部のレイアウトデータを生成してもよいし、メモレイアウトデータの生成を行わないか、あるいはメモデータが大き過ぎることを知らせるメッセージ表示を行うような他のルーチンへ処理を移行するようにしてもよい。
【００３４】
本発明に係る表示方法は、上記の課題を解決するために、概略的には、表示対象要素のデータの１つ以上の集まりとしてのコンテンツデータの内、メモと対応付けたい参照部分のコンテンツデータと、前記メモデータとを関連付ける情報を得る関連付け情報取得ステップを有している。
【００３５】
上記の処理により、参照部分のコンテンツデータとメモデータとを関連付ける情報(以下、関連付け情報と呼ぶ)が得られるので、例えば、あるメモデータのレイアウトを作成する際、そのメモデータに関連付けられた参照部分を特定することができる。あるいは、メモと参照部分とを線で結んだ状態で表示する等によって、メモと参照部分との関連付けを示す場合、関連付け情報を利用することができる。
【００３６】
これによって、メモデータのレイアウトを作成したり、参照部分やメモデータを表示する際に、関連付け情報を利用した処理が行えるようになる。
【００３７】
具体的な処理としては、例えば、メモデータのレイアウトを作成する際、表示対象要素のレイアウトは既に存在しているので、参照部分の表示対象要素のレイアウト範囲も得ることができる。余白特定ステップから得られた余白範囲の中から、得られた参照部分のレイアウト範囲に近い余白範囲を関連付け情報を用いて選ぶことで、参照部分に近い位置にメモデータをレイアウトすることができるようになる。
【００３８】
あるいは、例えば、表示の際、参照部分のレイアウト位置とメモデータのレイアウト位置とが分かるので、関連付け情報を用いて両者を線分で結ぶ、あるいはそれぞれの背景部分を通常の背景部分と異なる表示色を用いて同色に揃えるなどといった関連付け表示も可能となる。
【００３９】
また、例えば、表示の際、参照部分やメモデータのレイアウトが、ペンやマウスなどによって選択された状態になった時、それに関連付けられた他方の参照部分やメモデータをハイライト表示するなど目立たせて表示させることが可能になる。
【００４０】
本発明に係る表示方法は、上記の課題を解決するために、概略的には、前記メモレイアウト生成ステップにおいて、前記参照部分のレイアウトの近くにメモデータを配置したメモレイアウトデータを生成する。
【００４１】
前述の関連付け情報取得ステップから、参照部分とメモデータとを関連付ける情報が得られるので、あるメモデータのレイアウトを作成する際、そのメモデータに関連付けられた参照部分を特定することができる。メモデータのレイアウトを作成する際、表示対象要素のレイアウトは既に存在しているので、参照部分の表示対象要素のレイアウト範囲も得ることができる。余白特定ステップから得られた余白範囲の中から、参照部分のレイアウト位置の近くで、コンテンツデータの表示対象要素のレイアウトと重ならない／重なりが少ない範囲を選べば良い。
【００４２】
これによって、関連付けられた参照部分とメモデータが近くにレイアウトされるので、両者を一度に見易くなり、理解しやすくなるという利点が出てくる。
【００４３】
本発明に係る表示方法は、上記の課題を解決するために、概略的には、前記関連付ける情報に基づいて、前記参照部分と前記メモデータとを関連付けて自動的に表示する表示ステップを有している。
【００４４】
前述の関連付け情報取得ステップから参照部分とメモデータとを関連付ける情報が得られるので、表示の際、表示対象要素のレイアウトデータとメモレイアウトデータとから、参照部分のレイアウト位置と、参照部分のデータに関連付けられたメモデータのレイアウト位置を特定することができる。これにより、両者を線分で結んだ表示を行ったり、矢印で結んだ表示を行ったり、参照部分からメモデータを吹き出し表示にしたり、それぞれの背景部分を通常の背景部分と異なる表示色を用いて同色に揃えるなどといった関連付け表示も可能となる。
【００４５】
これによって、両者に関係のあることが視覚的に分かり易くなる、などといった効果がある。
【００４６】
本発明に係る表示方法は、上記の課題を解決するために、概略的には、表示対象要素をレイアウト可能なレイアウト可能範囲を得るレイアウト可能範囲取得ステップを有し、前記余白特定ステップにおいて、前記レイアウト可能範囲の最大範囲としての全レイアウト範囲から前記レイアウト可能範囲を除いた部分を余白範囲として特定する。
【００４７】
コンテンツデータがレイアウトされていない余白範囲には、大きく分けて、レイアウト可能範囲の外側の余白範囲と内側の余白範囲とがある。一般に、外側の余白範囲は紙の本で言う紙面周囲の余白に相当し、内側の余白範囲は行間の余白に相当する。従って、余白特定ステップで、全レイアウト範囲からレイアウト可能範囲を除いた場合、外側の余白範囲が抽出されることになる。
【００４８】
この余白範囲にメモデータをレイアウトすることで、コンテンツデータとの重なりが無くなったり、少なくしたりすることができるようになる。また、レイアウト可能範囲の内側の余白範囲にメモデータをレイアウトする場合に比べて、コンテンツデータとメモデータとが混在しないので、コンテンツデータの見やすさの点で優れている。
【００４９】
また、行間などの余白を抽出するには行や文字のレイアウトデータが必要だが、レイアウト可能範囲を使う場合は行や文字のレイアウトデータが不要なので、抽出処理も簡単に素早く行うことができる利点がある。また、レイアウト可能範囲は、コンテンツデータのレイアウト処理前に決まっているので、コンテンツデータのレイアウト前に余白の抽出処理を行うことが可能となる利点もある。
【００５０】
また、コンテンツデータは必ずレイアウト可能範囲内にレイアウトされているが、レイアウト可能範囲の外側の余白部分にメモデータを表示することで、レイアウト全体としてみると一部が飛び出した形になり、結果的にその部分にメモデータの書き込みがあることを視覚的に目立たせることができる効果が出てくる。
【００５１】
本発明に係る表示方法は、上記の課題を解決するために、概略的には、前記余白特定ステップにおいて、前記レイアウト可能範囲取得ステップから得られたレイアウト可能範囲の中で、前記表示対象要素が配置されていない部分を余白範囲として特定する。
【００５２】
上で説明した通り、一般に、レイアウト可能範囲の外側の余白は紙の本で言う紙面周囲の余白に相当し、内側の余白は行間の余白に相当する。従って、余白特定ステップで、レイアウト可能範囲取得ステップで得られたレイアウト可能範囲内で、コンテンツデータがレイアウトされていない部分を余白範囲とした場合、行間などの余白が抽出されることになる。
【００５３】
この行間等の余白範囲にメモデータをレイアウトすることで、コンテンツデータとの重なりが無くなったり、少なくしたりすることができるようになる。また、周囲の余白範囲にメモデータをレイアウトする場合と比べ、関連付けられたコンテンツデータとメモデータとの表示の距離を、多くの場合、近くすることができる。
【００５４】
これによって、コンテンツデータとメモデータの重なりを無くす／少なくすることができるので、見やすくなるという効果があり、また、多くの場合、両者の距離を近くして表示することができるので、メモと対応付けたい表示対象要素の参照部分とメモとの対応関係がより分かり易くなる効果が出てくる。
【００５５】
また、コンテンツデータのレイアウトが規則正しくレイアウトされていれば、例えば、行の高さがほぼ同じで、行間もほぼ同じ場合、行間にメモデータを表示することで、レイアウト全体としてみるとメモデータのレイアウト部分が行のレイアウトの規則正しさを乱す形になり、結果的にその部分にメモデータの書き込みがあることを視覚的に目立たせることができる効果が出てくる。
【００５６】
本発明に係る表示方法は、上記の課題を解決するために、概略的には、前記関連付ける情報に含まれる、関連付け表示の仕方に関する関連付け表示情報に基づいて、メモと対応付けたい表示対象要素の参照部分とメモとを線で結んで表示する表示ステップを有している。
【００５７】
コンテンツデータのレイアウトとメモデータのレイアウトとは取得できているので、後はその間を直線や折れ線、曲線などの線で結んで、関連付けを視覚化すればよい。
【００５８】
ところで、関連付け表示情報は表示態様を指定する情報であり、関連付け表示の対象にする参照部分とメモとが特定できてさえいれば、コンテンツデータのレイアウトに依存せずに、メモと参照部分とを線で結んで表示する表示処理を行わせることができる。
【００５９】
これによって、コンテンツデータのレイアウトが変わった場合、例えば文字の大きさを変えた場合、メモデータのレイアウトもそれに応じて変わり、メモデータのレイアウト位置と参照部分のレイアウト位置とが両方変わることになるが、その変化に応じて、メモと参照部分とが線で結んで表示される。したがって、レイアウトの変更に応じて自動的に対応関係の表示が適切なものに更新されるという利点がある。
【００６０】
また、関連付け表示によって、参照部分とメモとの対応関係が分かり易くなるという効果が出てくる。メモデータのレイアウトと関連付けられた参照部分のコンテンツデータのレイアウトが、レイアウト的に離れていたとしても、線で結んで表示することで、両者に対応関係があることを視覚的に理解しやすくするという効果がある。
【００６１】
本発明に係る表示方法は、上記の課題を解決するために、概略的には、前記関連付ける情報に含まれる、メモと対応付けたい表示対象要素の複数の参照部分のコンテンツデータと一つのメモデータとを関連付ける情報と、関連付け表示の仕方に関する関連付け表示情報とに基づいて、一つのメモから複数の参照部分に対して、線で結んで表示する表示ステップを有している。
【００６２】
上記関連付け表示情報の特性については既に説明したとおりなので、これによって、一つのコンテンツデータの部分に対して、異なる内容のメモを関連付けることができる効果があり、あるコンテンツ部分が複数のメモデータを持っていることが同時に視覚的に一目でわかるという効果も出てくる。メモしたい内容が複数ある場合、一つのメモにまとめるより複数のメモに分けた方が別の内容であることが視覚的に分かり易くなるという効果もある。
【００６３】
本発明に係る表示方法は、上記の課題を解決するために、概略的には、前記関連付ける情報に含まれる、メモと対応付けたい表示対象要素の一つの参照部分のコンテンツデータに、複数のメモデータを関連付ける情報と、関連付け表示の仕方に関する関連付け表示情報とに基づいて、一つの参照部分から関連付けられた複数のメモに対して、線で結んで表示する表示ステップを有している。
【００６４】
上記関連付け表示情報の特性については既に説明したとおりなので、これによって、複数の参照部分に共通するメモデータをまとめることができ、まとめない場合に比べて無駄なメモデータの表示を抑える効果があり、また、複数の参照部分に同じ内容のメモデータを対応付けていることが視覚的に一目でわかるという効果も出てくる。
【００６５】
本発明に係る表示方法は、上記の課題を解決するために、概略的には、前記メモデータが、表示の有無を表す情報を持ち、前記メモデータが表示しないという情報を持つ場合は、前記メモデータのレイアウトの表示とそのメモデータに関連付けられた関連付ける情報に基づく関連付け表示を行わない。
【００６６】
この処理によれば、コンテンツデータやメモデータのレイアウトを取得する際、また、関連付ける情報を表示する際、メモデータの表示の有無を表す情報を参照し、メモデータ表示をしない時はコンテンツデータのレイアウトだけを取得して表示することで、コンテンツデータだけの表示と、メモデータや関連付ける情報の表示を含んだ表示とを切り替えることができるようになる。
【００６７】
これによって、コンテンツだけに集中して理解したい時とメモなどを参照しながら理解したい時とを切り替えられるという効果が出てくる。
【００６８】
また、各メモデータが個別に表示の有無の情報を持つことで、全メモデータの表示の有無ではなく、個別に表示の有無を切り替えることができる利点がある。
【００６９】
本発明に係る表示装置は、上記の課題を解決するために、概略的には、表示対象要素の一つ以上を座標空間上に配置したレイアウトを記述したレイアウトデータが入力され、レイアウトの中から、表示対象要素が配置されていない余白範囲を特定する余白レイアウトデータを、上記レイアウトデータを用いて生成する余白特定手段と、メモを表すメモデータが入力され、上記余白レイアウトデータに従ってメモデータを上記余白範囲に配置することにより、表示対象要素との重なりが無い、あるいは所定割合以下、あるいは所定面積以下となるメモデータのレイアウトを記述したメモレイアウトデータを生成するメモレイアウト生成手段とを有している。
【００７０】
上記の構成によれば、レイアウトデータには、座標空間上における表示対象要素の配置が記述されているから、座標空間上における表示対象要素の配置されていない余白範囲をレイアウトデータから求めることができる。この余白範囲を特定する処理、言い換えれば余白範囲を記述した余白レイアウトデータを生成する処理を余白特定手段が行う。
【００７１】
余白特定手段によって余白範囲が特定されるので、メモレイアウト生成手段は、入力されたメモデータを余白範囲に配置することができる。すなわち、メモデータを余白レイアウトデータに従って、余白範囲に配置し、メモデータのレイアウトを記述したメモレイアウトデータを生成することができる。
【００７２】
このメモレイアウトデータの生成にあたって、メモデータをレイアウトする条件が課される。その結果、メモレイアウト生成手段は、メモと表示対象要素との重なりが無い、あるいは所定割合以下、あるいは所定面積以下となるメモレイアウトデータを生成する。
【００７３】
これによる種々の効果は、上記表示装置の構成に対応する表示方法による効果として、前述したとおりである。
【００７４】
本発明に係る表示装置は、上記の課題を解決するために、概略的には、表示対象要素のデータの一つ以上の集まりとしてのコンテンツデータの内、メモと対応付けたい参照部分のコンテンツデータと、前記メモデータとを関連付ける情報を得る関連付け情報取得手段を有している。
【００７５】
上記の構成により、関連付け情報取得手段が、参照部分のコンテンツデータとメモデータとを関連付ける情報(以下、関連付け情報と呼ぶ)を得るので、例えば、メモレイアウト生成手段が、あるメモデータのレイアウトを作成する際、そのメモデータに関連付けられた参照部分を特定することができる。あるいは、メモと参照部分とを線で結んだ状態で表示する等によって、メモと参照部分との関連付けを示す場合、関連付け情報を利用することができる。
【００７６】
これによる種々の効果は、上記表示装置の構成に対応する表示方法による効果として、前述したとおりである。
【００７７】
本発明に係る表示プログラムは、上記の課題を解決するために、上記表示方法が備える各ステップをコンピュータに実行させることを特徴とする。
【００７８】
本発明に係る表示プログラムは、上記の課題を解決するために、上記表示装置が備える各手段として、コンピュータを機能させることを特徴とする。
さらに、本発明に係る記録媒体は、上記の課題を解決するために、上記表示プログラムを記録したことを特徴とする。
これにより、上記記録媒体、またはネットワークを介して、一般的なコンピュータに表示プログラムをインストールすることによって、該コンピュータを用いて上記の表示方法を実現する、言い換えれば、該コンピュータを表示装置として機能させることができる。
【００７９】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
【００８０】
「表示」とは、一般には何らかの情報を視覚的に認知できるような状態で表示／出力媒体に対して出力することを言い、通常はモニターなどのディスプレイに画素として表示することになる。ここでは、モニターなどへの表示の他にも、紙への印刷出力やＰＤＦなどのレイアウト情報を有したデータ形式でのデータ出力（ファイル出力）なども含まれるとする。「出力」という言葉とほぼ同様の意味だが、ここでは分かりやすいように「表示」としている。
【００８１】
「表示対象要素」は、表示手段に表示することのできる要素をさしており、例えば文字、画像、図などがある。
【００８２】
「レイアウト」は、表示対象要素を表示範囲に収まるように配置することであり、２次元または３次元の座標空間における表示対象要素の表示位置、大きさ、外形などの情報を持っている。出力手段では、表示対象要素のレイアウトを記述したレイアウトデータに従い、指定された表示位置に指定された大きさや外形で表示対象要素を表示する。
【００８３】
図１は、レイアウトを説明する図である。例えば、２次元の座標空間に全ての表示対象要素を配置した状態を表すレイアウト全体４０（レイアウトの枠組み）の中に表示対象要素４１、４２、４３などが配置されている。図ではわかり易いように表示対象要素のそれぞれを点線の枠で囲ってあるが、実際に表示する際はこの枠は表示されない。なお以降、特に必要が無ければ表示対象要素を、中身の表示を省略して、空の単なる枠線で示すことがある。
【００８４】
テキストの場合、表示対象要素として文字が配置され、図１のように縦あるいは横に文字が並んで行を構成するのが一般的である。表示する際は、レイアウト全体４０の中で、表示／出力媒体の表示可能な大きさによって規定される表示範囲４４（後述するレイアウト可能範囲に相当する）に含まれる表示対象要素だけが表示される。
【００８５】
なお、「レイアウトされたコンテンツデータ」のことを「レイアウト」と呼ぶこともある（コンテンツデータについては後述する）。
【００８６】
図２は、表示対象要素のレイアウトデータ構造例を説明する図である。各行が一つの表示対象要素のレイアウトデータで、全体は複数のレイアウトデータの配列になっており、それぞれのレイアウトデータにインデックス番号でアクセスできる。
【００８７】
各レイアウトデータの中身は、図のように、「種類」、位置「Ｘ」「Ｙ」、大きさ「Ｗ」「Ｈ」、「データ位置」、「内容」からなる。
【００８８】
「種類」は、文字（ＣＨＡＲ）や画像（ＩＭＡＧＥ）など、表示対象要素の種類を示す。
【００８９】
幅「Ｗ」と高さ「Ｈ」は、表示対象要素を表示させた時の大きさを示す。表示させた時の形状は実際には様々だが、ここでは簡単に矩形で統一してある。
【００９０】
Ｘ座標位置「Ｘ」とＹ座標位置「Ｙ」は、表示対象要素をＸ−Ｙ座標空間に表示させた時の位置を示す。ここでは、位置「Ｘ」「Ｙ」を、各表示対象要素に割り当てた矩形領域の１隅の点の座標位置とする。レイアウト全体４０の左上隅を原点とする座標系を使う場合、各矩形領域の左上隅の点を使って座標位置を表すことが多い。
【００９１】
「内容」は、表示対象要素の種類によって変わり、例えば文字（ＣＨＡＲ）なら文字コードやそのフォント情報（フォントサイズやフォント色など）、画像ならビットマップデータやその記憶場所を指し示すデータなどとなる。すなわち、「内容」は、コンテンツデータの構成要素データに相当する。
【００９２】
「データ位置」は、コンテンツデータ中で、このレイアウトデータを作成する元となったデータ範囲を特定する情報である。単位は様々なものが考えられるが、例えば先頭からの表示対象要素としての順番であるとか、コンテンツデータの先頭から見て、その表示対象要素を記述する構成要素データのバイト位置などがある。さらに細かい情報を求めるのならば、１つの表示対象要素内部のどこであるかまで「データ位置」として指定しても良い。例えば画像内部の座標位置などである。ここでは「データ位置」を、ひとまず先頭から何番目の表示対象要素であるかにしておく。
【００９３】
図３は、行のレイアウトを説明する図である。レイアウトは必ず行の構造を持っているとは限らないが、テキストなどが主体となるコンテンツは多くの場合、行構造を持ったレイアウトを作成することが多いので、ここでは行を使ったレイアウトで説明する。
【００９４】
行は、位置「Ｘ」「Ｙ」、大きさ「Ｗ」「Ｈ」、表示対象要素のレイアウトの配列を持つ。１行が持つ配列の個数はレイアウト結果によって変わってくる。図３では、図２の表示対象要素のレイアウトデータそのものではなく、表示対象要素のレイアウトデータの「参照データを特定する情報」（参照情報と略記する）を持たせている。
【００９５】
すなわち、行８０は、１〜５番目の表示対象要素の参照情報を配列として持ち、行８１は６〜１１番目の表示対象要素の参照情報を配列として持つ。位置「Ｘ」「Ｙ」、大きさ「Ｗ」「Ｈ」は、各行８０・８１等に配列された表示対象要素の全てを包含する矩形の属性情報である。
【００９６】
「参照データを特定する情報」とは、参照されている構成要素データが記録されている場所などを示す情報であり、例えば主記憶上に記録されているなら、その主記憶アドレスなどである。
【００９７】
「手書きデータ」は、例えばマウスやタブレットなどを使ってユーザがフリーハンドで入力したデータで、データ形式としては上下左右斜めの方向を持ったストロークの集まりとして表現されることが多いが、ビットマップ画像として表現されることもある。いずれにしろ、「手書きデータ」は表示単位としては一塊のデータであり、データを分解して、再レイアウトして表示することはできないものとここでは定義しておく。
【００９８】
なお、分解して、再レイアウトして表示できるデータとしては、例えばキーボードなどを使って入力された「テキストデータ」などがあり、ワープロなどでは１行の文字数を変更したり文字の大きさを変更したりしてレイアウトを変更して表示させることができる。もし、前述のＰｏｃｋｅｔＷｏｒｄの様に、手書き入力された文字ではあるが、文字単位で分解でき、再レイアウトできるのならば、テキストデータの一種と解釈してもよい。
【００９９】
「メモデータ」は、手書きデータやテキストデータなど、ユーザがコンテンツデータに対して入力したデータの総称である。テキストデータの様に分解して再レイアウトできるものも、手書きデータの様に分解、再レイアウトできないものも含んでいる。なお、手書きデータやテキストデータ以外でも、表示できる対象ならばほとんどのデータはメモデータとして扱え、例えば画像なども含まれる。
【０１００】
「コンテンツデータ」は、ここでは、表示対象要素を表す構成要素データの一つ以上の集まりからなり、文字サイズなどの表示設定によって表示対象要素のレイアウトが変わるようなデータとしている。例えばエディタやワープロ、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）ブラウザなどで扱うデータが相当するが、文字サイズや全レイアウト範囲（ウィンドウ）の大きさなどを変えると、コンテンツデータは再レイアウトされ、表示結果は異なってくる。
【０１０１】
「関連付け情報」とは、コンテンツデータの一部とメモ情報とを関連付ける情報である。なお、以降、メモ情報と関連付けられたコンテンツデータの一部を、「参照部分」や「参照データ」と呼ぶことにする。
【０１０２】
例えば、コンテンツとしての文書中のある文章に対して下線を引き、そこから引き込み線を余白まで引っ張り、余白にその文章に対するコメントなどをユーザがメモとして記したとすると、下線を引いた文章が参照部分であり、参照部分とメモとを下線や引き込み線などを使って関連付けたことになる。
【０１０３】
視覚的にはこのような形で表現されるが、データ的には関連付け情報とは、例えば参照部分、すなわち参照データとメモデータとの対応関係を特定する情報であり、参照データのデータ範囲をコンテンツデータ内で特定するような情報やメモデータを特定するような情報の組ということになる。特定の仕方については後で述べる。対応関係は１対１に限らず、１対多、多対１、多対多なども可能である。
【０１０４】
また、対応関係の情報だけに限らず、参照部分をどのように指定したのか（先の例では「下線」と「引き込み線」を使っている）とか、どこにメモを記したのか（先の例では余白部分）、などの情報も関連付け情報は含むが、このような情報はメモデータに持たすことも可能である。１対１の場合はどちらが持っても良いが、１対多、多対１、多対多などでメモデータや参照データが複数の時、メモデータ毎に関連付けの表示の仕方を変えたいという場合にはメモデータに持たせた方が良い場合もある。
【０１０５】
関連付け情報に関しては、後で図１３を用いて具体的に詳しく説明する。
【０１０６】
「余白範囲」は、メモデータをレイアウトできる範囲を指し、基本的に表示範囲４４にコンテンツデータをレイアウトした残り部分が対象となる。したがって、余白範囲は、紙面（全レイアウト範囲）の周囲の部分と、コンテンツデータのレイアウトの行間の部分とに大きく分けられる。厳密に言えば、文字間や文字や図形の中の空白部なども余白と言えなくもないが、実際にメモデータをレイアウト可能な範囲と考えると、周囲と行間が主な余白範囲となる。
【０１０７】
図４は、本発明の実施の一形態に係り、後述する表示方法を実施する表示装置を示す構成図である。
【０１０８】
すなわち、表示装置の要部を、メモデータレイアウト範囲取得手段５９、入力手段６０、表示範囲取得手段６１、コンテンツデータ取得手段６２、メモデータ取得手段６３、関連付け情報取得手段６４、コンテンツデータレイアウト取得手段６５、メモデータレイアウト取得手段６６、レイアウト出力手段６７、コンテンツレイアウト範囲取得手段６８、およびコンテンツ余白特定手段６９の主要な機能ブロックに展開して示すことができる。
【０１０９】
処理の概要をこれら各手段５９〜６９間のデータの授受の観点から説明する。
【０１１０】
まず、表示範囲取得手段６１では、レイアウト出力手段６７に接続されたモニターやプリンタで使用される印刷用紙等の表示／出力媒体のサイズに相当するレイアウト可能範囲を得て、レイアウト出力手段６７、コンテンツレイアウト範囲取得手段６８、コンテンツ余白特定手段６９に送る。
【０１１１】
なお、表示／出力媒体のレイアウト可能範囲とは、コンテンツデータやメモデータも含めて、表示対象要素をレイアウトして表示が可能となる範囲であり、表示／出力媒体の表示できない端の部分や、ウィンドウ枠その他の表示に使われるのでコンテンツデータやメモデータのレイアウト／表示に使えない部分を除いた部分、本当はレイアウト可能だが見易くするためにわざとレイアウトさせない端の部分（先に説明した意味ではなく、一般的に言う「余白」）などを除いた範囲である。ここでは説明を簡単にする為、図１の表示範囲４４の全てがレイアウト可能範囲として得られるとする。
【０１１２】
上記のレイアウト可能範囲は、後で詳述するように、キーボード、マウス等を介したユーザの操作や、文書表示プログラムや、表示／出力先の装置によって指定され、表示範囲取得手段６１に入力される。
【０１１３】
次に、コンテンツレイアウト範囲取得手段６８は、表示範囲取得手段６１から得たレイアウト可能範囲や、ユーザが指定した行内文字数の情報、余白の設定情報などを元に、コンテンツデータをレイアウトする範囲（以下、コンテンツレイアウト範囲と呼ぶ）を得る。
【０１１４】
コンテンツレイアウト範囲は、通常、レイアウト可能範囲より上下左右に余白を取った分、狭い範囲として得られる。得られたコンテンツレイアウト範囲は、コンテンツデータレイアウト取得手段６５、コンテンツ余白特定手段６９へ送られる。
【０１１５】
コンテンツデータ取得手段６２は、コンテンツデータを外部記憶装置や、ユーザが操作するキーボード、マウス等などから得て、コンテンツデータレイアウト取得手段６５へ送る。
【０１１６】
コンテンツデータレイアウト取得手段６５は、コンテンツレイアウト範囲取得手段６８から得たコンテンツレイアウト範囲の中で、コンテンツデータ取得手段６２から得たコンテンツデータ（の各表示対象要素）をレイアウトする。これによって、コンテンツデータの各表示対象要素のレイアウト位置が決まり、コンテンツデータを表示できることになる。コンテンツデータのレイアウトを記述したレイアウトデータは、コンテンツデータレイアウト取得手段６５で生成された後、コンテンツ余白特定手段６９、メモデータレイアウト取得手段６６、レイアウト出力手段６７へ送られる。
【０１１７】
コンテンツデータのレイアウトデータを生成する構成を説明したので、次に、メモデータのレイアウトデータを生成する構成を説明する。
【０１１８】
入力手段６０は、タブレット、ペン、キーボードなどで入力されたデータを受け取り、メモデータ取得手段６３、関連付け情報取得手段６４へ送る。
【０１１９】
メモデータ取得手段６３は、入力手段６０から得た入力データを解釈したり、外部記憶装置などに記録されたデータからメモデータを読み取ったりして、メモデータを取得し、メモデータレイアウト取得手段６６、メモデータレイアウト範囲取得手段５９へ送る。
【０１２０】
同様に、関連付け情報取得手段６４は、入力手段６０から得た入力データを解釈したり、外部記憶装置などに記録されたデータから関連付け情報を読み取ったりして、関連付け情報を取得し、メモデータレイアウト取得手段６６、レイアウト出力手段６７へ送る。
【０１２１】
コンテンツ余白特定手段６９では、表示範囲取得手段６１から得たレイアウト可能範囲、コンテンツレイアウト範囲取得手段６８から得たコンテンツレイアウト範囲、コンテンツデータレイアウト取得手段６５から得たコンテンツデータ（の各表示対象要素）のレイアウトデータから、コンテンツデータがレイアウトされていない余白範囲を特定して抽出する。抽出された余白範囲は、メモデータレイアウト範囲取得手段５９へ送られる。
【０１２２】
メモデータレイアウト範囲取得手段５９は、コンテンツ余白特定手段６９から得た余白範囲と、メモデータ取得手段６３から得たメモデータとから、コンテンツデータ（の各表示対象要素）のレイアウトと重なりが無い、あるいは所定割合以下、あるいは所定面積以下のメモデータのレイアウト範囲（以下、メモレイアウト範囲と呼ぶ）を得る。得られたメモレイアウト範囲は、メモデータレイアウト取得手段６６へ送られる。
【０１２３】
メモデータレイアウト取得手段６６は、関連付け情報取得手段６４から得た関連付け情報とコンテンツデータレイアウト取得手段６５から得たコンテンツデータのレイアウトデータとから、レイアウトされているコンテンツデータに関連付けられたメモデータを得る。
【０１２４】
続いて、メモデータレイアウト取得手段６６は、そのメモデータのレイアウト方針（ユーザまたは表示プログラム等によって設定される）などに従って、メモデータレイアウト範囲取得手段５９から得たメモレイアウト範囲の中で、メモデータ取得手段６３から得たメモデータをレイアウトし、メモデータのレイアウトを記述したメモレイアウトデータを生成する。生成されたメモレイアウトデータは、レイアウト出力手段６７へ送られる。
【０１２５】
なお、メモデータレイアウト範囲取得手段５９およびメモデータレイアウト取得手段６６は、メモレイアウト生成手段に相当する。
【０１２６】
レイアウト出力手段６７は、コンテンツデータレイアウト取得手段６５から得たコンテンツデータのレイアウトデータと、メモデータレイアウト取得手段６６で生成されたメモレイアウトデータとに従って、コンテンツデータおよびメモデータを、関連付け表示情報などに基づいて関連付けて、モニターなどに表示する。なお、関連付け表示情報は、関連付け情報取得手段６４から得られた関連付け情報に含まれている。
【０１２７】
図５は、図４の各手段５９〜６９を具体的に実現する装置の構成例である。
【０１２８】
ＣＰＵ（central processing unit）７０は、メモデータレイアウト範囲取得手段５９、上記入力手段６０、表示範囲取得手段６１、コンテンツデータ取得手段６２、メモデータ取得手段６３、関連付け情報取得手段６４、コンテンツデータレイアウト取得手段６５、メモデータレイアウト取得手段６６、レイアウト出力手段６７、コンテンツレイアウト範囲取得手段６８、およびコンテンツ余白特定手段６９として機能し、これら各手段５９〜６９による処理手順が記述されたプログラムを主記憶７４、外部記憶７５、通信デバイス７７が仲介するネットワークなどから得る。
【０１２９】
なお、主記憶７４または外部記憶７５は、本発明の表示プログラムを記録した記録媒体に相当する。
【０１３０】
また、ＣＰＵ７０は、ＣＰＵ７０を含めてバス７９を通じ相互に接続されたディスプレイ７１、プリンター７２、タブレット７３、主記憶７４、外部記憶７５、マウス７６、通信デバイス７７、キーボード７８とデータのやりとりを行ないながら、既に説明した各処理を行なう。
【０１３１】
なお、データのやりとりは、バス７９を介して行う形態に限定されるものではなく、データを送受信できるならば、通信ケーブルや無線通信装置などを介する形態でもよい。また、各手段５９〜６９の実現手段としては、ＣＰＵに限らず、ＤＳＰ(digital signal processor)や処理手順が回路として組み込まれているロジック回路などを用いることもできる。
【０１３２】
主記憶７４は、通常はＤＲＡＭ（dynamic random access memory）やフラッシュメモリなどのメモリデバイスで構成される。外部記憶７５は、ＨＤＤ（hard disk drive）やＰＣ（personal computer)カードなどの装脱着可能な記憶手段である。あるいはＣＰＵ７０とネットワークを介して有線または無線で接続された他のネットワーク機器に取り付けられた主記憶や外部記憶を外部記憶７５として用いることもできる。
【０１３３】
ユーザの指示を入力する手段として、マウス７６、タブレット７３、キーボード７８などがあり、ユーザの指示はバス７９を介して入力手段６０に入力される。この他にもボタン、マイクによる音声入力など、様々な手段が使用可能である。
【０１３４】
ディスプレイ７１は、通常はグラフィックカードなどと組み合わされて実現され、グラフィックカード上にＶＲＡＭ（video random access memory）を有し、ＶＲＡＭ上のデータを表示信号に変換して、モニターなどのディスプレイ（表示／出力媒体）に送り、ディスプレイは表示信号を画像として表示する。
【０１３５】
プリンタ７２は、バス７９を介して得た印刷データを用紙（表示／出力媒体）に印刷する。通信デバイス７７は、ネットワークカードなどにより実現され、無線や有線などにより接続された他のネットワーク機器とデータをやりとりする。
【０１３６】
図４の表示範囲取得手段６１としてのＣＰＵ７０は、表示／出力範囲（レイアウト可能範囲）のデータを主記憶７４、外部記憶７５、ネットワークなどから読み取られるプログラムから得たり、ユーザの操作によりマウス７６、タブレット７３、キーボード７８から入力されたデータとして得たり、ディスプレイ７１、主記憶７４、外部記憶７５、プリンタ７６、ネットワークからデータとして得たりする。
【０１３７】
例えばディスプレイ７１上に表示されているウィンドウのサイズをレイアウト可能範囲とするならば、ＣＰＵ７０は、主記憶７４上のウィンドウサイズデータを参照したり、ウィンドウサイズ取得ＡＰＩを呼び出すなどしてレイアウト可能範囲のデータを得る。また印刷ならば、プリンタ７２、あるいは用紙設定が記録された主記憶７４や外部記憶７５上の用紙設定データをＣＰＵ７０が参照したり、用紙サイズ取得ＡＰＩを呼び出すなどして用紙サイズのデータを得ればよい。
【０１３８】
コンテンツレイアウト範囲取得手段６８としてのＣＰＵ７０は、主記憶７４、外部記憶７５、ネットワークなどから既に設定済みのコンテンツレイアウト範囲を得たり、あるいは主記憶７４、外部記憶７５、ネットワークなどから読み取られるプログラムに基づき、表示範囲取得手段６１から得たレイアウト可能範囲などを元に、コンテンツレイアウト範囲を得る。
【０１３９】
コンテンツデータ取得手段６２としてのＣＰＵ７０は、主記憶７４、外部記憶７５、ネットワークなどからコンテンツデータを得る。コンテンツデータは予め用意されているとする。
【０１４０】
コンテンツデータレイアウト取得手段６５としてのＣＰＵ７０は、主記憶７４、外部記憶７５、ネットワークなどから既に作成済みのレイアウトデータを得たり、あるいは、コンテンツデータ取得手段６２から得たコンテンツデータ（の各表示対象要素）を、コンテンツレイアウト範囲取得手段６８から得たコンテンツレイアウト範囲の中でレイアウトし、レイアウトデータを生成する。なお、レイアウトデータの生成処理は、主記憶７４、外部記憶７５、ネットワークなどから読み取られるプログラムに基づく。
【０１４１】
図４の入力手段６０としてのＣＰＵ７０は、ユーザからの入力データを、ユーザの操作によりマウス７６、タブレット７３、キーボード７８などから入力されたデータとして得、必要に応じて、主記憶７４、外部記憶７５、ネットワークなどから読み取られるプログラムを利用してその入力データを加工してから、他の手段に渡したりする。
【０１４２】
例えば、タブレット７３やマウス７６から入力されたペンやマウス７６の動きデータをストロークデータの形式にしたり、そのストロークデータを手書き文字認識してテキストデータに変換したり、キーボードから得られる文字を仮名漢字変換して漢字仮名混じりのテキストにしたり、マイクから入力された音声を認識してテキストデータに変換したり、などといった処理などを入力手段６０が実行する。
【０１４３】
メモデータ取得手段６３としてのＣＰＵ７０は、主記憶７４、外部記憶７５、ネットワークなどからメモデータを得たり、あるいは主記憶７４、外部記憶７５、ネットワークなどから読み取られるプログラムに基づき、入力手段６０から得たユーザ入力を処理してメモデータとして解釈してメモデータを得る。主記憶７４、外部記憶７５、ネットワークなどから直接メモデータを読み込む時は、予め用意されているとする。
【０１４４】
関連付け情報取得手段６４としてのＣＰＵ７０は、主記憶７４、外部記憶７５、ネットワークなどから関連付け情報を得たり、あるいは、入力手段６０から得たユーザ入力を処理して関連付け情報として解釈した後、関連付け情報を取得する。なお、ユーザ入力を処理して関連付け情報を取得する処理は、主記憶７４、外部記憶７５、ネットワークなどから読み取られるプログラムに基づく。また、主記憶７４、外部記憶７５、ネットワークなどから直接関連付け情報を読み込む時は、予め用意されているとする。
【０１４５】
なお、メモデータと関連付け情報とはお互いに対応しているデータなので、記録する時は一体のデータとして記録した方が多くの場合、扱いが便利である。コンテンツデータと一体とした方が便利かどうかは使い方による。
【０１４６】
コンテンツ余白特定手段６９としてのＣＰＵ７０は、取得したレイアウト可能範囲と、コンテンツレイアウト範囲取得手段６８から得たコンテンツレイアウト範囲と、コンテンツデータレイアウト取得手段６５から得たコンテンツデータ（の各表示対象要素）のレイアウトデータとから、コンテンツデータがレイアウトされていない余白範囲を抽出する。
【０１４７】
なお、ＣＰＵ７０は、主記憶７４、外部記憶７５、ネットワークなどから既に設定済みのレイアウト可能範囲を得たり、あるいは主記憶７４、外部記憶７５、ネットワークなどから読み取られるプログラムに基づき、表示範囲取得手段６１からレイアウト可能範囲を取得する。
【０１４８】
メモデータレイアウト範囲取得手段５９としてのＣＰＵ７０は、主記憶７４、外部記憶７５、ネットワークなどから読み取られるプログラムに基づき、コンテンツ余白特定手段６９から得られた余白範囲と、メモデータ取得手段６３から得られたメモデータとから、コンテンツデータ（の各表示対象要素）のレイアウトと重なりが無い、あるいは所定割合以下、あるいは所定面積以下のメモレイアウト範囲を得る。
【０１４９】
メモデータレイアウト取得手段６６としてのＣＰＵ７０は、主記憶７４、外部記憶７５、ネットワークなどから既に作成済みのメモデータを得たり、あるいは、レイアウトされているコンテンツデータに関連付けられたメモデータをメモデータ取得手段６３から得て、メモデータレイアウト範囲取得手段５９から得られたメモレイアウト範囲の中で、そのメモデータのレイアウト方針などに従って、レイアウトし、メモレイアウトデータを得る。
【０１５０】
なお、メモデータレイアウト取得手段６６は、主記憶７４、外部記憶７５、ネットワークなどから読み取られるプログラムに基づき、関連付け情報取得手段６４から得られた関連付け情報とコンテンツデータレイアウト取得手段６５から得られたコンテンツデータのレイアウトデータとから、コンテンツデータに関連付けられたメモデータを取得する。
【０１５１】
レイアウト出力手段６７としてのＣＰＵ７０は、主記憶７４、外部記憶７５、ネットワークなどから読み取られるプログラムに基づき、コンテンツデータレイアウト取得手段６５から得られたコンテンツデータのレイアウトデータと、メモデータレイアウト取得手段６６から得られたメモレイアウトデータとに従って、コンテンツデータおよびメモデータを、関連付け情報に含まれる関連付け表示情報などに基づいて関連付けて、ディスプレイ７１、プリンター７２などに表示／出力する。
【０１５２】
図６は、本発明に係る表示装置の外観例を示している。本体９０上に表示部兼タブレット９１があり、入力手段としてペン９２がある。表示部兼タブレット９１は出力先の装置（ディスプレイ７１およびタブレット７３等）に相当し、図では表示部兼タブレット９１の大きさがレイアウト可能範囲の大きさとなる。
【０１５３】
表示部兼兼タブレット９１上でペン９２を操作することで、手書きデータなどが入力できる。表示部兼タブレット９１の表示機能は図５のディスプレイ７１に相当し、表示部兼タブレット９１のタブレット機能とペン９２の組み合わせが図５のタブレット７３に相当する。表示部兼タブレット９１上には、図６のように、コンテンツ（例えば文章）のレイアウト、メモのレイアウト、関連付け情報（例えば下線）などが表示される。
【０１５４】
この装置を使った操作例として、あるテキストにメモを関連付けて、メモを表示させる一連の操作について説明する。
【０１５５】
図７は、表示部兼タブレット９１を抜き出して書いたもので、コンテンツデータとして、「従来、文書・・」というテキストがレイアウトされて表示されている。この時点ではメモデータは存在しないとする。
【０１５６】
図８は、表示部兼タブレット９１上で、ペン９２を用いて、コンテンツデータのテキストの一部を選択している状態を示す図である。図８では、テキスト中の「文書」という部分を選択している。この「文書」がメモの参照部分となる。選択の方法は、マウスやキーボードなどを使った方法など色々あるが、ここではペン９２によって、選択部分の範囲をドラッグするという方法であるとする。選択されたテキスト部分が分かり易いように、選択されたテキスト部分の色を反転させて表示している。
【０１５７】
なお、これらの選択方法は、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を扱うＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）やアプリケーションならば一般的な方法なので、具体的な実現方法についての説明は省略する。
【０１５８】
コンテンツデータのテキストの一部を選択したら、メモデータを設定する。設定方法は様々考えられるが、図９は、設定を行うダイアログウィンドウを表示させた例である。このダイアログウィンドウは、コンテンツデータのテキスト表示の上に重ねて表示されているとする。
【０１５９】
図９の「テキスト」部分の横の枠内は文字入力することができ、ユーザがメモの内容を入力する入力部である。図９では、「ドキュメント」という内容を入力した状態になっている。
【０１６０】
なお、テキストの入力に関しては、ペン９２と表示部兼タブレット９１を使った文字認識やソフトキーボード、あるいは外部キーボードなどによって入力されるとする。
【０１６１】
図９のダイアログウィンドウにおいて、「テキスト」の下の「表示位置」は、メモをコンテンツデータの参照部分に対してどのような位置の余白に表示するかを指定する入力部である。ここでは、余白として「行間」と「周囲」がラジオボタンで選択でき、図９では「行間」が指定されている。
【０１６２】
その下の「参照表示」は、コンテンツデータの参照部分の表示の仕方をどうするかを指定する入力部である。ここでは、「下線」と「枠」とがラジオボタンで選択でき、図９では「下線」が指定されている。
【０１６３】
メモデータの設定は、「表示位置」や「参照表示」以外にも様々な種類の設定が考えられるが、ここでは説明の為、この２つに絞っただけであり、実際には必要に応じてユーザが設定できるようにしておけばよい。
【０１６４】
図９でメモ設定ダイアログによる設定が終われば、「ＯＫ」ボタンを押して、設定を確定する。すると後で説明するようなメモデータとコンテンツデータのレイアウト処理と表示処理が行われ、後で説明する図１０のように参照部分「文書」に下線が引いて表示され、その下の行間に「文書」に関連付けられたメモの内容「ドキュメント」が表示される。なお、図１０では後で説明に使う必要上、行範囲に点線で枠が描かれているが、これは説明上のもので実際には表示されない。
【０１６５】
以上、コンテンツデータの表示から、参照部分の選択、メモデータの設定、レイアウト、表示という一連の手順の概要を説明した。以降、主にレイアウトと表示の処理に関して、詳しく説明する。
【０１６６】
図１１は、本発明の実施の一形態に係る表示方法を示すフローチャート図である。前述した表示装置の各手段上で実施される処理に対応する。
【０１６７】
まずステップＳ１（以下、「ステップＳ」を「Ｓ」と略記する。）でメモデータ取得手段６３がメモデータを取得すると、Ｓ２へ処理が進む。メモデータの定義については、先に説明した通りである。メモデータの取得方法は本発明の主旨ではないので詳しい説明は省くが、入力手段６０から得たデータ、すなわちキーボード７８やタブレット７３などで入力され、入力手段６０の処理を経たテキストデータや手書きデータであったり、あるいは主記憶７４や外部記憶７５に予め記録されていたデータから読み込んだデータであったりする。
【０１６８】
図１２はメモデータ構造の一例を説明する図である。各横行１〜３が一つのメモデータで、全体は複数のメモデータの配列になっており、それぞれのメモデータにインデックス番号でアクセスできる。
【０１６９】
各メモデータの中身は、図のように、「種類」、位置「Ｘ」「Ｙ」、大きさ「Ｗ」「Ｈ」、「関連付けデータ」、「内容」、「レイアウト」からなる。
【０１７０】
「種類」は、テキスト（ＴＥＸＴ）、手書きデータ（ＦＲＥＥＨＡＮＤ）、画像（ＩＭＡＧＥ）などのように、メモデータの種類を示す。
【０１７１】
位置「Ｘ」「Ｙ」は、全レイアウト（レイアウト全体４０）中の位置であり、図１の表示対象要素の位置と同じ座標系である。
【０１７２】
大きさ「Ｗ」「Ｈ」は、メモデータを表示させた時の標準的な大きさであり、テキストデータのように分解、再レイアウトが可能なものは、大きさは「可変」であり、手書きデータや画像などは固定した大きさを持つ（但し、手書きデータや画像などを全体として伸縮することも不可能ではない）。
【０１７３】
「関連付けデータ」は、このメモと関連付けされている関連付け情報のデータへのアクセス手段を示す。例えばメモリ中に関連付けデータを保持する形態では、「関連付けデータ」は、そのデータのアドレスなどになる。ここでは分かり易くする為に、図１３の関連付けデータに付与した番号で表現しておく。場合によっては、関連付けデータは、複数となることもある。
【０１７４】
「内容」は、メモデータの種類によって変わり、例えばテキストデータなら文字列やそのフォント情報、手書きデータならばストロークデータ（ｓｔｒｏｋｅ  ｄａｔａ）、画像ならビットマップデータ（ｉｍａｇｅ  ｄａｔａ）やその記録場所を指し示すデータなどとなる。
【０１７５】
「レイアウト」は後で作成するメモデータのレイアウトデータを指す。
【０１７６】
Ｓ２（関連付け情報取得ステップ）では、関連付け情報取得手段６４が参照データとメモデータとの関連付け情報を得て、Ｓ３へ処理が進む。関連付け情報の定義については、先に説明した通りである。関連付け情報取得手段６４におけるデータの入手方法についてはメモデータと同様、キーボード７８やタブレット７３などで入力され、入力手段６０の処理を経たテキストデータや手書きデータに併せて入力された関連付けの仕方に関する情報であったり、あるいは主記憶７４や外部記憶７５に予め記録されていた関連付け情報を読み込んだデータであったりする。
【０１７７】
図１３は関連付け情報のデータ構造の一例を説明する図である。点線で囲われたデータ１０、２０、３０が一つの関連付けデータで、全体は複数の関連付けデータの配列になっており、それぞれの関連付けデータにインデックス番号でアクセスできる。関連付けデータは、大きく「メモデータリスト」、「参照データリスト」、「関連表示方法」の３つに分けられる。
【０１７８】
「メモデータリスト」は、関連付けデータによって関連付けられている「メモデータに関する情報」の配列である。ここでは、「メモデータに関する情報」を、「メモデータを特定する情報」と「メモデータを表示する方法についての情報」の組としている。
【０１７９】
「メモデータを特定する情報」は、例えば、図１３では、データ１１、２１、３１、３３であり、ここでは図１２に示すメモデータの番号を記録してある。「メモデータを表示する方法についての情報」は、図１３では、データ１２、２２、３２、３４であるが、データの中身の意味については、後で説明する。
【０１８０】
「参照データリスト」は、関連付けデータで関連付けられている「参照データに関する情報」の配列である。ここでは、「参照データに関する情報」として、「参照データを特定する情報」と「参照部分を視認可能に表示する方法（参照データの関連表示を表示する方法）についての情報」の組としている。図１３では、「参照データを特定する情報」はデータ１３、２３、２５、３５であり、「参照部分を視認可能に表示する方法についての情報」はデータ１４、２４、２６、３６である。
【０１８１】
「参照データを特定する情報」は、図２の表示対象要素のレイアウトデータの「データ位置」に対応するものとなる。例えば、先頭から５番目の表示対象要素から７番目の表示対象要素までを参照部分とするなら、参照データを特定する情報は、「５〜７」となる。
【０１８２】
「参照部分を視認可能に表示する方法についての情報」の意味については、後で説明する。
【０１８３】
「関連表示方法」は、参照データとメモデータとの関連付けを表示する方法を表しており、図１３ではデータ１５、２７、３７である。データの中身の意味については後で説明する。
【０１８４】
Ｓ３では、コンテンツデータ取得手段６２がコンテンツデータを取得する。コンテンツデータの定義については、先に説明した通りである。以降では、説明を分かり易くする為、プレーンテキストで記述されているとする。コンテンツデータは、コンテンツデータ取得手段６２が主記憶７４や外部記憶７５に予め記録されていたコンテンツデータを読み込んだり、ネットワークを介して読み込むことで得られる。
【０１８５】
Ｓ４では、メモデータレイアウト取得手段６６が、メモ表示を行うかどうかの情報を得て、Ｓ５へ処理が進む。。
【０１８６】
メモ表示を行うかどうかの情報（メモＯＮ／ＯＦＦ情報と呼ぶ）は、本発明を実施するアプリケーションや装置などから得ることがある。つまり、主記憶７４や外部記憶７５に予め記録されたメモＯＮ／ＯＦＦ情報を、メモデータレイアウト取得手段６６が取得する。また、ユーザに尋ねることによって、メモデータレイアウト取得手段６６が入力手段６０を介してメモＯＮ／ＯＦＦ情報を取得する場合もある。あるいはそれぞれのメモデータに既にその情報が含まれていて、メモデータレイアウト取得手段６６がメモデータと合わせてメモＯＮ／ＯＦＦ情報を取得することもある。
【０１８７】
メモ表示を行うかどうかは、予めアプリケーションあるいは装置の設定によって全てのメモデータに対して一律に決める場合もあれば、それぞれのメモデータ毎に、またはメモデータの種類毎に決める場合もある。
【０１８８】
ここでは、アプリケーションあるいは装置の設定によって全てのメモデータに関してまとめて決めるとしておく。なお、ここではメモＯＮ／ＯＦＦ情報をメモデータ全体で一括した値として得ているが、図１２のメモデータや図１３の関連付け情報にメモＯＮ／ＯＦＦ情報をメモデータ毎に持たせる形態を採用すれば、メモデータ毎に表示の有無を指定することができる。
【０１８９】
Ｓ５では、Ｓ４で得られたメモＯＮ／ＯＦＦ情報に基づき、メモデータレイアウト取得手段６６がメモを表示させるか否かを判断する。メモを表示させる場合は、連結点Ｐ１０（以降、「連結点Ｐ」を「Ｐ」と略記する）を経てＳ６へ処理が進み、メモを表示させない場合はＳ５からＳ７へ処理が進み、コンテンツデータの表示処理を行う。なお、Ｓ７の内容については、後述のＳ６−６の説明が該当する。
【０１９０】
Ｓ６（表示ステップ）では、コンテンツデータのレイアウトをメモデータ表示の為に変更せずにコンテンツデータやメモデータなどをレイアウト出力手段６７によって表示させて、Ｐ１００を経て処理を終了する。Ｓ６での処理の詳細は後で述べる。
【０１９１】
これによって、メモデータとコンテンツデータとを関連付けて表示させる一連の処理を行うことができる。なお、Ｓ１〜Ｓ３の処理の順番は特にこの順でなくても良く、適宜入れ替わっても良い。
【０１９２】
図１４は、図１１のＳ６の処理、すなわちレイアウト出力手段６７が、レイアウトされたメモデータおよびコンテンツデータを、例えば前述の表示部兼タブレット９１に表示する処理の一詳細例を説明するフローチャート図である。
【０１９３】
Ｐ１０からＳ６−１（レイアウト可能範囲取得ステップ）に進むと、表示範囲取得手段６１が表示／出力媒体のレイアウト可能範囲を取得して、Ｓ６−２へ処理が進む。すなわち、Ｓ６−１では、レイアウト可能範囲は、キーボード、マウス等を介したユーザの操作や、文書表示プログラムや、表示／出力先の装置によって指定され、表示範囲取得手段６１に入力される。
【０１９４】
Ｓ６−２では、コンテンツレイアウト範囲取得手段６８がコンテンツデータの表示レイアウト範囲（コンテンツレイアウト範囲）を取得して、Ｓ６−３へ処理が進む。コンテンツレイアウト範囲取得手段６８は、前述したように、主記憶７４、外部記憶７５、ネットワークなどから既に設定済みのコンテンツレイアウト範囲を得たり、あるいは主記憶７４、外部記憶７５、ネットワークなどから読み取られるプログラムに基づき、表示範囲取得手段６１から得たレイアウト可能範囲などを元に、コンテンツレイアウト範囲を得る。
【０１９５】
例えば図１では、Ｘ軸方向のコンテンツレイアウト範囲は、左右の余白ＸＬ，ＸＲを除いた行の幅ＣＷの部分、Ｘ座標値で言えば、ＸＬ〜（ＸＬ＋ＣＷ）の範囲となる。Ｙ軸方向のコンテンツレイアウト範囲は、上下の余白ＹＴ，ＹＢを除いた部分であり、Ｙ座標値で言えば、ＹＴ〜（ＹＴ＋ＣＨ）の範囲であるが、コンテンツデータのレイアウトはまだ取得されていないので、ＣＨの値はまだ確定していない。逆に、コンテンツデータのレイアウトが決まり、ＣＨが確定してから、（ＹＴ＋ＣＨ＋ＹＢ）をレイアウト全体４０の高さと設定することになる。従って、コンテンツデータのレイアウト範囲の高さがＣＨの値によって制限される訳ではなく、実際上はＹＴの値にだけに制限されることになる。
【０１９６】
Ｓ６−３では、コンテンツデータレイアウト取得手段６５がコンテンツデータの表示レイアウト（各表示対象要素のレイアウトデータ）を取得ないし生成して、Ｐ３０を経てＳ６−４へ処理が進む。すなわち、コンテンツデータレイアウト取得手段６５は、既に作成済みのレイアウトデータを主記憶７４、外部記憶７５、ネットワークなどから取得する。
【０１９７】
あるいは、コンテンツデータレイアウト取得手段６５は、Ｓ３で取得されたコンテンツデータをコンテンツデータ取得手段６２から得、Ｓ６−２で取得されたコンテンツレイアウト範囲をコンテンツレイアウト範囲取得手段６８から得て、レイアウトデータを生成する。
【０１９８】
ここでは、コンテンツデータの表示レイアウトは行の配列からなり、各行は図３のように表示対象要素の配列を持ち、表示対象要素のレイアウトは図２のようになっているとする。
【０１９９】
一般に図２のレイアウトデータは、位置Ｘ、Ｙ以外は、Ｓ６−３でレイアウトする前に設定することができる。例えば文字や画像の大きさなどは予め設定されていて、知ることができる（なお、文字の大きさが表示設定によって変わるとしても、表示設定を知ることができれば、文字の大きさも知ることができる、という意味である）。
【０２００】
従って、レイアウトを作成するとは、図２に示すように、レイアウトに即して配列させた表示対象要素のデータ（構成要素データ）であって、ＸとＹの項以外のデータが予め定められた各構成要素データに対して、ＸとＹの項を設定することである。
【０２０１】
また、図３に示すような行構造のレイアウトデータを作成する場合は、行の位置（Ｘ，Ｙ）、大きさ（Ｗ，Ｈ）、どの行にどの表示対象要素を入れるか（表示対象要素配列）、なども設定することになる。
【０２０２】
以降、コンテンツデータのレイアウト範囲に、コンテンツデータ（表示対象要素）をレイアウトする方法を説明する。
【０２０３】
例えば、プレーンテキストを横方向の行に図１のレイアウト範囲内（幅ＣＷ）でレイアウトするとする。レイアウト範囲の上余白をＹＴ，文字の大きさは全て同じで（ＷＣ、ＨＣ）、文字間幅をＩＣ、行間高さをＩＬとする。
【０２０４】
まず、最初の文字をレイアウトする。位置を余白ぎりぎりの左上位置（ＸＬ、ＹＴ）と決める。そして現在の行８０（図３参照）の表示対象要素配列の項に最初の文字（表示対象要素）の識別情報（例えばデータ位置）を代入する。ここでは、行８０の表示対象要素配列として、最初の文字のデータ位置である１が代入される。
【０２０５】
表示対象要素配列を更新したら、行の位置（Ｘ，Ｙ）、大きさ（Ｗ，Ｈ）も更新する。上記の場合、表示対象要素は最初の文字なので、行８０の位置（ＸＬ、ＹＴ）はそのまま変わらず、大きさ（Ｗ，Ｈ）には文字の大きさ（ＷＣ、ＨＣ）が代入される。
【０２０６】
次の文字をレイアウトする場合、まず、次の文字の識別情報（データ位置の２）を行８０の表示対象要素配列に追加する。なお、次の文字の位置は、（その前の文字の幅＋文字間幅）だけ横にずらした位置（ＸＬ＋ＷＣ＋ＩＣ、ＹＴ）となる。行８０の位置は変わらず、大きさとして（（１文字分の幅）＋（文字間幅））だけ幅が増えて（ＷＣ×２＋ＩＣ、ＨＣ）となる。
【０２０７】
同様にその次の文字をレイアウトすると、文字の位置は（ＸＬ＋（ＷＣ＋ＩＣ）×２、ＹＴ）、行８０の位置は変わらず、大きさが（ＷＣ×３＋ＩＣ×２、ＨＣ）となる。
【０２０８】
同様の要領で、次々と文字を行に追加していくことができる。表示対象要素が行の横方向に追加されるので、表示対象要素のＹ座標値は全て同じで、Ｘ座標値だけが増えていくことになる。また、行の位置と高さは変わらず、幅だけが増えていくことになる。
【０２０９】
そして、レイアウト範囲の幅を超えてしまう時、すなわち、１行に配列されるｎ番目の文字で、
（文字の右端位置）−（レイアウト範囲右端位置）
＝（ＸＬ＋ＷＣ×ｎ＋ＩＣ×（ｎ−１））−（ＸＬ＋ＣＷ）  ＜  ０
となった時、次の行８１にレイアウトすべき行が変わる。あるいは、改行文字が来た場合も、次の行８１がレイアウトすべき行となる。
【０２１０】
次の行８１に最初に追加する文字のＸ座標値は、前の行８０の行頭の位置に戻してＸＬとし、Ｙ座標値は（前行位置＋前行の高さ＋行間高さ）とすれば良い。従って、次の行８１の最初の文字の位置（＝次の行８１の位置）は、（ＸＬ，ＹＴ＋ＨＣ＋ＩＬ）となる。
【０２１１】
これらの処理を繰り返すことで、行構造を持つ表示対象要素のレイアウトを作成することができる。
【０２１２】
コンテンツデータによっては、もっと複雑なレイアウト処理を行う必要がある場合もあるが、ここではＳ６−２で得たコンテンツレイアウト範囲を定めて、コンテンツデータレイアウト取得手段６５にコンテンツデータを流し込んでいけば、上記のレイアウト処理をベースとするような処理が同手段６５で行われ、レイアウトデータが得られるとする。
【０２１３】
Ｓ６−４では、コンテンツ余白特定手段６９が求めたレイアウトの余白範囲に基づいて、メモデータレイアウト範囲取得手段５９が、メモデータの表示レイアウト範囲、すなわちメモレイアウト範囲を求め、Ｐ４０を経てＳ６−５へ処理が進む。ここでの処理の詳細は後で述べる。
【０２１４】
Ｓ６−５（メモレイアウト生成ステップ）では、メモデータレイアウト取得手段６６がメモレイアウトデータを生成して、Ｓ６−６へ処理が進む。すなわち、Ｓ６−５では、Ｓ６−４で生成されたメモレイアウト範囲に、Ｓ１で得たメモデータをレイアウトすることになる。
【０２１５】
メモデータのレイアウトは、メモデータの種類によって異なるが、基本的なデータ構造は図２と同じと考えてよい。例えば、メモデータが分解、再レイアウトできない画像や手書きデータならば、大きさ（Ｗ，Ｈ）は固定で、位置（Ｘ，Ｙ）のみが変更可能である。従って、メモデータをそのままレイアウトして、位置決めするだけになる。
【０２１６】
一方、分解、再レイアウトできるようなテキストデータの場合は、それぞれの文字が表示対象要素となり、メモレイアウトデータは複数の構成要素データの配列となる。
【０２１７】
なお、決められたメモレイアウト範囲内での各表示対象要素のレイアウト方法は、Ｓ６−３のコンテンツデータのレイアウト方法と同様である。
【０２１８】
Ｓ６−６では、Ｓ６−３でコンテンツデータレイアウト取得手段６５が取得したコンテンツデータのレイアウトデータに従って、Ｓ６−１で表示範囲取得手段６１が取得したレイアウト可能範囲に対して、レイアウト出力手段６７が、コンテンツを表示／出力媒体に表示する。Ｓ６−６の処理が済むと、Ｐ９０を経て、Ｓ６−７へ処理が進む。
【０２１９】
Ｓ６−７では、Ｓ６−５でメモデータレイアウト取得手段６６が得たメモレイアウトデータに従って、Ｓ１でメモデータ取得手段６３が取得したメモデータと、Ｓ２で関連付け情報取得手段６４が得た関連付け情報とをレイアウト出力手段６７が表示して、Ｐ１００へ処理が抜ける。ここでの処理の詳細については後で処理例と共に述べる。
【０２２０】
これらＳ６−１〜Ｓ６−７の処理によって、図１１のＳ６の処理、すなわちメモデータやコンテンツデータをレイアウトして表示する処理を行うことができる。
【０２２１】
図１５は、図１４のＳ６−４の処理、すなわちメモデータレイアウト範囲取得手段５９が、メモレイアウト範囲を求める処理の一詳細例を説明するフローチャート図である。ここでの処理は、Ｓ６−７の表示処理とも絡んで、どのような方針でレイアウトを行うかによって変わってくる。ここでの説明では、ユーザの指定に沿い、参照部分の近くで、重なりの少ないメモデータのレイアウト範囲をできるだけ求めるようにする一つの処理例を示している。
【０２２２】
図１６は、メモレイアウト範囲を定める為の余白範囲を説明する図である。図１のレイアウト全体図と同様に、コンテンツデータのレイアウトは、ここでは処理し易い様に、斜線部の行８０〜８５のように行単位で示してある。余白範囲は、範囲１０１〜１３６で示されている。ここではコンテンツデータのレイアウト、すなわち行８０〜８５と重なりが全く無い余白範囲を示している。
【０２２３】
図１７は、図１６の範囲１０１〜１３６のデータ構造とデータ例を説明する図である。各範囲１０１〜１３６は、「種類」、「Ｘ」、「Ｙ」、「Ｗ」，「Ｈ」、「隣接余白範囲配列」のデータを持つ。「種類」は、範囲の種類を表すが、ここではレイアウト全体４０の中での配置をもとに、余白範囲の種類（周囲、行間等）を表している。
【０２２４】
例えば、「種類」の具体的な情報として、「Ｌｔ」（「Ｌｅｆｔ」の略号）は左端に配置された余白範囲を意味し、「Ｒｔ」（Ｒｉｇｈｔ）は右端、「Ｔｐ」（Ｔｏｐ）は上端、「Ｂｍ」（Ｂｏｔｔｏｍ）は下端にそれぞれ配置された余白範囲を意味する。
【０２２５】
また、「Ｂｄ」（Ｂｏｒｄｅｒ）は、コンテンツレイアウト範囲の周囲の余白範囲を意味する。さらに、「ＢＬ」（Ｂｅｔｗｅｅｎ  Ｌｉｎｅｓ）は行間、「ＯＬ」（Ｏｎ  Ｌｉｎｅ）は行の延長上に配置された余白範囲を意味する。
【０２２６】
なお、これらの種類は、複合して持つことができる。また、ここでは分かり易くする為に「種類」の情報を文字列で示しているが、通常は文字列でなくフラグのような形で持つことが多い。
【０２２７】
「Ｘ」、「Ｙ」、「Ｗ」，「Ｈ」は、Ｘ位置、Ｙ位置、幅、高さを表す。位置は、ここでは各範囲１０１〜１３６の左上隅の位置で表す。そのための座標系には、前記と同様、レイアウト全体４０の左上隅を原点とし、右方向を＋Ｘ方向、下方向を＋Ｙ方向としたＸ−Ｙ直交座標系を用いる。
【０２２８】
「隣接余白範囲配列」は、着目した範囲に隣接する範囲を示す。ここでは斜めに位置する範囲は「隣接余白範囲配列」に含めず、上下左右に位置する範囲だけに限定している。また、行のレイアウト範囲８０〜８５も、隣接する範囲の対象には含めていない。
【０２２９】
図１５に示すＰ３０を経たＳ６−４−１（余白特定ステップ）では、コンテンツ余白特定手段６９が、コンテンツデータがレイアウトされていない余白範囲を特定し、余白レイアウトデータを生成する。Ｓ６−４−１の処理が完了すると、Ｐ３１を経て、Ｓ６−４−２へ処理が進む。ここでの余白特定処理については後で詳しく述べるとし、処理の結果、図１７のような余白レイアウトデータが得られるとする。
【０２３０】
Ｓ６−４−２では、メモデータレイアウト取得手段６６が、Ｓ２で関連付け情報取得手段６４が得た関連付け情報からコンテンツデータの参照部分の位置を得て、Ｓ６−４−３へ処理が進む。
【０２３１】
参照部分の位置に関しては、図１３の「参照データリスト」中の「参照データを特定する情報」（データ１３、２３、３５、または３５）から参照データのデータ位置が得られる。例えば図１３の関連付け情報１０の参照データを特定する情報１３の場合、参照データのデータ位置は「５〜７」となっている。これによって、参照部分が５番目から７番目の表示対象要素であることが分かる。
【０２３２】
また、それらがどの行範囲に属するかも、図３の各行８０…の表示対象要素配列の中に、参照部分として特定されたデータ位置の表示対象要素が含まれるかどうかで判断できる。参照部分が属する行は１行の場合も複数行の場合もあるので、参照部分が属する行の情報を、行の配列として得ておく。
【０２３３】
そして、メモデータレイアウト取得手段６６が、図２のコンテンツレイアウトデータを順に走査していき、図２の「データ位置」と図１３の参照データのデータ位置とを比較して等しいときに、そのデータ位置の表示対象要素をメモデータに対応する参照データとして特定できたことになる。
【０２３４】
そして、その参照データのレイアウトデータ（図２）の位置「Ｘ」、「Ｙ」、「Ｗ」、「Ｈ」を見れば、その参照データのレイアウト範囲が得られる。例えば後で説明する図１６では、参照部分として行８１中のやや右寄りに位置する範囲１００が得られたとする。なお、参照部分が複数の表示対象要素からなる場合は、参照データはそれらの構成要素データの配列となるが、参照データが各表示対象要素に分かれていると扱いにくい。そこで、同じ行に含まれる複数の表示対象要素は、それらの外接矩形としての一つの範囲に属するとしてしまった方が扱い易い。
【０２３５】
また、図１３のデータ３０のように、一つの参照データに対して、複数のメモデータが関連付けられている場合は、Ｓ６−４−３以降の処理で、関連付けられたメモデータ分だけループ処理して、レイアウトの生成処理や表示処理をしてやればよい。但し、ここでは説明を簡単にする為、ループ処理に関しては、図１５などでは省いている。
【０２３６】
また、図１３のデータ２０のように、一つのメモデータが複数の参照データと関連付けられている場合もある。この場合、先にレイアウトされた参照データが処理された時点で、メモレイアウトが決まってしまう。従って、後から処理された参照データは、メモレイアウトを再度作成する必要はない。
【０２３７】
メモレイアウトが既に作成されているかどうかは、図１２の「レイアウト」の項を見れば分かる。もし、メモレイアウトが既に作成されている場合は、そのメモデータに関して、Ｓ６−４−２以降の処理とＳ６−５の処理とを行う必要はない。但し、ここでは説明を簡単にする為、Ｓ６−４−２以降とＳ６−５のステップでは、既にメモレイアウトを作成済みかどうかをチェックするステップは省いている。
【０２３８】
Ｓ６−４−３では、メモデータレイアウト取得手段６６が、メモデータに関して指定されている指定レイアウト方法（レイアウトの仕方）を取得して、Ｓ６−４−４へ処理が進む。指定レイアウト方法とは、メモを作成した時に、レイアウト可能範囲の中でユーザがメモを書き込んだ場所や表示方法などに関する情報であり、図９などに示すダイアログウィンドウでユーザから指定されるなどして設定される。
【０２３９】
例えば、メモを行間に表示させるのなら「行間」、余白に表示させるのなら「余白」などが、レイアウトの仕方に関する情報である。これは、Ｓ２で関連付け情報取得手段６４が、関連付け情報を読み込んだ際、図１３の「メモデータを表示する方法についての情報」（データ１２、２２、３２、または３４）から得られる。
【０２４０】
メモの作成位置でメモの意味が変わったり、分かりやすさや記憶のとどまり具合などが変わったりするので、できるだけオリジナルの作成位置にメモを表示する方が良いと思われる為、ここで指定レイアウト方法に関する情報を得ている。特に指定がなければ適当に「行間」などをデフォルトとして設定してしまえばよい。
【０２４１】
Ｓ６−４−４では、メモデータレイアウト取得手段６６が、指定レイアウト方法が「行間」かどうか判断し、行間だったらＰ３２を経由してＳ６−４−５へ処理が進み、そうでなかったらＰ３４を経由してＳ６−４−７へ処理が進む。
【０２４２】
Ｓ６−４−５では、メモデータレイアウト取得手段６６が、参照部分の近くの行間にメモデータが入りきるかどうかを判断し、入りきればＰ３３を経由してＳ６−４−６へ処理が進み、入りきらないならばＰ３４を経由してＳ６−４−７へ処理が進む。Ｓ６−４−５での処理は後で詳しく説明する。
【０２４３】
なお、Ｓ６−４−５では、メモデータレイアウト取得手段６６が、参照部分の近くの行間を特定する。このとき、メモデータレイアウト取得手段６６は、Ｓ６−４−１でコンテンツ余白特定手段６９から得た余白範囲を基にして行間の特定を行う。
【０２４４】
Ｓ６−４−６では、メモデータレイアウト取得手段６６が、Ｓ６−４−５で特定した余白範囲をメモレイアウト範囲に設定して、Ｐ４０へ処理が抜ける。
【０２４５】
Ｓ６−４−７では、Ｓ６−４−４で指定レイアウト方法が「行間」ではない場合、あるいはＳ６−４−５で参照部分の近くの行間にメモデータが入りきらない場合に、メモデータレイアウト取得手段６６が、参照部分の近くの周囲の余白にメモデータが入りきるかどうか判断する。その結果、入りきるならばＰ３５を経由してＳ６−４−８へ処理が進み、入りきらないならばＰ３６を経由してＳ６−４−９へ処理が進む。Ｓ６−４−７での処理は、後で詳しく説明する。
【０２４６】
Ｓ６−４−８では、Ｓ６−４−７でメモデータが入りきるとメモデータレイアウト取得手段６６が判断した余白範囲を、同手段６６がメモデータのレイアウト範囲に設定して、処理がＰ４０へ抜ける。
【０２４７】
Ｓ６−４−９では、Ｓ６−４−７で参照部分の近くの周囲の余白にもメモデータが入りきらない場合に、参照部分にできるだけ近い大きな余白部分にメモデータが入りきるかどうかをメモデータレイアウト取得手段６６が判断し、入りきるならばＰ３７を経由してＳ６−４−１０へ処理が進み、入りきらないならばＰ３８を経由してＳ６−４−１１へ処理が進む。Ｓ６−４−９での処理は、後で詳しく説明する。
【０２４８】
Ｓ６−４−１０では、Ｓ６−４−９で得た大きな余白範囲を、同手段６６がメモデータのレイアウト範囲に設定して、処理がＰ４０へ抜ける。
【０２４９】
Ｓ６−４−１１では、Ｓ６−４−９でもメモデータが入りきる余白を特定できない場合に、レイアウトされたコンテンツとメモとができるだけ重なりの少ない範囲をメモデータレイアウト取得手段６６が探し、その結果特定した余白範囲をメモデータのレイアウト範囲に設定して、Ｐ４０へ処理が抜ける。ここで特定する余白範囲は、後述するＳ６−４−８−２で保持してある最も重なりが少ない余白範囲から選択すればよい。
【０２５０】
メモレイアウト範囲に関しては、表示のさせ方にも関係するので、Ｓ６−７の詳細処理の説明でも関連して述べる。
【０２５１】
これらのＳ６−４−１からＳ６−４−１１の処理によって、図１４のＳ６−４の処理を行うことができる。
【０２５２】
図１８は、図１５のＳ６−４−１の処理の一詳細例を説明するフローチャート図である。
【０２５３】
Ｐ３０を経たＳ６−４−１−１では、Ｓ６−１で表示範囲取得手段６１が得たレイアウト可能範囲と、Ｓ６−２でコンテンツレイアウト範囲取得手段６８が取得ないし生成したコンテンツレイアウト範囲との差の範囲を、コンテンツ余白特定手段６９が求める。続いて、同手段６９は、この差の範囲を、図１６に示すように、各行８０…の外枠の延長線で分割して新たな余白範囲として特定し、図１７に示すように、各範囲のＸ、Ｙ、Ｗ、Ｈ、隣接余白配列を設定し、Ｓ６−４−１−２に処理を進める。
【０２５４】
図１９はこの処理を説明する図であり、図の基本構造は図１６と同様であるが、図１６のようにはまだ範囲が細かく分かれていない。図１９では、レイアウト可能範囲はレイアウト全体４０として示され、コンテンツレイアウト範囲はレイアウト範囲１４０として斜線で示されている。
【０２５５】
レイアウト可能範囲とコンテンツレイアウト範囲との差の範囲とは、ここではレイアウト全体４０からレイアウト範囲１４０を除いた部分であり、レイアウト範囲１４０の周囲の白い部分である。
【０２５６】
図１９では既にその白い部分が、範囲１０１、１１３、１１４、１２６、１２７、１３６、１４１、１４２に分割されているが、この範囲１０１、１１３、１１４、１２６、１２７、１３６、１４１、１４２を求めるには、まずレイアウト範囲１４０の上下左右の端の線を延ばして、レイアウト全体４０を分割する。図１９では分割線を点線で示してある。
【０２５７】
上下左右の余白ＹＴ、ＹＢ、ＸＬ、ＸＲが０で無ければ、レイアウト全体４０は全部で９個の範囲に分かれる。その中からレイアウト範囲１４０と同じ範囲を除いた残りが（余白）範囲１０１、１１３、１１４、１２６、１２７、１３６、１４１、１４２となる。
【０２５８】
各範囲１０１…の位置と大きさの値は、レイアウト全体４０の大きさとレイアウト範囲１４０の位置、大きさとを使って求めることができる。例えば、範囲１０１の大きさは、
（Ｗ（１０１）、Ｈ（１０１））＝（Ｘ（１４０）、Ｙ（１４０））
＝（ＸＬ、ＹＴ）、
となり、範囲１４２の位置は、
（Ｘ（１４２）、Ｙ（１４２））＝（Ｘ（１４０）＋Ｗ（１４０）、Ｙ（１４０））
＝（ＸＬ＋ＣＷ、ＹＴ）、
となる。
【０２５９】
同様にして各範囲１０１…の位置と大きさなどを求めたデータが図２０である。図２０に示す各項目は図１７と同じである。隣接余白配列は、この時点では求める必要はないのだが、念のため記しておく。隣接余白配列の求め方は後で説明する。なお、ここでは上下左右の余白ＹＴ、ＹＢ、ＸＬ、ＸＲの値は全て２０、行と行間の高さは全て１４としてある。
【０２６０】
例えば、範囲１０１は、原点に位置し、大きさは２０×２０である。範囲１１３、１１４、１２６、１２７、１３６、１４１、１４２も同様の形で記録されている。
【０２６１】
Ｓ６−４−１−１での処理と説明の為、レイアウト全体４０とレイアウト範囲１４０に関するデータも図２０に示してある。レイアウト全体４０は、原点に位置し、大きさ１４０×１９４であり、そこから上下左右に２０の余白を取ったレイアウト範囲１４０は、（２０，２０）に位置し、その大きさは１００×１５４である。
【０２６２】
Ｓ６−４−１−２では、コンテンツ余白特定手段６９がＳ６−４−１−１で得た図２０の範囲１０１、１１３、１１４、１２６、１２７、１３６、１４１、１４２の種類を設定して、Ｓ６−４−１−３へ処理を進める。範囲１０１、１１３、１１４、１２６、１２７、１３６、１４１、１４２は、レイアウト範囲１４０の周囲の範囲なので、「Ｂｄ」の値を全て持つ。
【０２６３】
Ｓ６−４−１−３では、コンテンツ余白特定手段６９が、レイアウト範囲１４０と図１９、図２０の範囲１０１、１１３、１１４、１２６、１２７、１３６、１４１、１４２を、図１６の行８０〜８５の各外枠の延長線で分割し、行８０〜８５の範囲を除き、新たな範囲１０２〜１１２、１１５〜１２５を生成し、各範囲１０２〜１１２、１１５〜１２５のＸ、Ｙ、Ｗ、Ｈ、隣接余白配列を設定し、Ｓ６−４−１−４へ処理を進める。
【０２６４】
レイアウト全体４０を分割して、行８０〜８５の範囲を除いた範囲が、図１６の（余白）範囲１０１〜１３６である。図１９同様、分割線は点線で示してある。例えば、図１９の範囲１４１は、行８０〜８５の外枠線で分割されて、範囲１０２〜１１２に分割されている。範囲１２７、１４２、１３６も同様に分割されている。
【０２６５】
また、レイアウト範囲１４０を分割して行８０〜８５の範囲を除いた範囲は、範囲１２８〜１３５である。行８０〜８２、８４、８５は同じ幅であるが、行８３は短いので、範囲１３０〜１３４は細かく分割されている。
【０２６６】
各余白範囲の位置と大きさの値は、行８０〜８５の位置と大きさ（図３）と図２０のデータなどを使って求めることができる。
【０２６７】
例えば、範囲１０３の位置と大きさは、範囲１０３を分割に寄与した行８０、８１を「上行」、「下行」と表現すれば、
（Ｘ（１０３）、Ｙ（１０３））＝（０、Ｙ（上行）＋Ｈ（上行））
＝（０、Ｙ（８０）＋Ｈ（８０））
（Ｗ（１０３）、Ｈ（１０３））＝（Ｗ（１４１）、Ｙ（下行）−Ｙ（１０３））
＝（Ｗ（１４１）、Ｙ（８１）−Ｙ（８０）−
Ｈ（８０））
となる。
【０２６８】
また、範囲１３２の位置と大きさは、行８３を「同行」と表現すれば、
（Ｘ（１３２）、Ｙ（１３２））＝（Ｘ（同行）＋Ｗ（同行）、Ｙ（同行））
＝（Ｘ（８３）＋Ｗ（８３）、Ｙ（８３））
（Ｗ（１３２）、Ｈ（１３２））＝（Ｗ（１４０）−Ｗ（同行）、Ｈ（同行））
＝（Ｗ（１４０）−Ｗ（８３）、Ｈ（８３））
となる。
【０２６９】
同様にして求めたデータが、図１７の１０１〜１３６の位置と大きさとなる。
【０２７０】
Ｓ６−４−１−４では、コンテンツ余白特定手段６９が範囲１０１〜１３６の種類を設定して、Ｓ６−４−１−５へ処理を進める。
【０２７１】
範囲１４１、１４２は分割されて、範囲１０２〜１１２、１１５〜１２５になっているが、レイアウト範囲１４０の周囲の余白であるという状態は変わらないので、範囲１４１，１４２の種類「Ｂｄ」はそのまま引き継ぎ、必要に応じて種類を追加する。
【０２７２】
レイアウト全体４０にどこかで接している場合、Ｌｔ（左端）、Ｔｐ（上端）、Ｒｔ（右端）、Ｂｍ（下端）などの値を持つことになる。判定条件は、
Ｌｔの場合：Ｘ（範囲）＝０
Ｔｐの場合：Ｙ（範囲）＝０
Ｒｔの場合：Ｘ（範囲）＋Ｗ（範囲）＝Ｗ（４０）
Ｂｍの場合：Ｙ（範囲）＋Ｈ（範囲）＝Ｈ（４０）
の各式を満たすかどうかで決まる。
【０２７３】
範囲１０１〜１２６、１２７、１３６は、レイアウト全体４０にどこかで接しているので、Ｌｔ、Ｒｔ、Ｔｐ、Ｂｍのうち少なくとも一つの値は持つことになる。例えば、範囲１０１は、レイアウト全体４０の左端と上端とに接しているので、種類が「Ｌｔ、Ｔｐ、Ｂｄ」となっている。
【０２７４】
範囲１０２、１０４、１０６、１０８、１１０、１１２、１１５、１１７、１１９、１２１、１２３、１２５、１３２には、種類「ＯＬ」（行の延長上）が追加される。これはＹ座標で考えて、各範囲に、行８０〜８５が含まれるかどうかを比較すれば良い。式で表すならば、
Ｙ（行）＋Ｈ（行）＜Ｙ（余白範囲）
あるいは、
Ｙ（余白範囲）＋Ｈ（余白範囲）＜Ｙ（行）
のどちらかを満たすならば「ＯＬ」でなく、それ以外は「ＯＬ」となる。
【０２７５】
図の例で言えば、範囲１０２は行８０の左横に位置するので、「ＯＬ」となり、範囲１０３は、行８０と行８１の間に位置し、行８０、８１とＹ座標に関して重なる範囲がないので、「ＯＬ」ではない。
【０２７６】
レイアウト範囲１４０を分割して生成した範囲１２８〜１３５の中で、
Ｙ（行）＋Ｈ（行）＜＝Ｙ（余白範囲）
かつ、
Ｙ（余白範囲）＋Ｈ（余白範囲）＜＝Ｙ（次行）
を満たすものは、行間「ＢＬ」の値を持つ。従って、範囲１３２以外は「ＢＬ」の値を持つことになる。
【０２７７】
Ｓ６−４−１−５では、コンテンツ余白特定手段６９が範囲１０１〜１３６の隣接余白配列を設定して、Ｐ３１へ処理が抜ける。
【０２７８】
隣接余白配列を設定する場合、分割手順を使って、どの余白は隣接になりうるかの候補を絞ったり、あるいは分割する度に相互に隣接しているという情報を加えていっても良いのだが、ここでは単純に全ての範囲と相互に比較する方法で説明する。
【０２７９】
範囲Ａと範囲Ｂは、
（Ａの右にＢが隣接）：Ｘ（Ａ）＋Ｗ（Ａ）＝Ｘ（Ｂ）
（Ａの下にＢが隣接）：Ｙ（Ａ）＋Ｈ（Ａ）＝Ｙ（Ｂ）
（Ａの左にＢが隣接）：Ｘ（Ｂ）＋Ｗ（Ｂ）＝Ｘ（Ａ）
（Ａの上にＢが隣接）：Ｙ（Ｂ）＋Ｈ（Ｂ）＝Ｙ（Ａ）
のいずれかの条件を満たせば、互いに隣接していることになる。
【０２８０】
この条件検索処理を全ての余白範囲同士に関して、行えば良い。行範囲８０〜８５と余白範囲１０１〜１３６の間でも同様の処理方法を使うことで、行範囲に隣接する余白範囲の配列を図３のように求めることができる。
【０２８１】
以上のＳ６−４−１−１〜Ｓ６−４−１−５の処理により、図１５のＳ６−４−１の処理を行うことができ、図１６、図１７の余白範囲を特定できることになる。
【０２８２】
図２１は、図１５のＳ６−４−５の処理の一詳細例を説明するフローチャート図である。
【０２８３】
Ｐ３２を経たＳ６−４−５−１では、メモデータレイアウト取得手段６６が、Ｓ６−４−２で同手段６６が得た参照部分の属する行（以降、参照行と呼ぶ）に隣接する、種類がＢＬの余白範囲を得る。
【０２８４】
行に隣接する余白範囲は、図３のデータの隣接余白配列から得られるので、この隣接余白配列の中から、ＢＬ（行間）の種類の余白範囲を抜き出せば良い。
【０２８５】
着目した行の上下に隣接する行間が存在する場合や、行間が横方向に分かれている場合（図１６に示す範囲１３０，１３１など）もあるので、得られる余白範囲は配列の形態を取る。例えば、図１６の参照部分１００の場合、隣接する余白範囲は、参照部分１００が属する行８１に対して上の範囲１２８と下の範囲１２９となる。
【０２８６】
なお、この時点で例えば上の行間と下の行間のどちらかに絞る／優先度をつける処理をしても良い。どちらにするかは、図１３のメモデータリストの「メモデータを表示する方法についての情報」において「上の行間」、または「下の行間」という指定を行うようにすれば良い。これにより、メモデータレイアウト取得手段６６が、図１３の関連付け情報を記憶した外部記憶７５等にアクセスし、指定された行間の情報を取得することができる。指定がなければ、どちらかに予め決めるルーチンを設定しておいても良い。
【０２８７】
Ｓ６−４−５−２では、メモデータレイアウト取得手段６６が、Ｓ６−４−５−１で余白範囲が得られたかどうかを判断し、余白範囲が得られた場合はＳ６−４−５−３へ処理が進み、得られない場合はＰ３４へ処理が抜ける。
【０２８８】
Ｓ６−４−５−３では、メモデータレイアウト取得手段６６が、Ｓ６−４−５−１で得られた余白範囲を拡張して、Ｓ６−４−５−４へ処理が進む。この拡張は必ずしも行わなくても良いが、後で説明する図３７のように、Ｓ６−４−５−１で得られた余白範囲だけではメモを配置するのに足りない場合に、周囲の余白にまで、メモのテキストをレイアウトする場合を想定している。
【０２８９】
但し、拡張する際も拡張の方針は決めておかないと、際限なく拡張が行われてしまう。例えば、最初の行間の余白に関しては、横に隣接する余白範囲に拡張しても良い、という方針の場合、図１６の範囲１２９の行間から左右の範囲１０５、１１８には拡張できることになる。あるいは、右方向と下方向に隣接する余白範囲は全て拡張して良いとすると、範囲１３０から拡張する場合、範囲１３１〜１３４、１２０〜１２６が拡張できることになる。横行の場合、右方向および下方向は自然な拡張方向なので、馴染みやすいという利点がある。隣接を調べる方法は、Ｓ６−４−１−５で既に説明したとおりである。
【０２９０】
Ｓ６−４−５−４で、メモデータレイアウト取得手段６６が、Ｓ６−４−５−３で得られた余白範囲にメモデータをレイアウトできるかどうかを判定し、レイアウトできる場合はＰ３３へ処理が抜け、できない場合はＰ３４へ処理が抜ける。
【０２９１】
レイアウトできるかどうかは、同手段６６が通常のレイアウト処理を試してみることで判断できる。例えば、図１２のＦＲＥＥＨＡＮＤやＩＭＡＧＥのメモデータの場合、大きさは固定なので、その大きさを、特定した余白範囲の大きさと比較すれば良い。
【０２９２】
ＴＥＸＴのメモデータの場合、１文字１文字をレイアウトしていくことになるので、図１４のＳ６−３でコンテンツデータのレイアウトについて説明した処理と同様の処理を行えばよい。この時、余白範囲の高さが文字の高さより低い場合は、行のレイアウトとメモのレイアウトとが重ならないように、メモをレイアウトすることはできないことになる。レイアウトの方針として、コンテンツのレイアウトとメモのレイアウトとの重なりが全く無いことを定めている場合は、この時点でメモのレイアウトが不可能と判断することになる。
【０２９３】
レイアウトの方針として、コンテンツのレイアウトとメモのレイアウトの重なりが所定の面積あるいは所定の割合以下の時は、レイアウト可能とすることを定めている場合、メモの１文字をレイアウトする度、重なり部分の面積や割合を計算して、所定の面積あるいは所定の割合以下かどうかを、上記手段６６が判断すればよい。
【０２９４】
行レイアウトとメモの文字レイアウト（表示対象要素）の重なりは、Ｓ６−４−５−３で得た全ての余白範囲に対して、文字レイアウトの範囲と重なる部分を除いて、残った範囲として求められる。
【０２９５】
重なる部分を除くとは、例えば、
Ｙ（余白）＜Ｙ（文字）＜Ｙ（余白）＋Ｈ（余白）＜Ｙ（文字）＋Ｈ（文字）
などという場合、文字の上側部分、すなわちＹ（文字）からＹ（余白）＋Ｈ（余白）の範囲、が余白と重なっている。従って、重なっている文字の上側部分を除いた文字の下側部分は、Ｙ（余白）＋Ｈ（余白）からＹ（文字）＋Ｈ（文字）の範囲となるので、文字の下側部分の位置Ｙ’（文字残り）と高さＨ’（文字残り）は、
Ｙ’（文字残り）＝Ｙ（余白）＋Ｈ（余白）
Ｈ’（文字残り）＝Ｙ（文字）＋Ｈ（文字）−Ｙ’（文字）、
となる。Ｘ方向についても同様に、Ｘ’（文字残り）、Ｗ’（文字残り）が求められる。
【０２９６】
この部分は、余白範囲から外れているので、行と重なっている。つまり、もしこの状態でメモを表示させたら、メモと本文行が重なって見えてしまう。この時、メモと本文行の重なり部分の面積ＳＯ（文字重なり）は、
ＳＯ（文字重なり）＝Ｈ’（文字残り）×Ｗ（文字）＋Ｈ（文字）×Ｗ’（文字残り）−Ｈ’（文字残り）×Ｗ’（文字残り）、
となる。
【０２９７】
これを全ての文字について足し合わせれば、重なった部分の面積ＳＯ（全文字重なり）が求められる（なお、重なった部分が上下２つの余白範囲に分かれる場合は、重なった部分を範囲の配列として個別に重なった部分などを管理し、面積などの計算ではそれらを足し合わせばよい）。
【０２９８】
一方、レイアウトされた１文字の面積ＳＬ（文字）は、
ＳＬ（文字）＝Ｗ（文字）×Ｈ（文字）、
であり、これを全ての文字について足し合わせれば、メモのレイアウト部分の面積ＳＬ（全文字）が求められる。
【０２９９】
重なりが所定の面積以下かどうかを判断するならば、ＳＯ（全文字重なり）が所定の面積を超えた時点で、メモをレイアウトできないと判断し、最後の文字までレイアウトしても、ＳＯ（全文字重なり）が所定の面積を超えなければメモのレイアウトが可能と判断する。
【０３００】
重なりの面積が所定の割合以下かどうかを判断するなら、（ＳＯ（全文字重なり）／ＳＬ（全文字））が、所定の割合を超えたらメモをレイアウトできないと判断し、超えない場合はメモのレイアウトが可能と判断する。なお、割合の場合、判断を１文字ずつ逐次的に行う場合と、最後の文字までレイアウトして最終的に割合を比較する場合とが考えられる。
【０３０１】
なお、余白範囲が範囲１０５、１２９、１１８などのように横一列に並んでいる場合は、余白範囲の高さとメモの文字の高さとに基づいて、各文字がコンテンツのレイアウトと重なりあう面積や割合は求まるので、上記手段６６の判断処理を簡易化することもできる。
【０３０２】
また、メモの文字サイズが一定の場合、メモの文字の高さから余白範囲の高さを引き算した正の値（重なり高さ）が、行の高さに対してどのくらいの割合になるかを求め、この割合が所定値以下になることを、メモのレイアウトを許可する条件としてもよい。
【０３０３】
なお、メモデータと本文データのレイアウトが所定の割合や面積以下ならば重なってもよいと判断した場合、表示結果はメモデータと本文データのレイアウトが一部重なってしまうが、この状態を「上書き表示」と呼ぶことにする。
【０３０４】
以上のＳ６−４−５−１〜Ｓ６−４−５−４の処理によって、図１５のＳ６−４−５を処理することができる。
【０３０５】
図２２は、図１５のＳ６−４−７の処理の一詳細例を説明するフローチャート図である。
【０３０６】
図２１とほぼ同様の処理で、Ｓ６−４−７−１だけ異なる。
【０３０７】
Ｐ３４を経たＳ６−４−７−１では、メモデータレイアウト取得手段６６が、Ｓ６−４−１で参照部分が属する行に隣接する、種類がＢｄの余白範囲を得る。
【０３０８】
行に隣接する余白範囲は、図３のデータの隣接余白配列から得られるので、この隣接余白配列の中から、種類がＢｄ（周囲）の余白範囲を抜き出せば良い。該当する余白範囲が、行の上下左右に存在する場合もあるので、得られる余白範囲は配列の形態を取る。例えば、図１６の参照部分１００の場合、隣接する種類がＢｄの余白範囲は左の範囲１０４と右の範囲１１７となる。
【０３０９】
なお、この時点で例えば左の範囲と右の範囲のどちらかに絞る／優先度をつける処理を行っても良い。どちらにするかは、図１３のメモデータリストの「メモデータを表示する方法についての情報」において上下左右のどちらの方向に絞るか／優先するかの指定を行うようにしても良い。指定がなければ、いずれかに予め決めるルーチンを設定しておいても良い。あるいは、参照部分から一番距離的に近い余白範囲を選ぶ、あるいは一番幅が大きい（ＸＬ、ＸＲ、ＹＴ、ＹＢの間で一番大きい）余白範囲を選ぶ、という方法もある。
【０３１０】
例えば距離で選ぶ場合、図１６では、参照部分１００が行範囲８１の中で少し右よりなので、範囲１０４より近い範囲１１７の方を選ぶということになる。
【０３１１】
以上の処理によって、図１５のＳ６−４−７を処理することができる。
【０３１２】
図２３は、図１５のＳ６−４−９の処理の一詳細例を説明するフローチャート図である。
【０３１３】
Ｐ３６を経たＳ６−４−９−１では、メモデータレイアウト取得手段６６が、「余白範囲最大矩形リスト」を得て、Ｐ３７を経てＳ６−４−９−２へ処理が進む。
【０３１４】
「余白範囲最大矩形」とは、ある余白範囲に隣接する余白範囲を、矩形となるような状態で統合して余白範囲を拡張していき、もう拡張しきれない状態の余白範囲の集まりを言う。例えば、図１６の範囲１３１を拡張していくと、範囲１３１、１３２、１３４、１２０〜１２２の６つの範囲を統合した矩形が得られる。また、範囲１３０を拡張していくと、範囲１０７、１３０、１３１、１２０を統合した横長の矩形が得られる。「余白範囲最大矩形リスト」とは、このようにして定められた余白範囲最大矩形が複数集まったものである。
【０３１５】
Ｓ６−４−９−１の処理の詳細は後で説明する。
【０３１６】
Ｓ６−４−９−２では、メモデータレイアウト取得手段６６が、Ｓ６−４−９−１で得られた余白範囲最大矩形リスト中の余白範囲最大矩形から、メモをレイアウト可能な余白範囲最大矩形を抽出して、Ｓ６−４−９−３へ処理が進む。レイアウト可能かどうかは、Ｓ６−４−５−４と同様の判断方法によればよい。抽出の結果、該当する余白範囲最大矩形は無い場合もあるし、複数の場合もある。
【０３１７】
なお、Ｓ６−４−１１での処理用に、該当する余白範囲最大矩形が無い場合でも、最も重なり（面積、割合など）が少ない余白範囲最大矩形は、一つ保持しておく。
【０３１８】
Ｓ６−４−９−３では、上記手段６６が、Ｓ６−４−９−２で得たメモが入りきる余白範囲最大矩形があるかどうか判断し、あればＳ６−４−９−４へ処理が進み、なければＰ３９へ処理が抜ける。
【０３１９】
Ｓ６−４−９−４では、上記手段６６が、Ｓ６−４−９−２で得たメモが入りきる余白範囲最大矩形の内、参照部分に最も距離的に近いものを選び、Ｐ３８へ処理が抜ける。
【０３２０】
以上の処理によって、図１５のＳ６−４−９を処理することができる。
【０３２１】
図２４は、図２３のＳ６−４−９−１の処理の一詳細例を説明するフローチャート図である。
【０３２２】
Ｐ３６を経たＳ６−４−９−１−１では、メモデータレイアウト取得手段６６が、図１７の隣接余白配列を下記のループリストに設定し、ループリストの最初の余白範囲をカレント余白矩形に設定し、Ｓ６−４−９−１−２へ処理が進む。
【０３２３】
「ループリスト」とは、Ｓ６−４−９−１−２からＳ６−４−９−１−８の処理ループを回していく際に、カレント余白矩形を作成するもととなる余白矩形のリストである。この時点では、ループリストに個々の余白範囲が入っているだけだが、Ｓ６−４−９−１−５で新たな余白範囲が追加されることもある。
【０３２４】
「余白矩形」とは、余白範囲の一つ以上の集まりからなるもので、隣接していて、全体として矩形の形状になっているものである。
【０３２５】
「カレント余白矩形」とは、現在ループ処理中の余白矩形のことである。
【０３２６】
Ｓ６−４−９−１−２では、同手段６６が、カレント余白矩形が存在するかどうか判断し、存在すればＳ６−４−９−１−３へ処理が進み、存在しなければＰ３７へ処理が抜ける。
【０３２７】
Ｓ６−４−９−１−３では、同手段６６がカレント余白矩形をワークリストに設定して、Ｓ６−４−９−１−４へ処理が進む。
【０３２８】
「ワークリスト」は、Ｓ６−４−９−１−４からＳ６−４−９−１−６のループを処理する際に使われるカレント余白矩形である。
【０３２９】
Ｓ６−４−９−１−４では、同手段６６がワークリスト中の４隅の余白範囲を取得して、Ｓ６−４−９−１−５へ処理が進む。４隅とはカレント余白矩形の４隅であり、ワークリスト中の余白範囲が２行２列未満の場合は、一部、重複することになる。
【０３３０】
例えば、ワークリストが図１６に示す範囲１３１〜１３４、１２０〜１２２ならば、４隅の余白範囲は範囲１３１、１３４、１２０、１２２となる。ワークリストが範囲１３１、１３２ならば、４隅の余白範囲は範囲１３１、１３２となる。ワークリストが範囲１３１だけならば、４隅の余白範囲は範囲１３１となる。
【０３３１】
Ｓ６−４−９−１−５では、同手段６６が４隅の余白範囲を、矩形形状を保ったまま拡張する。
【０３３２】
図２５は拡張の仕方を説明する説明図である。斜線を引いた６つの余白範囲がワークリストだとし、右上の範囲１５０を拡張する場合を考える。上に拡張する場合は、範囲１５１だけを拡張しただけでは、右上に飛び出た形状になってしまい、矩形にならない。そこで、範囲１５１から左方向に余白範囲を調べにいき、左上隅の範囲１５６の上の範囲１５３まで全て、すなわち範囲１５１、１５２、１５３全てを一度に拡張する。例えば、範囲１５２が行範囲などである場合、余白範囲のワークリストとして拡張はできないので、範囲１５０から上へは拡張できないことが分かる。
【０３３３】
範囲１５０から右に拡張する場合も同様で、範囲１５４から下方向に余白範囲を調べにいき、右下隅の範囲１５７の右の範囲１５５まで全て、すなわち範囲１５４、１５５全てを一度に拡張する。
【０３３４】
他の隅に関しても、余白範囲を調べる方向を変えることで同様の拡張方法を実行することとなる。但し、範囲１５６から上に拡張する場合、範囲１５０から上に拡張する場合と同じになるので、実際は４隅全て拡張できるか調べる必要はなく、対角となる２隅を調べれば十分である。図２５で言えば、範囲１５０と範囲１５８の組、あるいは範囲１５６と範囲１５７の組のいずれかが、対角となる２隅として選択される。
【０３３５】
４隅から拡張が可能となる場合は、結局、上下左右に４通り考えられるが、それぞれ拡張した結果は異なる余白範囲となるので、ここで処理を分岐させる必要がある。なお、以下、拡張して得られた新たな余白範囲を余白矩形と呼ぶ。
【０３３６】
ここでは簡易的に、ワークリストに登録する拡張した余白矩形は一つとし、残りの最大３通りの拡張した余白矩形は次回以降に処理されるように、ループリストに登録しておく。
【０３３７】
例えば図２５では、範囲１５０から上と右に拡張可能だった場合、範囲１５１、１５３、１５８、１５７を４隅とする余白矩形をワークリストに登録し、範囲１５４、１５６、１５８、１５６を４隅とする余白矩形はループリストに登録することとなる。
【０３３８】
Ｓ６−４−９−１−６では、同手段６６がＳ６−４−９−１−５で拡張が行われたかどうか判定し、拡張が何も行われなかった場合は、Ｓ６−４−９−１−７へ処理が進み、拡張が行われた場合はＳ６−４−９−１−４へ処理が戻る。
【０３３９】
Ｓ６−４−９−１−７では、同手段６６がワークリストを余白範囲最大矩形リストに追加して、Ｓ６−４−９−１−８へ処理が進む。
【０３４０】
Ｓ６−４−９−１−８では、同手段６６がカレント余白矩形をループリスト中の次の余白矩形に設定して、Ｓ６−４−９−１−２へ処理が戻る。
【０３４１】
以上の処理によって、図２３のＳ６−４−９−１を処理することができる。
【０３４２】
ここまでの説明で主にコンテンツデータとメモデータのレイアウトを作成する方法について述べたので、以降では、その表示の仕方について具体例を使って説明する。
【０３４３】
図１０は、参照部分がコンテンツデータの「文書」の部分、それに関連付けられたメモデータが「ドキュメント」というテキストデータとなっている状態で関連付け表示を行った例である。図１０では、参照部分とメモとの関連付けを下線を使って表し、メモを行間にレイアウトしているが、表示の仕方については後で説明するとし、本文のレイアウトが変わった際の表示の変化について説明する。
【０３４４】
図２６は、コンテンツデータとしてのテキストの文字の大きさを倍にして、図１０に示すメモデータと関連付けて表示した例である。既に説明した処理によって、文字の大きさを倍にしたコンテンツデータをコンテンツレイアウト範囲内に再レイアウトした結果、「文書」の部分のレイアウト位置が、図１０のレイアウト位置よりも右下に変更されている。これに対し、既に説明した処理によってメモレイアウトが再作成された結果、「文書」に関連付けられた「ドキュメント」のメモデータは、参照部分「文書」のレイアウト位置変更に追従して、メモの文字が参照部分に重ならないように、下線と共にレイアウト位置が変更されている。
【０３４５】
図２７は、本発明の技術を使わず、メモデータの表示位置だけを単に記録していた場合の処理例である。図１０の状態で適正な表示となるように下線と「ドキュメント」というメモが入力されていたとする。この状態の下線とメモの表示位置を記録していて、図２６同様、コンテンツデータのテキストの文字の大きさを倍にして再表示した状態が図２７である。
【０３４６】
図１０の下線やメモの表示位置だけを記録しているので、図１０と同じ位置に下線やメモの内容を表示させると、コンテンツデータ本文の表示と重なってしまうという不具合が生じている。また、下線の位置も参照部分に対してずれてしまっているので、コンテンツとメモとの関連付けが誤って解釈されてしまうかもしれないという不具合も生じている。
【０３４７】
図２６と図２７を比較したら分かるように、本発明の技術を使い、参照部分とメモデータを関連付け、コンテンツデータのレイアウト後に、参照部分のレイアウトに対応してメモデータのレイアウトを行うことで、コンテンツデータのレイアウト位置の変更に追従して、見易く、解釈間違いのないメモデータの表示を行うことができる効果が出てくる。
【０３４８】
図１４のＳ６−７での参照部分、メモデータ、関連付けなどの表示の仕方は様々な方法が考えられる。
【０３４９】
まず、参照部分の表示の仕方であるが、これは紙の本で人が文章などをマークする場合に行う方法はほとんどそのまま適用できる。その場合、ユーザにとってなじみ易く、説明も不要であるという効果が出てくる。
【０３５０】
例えば、図１０は関連付けを下線で示した例である。縦行ならば行の右側あるいは左側の傍線となる。図１３の参照データから、図２のような表示対象要素のデータ中の参照部分となるべき表示対象要素を特定できるので、特定された表示対象要素の位置や大きさのデータから下線を引くべき位置が求められる。
【０３５１】
なお、文字や直線、曲線などの表示は、グラフィカルデバイスを扱えるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）ならば、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎｓ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）やライブラリなどで命令として用意されているのが一般的なので、それらの命令を組み合わせることで、複雑な形状の表示なども行うことができる。そこで、ここでは詳細には説明せず、命令を作成する為に必要な表示位置などの情報の取得方法などを説明するにとどめる。
【０３５２】
下線は紙の本などでも最も一般的な表示方式である。直線でなく、点線や波線にしたり、太さ、色を変えたりというようなバリエーションも色々考えられる。また、線の太さを行と同じくらいの太さにして行に重ねるようにすれば、蛍光ペンでマークを入れたのと同じようになる。色も下の文字が透けるように透明度を持たせた半透明にするとさらに蛍光ペンのマークのようになり、下の文字を隠さない効果や目立たせる効果が出てくる。
【０３５３】
また、直線などの規則的な線分ではなく、不規則に乱れた線分にして、手書きの線分のように見せると目立ち易いという効果も得られる。線に関するこれらの工夫は関連情報の表示全てに当てはまるので、以降では説明は省く。
【０３５４】
下線などを使う場合、参照部分が短い時は良いが、長くなって何行にも渡るようになると、線分が多くなり、邪魔になってくる欠点がある。
【０３５５】
図２８は、参照部分を線分で囲んだ例である。囲み方も色々考えられ、矩形や多角形で囲んだり、図２８のように矩形の角を丸めた形や楕円に近いような形も考えられる。囲む範囲の位置と大きさは、参照部分のレイアウトデータから得られる。
【０３５６】
図２９は参照部分が複数の行に渡った場合に、参照部分全体を線分で囲んだ例である。この方式は、参照部分が長くなっても、図１０のような下線を用いる方法に比べて線分がそれほど増えない利点がある。図３の行データの表示対象要素配列と、参照部分のデータとを比較すれば、参照部分の属する行を特定できるので、その結果、参照部分が複数の行に渡っているかどうかが判断できる。
【０３５７】
１つのメモに対して参照部分が複数有る場合は、メモデータを行間にレイアウトするよりは、図２９のように周囲の余白部分にレイアウトした方が、一般に見易い。
【０３５８】
なお、参照部分が複数の行に渡っている場合、個々の行内で参照部分を矩形などで囲ってもよいし、図２９のようにそれらを統合した多角形としてもよい。統合するには、例えば、矩形の高さを矩形の上端、下端が行間の真中にくるような高さにし、各行の参照部分に矩形の上端、下端が重ならないようにする、などという方法が考えられる。
【０３５９】
また、参照部分の囲み部分の表示方法として、内部を半透明色で塗りつぶしたり、斜線や網点などの模様を上書きするという方法も考えられる。参照部分を強調したい時などには有効である。
【０３６０】
図３０は、参照部分を線分では囲まず、行左右の余白部分での線分で参照部分を示した例である。参照部分を線分で枠線として囲むよりは線分が少ない分、視覚的に邪魔にならない効果がある。
【０３６１】
以上の例は主に参照部分の特定の仕方に関するものだが、表示の仕方によっては、別の意味を持たせる効果が出てくることがある。
【０３６２】
図３１は、打ち消し線を参照部分に上書きしたものである。打ち消しを示唆する表示をすることで、関連付け表示に打ち消しという意味を与えることができる効果がある。また、打ち消し線は、誤った内容を削除したい時に紙の文書で行われる手法であり、ユーザに取ってなじみ易く、説明も不要という効果も出てくる。また、打消し線に加えてメモデータを参照部分付近に表示させることで、そのメモデータに書き換えたことを示唆する効果が出てくる。打ち消し線の位置は、下線の時と同様、参照部分のレイアウト範囲の情報から算出できる。
【０３６３】
図３２と図３３は、コンテンツの文章にメモを挿入する例である。図３２が割り込み、図３３が吹き出しを使ってメモおよび関連付けを表示した例である。割り込みの表示位置は、どの文字（表示対象要素）とどの文字の間にメモを割り込ませれば良いかが参照データとして示されている（参照データでの具体的な表現の仕方は後で説明する）。割り込みの表示位置の両側に位置する文字のレイアウト位置は求めることができるので、割り込み位置も求めることができる。吹き出しの大きさは、メモのレイアウトデータから外接矩形や外接楕円などを算出することによって決める。
【０３６４】
挿入を示唆する表示をすることで、関連付け表示に挿入という意味を与えることができる効果がある。これは、行内で並んでいる表示対象要素間に、吹き出しや割り込みの記号などを用いて書き込みを挿入したい時に紙の文書で行われる手法であり、これもユーザに取ってなじみ易く、説明も不要という効果も出てくる。
【０３６５】
なお、挿入の場合、参照部分は表示対象要素ではなく、複数の表示対象要素の間なので、「参照データを特定する情報」の扱いを工夫する必要がある。例えば表示対象要素の先頭からの数を使う場合、１１文字目と１２文字目の間に挿入したいときは、図１３にデータ３５として示すように、その中間の値を取って「１２．５」番目とするとか、挿入であることが識別できるように負の値にして「−１３」番目とする方法や挿入を示すフラグ情報の追加などが考えられる。同様に、先頭からのバイト数の場合、１５バイト目の文字と１７バイト目の文字の間なら、「１６」バイト目や「−１７」バイト目とする方法などが考えられる。
【０３６６】
参照部分として、表示対象要素単位だけでなく、表示対象要素内部の位置まで指定したい場合、内部の座標位置をさらに使うということも可能である。例えば地図画像の中のある場所を指し示したい時などである。図３４はこの例を示しているが、この場合、例えば地図画像の表示対象要素が５番目だとして、その地図画像の中の（５０，５０）の座標値の位置を参照部分としたい場合、「参照データを特定する情報」を例えば、「５：（５０，５０）」などという書式で表すようにすれば良い。表示する際は、「：」がある場合は続く文字列を座標値と解釈して、参照部分を指し示すような表示を行えば良い。
【０３６７】
また、メモデータの表示の仕方によっては、参照部分は容易に推測できるので、特に参照部分を示すことはしないという場合も考えられる。図３５はこれを示す例であり、参照部分の漢字「文書」にメモデータとして上ルビ「ぶんしょ」を振るケースである。この場合、メモデータを参照部分のごく近く、できれば行間に表示させる方が関連を推測し易くて良い。
【０３６８】
メモデータの表示の仕方も色々考えられる。
【０３６９】
メモデータの内容自体は、レイアウト可能範囲が決まれば、通常はレイアウト可能範囲の中で文字や手書きメモなどをレイアウトするだけだが、場合によっては、文字の大きさや色を変えたり、表示レイアウト範囲に収まるように文字や全体の大きさを変えたりということもあるかもしれない。なお、文字の大きさや色などの属性情報は、メモデータに記録されていて、それに従って文字などは表示されるとする。それらの属性情報は、図９のメモデータ設定ダイアログなどでユーザが指定、修正すればよい。
【０３７０】
メモデータの内容表示の周囲や背景、位置にはいろいろバリエーションが考えられる。以降では、Ｓ６−４でメモデータのレイアウト範囲を決める例についても同時に説明する。
【０３７１】
図３６はＳ６−４での処理と異なり、コンテンツデータがレイアウトされている範囲を考慮せずにコンテンツに上書き表示している例である。参照部分の近くではあるが、コンテンツデータとメモデータが重なってしまい、非常に見にくい。
【０３７２】
このような場合には、図２８に示すように、Ｓ６−４での処理の結果、コンテンツデータがレイアウトされている範囲を避けるように余白部分にメモを表示することが好ましい。参照部分「文書」からメモデータ「ドキュメント」は少し離れてしまっているが、コンテンツデータとメモデータが重ならず、図３６よりは見やすい。
【０３７３】
図１０は参照部分の下の行間に表示させた例である。メモの量が行間に表示できる程度の量であるならば、参照部分を含む行の下あるいは上（縦書きの場合は左か右）にメモを表示させるのがコンテンツに重ならない範囲では最も参照部分に近い。図３５のルビや、図３２の挿入、図３１の修正の例も同様の例と言える。
【０３７４】
図３７は、行間に入りきらないような長いメモデータを、行間と周囲の余白部分との両方に表示した例であり、図２８と図１０とを組み合わせた状態である。Ｓ６−４の説明では行間か左右の余白かどちらかとなっていたが、このように両者を結合して扱うことも可能である。メモデータが多い場合などには有効である。
【０３７５】
なお、図３７の場合、メモレイアウト範囲は矩形ではなく、行間と左右の余白が結合された多角形となる。これは、図２１などのＳ６−４−５−３の処理により、行間から周囲の余白にまで、メモデータをレイアウトする余白範囲を拡張したことによる。横行の場合、右方向および下方向は余白範囲の拡張方向として自然なので、馴染みやすいという利点がある。
【０３７６】
図３０では、大きな参照部分をまとめて指示する括弧のような曲線の横にメモデータを表示している。参照部分の近くというより、正確には参照部分を示す関連情報表示の近くであるが、参照部分と参照部分を示す関連情報表示は一体と考えれば、これも参照部分の近くに表示している例に含まれると言える。
【０３７７】
図３８は、コンテンツレイアウト範囲の中でコンテンツデータが配置されていない余白範囲にメモデータを表示した例である。メモがレイアウトできる周囲や行間の余白がうまく発見できなかった場合などに、離れた余白が使われる。そのための処理は、図１５のＳ６−４−１０における処理に対応している。コンテンツデータとメモデータの重なりが少ないので、メモと参照部分とが多少離れても、関連付けを矢印などでうまく表示することで、見やすくなる効果が出てくる。
【０３７８】
次にメモデータの周囲や背景を強調する表示についてだが、短いメモデータならば、そのような強調は特に必要ない場合が多い。ある程度長くなったり、参照部分から離れている時、上書き表示している時などに特に有効である。（なお、「上書き表示」とは、Ｓ６−４−５で説明したように、メモレイアウトと本文データレイアウトが重なった状態をいう）。
【０３７９】
図３３はメモデータの表示の周囲を吹き出し線で囲って、メモを強調している例である。メモが他のメモと近接している時などに、参照部分がどちらのメモと関連付けられているのかを判断しやすくなる効果がある。
【０３８０】
さらに、参照部分の表示とメモデータの表示の間を結ぶ関連付けの表示に関しても、いつくか種類はある。
【０３８１】
一番シンプルなのは、図１０のように参照部分の表示（下線）とメモデータの表示以外は何も書かない場合である。
【０３８２】
図２８は、参照部分とメモデータとを引き出し線で結んでいる。このような引き出し線は、図１３の関連付けデータにおけるデータ１５、２７などによって指定される。引き出し線を使うことで、メモデータを参照部分から多少離れた場所に配置する時でも、対応関係がわかり易いという効果がある。メモデータがコンテンツ上に重なると、例えば文字と文字が重なるので、非常に見にくくなるが、一般に１本の引き出し線程度ならば、コンテンツデータの上に重なってもそれほど見にくくはならない。
【０３８３】
また、図２８のように引き出し線に矢印をつけると、方向性を示せるので対応関係がより分かりやすくなり、また、時間や論理展開の順序の意味など、他の意味を加えることができる効果も出てくる。
【０３８４】
これまでは主に参照部分とメモデータが１対１の場合について説明してきたが、図１３のメモデータリストや参照データリストを見ると分かるように、複数のメモデータや参照データとの関係を扱うこともできる。
【０３８５】
図３８は、複数の参照部分と一つのメモデータとを関連付けて表示した例である。この場合、図１３のデータ２０のように、メモデータリストには１つのメモデータが入り、参照データリストに２つの参照データが入っている。同じ内容のメモデータならば、別々に表示させるよりも引き出し線などを利用してまとめて表示させた方が、無駄な表示をしなくて済むのでコンテンツの表示が多くできる点や、参照部分が同じメモに関連付けられていることをユーザに視覚的に知らせることができる利点が出てくる。
【０３８６】
図３９は、逆に、一つの参照部分に複数のメモデータを関連付け表示させた例である。一つの参照部分に対して、複数の異なるコメントをつけたい場合などに有効である。この場合、図１３のデータ３０のように、メモデータリストには２つのメモデータが入り、参照データリストに１つの参照データが入っている。
【０３８７】
これによって、一つの参照部分に対して、異なる内容のメモを関連付けることができる効果があると同時に、ある参照部分が複数のメモデータを持っていることが視覚的に一目でわかるという効果も出てくる。一つのメモにまとめるより複数のメモにした方が別の内容であることが視覚的に分かり易くなるという効果もある。
【０３８８】
以上の様に、関連付け表示、メモデータ表示には非常に多くのバリエーションがあるので、目的や効果、レイアウトの状態などを見極めて、適したものを選ぶようにすると良い。全てのメモについて同じ設定にしたり、メモ毎に、またはメモの種類毎に変更するようにしたり、メモデータや関連付けデータ毎にユーザに尋ねたり（例えば、メモ作成時にユーザに指定してもらう）、メモデータの種類や量、参照部分の種類や量に応じて、表示の仕方を自動的に設定する、などが考えられる。
【０３８９】
なお、メモデータの表示と関連付け情報の表示の順番は、互いの表示が重なるのでなければほとんどの場合、どちらが先でも良い。
【０３９０】
また、ここではコンテンツデータのレイアウトを行った後にメモデータのレイアウトを決めているが、両者のレイアウト処理を逐次的に行うことも可能である。
【０３９１】
以上説明したような処理で、コンテンツデータのレイアウトに重ならない、あるいは重なりが所定割合以下あるいは所定面積以下になるようなメモデータのレイアウトを得ることができるので、結果的に、参照部分以外の部分も含めた文書の表示とメモの表示ができるだけ重ならずに同時に視認できるようになる効果が出てくる。
【０３９２】
また、メモデータをレイアウトする範囲として、コンテンツデータのレイアウトの周囲の余白にすることで、コンテンツデータとメモデータの重なりを無くす／少なくすることができるという効果が出てきて、上述した効果を引き出す。
【０３９３】
また、関連付けられたコンテンツとメモデータの表示をレイアウト的に近くにすることで、両者を一度に見やすくなり、理解しやすくなるという効果が出てくる。
【０３９４】
また、メモデータをレイアウトする範囲として、コンテンツデータのレイアウトの間の行間にすることで、コンテンツデータとメモデータの重なりを無くす／少なくすることができるので、見やすくなるという効果があり、また、参照部分とメモとの距離を非常に近くして表示することができるので参照部分とメモデータの対応関係がより分かり易くなる効果が出てくる。
【０３９５】
また、コンテンツがメモデータに影響されずにレイアウトされるので（例えば余白や行間の大きさがメモデータによって変えられることがない）、コンテンツのレイアウトをコンテンツデータが最も見やすい状態でレイアウトすることができるという効果が出てくる。
【０３９６】
また、コンテンツデータとメモデータの関連付け表示において、線で結んで表示することで、コンテンツデータとメモデータの対応関係が分かり易くなるという効果が出てくる。
【０３９７】
また、メモデータと関連付け情報の表示の有無を指定できることで、コンテンツだけに集中して理解したい時とメモなどを参照しながら理解したい時を切り替えられるという効果が出てくる。
【０３９８】
このように、参照部分とメモデータを関連付け表示させることで、レイアウトが動的に変更されても、それに追従してメモデータや関連付けデータが表示されるので、文字サイズを読みやすい様に変えるなどという紙の本にない特徴を持ちながら、手書きデータやテキストデータなどからなるメモで、紙の書籍と同じような使い勝手、すなわち文書本文とメモの表示ができるだけ重ならずに同時に視認できることや、本文の該当個所と関連付けて使えること、該当個所とメモの関連付けがお互いに複数に対して行えることなど、を実現することができるようになる。
【０３９９】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【０４００】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０４０１】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク，ハードディスク，光ディスク，光磁気ディスク，磁気テープ，不揮発性のメモリカード，等を用いることができる。
【０４０２】
また、上記プログラムコードは、通信ネットワークのような伝送媒体を介して、他のコンピュータシステムから表示装置の主記憶７４または外部記憶７５へダウンロードされるものであってもよい。
【０４０３】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０４０４】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０４０５】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードを格納することになる。
【０４０６】
本発明は上述した各実施形態に限らず、請求項に示した範囲で種々の変更が可能である。
【０４０７】
【発明の効果】
本発明に係る表示方法は、以上のように、メモデータ取得手段、関連付け情報取得手段、余白特定手段、およびメモレイアウト生成手段とを備えた表示装置が実行する表示方法であって、
上記メモデータ取得手段が、メモを表すメモデータを取得するメモデータ取得ステップと、
上記関連付け情報取得手段が、表示対象要素を表す構成要素データの一つ以上の集まりからなるコンテンツデータの一部である参照データと上記メモデータとの表示状態における対応関係を特定した関連付け情報であって、上記参照データのデータ範囲を上記コンテンツデータ内で特定したデータ位置およびメモデータのレイアウトの仕方に関する情報を含む関連付け情報を取得する関連付け情報取得ステップと、
上記余白特定手段が、上記表示対象要素の一つ以上を座標空間上に配置したレイアウトの中から、表示対象要素が配置されていない余白範囲を、上記レイアウトを記述したレイアウトデータに含まれる、上記座標空間上の座標位置および大きさによって特定する余白特定ステップと、
上記余白特定手段が、表示対象要素が配置されたレイアウト範囲および上記余白範囲を、複数の分割レイアウト範囲および複数の分割余白範囲に分割し、各分割レイアウト範囲および分割余白範囲の上記座標空間上の座標位置および大きさを求め、求めた座標位置および大きさを基にして、各分割レイアウト範囲に隣接する分割余白範囲の配列を求める隣接余白配列特定ステップと、
上記メモレイアウト生成手段が、上記レイアウトデータを走査し、上記レイアウトデータに含まれる、上記表示対象要素の上記コンテンツデータ内におけるデータ位置と、上記関連付け情報に含まれる、上記参照データの上記データ位置とを比較して等しいときに、上記関連付け情報によってメモデータと対応付けられた参照データを上記レイアウトデータの中から特定する参照データ特定ステップと、
上記メモレイアウト生成手段が、上記参照データ特定ステップにて特定した参照データのデータ位置と、上記分割レイアウト範囲のレイアウトデータに含まれるデータ位置とを比較することによって、上記参照データが属する分割レイアウト範囲を特定するとともに、この特定した分割レイアウト範囲に隣接する分割余白範囲の配列の中から、上記関連付け情報に含まれる、メモデータのレイアウトの仕方に関する情報を参照して、メモデータを配置すべき分割余白範囲を特定する余白範囲特定ステップと、
上記メモレイアウト生成手段が、メモデータを、上記余白範囲特定ステップで特定した上記分割余白範囲に配置することによって、メモデータのレイアウト部分と表示対象要素との重なり部分が無いメモデータ、あるいはメモデータのレイアウト部分の面積に対する上記重なり部分の面積の割合が所定割合以下となるメモデータ、あるいは上記重なり部分の面積が所定面積以下となるメモデータのレイアウトを記述したメモレイアウトデータを生成するメモレイアウト生成ステップと、を有することを特徴とする。
【０４０８】
これによって、コンテンツのレイアウトが動的に変更されても、それに追従してコンテンツのレイアウトと重ならないような、あるいは重なりが少ないようなメモデータのレイアウトが得られるので、それらのレイアウトに従ってコンテンツデータ及びメモデータを出力することで、文字サイズを読みやすい様に動的に変えるなどという紙の本にない特徴を持ちながら、手書きデータやテキストデータなどからなるメモで、紙の書籍と同じような使い勝手、すなわち本文の該当個所とメモを関連付けて使えることや、文書本文とメモの表示が同時に視認しやすいこと、などの効果が出てくる。
【０４０９】
また、コンテンツがメモデータに影響されずにレイアウトされるので（例えば余白や行間の大きさがメモデータによって変えられることがない）、コンテンツのレイアウトをコンテンツデータが最も見やすい状態でレイアウトすることができるという効果が出てくる。
【０４１０】
さらに、参照部分のコンテンツデータとメモデータを関連付ける情報が得られるので、例えば、あるメモデータのレイアウトを作成する際、そのメモデータに関連付けられた参照部分を特定することができる。あるいは、メモと参照部分との関連付けを示す場合、関連付け情報を利用することができる。
【０４１１】
これによって、メモデータのレイアウトを作成したり、参照部分やメモデータを表示する際に、関連付け情報を利用した処理（参照部分に近い位置にメモデータをレイアウトする、参照部分とメモとを関連付けを視認できるように表示する等）が行えるようになる。
【図面の簡単な説明】
【図１】  全レイアウト範囲に対するレイアウト可能範囲と、レイアウト可能範囲にコンテンツをレイアウトした状態とを説明する図である。
【図２】  表示対象要素のレイアウトデータ構造を説明する図である。
【図３】  行レイアウトのデータ構造例を説明する図である。
【図４】  本発明の表示装置の機能的な構成を示すブロック図である。
【図５】  上記表示装置の一実施形態における構成例を示すブロック図である。
【図６】  上記表示装置の概観例を示す模式的な斜視図である。
【図７】  表示部兼タブレット上に、コンテンツデータのテキストの一部をレイアウトして表示した状態を示す説明図である。
【図８】  表示部兼タブレット上で、ペンを用いて、コンテンツデータのテキストの一部を選択している状態を示す説明図である。
【図９】  メモデータの設定を行うダイアログウィンドウを表示させた状態を説明する説明図である。
【図１０】  参照部分を下線で示した表示例を示す説明図である。
【図１１】  本発明の表示方法による表示処理の手順を示すフローチャート図である。
【図１２】  メモデータ構造を説明する図である。
【図１３】  関連付けデータ構造を説明する図である。
【図１４】  図７のコンテンツのレイアウトに合わせてメモデータのレイアウトを設定する処理の手順を示すフローチャート図である。
【図１５】  図１４のＳ６−４におけるメモデータのレイアウト範囲を設定する処理の一方法を説明するフローチャート図である。
【図１６】  メモデータの表示レイアウト範囲を設定する為の余白範囲を説明する説明図である。
【図１７】  図１６に示す余白範囲のデータ構造を説明する説明図である。
【図１８】  図１５のＳ６−４−１におけるメモデータの表示レイアウト範囲を取得する処理の一方法を説明するフローチャート図である。
【図１９】  コンテンツレイアウト範囲の周囲に設定された余白を示す説明図である。
【図２０】  図１９に示す余白範囲のデータ構造を説明する説明図である。
【図２１】  図１５のＳ６−４−５の処理の詳細であって、行間にメモデータをレイアウトできるかどうかを判断する処理の手順を示すフローチャート図である。
【図２２】  図１５のＳ６−４−７の処理の詳細であって、周囲の余白にメモデータをレイアウトできるかどうかを判断する処理の手順を示すフローチャート図である。
【図２３】  図１５のＳ６−４−９の処理の詳細であって、コンテンツレイアウト範囲内の大きな余白にメモデータをレイアウトできるかどうかを判断する処理の手順を示すフローチャート図である。
【図２４】  図２３のＳ６−４−９−１の処理の詳細であって、余白範囲最大矩形リストを生成する処理の手順を示すフローチャート図である。
【図２５】  特定された余白範囲を上下左右に拡張する処理を示す説明図である。
【図２６】  図１０の表示状態に対し、コンテンツの文字サイズを２倍にするレイアウト変更を行っても、メモデータが参照部分に追随してレイアウトし直された状態を示す説明図である。
【図２７】  図１０の表示状態に対し、コンテンツのレイアウト変更を行ったときに、従来の処理によってメモデータをレイアウトした結果を示す説明図である。
【図２８】  １行内の参照部分を線分で囲ってメモとの関連付けを示した表示例を示す説明図である。
【図２９】  複数行に渡る参照部分を線分で囲ってメモとの関連付けを示した表示例を示す説明図である。
【図３０】  複数行に渡る参照部分に線分を付してメモとの関連付けを示した表示例を示す説明図である。
【図３１】  参照部分の打ち消しを打ち消し線表示で示した表示例を示す説明図である。
【図３２】  参照部分へのメモ挿入を割り込み表示で示した表示例を示す説明図である。
【図３３】  参照部分へのメモ挿入を吹き出し表示で示した表示例を示す説明図である。
【図３４】  表示対象要素内部の一部を参照部分としてメモと関連付けた表示例を示す説明図である。
【図３５】  参照部分を特に示さずに、ルビとしてメモの表示を行った表示例を示す説明図である。
【図３６】  コンテンツデータがレイアウトされている範囲を考慮しない従来方法のレイアウト処理によって、メモがコンテンツに上書きされた表示例を示す説明図である。
【図３７】  行間と周囲の余白部分にわたってメモデータをレイアウトした例を示す説明図である。
【図３８】  コンテンツレイアウト範囲内の大きな余白を利用して、複数の参照部分に１つのメモを関連付けてレイアウトした例を示す説明図である。
【図３９】  一つの参照部分に複数のメモを関連付けて表示した例を示す説明図である。
【符号の説明】
１  横行（メモデータ）
１０  データ（関連付け情報）
１５  データ（関連付け表示情報）
４１  表示対象要素
４２  表示対象要素
４３  表示対象要素
４４  表示範囲（レイアウト可能範囲）
５９  メモデータレイアウト範囲取得手段（メモレイアウト生成手段）
６３  メモデータ取得手段
６４  関連付け情報取得手段
６６  メモデータレイアウト取得手段（メモレイアウト生成手段）
６９  コンテンツ余白特定手段（余白特定手段）
７０  ＣＰＵ
７４  主記憶（記録媒体）
７５  外部記憶（記録媒体）
８０  行（レイアウトデータ、分割レイアウト範囲）
９０  本体機器（表示装置）
９１  表示部兼タブレット
９２  ペン
１００  参照部分
１０１  範囲（余白範囲、分割余白範囲）
１２７  範囲（余白範囲、分割余白範囲）
Ｘ，Ｙ  位置（座標位置）
Ｗ，Ｈ  大きさ
【図１】
0004008280.tif 000002
【図２】
0004008280.tif 000003
【図３】
0004008280.tif 000004
【図４】
0004008280.tif 000005
【図５】
0004008280.tif 000006
【図６】
0004008280.tif 000007
【図７】
0004008280.tif 000008
【図８】
0004008280.tif 000009
【図９】
0004008280.tif 000010
【図１０】
0004008280.tif 000011
【図１１】
0004008280.tif 000012
【図１２】
0004008280.tif 000013
【図１３】
0004008280.tif 000014
【図１４】
0004008280.tif 000015
【図１５】
0004008280.tif 000016
【図１６】
0004008280.tif 000017
【図１７】
0004008280.tif 000018
【図１８】
0004008280.tif 000019
【図１９】
0004008280.tif 000020
【図２０】
0004008280.tif 000021
【図２１】
0004008280.tif 000022
【図２２】
0004008280.tif 000023
【図２３】
0004008280.tif 000024
【図２４】
0004008280.tif 000025
【図２５】
0004008280.tif 000026
【図２６】
0004008280.tif 000027
【図２７】
0004008280.tif 000028
【図２８】
0004008280.tif 000029
【図２９】
0004008280.tif 000030
【図３０】
0004008280.tif 000031
【図３１】
0004008280.tif 000032
【図３２】
0004008280.tif 000033
【図３３】
0004008280.tif 000034
【図３４】
0004008280.tif 000035
【図３５】
0004008280.tif 000036
【図３６】
0004008280.tif 000037
【図３７】
0004008280.tif 000038
【図３８】
0004008280.tif 000039
【図３９】
0004008280.tif 000040