【手続補正書】
【提出日】平成17年5月2日(2005.5.2)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【書類名】  明細書
【発明の名称】  表示制御のための方法、装置、プログラム、およびプログラム媒体
【特許請求の範囲】
【請求項１】
文書を複数の部分に分割した分割文書の各データサイズを得る分割データサイズ取得ステップと、
上記文書に対して指定した指定範囲を含む分割文書を特定すると共に、特定した分割文書の表示レイアウトを得る分割文書レイアウト取得ステップと、
少なくとも、前記特定した分割文書の表示レイアウトに対して、前記指定範囲が占めるレイアウトサイズ比を求める分割文書内割合取得ステップと、
前記分割データサイズ取得ステップから得た各分割文書のデータサイズの和に対して、前記レイアウトサイズ比の算出に用いた分割文書の第１のデータサイズ比を求め、前記分割文書内割合取得ステップから得た前記指定範囲のレイアウトサイズ比と前記第１のデータサイズ比とから、文書中に前記指定範囲が占める第２のデータサイズ比を求める全文書内割合取得ステップと、
を有することを特徴とする表示制御方法。
【請求項２】
レイアウトサイズを取得できる分割文書に関しては、指定範囲を含まない分割文書であっても、そのレイアウトサイズを前記特定した分割文書のレイアウトサイズに加えて、前記レイアウトサイズ比を求めることを特徴とする請求項１に記載の表示制御方法。
【請求項３】
前記指定範囲を表示範囲とし、全文書内割合取得ステップから得られた第２のデータサイズ比に応じたスクロールバーを表示し、また、ユーザーのスクロールバー操作に応じて表示範囲の表示内容を制御するスクロールバー表示制御ステップを有することを特徴とする請求項１に記載の表示制御方法。
【請求項４】
前記分割文書のデータサイズとして、バイト数やビット数などの符号化データサイズを使うことを特徴とする請求項１に記載の表示制御方法。
【請求項５】
前記分割文書のデータサイズとして分割文書の意味単位に基づく数を使うことを特徴とする請求項１に記載の表示制御方法。
【請求項６】
意味単位に基づく数として文字数あるいは単語数を使うことを特徴とする請求項５に記載の表示制御方法。
【請求項７】
前記分割文書のデータサイズを得る際、実際の表示サイズがデータサイズと相関しない表示要素が文書中に含まれている場合、当該表示要素の表示サイズをデータサイズに換算した値を使うことを特徴とする請求項１に記載の表示制御方法。
【請求項８】
前記スクロールバー表示制御ステップにおいて、表示範囲を指定するためにスクロールバー内に表示されるスクロールボックスの中央位置が、表示範囲の中央位置の表示割合を示すようにすることを特徴とする請求項３に記載の表示制御方法。
【請求項９】
前記スクロールバー表示制御ステップにおいて、表示範囲を指定するためにスクロールバー内に表示されるスクロールボックスが、スクロールバーの始端もしくは終端を含む範囲を指定している場合には、文書の最初から、もしくは最後まで表示するようにすることを特徴とする請求項３に記載の表示制御方法。
【請求項１０】
前記スクロールバー表示制御ステップにおいて、表示範囲を指定するためにスクロールバー内に表示されるスクロールボックスのスクロールバー内の位置に応じて、表示範囲が文書中に占める位置と割合とを表す基準となるスクロールボックス上の基準位置を変更すると共に、その基準位置に対応付けた表示範囲上の基準位置を合わせて変更することを特徴とする請求項３に記載の表示制御方法。
【請求項１１】
文書を複数の部分に分割した分割文書の各データサイズを得る分割データサイズ取得手段と、
上記文書に対して指定した指定範囲を含む分割文書を特定すると共に、特定した分割文書の表示レイアウトを得る分割文書レイアウト取得手段と、
少なくとも、前記特定した分割文書の表示レイアウトに対して、前記指定範囲が占めるレイアウトサイズ比を求める分割文書内割合取得手段と、
前記分割データサイズ取得手段から得た各分割文書のデータサイズの和に対して、前記レイアウトサイズ比の算出に用いた分割文書の第１のデータサイズ比を求め、前記分割文書内割合取得手段から得た前記指定範囲のレイアウトサイズ比と前記第１のデータサイズ比とから、文書中に前記指定範囲が占める第２のデータサイズ比を求める全文書内割合取得手段と、
を有することを特徴とする表示制御装置。
【請求項１２】
請求項１から１０のいずれか一項に記載の表示制御方法が備える各ステップをコンピュータに実行させる為の表示制御プログラム。
【請求項１３】
請求項１１に記載の表示制御装置が備える各手段として、コンピュータを機能させるための表示制御プログラム。
【請求項１４】
請求項１２または１３に記載の表示制御プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、スクロールバーを表示したり、スクロールバーを操作して表示範囲を制御したりする方法、その方法を実施するための装置、プログラム、記録媒体に関する。
【０００２】
【従来の技術】
ディスプレイやウィンドウなどの表示範囲に収まりきらない文書や絵、図などのコンテンツを扱う方法として、スクロールバーおよびスクロールボックスを利用する方法は、ワードプロセッサーや電子書籍リーダー、ＷＷＷブラウザー、エディターなど様々なアプリケーション、装置で広く使われている。
【０００３】
例えば、スクロールバー上に表示されたスクロールボックスの大きさ（長さ）は、コンテンツ全体の中で表示されている部分の割合を表す。また、スクロールバー上でのスクロールボックスの表示位置は、コンテンツ全体に対する表示されている部分の相対的位置を表す。
【０００４】
上述のアプリケーションや装置では、スクロールバー上に表示するスクロールボックスの位置と大きさは、通常、表示内容のレイアウトサイズあるいはページ数を使って計算する。なお、「レイアウトサイズ」とは、ここでは文章や絵などのコンテンツを表示した時に、着目した表示範囲の大きさのことを指し、例えばドット数などで表される。「ページ数」とは、ここでは表示をページ単位で行う場合のページの総数を指す。
【０００５】
例えばレイアウトサイズを使った計算の場合、表示されている部分のスクロールボックスの大きさの割合は、
（表示範囲のレイアウトサイズ）／（全レイアウトサイズ）
で求まり、また、表示されている部分のスクロールボックスの位置の割合は、
（コンテンツ先頭から表示範囲先頭までのレイアウトサイズ）／（全レイアウトサイズ）
となる。「全レイアウトサイズ」は、表示されていないコンテンツ部分も含んだコンテンツ全体のレイアウトサイズである。
【０００６】
また、例えばページ数を使って計算する場合、表示されている部分のスクロールボックスのサイズの割合は、
（表示範囲のページ数）／（全ページ数）
で求まり、また、表示されている部分のスクロールボックスの位置の割合は、
（先頭から表示範囲までのページ数）／（全ページ数）
となる。「全ページ数」は、表示されていないコンテンツ部分も含んだページ数である。
【０００７】
コンテンツの表示の仕方には２種類あり、ＰＤＦ（ｐｏｒｔａｂｌｅ  ｄｏｃｕｍｅｎｔ  ｆｏｒｍａｔ）の様に文字の大きさや位置といったレイアウトやページの大きさが固定されているもの（固定レイアウト）と、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）ブラウザの様に文字の大きさやページの大きさが固定されておらず、自由にユーザーが変更できるもの（可変レイアウト）とがある。
【０００８】
固定レイアウトの場合は、レイアウトサイズやページ数や全レイアウトサイズはコンテンツによって予め決まっているが、可変レイアウトの場合は、文字の大きさやページの大きさ（行数や行内文字数等）によって、レイアウトサイズやページ数や全レイアウトサイズは変わる。
【０００９】
【発明が解決しようとする課題】
ところが、可変レイアウトの場合、レイアウトサイズやページ数を予め計算しておくことはできない為、スクロールボックスの位置や大きさを求めるには、処理時間がかかったり、多量のメモリが必要となる問題が出てくる。
【００１０】
処理時間がかかる理由は、可変レイアウトの場合、文字の大きさやページサイズの設定がその時々によって変わるため、コンテンツ全体のレイアウトサイズやページ数を予め計算しておくことはできず、実際に表示させる時に文字の大きさやページサイズの設定に合わせてコンテンツ全体をレイアウトする必要があるためである。また、コンテンツのデータ量が大きければ大きいほど、そのレイアウト処理に時間がかかるという問題も出てくる。
【００１１】
多量のメモリが必要となる理由は、コンテンツ全体のレイアウト結果を保存しておくからである。表示に使わない部分のレイアウトを破棄することでメモリの問題を回避するにしても、せっかく作成したレイアウトを破棄するのでは、無駄な処理を行うことになるという問題がある。
【００１２】
またこれらの問題は、「スクロールバーの表示」（表示範囲に相当するスクロールボックスの位置や大きさを求めて表示すること）の時だけでなく、「スクロールバーによる制御」（指定されたスクロールボックスの位置や大きさに相当する表示範囲を表示すること）の時にも発生する。指定されたスクロールボックスの位置や大きさの割合から、相当する表示範囲を求めようとすれば、結局、コンテンツ全体のレイアウトが分からないと、コンテンツ全体のどこの部分のレイアウトを表示すればよいか求まらないからである。
【００１３】
このような問題に対して、本発明は、文字の大きさやページサイズなどの設定を自由に変えられる可変レイアウトの文書において、高速かつできるだけ正確に、スクロールバーの表示やスクロールバーを用いた表示制御を処理すること、少ないメモリ環境などにおいても無駄なく処理を行うこと、などを主な目的とする。
【００１４】
【課題を解決するための手段】
本発明に係る表示制御方法は、上記の課題を解決する為に、文書を複数の部分に分割した分割文書の各データサイズを得る分割データサイズ取得ステップと、上記文書に対して指定した指定範囲を含む分割文書を特定すると共に、特定した分割文書の表示レイアウトを得る分割文書レイアウト取得ステップと、少なくとも、前記特定した分割文書の表示レイアウトに対して前記指定範囲が占めるレイアウトサイズ比を求める分割文書内割合取得ステップと、前記分割データサイズ取得ステップから得た各分割文書のデータサイズの和に対して、前記レイアウトサイズ比の算出に用いた分割文書の第１のデータサイズ比を求め、前記分割文書内割合取得ステップから得た前記指定範囲のレイアウトサイズ比と前記第１のデータサイズ比とから、文書中に前記指定範囲が占める第２のデータサイズ比を求める全文書内割合取得ステップと、を有することを特徴とする。
【００１５】
上記の構成において、「表示」は、一般には情報を視覚的に知覚できるような形態で表示媒体上に出力することを言う。本発明ではレイアウトの表示媒体に対する「表示」だけに限らず、レイアウトの印刷記録媒体に対する「印刷」やレイアウトのデータ記録媒体に対する「ファイル出力」など「出力」一般にも適用可能である。説明を分かり易くする為、以降の説明では、「表示」という言葉を用いることが多いが、「出力」の意も含まれているとする。
【００１６】
「レイアウト」とは、表示要素が２次元または３次元の空間座標上に、位置とサイズ、外形の属性をもって配置されること、あるいは配置されたもののことを言う。位置やサイズは、通常は何らかの単位を使った値として表現される。例えば、画素の集まりからなるディスプレイに表示する場合は、一般に（画素）ドットの単位で表現される。一つないし複数の表示要素がレイアウトされた結果、その表示要素に関して定まる空間座標上の位置のことを「レイアウト位置」、一つないし複数の表示要素がレイアウトされた結果、その表示要素に関して定まる空間座標上のサイズのことを「レイアウトサイズ」と定義する。
【００１７】
「文書」とは、一つまたは複数の表示要素がレイアウトされたもの、あるいはレイアウトしたり、レイアウトに基づいて表示要素を表示したりすることができるだけの情報量を持ったデータを指す。文書データは、表示要素のデータも含む場合と、レイアウト情報だけ持っていて表示要素のデータの一部を含む場合やあるいはまったく含まない場合もある。いずれにしろ、文書データを使って、レイアウトに従った表示や出力ができる。
【００１８】
文書の「指定範囲」とは、スクロールバーの場合で言えば、その文書中の表示したい範囲を指す。通常は、レイアウトされた文書中での位置とサイズ、外形で指定する。外形は矩形が一般的である。なお、「指定範囲」は、表示したい範囲に限らず、印刷したい範囲の場合もあり、また、ＰＤＦなどのデータフォーマット形式で主記憶上や外部記憶上に記録したい範囲の場合もある。
【００１９】
一般に、スクロールバーは、表示媒体の表示範囲に表示される文書中の部分が、文書全体のどのあたりに位置しているかという位置と、表示範囲のレイアウトサイズが全文書のレイアウトサイズ中に占める割合とに基づいて表示されたり、制御されたりしている。このとき、その割合は、表示範囲のレイアウトサイズと全文書のレイアウトサイズとがわかれば、求めることができる。
【００２０】
レイアウトサイズを高速に得るには予め計算しておくなどの方法が考えられるが、表示範囲の大きさやフォントサイズなどをユーザが自由に変更できる可変レイアウトの場合は、表示時のレイアウト設定などによってレイアウトサイズが変わってしまう為、予め計算しておいても、その結果は、レイアウト設定が変われば使うことができない。
【００２１】
レイアウト割合を真に正確に求めるのは難しいが、ある程度の精度で推定することはできる。推定する手段として、データサイズは固定レイアウトでも可変レイアウトでも一定であり、レイアウト処理とは無関係に決まる情報量なので、レイアウトサイズでなくデータサイズを使えば簡単に計算できる点と、複数の分割文書から構成された文書であれば、必要な分割文書のみを処理対象とすることによって、簡単にデータサイズを決めることができる点とに本願発明者は着目した。
【００２２】
すなわち、上記の構成によれば、分割データサイズ取得ステップから、分割した文書（以降、分割文書と呼ぶ）の各データサイズを、レイアウト設定とは無関係に得ることができる。また、各分割文書のデータサイズの和を取れば、文書全体のデータサイズが得られる。
【００２３】
また、文書における指定範囲は、文書に対して例えばユーザが指定した位置と、表示媒体について設定される表示範囲の大きさとによって決めることができる。したがって、分割文書レイアウト取得ステップでは、指定範囲に伴う文書中のデータ位置等を基準とすることによって、指定範囲を含む分割文書を特定することができる。
【００２４】
さらに、特定した分割文書を、可変レイアウトのその時の設定に従ってレイアウトすることによって、指定範囲を含む分割文書の表示レイアウトを得ることができる。表示レイアウトが得られれば、そのレイアウトから指定範囲を含む分割文書のレイアウトサイズを得ることができる。この手法は、指定範囲を含む分割文書のみをレイアウトの対象とするので、文書全体をレイアウトする必要が無く、処理が簡便であり、処理に必要なリソースが少なくて済む。
【００２５】
一方、表示媒体について設定されている表示範囲の大きさから指定範囲のレイアウトサイズも得られる。
【００２６】
分割文書内割合取得ステップでは、この２つのレイアウトサイズから、指定範囲を含む分割文書内で、指定範囲が占める割合、つまりレイアウトサイズ比を求めることができる。
【００２７】
なお、ここで、既にレイアウト済みの分割文書があれば、指定範囲を含まない分割文書であっても、そのレイアウトサイズを取得して、レイアウトサイズ比の算出に用いることが好ましい。このことが、「少なくとも、(指定範囲を含む)前記特定した分割文書」を、レイアウトサイズ比の算出に用いるとして、「少なくとも」を付加している理由である。なぜ、その方が好ましいのかの理由については、後述する。
【００２８】
次に、全文書内割合取得ステップでは、分割データサイズ取得ステップで分割文書の各データサイズを得ており、さらに分割文書レイアウト取得ステップでレイアウトサイズ比の算出に用いた分割文書が分かっているので、レイアウトサイズ比の算出に用いた分割文書のデータサイズを求めることができる。
【００２９】
続いて、文書全体のデータサイズ、つまり各分割文書のデータサイズの和に対して、レイアウトサイズ比の算出に用いた分割文書のデータサイズの割合、つまり第１のデータサイズ比を求めることもできる。
【００３０】
最終段階として、上記の求めた第１のデータサイズ比に、分割文書内割合取得ステップで得たレイアウトサイズ比を乗算することで、指定範囲の文書全体に対する割合、つまり第２のデータサイズ比を求めることができる。
【００３１】
分割文書内割合取得ステップで求められる指定範囲のレイアウトサイズ比は、可変レイアウトのその時の設定に従ったレイアウトに基づいた割合なので正確な値となる。そして、レイアウトサイズ比の算出に用いた分割文書が文書全体の中でどれだけの割合（第１のデータサイズ比）を占めているかを、分割データサイズ取得ステップから得た分割文書のデータサイズから求め、分割文書内割合取得ステップから得たレイアウトサイズ比に第１のデータサイズ比を掛け合わせることで、指定範囲が文書全体の中でどれだけの割合（第２のデータサイズ比）を示しているかという最終結果を得ることができる。
【００３２】
指定範囲のレイアウトサイズが、文書全体のレイアウトサイズに対して占める比を理想値とすれば、第２のデータサイズ比は多少の誤差を含む推定値の意味を持つ。しかし、レイアウトを求めるのは一部の分割文書に限られ、それ以外の部分はデータサイズを使うので、文書全体のレイアウトを求める場合に比べればレイアウトを求める処理量や必要なメモリなども最小限に抑えることができ、さらに、可変レイアウトの集まりからなる文書であっても、高速に指定範囲の割合を得ることができる効果が出てくる。
【００３３】
また、本発明に係る表示制御方法は、上記の課題を解決する為に、レイアウトサイズを取得できる分割文書に関しては、指定範囲を含まない分割文書であっても、そのレイアウトサイズを前記特定した分割文書のレイアウトサイズに加えて、前記レイアウトサイズ比を求めることを特徴とする。
【００３４】
上記の構成において、指定範囲を含む分割文書として特定したもの以外に、レイアウトサイズが得られる分割文書があるなら、そのレイアウトサイズも得ておく。指定範囲を含む分割文書とあわせて、レイアウトサイズが知得できるという意味で、既知分割文書と呼ぶことにする。
【００３５】
なお、指定範囲を含む分割文書が複数あるときには、指定範囲が通常連続した領域であるため、分割文書同士は隣り合っている。しかし、レイアウトサイズが知得できる指定範囲外の分割文書は、隣り合うことを条件としなくてよい。
【００３６】
既知分割文書に、指定範囲外の分割文書を含めることで、指定範囲のレイアウトサイズ比を求めるための分母となる、分割文書のレイアウトサイズが大きくなる。そして、そのレイアウトサイズ比の算出に用いた分割文書が、文書全体に占める第１のデータサイズ比を求めることになる。
【００３７】
すなわち、レイアウトサイズが既知の分割文書が多くなる程、レイアウトサイズ比自体が、理想値に近づくので、理想値に近づいたレイアウトサイズ比に第１のデータサイズ比を乗算した第２のデータサイズ比もまた、理想値に近づくことになる。
【００３８】
このように、指定範囲に含まれないが、既に求まっている分割文書のレイアウトサイズを利用することで、文書全体の中でレイアウトサイズを利用する割合が高くなってくるので、指定範囲を含む分割文書のレイアウトサイズのみを使う方法に比べて、さらに精度を高めることができる可能性が高くなる効果が出てくる。
【００３９】
また、文書を読み進めていくにつれ、レイアウトを得た分割文書の数は増えていくのだから、レイアウトを得た分割文書の少なくともレイアウトサイズを保持しておくことで、たとえそのレイアウトを破棄したとしても、レイアウトサイズに基づいた処理が行える。
【００４０】
理想的には全ての分割文書のレイアウトを求めてレイアウトサイズだけで指定範囲の割合を求めたいのだから、レイアウトサイズを利用する分割文書の数の割合が多くなるほど、レイアウトサイズだけで求める割合と本発明の方法で求める割合の差が小さくなっていくはずである。従って、各分割文書のレイアウトサイズを数多く知るにつれ、レイアウトサイズだけによる処理結果に近づいていくという効果がある。
【００４１】
また、本発明に係る表示制御方法は、上記の課題を解決する為に、前記指定範囲を表示範囲とし、全文書内割合取得ステップから得られた第２のデータサイズ比に応じたスクロールバーを表示し、また、ユーザーのスクロールバー操作に応じて表示範囲の表示内容を制御するスクロールバー表示制御ステップを有することを特徴とする。
【００４２】
「スクロールバー」とは、一般に、文書全体の中で表示されている範囲と、その範囲が文書全体に占める位置とを示すものであり、特に文書全体の範囲中で表示されている範囲および位置を示す目印に相当する可動部分を「スクロールボックス」と呼ぶ。スクロールバーの中でスクロールボックスの大きさや位置が変化することで、表示されている範囲および位置を示す。但し、必ずしもスクロールボックスの形式に限らず、パーセントやページ数などの数字などで示される場合も含む。また、大きさと位置のどちらか一方だけを示す場合もある。
【００４３】
また、スクロールバーは表示されている範囲を示すだけでなく、表示したい範囲を「指定範囲」としてユーザーが指定する際にも使われる。スクロールバーから指定範囲を得る場合、スクロールバー中でスクロールボックスを配置できる範囲のサイズ、その範囲中でのスクロールボックスの位置、スクロールボックスのサイズが得られれば、スクロールボックスによって指定される範囲が分かる。
【００４４】
上記の構成によれば、指定範囲に応じた文書の部分の表示を行い、また、全文書内割合取得ステップから得られた割合に応じたスクロールバーを高速に表示することで、指定範囲をスクロールバー表示を伴って表示させることができる。
【００４５】
また、ユーザーがスクロールバーを操作するなどして指定した位置を基準とすることで、可変レイアウトの表示システムでも、ユーザーが所望する範囲を高速に表示させるような制御を行うことができるようになる。
【００４６】
これによって、可変レイアウトの表示システムでも、スクロールバーを使った表示や制御が高速に行えるという効果が出てくる。
【００４７】
なお、本方法を、既に説明した本発明の各方法のいずれかと、適宜組み合わせることができる。
【００４８】
また、本発明に係る表示制御方法は、上記の課題を解決する為に、前記分割文書のデータサイズとして、バイト数やビット数などの符号化データサイズを使うことを特徴とする。
【００４９】
上記の構成によれば、バイトやビットは、主記憶や外部記憶上などで扱うデータサイズの単位なので、文書データなどをコンピュータ上で扱う場合、データサイズを示す指標としては、符号化データサイズが最も得やすく、また扱い易いという効果が出てくる。ひいては割合を求めるなどの処理も簡単になるという効果が得られる。
【００５０】
なお、本方法を、既に説明した本発明の前記各方法と、必要に応じて任意に組み合わせてもよい。
【００５１】
また、本発明に係る表示制御方法は、上記の課題を解決する為に、前記分割文書のデータサイズとして分割文書の意味単位に基づく数を使うことを特徴とする。
【００５２】
上記の構成において、文書の「意味単位に基づく数」とは、人間に知覚できるような処理単位を意味単位として捉えた時の処理単位の数ということで、文書の場合で言えば、文字（要素）数や行数、改行数、段落数などが考えられる。
【００５３】
上記の構成によれば、表示割合をデータサイズなどを使って推測する場合に、文書データ中にはレイアウトサイズにあまり関係ないようなデータ、例えば文字の色など、が含まれていることがあるので、精度を上げるには、レイアウトサイズにあまり関係ないデータを除くことが好ましい。
【００５４】
したがって、上述の意味単位に基づく数をデータサイズとして使うことで、レイアウトサイズにあまり関係ないデータの影響を少なくすることができる効果が出てくる。
【００５５】
また、これらの意味単位に基づく数は、レイアウト処理によって変わるものではないので、事前に数えておくことが可能であり、レイアウト処理などを最小限に抑えた処理を可能にするいう前述の効果が変わりなく得られるものである。
【００５６】
なお、本方法を、既に説明した本発明の前記各方法と、必要に応じて任意に組み合わせてもよい。
【００５７】
また、本発明に係る表示制御方法は、上記の課題を解決する為に、意味単位に基づく数として文字数あるいは単語数を使うことを特徴とする。
【００５８】
上記の構成によれば、データサイズとして上述の意味単位に基づく数を使う場合に、意味単位が小さい程、データサイズの精度が上がるので、表示割合の算出精度を上げることができる。すると、意味単位として、単語数は改行数や行数に比べて小さな単位であり、文字数は単語数より更に小さな単位である。したがって、意味単位の中でも、単語数を用いれば、表示割合の算出精度を相対的に高めることができ、特に文字数を用いれば、算出精度を更に上げることができる。
【００５９】
また、本発明に係る表示制御方法は、上記の課題を解決する為に、前記分割文書のデータサイズを得る際、実際の表示サイズがデータサイズと相関しない表示要素が文書中に含まれている場合、当該表示要素の表示サイズをデータサイズに換算した値を使うことを特徴とする。
【００６０】
上記の構成において、「表示要素」とは、文字や絵、写真、図形、動画像など、表示することのできるデータ要素を指す。表示する為には、通常、表示位置と表示サイズ、外形、表示表現形態などの属性やそれらの取得手段を表示要素は持っている必要がある。但し、表示要素は、表示している状態のデータ要素だけを指すのではなく、主記憶や外部記憶、その他の機器上に、表示／出力に備えて記録／格納されているデータ要素も含む。何かの形に置き換えて出力するという意味では、「出力要素」と言い換えても良いが、上述した様に以降では分かり易くする為に「表示要素」と表現しておく。また、表示は２次元だけでなく、３次元も含む。
【００６１】
また、実際の表示サイズがデータサイズと相関しない表示要素とは、例えば表示形態に関するデータやファイル名のデータのみが文書データ中に記述された画像である。このような場合、表示形態やファイル名のデータのサイズを、バイト数やビット数などで取得しても、実際の表示サイズとは不一致となり、通常小さくなることが多い。
【００６２】
文字や画像の大きさは実際にはレイアウトしないと完全に決定しないこともあるが、基準文字サイズを仮決めするなど、何らかの仮定をおいてレイアウトを行っても、ある程度の傾向は出てくる。そこで、実際の表示サイズがデータサイズと相関しない表示要素のレイアウトの大きさを、何らかの仮定の元に推定し、それをデータサイズに換算することで、データサイズだけで推定するよりも推定精度が増す可能性が大きくなるという効果が出てくる。
【００６３】
なお、本方法を、既に説明した本発明の前記各方法と、必要に応じて任意に組み合わせてもよい。
【００６４】
また、本発明に係る表示制御方法は、上記の課題を解決する為に、前記スクロールバー表示制御ステップにおいて、表示範囲を指定するためにスクロールバー内に表示されるスクロールボックスの中央位置が、表示範囲の中央位置の表示割合を示すようにすることを特徴とする。
【００６５】
上記の構成において、指定範囲の割合は、表示倍率などを変えない限りは通常は一定となる。しかし、本発明では、指定範囲の割合をデータサイズを用いて推測的に求めているので、一定とは限らない。その為、指定範囲の位置によっては、スクロールボックスの長さが変わってしまうことがある。この長さの変化は推測誤差に相当する。
【００６６】
上記の構成によれば、表示範囲を指定するスクロールボックスの中央位置が、表示範囲の中央位置の表示割合を示すようにすることで、その誤差をスクロールボックスの両端に分散させ、長さの変化に対する視覚的な違和感を軽減することができる効果がある。
【００６７】
また、ユーザーにとって、スクロールバーを操作する際に、視覚上、直感的に表示割合や表示部分の位置を捉えやすくなる効果も出てくる。
【００６８】
また、本発明に係る表示制御方法は、上記の課題を解決する為に、前記スクロールバー表示制御ステップにおいて、表示範囲を指定するためにスクロールバー内に表示されるスクロールボックスが、スクロールバーの始端もしくは終端を含む範囲を指定している場合には、文書の最初から、もしくは最後まで表示するようにすることを特徴とする。
【００６９】
上記の構成において、スクロールボックスが、スクロールバーの始端もしくは終端を含む範囲を指定している場合、スクロールボックスの長さが固定されているならば、スクロールボックスがスクロールバーの中心に位置しようと、端に位置しようと、指定した範囲と表示結果とは、ずれることなく一致する。しかし、スクロールボックスの長さが本発明のように推定値であり、位置によって変化し得る場合、指定した範囲と表示結果とが一致しないことが考えられる。
【００７０】
この不一致によって、推定値の値によっては、文書の最初または最後の部分を表示するように指定できなくなったり、あるいは余計な空白を入れた表示をしてしまうことが考えられる。
【００７１】
また、文書の最初もしくは最後を含む範囲を指定している場合は、そのスクロールボックスの中心位置に相当する文書の範囲を表示したいというよりも、文書の最初からあるいは最後までの範囲を表示したいと解釈する方が自然である。
【００７２】
そこで、スクロールボックスが、スクロールバーの始端もしくは終端を含む範囲を指定している場合には、文書の最初から、もしくは最後までを含むような指定範囲が指定されたとして解釈して、表示を行うことで、推定誤差による上記不具合を回避し、またユーザーの意図に沿った処理を行うことができるという効果が出てくる。
【００７３】
また、本発明に係る表示制御方法は、上記の課題を解決する為に、前記スクロールバー表示制御ステップにおいて、表示範囲を指定するためにスクロールバー内に表示されるスクロールボックスのスクロールバー内の位置に応じて、表示範囲が文書中に占める位置と割合とを表す基準となるスクロールボックス上の基準位置を変更すると共に、その基準位置に対応付けた表示範囲上の基準位置を合わせて変更することを特徴とする。
【００７４】
先に説明した方法によれば、スクロールボックスが、スクロールバーの始端もしくは終端を含む範囲を指定している場合もうまく処理できるようになるが、始端もしくは終端をわずかに含まない範囲を指定した場合に、スクロールボックスの中心位置を使った表示方法を実行するとすれば、端を含むか含まないかの差はわずかなのに、表示結果は大きく飛んでしまうことが起こるという不具合が考えられる。
【００７５】
そこで、上記の構成によれば、表示範囲を指定するスクロールボックスのスクロールバー内の位置に応じて、スクロールボックスと表示範囲とで対応付けされた基準位置を変更するように指定範囲を解釈する。
【００７６】
例えば、スクロールボックスがスクロールバーの中心付近に位置する場合は、表示範囲が文書中に占める位置と割合とを表す基準となるスクロールボックス上の基準位置と、表示範囲上の基準位置とを、共に中心付近で一致させるようにする。
【００７７】
そして、スクロールボックスがスクロールバーの中心から離れるのに応じて（例えば比例して）、両者の基準位置を共にずらしていく。
【００７８】
さらに、文書の最初や最後を含む範囲が指定された場合には、スクロールボックスの始端または終端を基準位置とすると共に、表示範囲についても始端または終端を基準位置として、スクロールボックスおよび表示範囲の基準位置を始端または終端に一致させるようにする。
【００７９】
これによって、スクロールバー末端付近のスクロールボックスのわずかな位置の違いで表示が大きくずれてしまうことを防ぐ効果が出てくる。
【００８０】
また、本発明に係る表示制御装置は、上記の課題を解決する為に、文書を複数の部分に分割した分割文書の各データサイズを得る分割データサイズ取得手段と、上記文書に対して指定した指定範囲を含む分割文書を特定すると共に、特定した分割文書の表示レイアウトを得る分割文書レイアウト取得手段と、少なくとも、前記特定した分割文書の表示レイアウトに対して、前記指定範囲が占めるレイアウトサイズ比を求める分割文書内割合取得手段と、前記分割データサイズ取得手段から得た各分割文書のデータサイズの和に対して、前記レイアウトサイズ比の算出に用いた分割文書の第１のデータサイズ比を求め、前記分割文書内割合取得手段から得た前記指定範囲のレイアウトサイズ比と前記第１のデータサイズ比とから、文書中に前記指定範囲が占める第２のデータサイズ比を求める全文書内割合取得手段と、を有することを特徴とする。
【００８１】
これによる作用、効果は上で説明した方法と同様であるが、作用の説明を補足しておく。
【００８２】
分割データサイズ取得手段は、分割文書の各データサイズを、レイアウト設定とは無関係に得ることができる。例えば、文書をどう分割するかを文書データの作成時に予め決め、どう分割したかの情報をデータとして、文書を配信するサーバのメモリ上、または文書データを記録した記録メディアに別ファイルとして記録しておく。あるいは、文書データの一部としてヘッダ情報などの形で含めておき、文書データを記録媒体または伝送媒体を介して読み込んだ時に、分割文書の各データサイズ情報を、主記憶または外部記憶などに格納しておいてもよい。
【００８３】
これにより、分割データサイズ取得手段は、分割文書の各データサイズを入手する必要が生じた時に、上記メモリ、記録メディア、主記憶または外部記憶などにアクセスして、データサイズを入手することができる。
【００８４】
また、文書における指定範囲は、文書に対して例えばユーザが指定した位置と、表示媒体について設定されている表示範囲の大きさとによって決まるので、分割文書レイアウト取得手段は、指定されたことによって、指定範囲を含む分割文書を特定することができ、さらに、特定した分割文書を可変レイアウトのその時の設定に従ってレイアウトすることで、表示レイアウトを得ることができる。
【００８５】
分割文書内割合取得手段は、分割文書レイアウト取得手段から、分割文書のレイアウトサイズを取得すると共に、表示媒体について設定されている表示範囲の大きさを、指定範囲のレイアウトサイズとして、主記憶または外部記憶から読み出したり、ウィンドウサイズ取得ＡＰＩを呼び出すなどして、取得する。これにより、分割文書内割合取得手段は、分割文書に対する指定範囲のレイアウトサイズ比を求めることができる。
【００８６】
さらに、全文書内割合取得手段は、分割文書内割合取得手段から、レイアウトサイズ比の算出に用いた分割文書を特定する情報を得て、その情報を元に、分割データサイズ取得手段から、該当する分割文書のデータサイズを得ると共に、全ての分割文書の各データサイズを取得して合算する。これによって、全文書内割合取得手段は、文書全体のデータサイズに対して、レイアウトサイズ比の算出に用いた分割文書のデータサイズの割合、つまり第１のデータサイズ比を求めることができる。
【００８７】
最後に、全文書内割合取得手段は、分割文書内割合取得手段から、レイアウトサイズ比を取得し、上記の求めた第１のデータサイズ比に、レイアウトサイズ比を乗算することで、指定範囲の文書全体に対する割合、つまり第２のデータサイズ比を求めることができる。
【００８８】
また、本発明に係る表示制御プログラムは、上記の課題を解決する為に、上記表示制御方法が備える各ステップをコンピュータに実行させることを特徴とする。
【００８９】
また、本発明に係る表示制御プログラムは、上記の課題を解決する為に、上記表示制御装置が備える各手段として、コンピュータを機能させることを特徴とする。
【００９０】
これにより、汎用のコンピュータに、本発明の表示制御方法を実行させ、上記の作用、効果を得ることができる。
【００９１】
また、本発明に係る記録媒体は、上記の課題を解決する為に、上記表示制御プログラムを記録したことを特徴とする。
【００９２】
これにより、上記記録媒体から汎用のコンピュータに、表示制御プログラムをインストールすることによって、本発明の表示制御方法を実行させ、上記の作用、効果を得ることができる。
【００９３】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
【００９４】
まず用語と概念について説明する。
【００９５】
「表示」は、一般には情報を視覚的に知覚できるような形態で表示媒体上に出力することを言う。本発明では、表示媒体に対するレイアウトの「表示」だけに限らず、印刷記録媒体に対するレイアウトの「印刷」やデータ記録媒体に対するレイアウトの「ファイル出力」など、「出力」一般にも適用可能である。説明を分かり易くする為、以降の説明では、「表示」という言葉を用いることが多いが、「出力」の意も含まれているとする。
【００９６】
「表示要素」とは、文字や絵、写真、図形、動画像など、表示することのできるデータ要素を指す。表示する為には、通常、表示位置と表示サイズの他に、外形、表示表現形態などの属性を、表示要素は持っている必要があり、表示装置はそれらの取得手段を持っている必要がある。
【００９７】
但し、表示要素は、表示している状態のデータ要素だけを指すのではなく、主記憶や外部記憶、その他の機器上に、表示／出力に備えて記録／格納されているデータ要素も含む。何かの形に置き換えて出力するという意味では、「出力要素」と言い換えても良いが、上述した様に以降では分かり易くする為に「表示要素」と表現しておく。また、表示は２次元表示だけでなく、３次元表示も含む。
【００９８】
「表示表現形態」は、例えば文字ならば、文字の輪郭および内部を表示装置上の画素位置として計算し、その画素を設定された文字色で塗りつぶすことになる。表示でなくて、印刷の場合も画素で塗りつぶす行為が、紙に点を印刷することに相当するだけで、同様の方法で出力できる。ＰＤＦなどに表示要素のデータを出力する場合も、画素情報に展開して出力することもできるし、その手前の輪郭データなどとして出力することもできるし、ＰＤＦデータを後でＰＤＦ用アプリケーションが解釈する際に、画素情報などに展開できるだけの十分な情報量のデータ（例えば、フォント名と文字コード、位置、文字サイズ、文字色など）として出力することもできる。
【００９９】
「レイアウト」とは、表示要素が２次元または３次元の空間座標上に、位置とサイズ、外形の属性をもって配置されること、あるいは配置されたもののことを言う。位置やサイズは、通常は何らかの単位を使った値として表現される。例えば、画素の集まりからなるディスプレイに表示する場合は、（画素）ドットの単位で表現される。１つないし複数の表示要素がレイアウトされた結果、その表示要素に関して定まる空間座標上の位置のことを「レイアウト位置」、１つないし複数の表示要素がレイアウトされた結果、その表示要素に関して定まる空間座標上のサイズのことを「レイアウトサイズ」と以降では呼ぶ場合もある。
【０１００】
「文書」とは、一つまたは複数の表示要素がレイアウトされたもの、あるいはレイアウトしたり、レイアウトに基づいて表示要素を表示したりすることができるだけの情報量を持ったデータを指す。文書データは、表示要素のデータも含む場合と、レイアウト情報だけ持っていて表示要素のデータの一部を含む場合やあるいはまったく含まない場合もある。いずれにしろ、文書データを使って、レイアウトに従った表示や出力ができる。
【０１０１】
図５は、ある文書がレイアウトされた例を示している。図５の１１０はレイアウト全体を指し、その中のそれぞれの文字や画像がレイアウトされた表示要素にあたる。実際に表示される際は、この内、表示範囲の位置と大きさの分だけ表示される。
【０１０２】
文書の「指定範囲」とは、スクロールバーの場合で言えば、その文書中の表示したい範囲を指す。通常は、レイアウトされた文書中での位置とサイズ、外形で指定する。外形は矩形が一般的である。なお、「指定範囲」は、表示したい範囲に限らず、印刷したい範囲の場合もあり、また、ＰＤＦなどのデータフォーマット形式で主記憶上や外部記憶上に記録したい範囲の場合もある。
【０１０３】
スクロールバーで指定範囲を指定する場合、スクロールボックスのサイズが指定範囲のサイズとなり、スクロールボックスの位置が指定範囲の位置となる。スクロールボックスのサイズはスクロールバーの直接操作では通常は変更できないので、位置を変えるだけになる。スクロールボックスのサイズを変更するには、表示倍率を変える、などの操作を別途行わなければならない。
【０１０４】
スクロールボックスの位置の変更操作は、通常、マウスやキーボードなどを使って行われる。例えば、スクロールボックス上にマウスカーソルを移動させ、マウスの左ボタンを押す。そのボタンを押しつづけたまま、スクロールボックスを移動させたい位置までマウスを動かし、移動させたい位置でボタンを離す。スクロールボックスをいわゆる「ドラッグ＆ドロップ」することになる。
【０１０５】
また、スクロールバー上にスクロールボックスを移動させるスクロールボタン（矢印の表示をしていることが多い）などがある場合、そのスクロールボタンを押すことで、所定の方向に所定量だけスクロールボックスが移動する。スクロールボタンと同様の操作は、キーボード上の方向キーやスペースキーなどを押すことでもできる場合もある。
【０１０６】
スクロールバーから指定範囲を得る場合、スクロールバー中でスクロールボックスを配置できる範囲のサイズ、その範囲中でのスクロールボックスの位置、スクロールボックスのサイズが得られれば、スクロールボックスによって指定される範囲が分かる。
【０１０７】
スクロールバーやスクロールボックスの位置、サイズは、通常、画面表示のドット数で表される。例えば、スクロールバー中でスクロールボックスを配置できる範囲が２５０ドットで、スクロールボックスはその配置できる範囲の先頭から１００ドットの所に位置し、そこから５０ドット分のサイズを占める、などとなる。スクロールバーのどちらの端が先頭かは目的に応じて決めればよい。
【０１０８】
スクロールバーを使って指定範囲を得る場合や、現在表示している範囲をスクロールバーで表示する場合、最終的には画面表示のドット数が単位となるのだが、スクロールバー全体の大きさも変わったりするので、以降では説明を汎用的にする為、スクロールボックスの位置、サイズは、ドット数ではなくて割合を使って主に説明する。割合は０．０〜１．０の値となる。
【０１０９】
例えば、先の例では、スクロールボックスの位置の割合は、（１００／２５０）＝０．４となり、スクロールボックスのサイズの割合は、（５０／２５０）＝０．２となる。
【０１１０】
指定範囲の指定の仕方としては、文書の全体縮小表示上でマウスドラッグなどにより矩形を指定することで行われることもある。この場合は位置とサイズを同時に指定することができる。
【０１１１】
指定範囲の位置とサイズはどんな単位系で表現されても良いのだが、スクロールバーなどで指定される場合は、文書全体の中での割合として得られることが多い。
【０１１２】
次に、文書の「分割」とは、レイアウト的な分割とデータ的な分割の２通り考えられるが、本発明ではデータ的な分割を対象とする。
【０１１３】
レイアウト的な分割とは、表示要素がレイアウトされた状態で、座標空間上の範囲として分割することである。例えて言えば、印刷された紙を鋏で切るようなものである。
【０１１４】
一方、データ的な分割は、バイトやビットなどのデジタル量として表現された文書データを、データ列として分割することである。これは人間が直接知覚することはできないが、表示要素やレイアウト的にきりの良い所（例えば、改行や段落の前後）でデータ列を分割した場合、その分割データの表示や出力はレイアウト的に分割されたように表現されるので、間接的に知覚できる。また、表示要素やレイアウト的にきりの良い所でデータ列を分割した方が後の処理がしやすい。
【０１１５】
また、どちらの場合でも、表示要素やレイアウト的にきりの良い所で文書を分割した場合、レイアウト的な分割でもデータ的な分割でもどちらの形でも分割状態として表現できることが多い。
【０１１６】
図６は、図５の文書レイアウトの文書データ（ＨＴＭＬで記述されているとする）を分割した例である。分割文書データ５０〜５５のように、元の文書データがＨＴＭＬソースの文字単位で分割されている。また、レイアウト的に切りが良いように、改行（「＜ＢＲ／＞」）の前後などでできるだけ分割している。この分割の処理は、コンテンツデータが作成される時に行われるとし、コンテンツデータを読み込む段階では、どう分割されたかの情報は入手できるとする。
【０１１７】
文書の「データサイズ」とは、データの規模を示す値で、一般には文書データをバイトやビットなどの符号化量（デジタル量）として表現、記録した時のサイズであるが、ここでは後に説明する「意味単位に基づく数」などもデータの規模を示すものとしてデータサイズに含まれるとする。
【０１１８】
文書の「意味単位に基づく数」とは、人間に知覚できるような処理単位を意味単位として捉えた時の処理単位の数ということで、文書の場合で言えば、文字（要素）数や行数、改行数などが考えられる。
【０１１９】
図２は、本発明の実施の一形態に係り、上述したスクロールバー表示制御方法を実施するスクロールバー表示制御装置を示す構成図である。
【０１２０】
すなわち、スクロールバー表示制御装置の要部を、分割データサイズ取得手段１、分割文書内割合取得手段２、全文書内割合取得手段３、スクロールバー表示手段４、指定範囲取得手段５、指定範囲レイアウト取得手段６、レイアウト表示手段７、分割文書レイアウト取得手段８に展開して示すことができる。
【０１２１】
図３は、図２の各手段１〜８を具体的に実現する装置の構成例である。
【０１２２】
ＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）２０は、上記分割データサイズ取得手段１、分割文書内割合取得手段２、全文書内割合取得手段３、スクロールバー表示手段４、指定範囲取得手段５、指定範囲レイアウト取得手段６、レイアウト表示手段７、分割文書レイアウト取得手段８として機能し、これら各手段１〜８による処理手順が記述されたプログラムを主記憶２５、外部記憶２６、通信デバイス２９を経たネットワーク先などから得る。
【０１２３】
また、ＣＰＵ２０は、ＣＰＵ２０を含めてバス３０を通じ相互に接続されたグラフィックデバイス２１、プリンタ２３、スピーカー２４、主記憶２５、外部記憶２６、マウス２７、キーボード２８、通信デバイス２９とデータのやりとりを行ないながら、既に説明した各処理を行なう。
【０１２４】
なお、データのやりとりは、バス３０を介して行う場合に限らず、データを送受信できるものならば、通信ケーブルや無線通信装置などを介してもよい。また、各手段１〜８の実現手段としては、ＣＰＵに限らず、ＤＳＰ（ ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）や処理手順が回路として組み込まれているロジック回路などを用いることもできる。
【０１２５】
主記憶２５は、通常はＤＲＡＭ（ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）やフラッシュメモリなどのメモリデバイスで構成される。外部記憶２６は、ＨＤＤ （ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ）やＰＣ（ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ) カードなどの装脱着可能な記憶手段である。あるいはＣＰＵ２０と通信デバイス２９を介して有線または無線で接続された他のネットワーク機器に取り付けられたメモリデバイスなどを外部記憶２６として用いることもできる。
【０１２６】
ユーザの操作を入力する手段として、マウス２７やキーボード２８、マイク３１などがある。この他にもボタンやタッチパネルなど、様々な手段が使用可能である。
【０１２７】
グラフィックデバイス２１は、通常はグラフィックカードなどによって実現され、ＶＲＡＭ（ｖｉｄｅｏ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）を有し、ＶＲＡＭ上のデータを表示信号に変換して、グラフィックデバイス２１に接続されたモニタ２２に送り、モニタ２２は表示信号を画像として表示する。
【０１２８】
プリンタ２３は、バス３０を介して得た印刷データを用紙に印刷する。スピーカ２４は、バス３０を介して得た音データを音として出力する。マウス２７やキーボード２８、マイク３１は、ユーザーによる入力をバス３０を介して他の手段に伝える。
【０１２９】
通信デバイス２９は、ネットワークカードなどにより実現され、無線や有線などによりネットワークを介して接続された他のネットワーク機器とデータをやりとりする。
【０１３０】
図２の各手段１〜８について、各手段間のデータの授受という観点も含めて、その実現方法を説明する。
【０１３１】
図２の分割データサイズ取得手段１としてのＣＰＵ２０は、主記憶２５、外部記憶２６、通信デバイス２９などから各分割文書のデータサイズを得る。各分割文書のデータサイズは、文書データ中に既に記述されていたり、文書データを解釈することで得られるとする。各分割文書のデータサイズの形式については、後述するが、例えば図１０のような構造が考えられる。
【０１３２】
図２の分割文書内割合取得手段２としてのＣＰＵ２０による処理として、まず、分割文書内割合取得手段２は、主記憶２５、外部記憶２６、通信デバイス２９などから処理プログラムを読み込み、指定範囲レイアウト取得手段６からデータ位置、サイズ情報を含んだ指定範囲のレイアウトデータを得る。続いて、分割文書内割合取得手段２は、分割文書レイアウト取得手段８から、指定範囲を含む分割文書を特定する情報と、その特定の分割文書に関して、データ位置、サイズ情報を含んだレイアウトデータを得る。これにより、指定範囲および特定の分割文書の各レイアウトサイズから、前記特定の分割文書内に指定範囲が占める割合（レイアウトサイズ比）が求められ、分割文書内割合取得手段２から全文書内割合取得手段３に送られる。
【０１３３】
なお、ＣＰＵやＤＳＰは処理手順をプログラムとして読み込むが、ロジック回路などのように処理手順が回路として組み込まれている場合はプログラムを読み込む必要はなくなる。
【０１３４】
図２の全文書内割合取得手段３としてのＣＰＵ２０による処理として、まず、全文書内割合取得手段３は、主記憶２５、外部記憶２６、通信デバイス２９などから処理プログラムを読み込み、分割文書内割合取得手段２から指定範囲のレイアウトサイズ比を得る。続いて、全文書内割合取得手段３は、分割文書レイアウト取得手段８から、指定範囲を含む特定の分割文書のデータサイズを得ると共に、分割データサイズ取得手段１から全分割文書の各データサイズを得ることによって、特定の分割文書が全文書内に占めるデータサイズの割合（第１のデータサイズ比）を求める。さらに、全文書内割合取得手段３は、第１のデータサイズ比にレイアウトサイズ比を乗算することによって、指定範囲が全文書内に占めるデータサイズの割合（第２のデータサイズ比）を最終的に求め、スクロールバー表示手段４に送る。スクロールバー表示手段４では、その第２のデータサイズ比に応じたスクロールバーの表示処理を行う。
【０１３５】
図２のスクロールバー表示手段４としてのＣＰＵ２０は、全文書内割合取得手段３から得た指定範囲の割合（第２のデータサイズ比）に応じて、スクロールバーを出力先（グラフィックデバイス２１およびモニタ２２、またはプリンタ２３等）に出力する。
【０１３６】
出力表現形式は用語の説明で説明したように、例えばモニター２２に表示する場合、グラフィックデバイス２１のＶＲＡＭ上に画素データとして書き込まれ、モニタ２２に表示される。一方、例えば印刷の場合には、プリンタ２４に印刷データとして送られ、プリンタ２４ が印刷データを解釈して、用紙に印刷する。ＰＤＦならば、対応する位置に文字を配置するデータをＰＤＦデータとして書き込み、主記憶２５や外部記憶２６、通信デバイス２９などを通じて記録される。
【０１３７】
図２の指定範囲取得手段５としてのＣＰＵ２０は、指定範囲のデータを主記憶２５、外部記憶２６、通信デバイス２９などから読み取られるプログラムから得たり、ユーザの操作によりマウス２７、キーボード２８、マイク３１などから入力されたデータとして得たり、グラフィックデバイス２１、主記憶２５、外部記憶２６、プリンタ２３、通信デバイス２９からデータとして得たりする。
【０１３８】
例えばモニタ２２上に表示されているウィンドウのサイズを指定範囲の大きさとするならば、ＣＰＵ２０は、主記憶２５上のウィンドウサイズデータを参照したり、ウィンドウサイズ取得ＡＰＩを呼び出すなどして指定範囲の大きさのデータを得る。また印刷ならば、プリンタ２３、あるいは用紙設定が記録された主記憶２５や外部記憶２６上などの用紙設定データをＣＰＵ２０が参照したり、用紙サイズ取得ＡＰＩを呼び出すなどして用紙サイズを得ればよい。
【０１３９】
また、例えばモニタ２２上に表示されているスクロールバー上のスクロールボックスの位置を指定範囲の位置とするならば、ＣＰＵ２０は、主記憶２５上のスクロールボックス位置を参照したり、スクロールバー情報取得ＡＰＩを呼び出すなどして指定範囲の位置のデータを得る。
【０１４０】
図２の指定範囲レイアウト取得手段６としてのＣＰＵ２０による処理は、主記憶２５、外部記憶２６、通信デバイス２９などから処理プログラムを読み込み、指定範囲取得手段５から指定範囲を得て、分割データサイズ取得手段１から各分割文書のデータサイズを得て、分割文書レイアウト取得手段８から分割文書のレイアウトを得て、処理プログラムに従い処理し、指定範囲のレイアウトやデータ位置、サイズなどを分割文書内割合取得手段２やレイアウト表示手段７に渡すことで行なわれる。
【０１４１】
図２のレイアウト表示手段７としてのＣＰＵ２０は、指定範囲の表示要素の出力表現形式を出力先（グラフィックデバイス２１およびモニタ２２、またはプリンタ２３等）に出力する。出力の実現方法については、スクロールバー表示手段４と同様だが、出力する内容はレイアウトである。
【０１４２】
図２の分割文書レイアウト取得手段８としてのＣＰＵ２０は、主記憶２５、外部記憶２６、通信デバイス２９などから分割文書のレイアウトデータを得る。レイアウトデータは、ＷＷＷブラウザのレイアウト処理など他のプログラムや処理ルーチンなどによって既に作成されており、それらの他のプログラムや処理ルーチンを呼び出すことで得られるとする。それらのルーチンなどの内部では、既に作成したレイアウトがあればそれを使い、まだ作成していなかったり、表示設定が変わったりした場合は、作成し直される。レイアウトデータの形式については後述するが、図１２のような構造が考えられる。
【０１４３】
図４は、装置の外観例を示している。本体１２３上に表示手段１２２があるが、これはタブレット機能も兼ねており、ペン１２４によるタブレット操作が可能である。表示手段１２２中に、指定範囲のレイアウトが表示され、またその横にスクロールバー１２０が表示されている。スクロールバー１２０中にスクロールボックス１２１がある。
【０１４４】
ペン１２４によって、スクロールバー１２０をタッチしたり、スクロールボックス１２１をドラッグしたりしてタブレット操作することで、指定範囲を指定できる。表示手段１２２は、図３では表示機能がグラフィックデバイス２１、モニタ２２など、ペンと合わせたタブレット機能がマウス２７やキーボード２８などの入力操作手段に相当する。
【０１４５】
図７は、本発明の実施の一形態に係るスクロールバー表示制御方法を示すフローチャート図である。
【０１４６】
このフローチャート図では、ユーザーがスクロールバーを使う典型的な操作として、
ユーザーが表示させたい範囲をスクロールボックスを用いて指定し、
指定された範囲を表示し、
表示された範囲に相当するスクロールボックスをスクロールバー上に表示し直す、
までの全体の一連の処理を説明している。（１）、（２）は「スクロールバーによる制御」、（３）は「スクロールバーの表示」に主に相当する。
【０１４７】
まず、これらの処理の概要を一通り説明する。各処理の詳細は後で述べる。
【０１４８】
まず、ステップＳ１０（以下、「ステップＳ」を「Ｓ」と略記する）で、指定範囲取得手段５が、前述したように指定範囲を得て、連結点Ｐ１０（以下、「連結点Ｐ」を「Ｐ」と略記する）を経て、Ｓ１１へ進む。
【０１４９】
「指定範囲」については、言葉の説明で上述した通りである。例えば、指定範囲は、スクロールバーや全体縮小表示における範囲指定操作などを使って、ユーザーから指示されたとする。スクロールバーによる範囲指定操作は、先に「指定範囲」の定義に関連して説明した通りである。
【０１５０】
ここではスクロールバーから得られる範囲は、文書全体に対する割合として得られるとする。
【０１５１】
指定範囲のサイズに関しては、スクロールボックスで指定されるサイズの割合でも良いのだが、本発明をスクロールバーと共に用いた場合、表示手段の表示画面のドットサイズを使う方がユーザーにとって自然だと思われるので、その値を使うとしておく。表示手段の表示画面のドットサイズは、この場合、表示されているコンテンツの部分のレイアウトサイズと常に同じである。
【０１５２】
一般にスクロールボックスは、「全レイアウト中の表示されている部分のレイアウト」に対応し、その位置とサイズは、「全レイアウト中の表示されている部分のレイアウト」の全レイアウト中での位置とサイズで決まる。全レイアウトのサイズは、コンテンツ全てをレイアウトすれば求められる。指定範囲の大きさが変わらないのならば、「全レイアウト中の表示されている部分のレイアウト」のサイズも変わらず、スクロールボックスの位置は変わっても、スクロールボックスの大きさ（スクロールバー上でのサイズの割合）は普通、変わらない。
【０１５３】
詳しくは後で説明するが、本実施例では、全レイアウトサイズを求めずに、「表示されているコンテンツの部分のレイアウト」の全レイアウト上での位置とサイズを、各種データサイズから推測する。推測なので、スクロールボックスのサイズ（およびそのサイズの割合）は、表示する範囲によって多少変わってくることがある。
【０１５４】
従って、以前のスクロールボックスのサイズ（およびそのサイズの割合）に相当する部分のコンテンツを表示させようとすると、そのレイアウトサイズは、表示手段の表示画面のドットサイズと一致しない場合が出てくる。その場合、表示に欠けができたり、表示しきれない部分が出てくるかもしれない。これはユーザーにとっては不自然な表示結果となってしまう。
【０１５５】
従って、ここでは指定範囲を、スクロールボックスのサイズで指定するのではなく、表示手段の表示画面のドットサイズで指定するとした方が、ユーザーにとって違和感が少なく、望ましい。
【０１５６】
なお、指定範囲の外形は矩形としておくが、矩形でなくても原理的にここで説明するのと同様の方法を適用できる。
【０１５７】
Ｓ１０は、先に説明した「（１）ユーザーがスクロールボックスで表示する範囲を指定する」に相当する。
【０１５８】
Ｓ１１では、指定範囲レイアウト取得手段６が、Ｓ１０で得た指定範囲のレイアウトを本発明の特徴的な方法に従って得て、Ｐ２０を経て、Ｓ１２へ進む。ここでの処理の詳細に関しては、後で図９を参照して説明する。
【０１５９】
Ｓ１２では、レイアウト表示手段７が、Ｓ１１で得た指定範囲のレイアウトを表示して、Ｐ３０を経て、Ｓ１３へ進む。
【０１６０】
指定範囲のレイアウトの取得に関しては、後で図１６などの説明で出てくるが、レイアウトの上限と下限の表示要素が得られるので、その間の表示要素が指定範囲のレイアウトの表示要素となる。
【０１６１】
表示の仕方は、本発明の主旨ではないので詳しくは説明しないが、レイアウトされた文書中での各表示要素の位置とサイズ、外形、表示倍率などに従い、各表示要素の表示表現形態を表示する。表示要素の位置はレイアウト座標系での値なので、表示する際は、通常は表示手段原点からの表示座標系に変換して表示する。
【０１６２】
図８は、図５の文書全体のレイアウト１１０から表示範囲（指定範囲）１１１の表示要素を抜き出してきて、表示手段１２２に表示した例である。レイアウト１１０中の表示要素はレイアウト１１０の左上隅を原点とし、右方向を＋Ｘ方向、下方向を＋Ｙ方向とする座標系で表されるとする。表示範囲１１１の開始位置の座標値を各表示要素の位置の座標値から引き算することで、表示手段１２２の左上を原点とした表示座標系に変換され、表示手段１２２の範囲に収まったものだけが表示される。
【０１６３】
Ｓ１１、Ｓ１２は、先に説明した「（２）指定された範囲を表示する」処理に相当する。
【０１６４】
Ｓ１３では、全文書内割合取得手段３が、指定範囲に基づく表示範囲の全文書内の位置と割合を本発明の特徴的な方法に従って計算して、Ｐ４０を経て、Ｓ１４へ進む。ここでの処理の詳細に関しては、後で図１を参照して説明する。
【０１６５】
なお、Ｓ１０の説明で述べた通り、指定範囲の位置は全文書内の割合で指定されるが、サイズは表示サイズ（例えばドットサイズ）で指定される。もし、サイズも全文書内割合で指定するのならば、Ｓ１３では特に計算する必要はなく、割合で指定された位置とサイズをそのまま使えば良い。
【０１６６】
Ｓ１４では、スクロールバー表示手段４が、Ｓ１３で得た全文書内の位置とサイズを得て、スクロールバー１２０を表示して、処理を終了する。
【０１６７】
図８では、スクロールバー１２０上に表示範囲１１１の位置と大きさを示すスクロールボックス１２１が黒く示されている。
【０１６８】
Ｓ１３、Ｓ１４は、先に説明した「（３）表示された範囲に相当するスクロールボックスをスクロールバー上に表示する」処理に相当する。
【０１６９】
以上の処理によって、先に説明した番号に則して言えば、（１）ユーザーがスクロールバーなどを操作して指定した指定範囲について、（２）指定範囲に相当する部分のレイアウトを表示し、（３）指定範囲に応じたスクロールバーが表示されることになる。
【０１７０】
一般に、コンテンツを見ようとした場合、（１）から（３）の操作を繰り返して様々な場所を見ることになる。（１）のスクロールバーの代わりに、キーボードやマウスなどを使って次に表示する範囲を指定する場合もある。例えば、ＷＷＷブラウザではスペースキーを押すと、次の１ページ分が表示指定されたことになる。なお、この繰り返し処理はコンテンツを見るだけに限らず、ワープロなどの場合、編集などの操作、処理が間に挟まれることもある。
【０１７１】
図９は、本発明の表示制御方法の特徴の１つである図７のＳ１１の処理の詳細を示すフローチャート図である。
【０１７２】
処理を具体的に説明する為、図７のＳ１０で得られた指定範囲の位置が０．５、サイズが指定位置を中心に上下１００ドット（合わせて２００ドット）としておく。
【０１７３】
まず、Ｐ１０を経てＳ２０へ進み、指定範囲レイアウト取得手段６が、分割データサイズ取得手段１から各分割文書のデータサイズを得て、Ｓ２１へ進む。
【０１７４】
各分割文書は予め作成しておく。すなわち、コンテンツをどう分割するかを予め決め、どう分割したかの情報をデータとして記録しておく。例えば後で説明する図１０の「データサイズ」の項の値の配列のように記録しておけばよい。これはコンテンツデータと別にファイルなどとして記録メディア上などに記録してもよいし、コンテンツデータの一部としてヘッダ情報などの形で記録しておいてもよい。
【０１７５】
各分割文書のデータサイズは、先に説明した「どう分割したかの情報」などから得られる。各分割文書のレイアウトサイズは、可変レイアウトの場合、文字の大きさの設定などによって変わるが、各分割文書のデータサイズは、可変レイアウトであっても変わることはない。本発明でスクロールバーによる制御や表示を高速に行うことが可能となる理由の一つは、データサイズを予め求めておくことができるためである。
【０１７６】
図１０は、取得した各分割文書のデータサイズの例である。各分割文書のデータサイズ７０〜７５は値の配列として得られるとする。その下にデータサイズ７０〜７５の和「６０４」も示してある。
【０１７７】
データサイズ比８０〜８５は、データサイズ７０〜７５の和を１．００とした時の比率である。データサイズ７０〜７５の総和は６０４なので、例えばデータサイズ比８０は、１２６／６０４＝０．２１（以降、説明の為、小数点第３位を四捨五入）で得られる。
【０１７８】
累積データサイズ比９０〜９６は、データサイズ比８０〜８５の累積値である（なお、累積誤差を少なくする為、図１０の値は、四捨五入された８０〜８５の和ではなく、データサイズの和から比率を計算している。そのため、データサイズ比の和と一致しない部分が一部ある）。最初の０．００と最後の１．００も含めてある。データサイズ７０〜７５、データサイズ比８０〜８５、累積データサイズ比９０〜９６は０から始まるインデックス番号によってアクセス可能とする。
【０１７９】
なお、各分割文書の分割の仕方について簡単に説明しておく。分割の仕方に決まりはないが、表示上、区切りの良い意味単位で分割する方が一般によい。区切りの良い意味単位とは、文字単位などは当然として、ここでは「改行」や「段落」などのもう少し大きな意味単位である。
【０１８０】
例えば、図６の例では、改行となる「＜ＢＲ／＞」や「＜Ｐ／＞」の後で分割している所が多い。これは後で説明するようにレイアウトを分割文書単位で行う場合などに、各分割文書のレイアウトが改行などの区切りの良い単位でまとまっていた方が、それぞれの分割文書で独立してレイアウトすることができる利点が出てくるからである。
【０１８１】
例えば、図５のレイアウト結果を見ると分かるように、図６の分割文書データ５０のレイアウト結果は「＜ＢＲ／＞」が最後にあるので「視野が狭い」の行で終わり、分割文書データ５１のレイアウト結果は次の行の行頭から「  人間の視野は」で始まる。行が分かれているので、表示する時は単にそれぞれの行を並べて表示すればよい。従って、分割文書データ５１、分割文書データ５０の順でレイアウトを作成しても問題ない。
【０１８２】
もし区切りの良く無い部分で分割してしまうと、その部分が連続されるように同じ行にレイアウトしないといけない。例えば、図６の分割文書データ５４のレイアウト結果は「機能は」で終わるが、「＜ＢＲ／＞」や「＜Ｐ／＞」で終わっていないので、ここでは改行されない。従って、続く分割文書データ５５のレイアウト結果は、「機能は」の行に続けて、「人間の視野と」となる。この結果、分割文書データ５４と分割文書データ５５とで、レイアウト結果の行が同一行にだぶることになる。
【０１８３】
このため、分割文書データ５４、分割文書データ５５の順にレイアウトするのならばよいが、分割文書データ５５、分割文書データ５４の順に独立してレイアウトしてしまうと、「機能は」の部分が行末にレイアウトされるとは限らず、行の途中にレイアウトされてしまうと、その後に妙な空白部分が続いてしまう。そして次の行の行頭は「人間の視野と」となってしまう。これでは文章としてのつながりがなくなってしまう。
【０１８４】
それを回避する為には、例えば、分割文書データ５５のレイアウトを一旦破棄して、分割文書データ５４、分割文書データ５５の順に作成し直すなどの処置が必要となる。これは非常に無駄な処理となってしまう。
【０１８５】
従って、文書の分割は、分割文書データ５０〜５３のように、改行などの区切りの良い部分で行うようにした方がよい。
【０１８６】
また、各分割文書のデータサイズやレイアウトサイズの大きさは、大きすぎても小さすぎてもよくない。レイアウトを作成する単位を分割文書とすると、あまり大きな分割文書は、当面の表示に使わないレイアウトも無駄に生成してしまい、レイアウトにかかる時間や必要なメモリ量が大きくなってしまう。逆に小さすぎると、当面の表示に使わないレイアウトを生成する無駄は減るが、分割文書のデータサイズを記録する部分が多くなり、（レイアウトにかかる時間に比べれば通常たいしたことはないが）割合の計算も多少増えたりしてしまう。
【０１８７】
また、あまり細かくしようとしても、改行などのきりの良い所で分割できるとは限らない。分割量の１つの基準としては、標準的な表示設定で１画面に表示されるコンテンツ量が考えられる。例えば、１画面に表示されるコンテンツ量の０．５〜２倍程度になるようにするとよい。
【０１８８】
また、各分割文書の分割は、各分割文書のデータサイズやレイアウトサイズに大きな差が出ないようにした方が一般によい。これはレイアウトにかかる時間に大きな差が出てしまうのを防ぐ意味もある。
【０１８９】
なお、コンテンツデータが圧縮や暗号化されている場合、各分割文書単位で展開や復号できるようにしておくと、分割文書単位でのレイアウトにかかる時間を小さくすることができるようになる利点が出てくる。
【０１９０】
Ｓ２１では、指定範囲レイアウト取得手段６が、指定位置の分割文書を同定して、Ｓ２２へ進む。
【０１９１】
指定位置を図１０の累積データサイズ比９０〜９６と比較して、指定位置がどの区間に入るかを調べれば、指定位置がどの分割文書内に位置するかが得られる。例では指定位置が０．５なので、累積データサイズ比９２の値０．３４と９３の値０．５３の間に位置することが分かる。この区間はデータサイズ比８２、データサイズ７２に相当するので、指定範囲の分割文書には、少なくとも３番目の分割文書データ５２が含まれることが分かる。
【０１９２】
図１１は、この状態を示したもので、分割文書データ５０〜５５は、データサイズ７０〜７５に概ね比例した高さで表現されている。指定中心位置は０．５であり、これが３番目の分割文書データ５２内に含まれることが示されている。
【０１９３】
Ｓ２２では、分割文書レイアウト取得手段８が、指定位置が含まれる分割文書のレイアウトを得て、Ｐ１１を経てＳ２３へ進む。指定位置が含まれる分割文書については、指定範囲レイアウト取得手段６から指定される。
【０１９４】
この例では、分割文書レイアウト取得手段８が、分割文書データ５２のレイアウトを得ることになる。もし、分割文書データ５２のレイアウトデータが主記憶２５や外部記憶２６、他の機器上などにキャッシュデータなどとして蓄積されているならそれをそのまま使えばよい。もし蓄積されていないのならば、分割文書データ５２を読み込んで、レイアウトを作成すればよい。
【０１９５】
図１２は、レイアウトされた表示要素データのデータ構造例である。ここでは、文書データがＨＴＭＬ形式で、
「＜ＨＴＭＬ＞あいう＜ＢＲ／＞＜ＩＭＧ  ＳＲＣ＝“ｉｍｇ．ｐｎｇ”／＞＜ＢＲ／＞え＜／ＨＴＭＬ＞」
と記述されている時に、ＷＷＷブラウザなどによってレイアウトされた結果得られたレイアウトデータ例を示している。なお、レイアウト作成方法自体は、本発明の主旨ではないので、詳細は省略する。ＷＷＷブラウザでなくても、レイアウト処理によって図１２のようなデータが得られるのならば、ワードプロセッサでも何でも良い。
【０１９６】
表示要素４０〜４４の各行は図１２の様に、データ開始位置、データサイズ、レイアウトＸ位置、レイアウトＹ位置、レイアウト幅、レイアウト高さ、表示データの情報を持っているとする。
【０１９７】
データ開始位置は、この表示要素が文書データ中に記述される最初のデータ位置を意味する。最初の表示要素４０は、ＨＴＭＬデータの最初の「あ」の文字に相当し、７バイト目なので０から始まるとしてデータ開始位置を「６」としている。また、全角文字が２バイトで表現されているとすると、データサイズは「２」、レイアウトＸ，Ｙ位置は原点とすると「０」、大きさは文字サイズが１４ドットとして「１４」、表示データとして文字「あ」の文字コードとなる。実際はこの表示データが「文字」であることを何らかの識別子で示す必要があるが、表示要素の表示の仕方自体は本発明の主旨ではないので、ここでは省略して「あ」という文字が表示できるだけの情報を表しているとする。
【０１９８】
同様に、表示要素４１〜４４も図１２のようになる。表示要素４３は「＜ＩＭＧ..／＞」で表される画像要素の例で、画像の大きさ（レイアウトサイズ）は５０ドット×１００ドットで、表示データは画像ファイル名「ｉｍｇ．ｐｎｇ」となっている。
【０１９９】
Ｓ２３では、指定範囲レイアウト取得手段６が、指定範囲で指定されたサイズだけのレイアウトが確保できたかどうかを判断して、必要なら周囲の分割文書データのレイアウトを分割文書レイアウト取得手段８から取得して、Ｐ１５を経て、Ｓ２４へ進む。ここでの処理の詳細に関しては、後で図１３を参照して説明する。
【０２００】
Ｓ２４では、指定範囲レイアウト取得手段６が、指定範囲の表示要素を取得して、Ｐ２０へ抜ける。ここでの処理の詳細に関しては、後で図１６を参照して説明する。
【０２０１】
以上の処理によって、図７のＳ１１の処理が行われ、指定範囲のレイアウトが得られる。
【０２０２】
図１３は、図９のＳ２３の処理の詳細を示すフローチャート図である。
【０２０３】
なお、この例では上下方向のスクロールバーを想定していて、下のレイアウトほど先の文書内容になっているとしておく。その為、以降の説明では、先の内容のレイアウトに関して、「下」という表現をすることにし、指定範囲やレイアウトに関しても、主に上下方向（図１２のレイアウトＹ位置）に関して説明する。
【０２０４】
Ｐ１１からＳ３０へ進み、指定範囲レイアウト取得手段６が、現在、分割文書レイアウト取得手段８から取得済みのレイアウトに関して、指定範囲と比べて上の部分のレイアウトが足りないかどうかを判断し、足りない場合はＰ１２を経てＳ３１へ進み、足りている場合はＰ１３を経てＳ３２へ進む。
【０２０５】
図１４は、この判断をする為に使うデータの例であり、主記憶２５、外部記憶２６、または他の機器上に蓄積されている。開始分割文書インデックス１００は、既にレイアウトを取得している分割文書データの最初のインデックス番号である。同様に終了分割文書インデックス１０１は、既にレイアウトを取得している分割文書データの最後のインデックス番号である。ここでは３番目の分割文書データしかレイアウトしておらず、また１番目の分割文書データのインデックス番号を前述のように０とするので、どちらも「２」となっている。
【０２０６】
指定位置データ位置１０２は、指定位置が文書のデータサイズでどの位置を示しているかを表す。これは全データサイズと指定位置（割合）を掛ければ算出される。算出した値をそのまま使っても良いし、その値を含むあるいは最も近いデータ範囲を持つ表示要素のデータ開始位置（あるいはそれプラス（表示要素データサイズ／２））を探して、その値を使っても良い。
【０２０７】
図１０の例では、中心位置（指定位置）０．５は、
（全分割文書データサイズの和）×（指定位置割合）
＝６０４×０．５＝３０２
より、３０２バイト目となる。図６の分割文書データ５２では、「レンジ」の「ジ」に当たる。図５の表示範囲１１１で、この指定位置を中心の○印で表している。
【０２０８】
上側レイアウトサイズ１０３、下側レイアウトサイズ１０４は、指定位置データ位置１０２（を含む行の中心）の上下にどれだけの大きさ、レイアウトされているかを意味する。ここでは図１４の開始分割文書インデックス、終了分割文書インデックスが２なので、図６の分割文書５２だけがレイアウトされている状態である。全文書レイアウトを示す図５より、分割文書５２のレイアウトは「  人間は」（先頭は全角スペース）から「低い」までの５行分である。１行の高さを１６ドット（文字１４ドット＋行間２ドット）として、「ジ」の行中心で分けて考えると、上に
（４．５行分のレイアウト）＝１６×４．５＝７２ドット
下に
（０．５行分のレイアウト）＝１６×０．５＝８ドット
となっている。なお、「４．５」、「０．５」は、「指定位置データ位置１０２を含む行の中心」で処理している為、その行を上下に０．５行分ずつ分けた為である。
【０２０９】
なお図１４の夫々の値は、各分割文書のレイアウトを得る度に更新しておくとする。
【０２１０】
この例では、指定範囲の大きさが指定位置を中心に上下１００ドットなので、上側レイアウトサイズ１０３の７２ドットと比べると足りないので、指定範囲レイアウト取得手段６は上側レイアウトが足りないと判断する。
【０２１１】
Ｓ３１では、指定範囲レイアウト取得手段６が、上の分割文書データ５１のレイアウトを分割文書レイアウト取得手段８から取得して、Ｐ１３を経て、Ｓ３２へ進む。ここでの処理の詳細に関しては、後で図１５を参照して説明する。
【０２１２】
Ｓ３２では、指定範囲レイアウト取得手段６が、現在取得したレイアウトに関して、指定範囲と比べて下の部分のレイアウトが足りないかどうかを判断し、足りない場合はＳ３３へ進み、足りている場合はＰ１５へ抜ける。ここでの処理は、Ｓ３０の上側レイアウトに関する処理と同様なので、説明は省略する。
【０２１３】
Ｓ３３では、指定範囲レイアウト取得手段６が、下の分割文書データのレイアウトを分割文書レイアウト取得手段８から取得して、Ｐ１５へ抜ける。ここでの処理も、Ｓ３１の上側レイアウトに関する処理と同様なので、説明は省略する。
【０２１４】
以上の処理によって、図９のＳ２３の処理が行われ、指定範囲のレイアウトが得られる。
【０２１５】
図１５は、図１３のＳ３１の処理の詳細を示すフローチャート図である。
【０２１６】
Ｐ１２からＳ４０へ進み、指定範囲レイアウト取得手段６が、上側に不足するレイアウト量を求めて、Ｓ４１へ進む。
【０２１７】
これは、指定範囲の上側サイズから図１４の上側レイアウトサイズ１０３を引算すればよい。図１４の場合、１００−７２＝２８ドットという値が得られる。
【０２１８】
Ｓ４１では、指定範囲レイアウト取得手段６が、Ｓ４０で得られた上側の不足レイアウト量が０かどうかを判断し、０の場合はＰ１３へ抜け、０で無い場合はＳ４２へ進む。
【０２１９】
Ｓ４２では、指定範囲レイアウト取得手段６が、上の分割文書があるかどうかを判断し、ある場合はＳ４３へ進み、無い場合はＰ１３へ抜ける。
【０２２０】
上の分割文書があるかどうかは、図１４の開始分割文書インデックス１００が０でないかどうかを見れば良い。なお、先にＳ３３の説明で、上側レイアウトに関する処理と同様と説明したが、Ｓ４２での処理のみ、下の分割文書が存在するかどうかの判断が、終了分割文書インデックス１０１が（分割文書数−１）でないかどうかによる所が異なる。
【０２２１】
Ｓ４３では、指定範囲レイアウト取得手段６が、上の分割文書のレイアウトを分割文書レイアウト取得手段８から取得して、図１４のデータを更新し、Ｓ４０へ進む。
【０２２２】
以上の処理によって、図１３のＳ３１の処理が行われる。
【０２２３】
この例では、分割文書データ５１をさらに読み込むことで、図５より、
（３行分のレイアウト）＝１６×３＝４８ドット
が上に追加されるので、
（上側レイアウトサイズ１０３）＝７２＋４８＝１２０ドット  ＞  指定１００ドット
で上の読み込みはこれで十分である。この場合、開始分割文書インデックス１００は１に更新されると共に、上側レイアウトサイズ１０３は、７２から上限の１００に更新される。
【０２２４】
下は、分割文書データ５３を読み込むことで
（８行分のレイアウト）＝１６×８＝１２８ドット
が下に追加されるので、
（下側レイアウトサイズ１０４）＝８＋１２８＝１３６ドット  ＞  指定１００ドット
となるので、下のレイアウトの読み込みもこれで十分である。この場合、終了分割文書インデックス１０１は３に更新されると共に、下側レイアウトサイズ１０４は、８から下限の１００に更新される。
【０２２５】
図１６は、図９のＳ２４の処理の詳細を示すフローチャート図である。
【０２２６】
Ｐ１５からＳ７０へ進み、指定範囲レイアウト取得手段６が、上限の表示要素を取得して、Ｐ１６を経て、Ｓ７１へ進む。ここでの処理の詳細に関しては、後で図１７を参照して説明する。
【０２２７】
Ｓ７１では、同手段６が、下限の表示要素を取得して、Ｐ２０へ抜ける。ここでの処理は、Ｓ７０の処理と同様なので、説明は省略する。
【０２２８】
以上の処理によって、図９のＳ２４の処理が行われる。
【０２２９】
図１７は、図１６のＳ７０の処理の詳細を示すフローチャート図である。
【０２３０】
Ｐ１５からＳ８０へ進み、指定範囲レイアウト取得手段６が、指定位置の表示要素をカレント要素に設定して、Ｓ８１へ進む。指定位置の表示要素は、図１４の指定位置データ位置１０２を含む、あるいは最も近いデータ範囲を持つ表示要素を探せば良い。探すには指定位置を含む分割文書のレイアウトデータを順に見ていけば良い。
【０２３１】
Ｓ８１では、同手段６が、カレント要素の前の表示要素を得て、Ｓ８２へ進む。
【０２３２】
Ｓ８２では、同手段６が、指定位置の表示要素からＳ８１で得た表示要素までのレイアウトサイズが、図１４の上側レイアウトサイズ１０３を超えたかどうかを判断し、超えた場合はＳ８３へ進み、超えない場合はＳ８４へ進む。指定位置の表示要素からＳ８１で得た表示要素までのレイアウトサイズを求めるには、カレント要素のレイアウトＹ位置（図１２）と、Ｓ８１で得たカレント要素の前の表示要素のレイアウトＹ位置の差分を取れば良い。
【０２３３】
Ｓ８３では、同手段６が、カレント要素を上限の表示要素として、Ｐ１６へ抜ける。
【０２３４】
Ｓ８４では、同手段６が、上の表示要素をカレント要素として、Ｓ８１へ戻る。
【０２３５】
以上の処理によって、図１６のＳ７０の処理が行われる。
【０２３６】
図１は、本発明の表示制御方法の特徴である図７のＳ１３の処理の詳細を示すフローチャート図である。
【０２３７】
Ｐ３０よりＳ６０に進み、Ｓ６０で、分割文書内割合取得手段２が、指定範囲レイアウト取得手段６から指定範囲のレイアウトサイズを得て、全文書割合取得手段３に与えた後、Ｓ６１へ進む。
【０２３８】
図１８は、図５の全レイアウト上に、指定中心位置、指定範囲のレイアウトサイズＬＤ、指定範囲を含む分割文書のレイアウトサイズＳＤＬを示した図である。指定中心位置は「ジが低い」の行の中心となっている。また、各行がどの分割文書データに属するか分かり易いように、左側にレイアウトされた各分割文書データ５０〜５５の範囲の矢印を示してある。前述したように、行の途中で分割されているところは一部だぶっている。
【０２３９】
Ｓ６０では、分割文書内割合取得手段２が指定範囲レイアウトサイズＬＤを取得することになる。指定範囲取得手段５から得られる指定範囲は、指定中心位置の上下１００ドットとして指定されているので、指定範囲のレイアウトサイズＬＤは、２００（ドット）となる。
【０２４０】
Ｓ６１では、分割文書内割合取得手段２が、指定範囲を含む分割文書レイアウトサイズを得て、Ｓ６２へ進む。
【０２４１】
これは、図７のＳ１１で指定範囲のレイアウトを得る際、もっと詳細には図９のＳ２２、Ｓ２３の処理で、指定範囲を含む分割文書レイアウトを得ているので、そこから指定範囲を含む分割文書のレイアウトサイズが得られる。各分割文書のレイアウトは、図１２の形式で得られるので、簡単に求めるには、指定範囲を含む最初の分割文書の最初のレイアウト表示要素のレイアウト位置と、指定範囲を含む最後の分割文書の最後のレイアウト表示要素のレイアウト位置とを得て、その差を計算すれば良い。
【０２４２】
ここでは、中心位置は３番目の分割文書データ５２内の「ジが低い」の「ジ」の文字であり、この行の中心から上下１００ドットは、１００／１６＝６．２５行分の範囲である。上下６．２５行分を含む分割文書データは、２〜４番目の分割文書データ５１〜５３である。各分割文書データのレイアウトサイズは、分割文書レイアウト取得手段８から得られる。ここでは、分割文書レイアウトサイズＳＤＬは、（１７行分）＝１６×１７＝２７２（ドット）である。
【０２４３】
Ｓ６２では、分割文書内割合取得手段２が、指定範囲を含む分割文書のレイアウトサイズの合計に対する指定範囲のレイアウトサイズの比率として、レイアウトサイズ割合ＳＬＲ（レイアウトサイズ比）を算出し、全文書内割合取得手段３に与えて、Ｓ６３へ進む。
【０２４４】
図１８で説明すると、
ＳＬＲ＝（指定範囲レイアウトサイズＬＤ）／（分割文書レイアウトサイズＳＤＬ）
である。
【０２４５】
ここでは、ＳＬＲ＝２００／２７２＝０．７４となる。
【０２４６】
Ｓ６３では、全文書内割合取得手段３が、分割データサイズ取得手段１から分割文書のデータサイズを取得して、Ｓ６４へ進む。これは図１０の値をそのまま使う。
【０２４７】
Ｓ６４では、全文書内割合取得手段３が、全文書のデータサイズに対する指定範囲のデータサイズの比率として、全文書内割合を算出して、Ｐ４０へ抜ける。
【０２４８】
全文書内割合を求める方法は、例えば次の式による。
【０２４９】
（全文書内割合）＝（分割文書内割合ＳＬＲ）×（（指定範囲分割文書データサイズＳＤＤ）／（全文書データサイズＡＤ））
図１１はこの計算原理を説明する図である。指定範囲を含む分割文書が全文書中に占める割合（第１のデータサイズ比）を分割文書のデータサイズベースで求めると、（ＳＤＤ／ＡＤ）となる。一方、分割文書内割合ＳＬＲ（レイアウトサイズ比）は、レイアウトサイズベースでＳ６２で求めたとおり、（ＬＤ／ＳＤＬ）である。従って、最終的に求めたい全文書内割合（第２のデータサイズ比）は、
（全文書内割合）＝（ＬＤ／ＳＤＬ）×（ＳＤＤ／ＡＤ）
となる。
【０２５０】
上記の例に即して求めてみると、
０．７４×（（７７＋１１７＋１６１）／（１２６＋７７＋１１７＋１６１＋５６＋６７））＝０．４３
より、データサイズベースで求めた指定範囲の大きさ（全文書内割合）は４３％となる。
【０２５１】
以上の処理によって、図７のＳ１３の処理が行われる。
【０２５２】
なお、Ｓ１４でスクロールバーを表示する時は、指定中心位置５０％を中心に４３％の大きさのスクロールボックスを表示すればよい。つまり、スクロールボックスの先頭位置をデータサイズベースの割合で表すと、５０−（４３／２）＝２８．５％、となる。
【０２５３】
以上、説明してきた方法により、文書を複数の部分に分割した分割文書のデータサイズと、指定範囲を含む分割文書が全文書中に占める割合（第１のデータサイズ比）と、指定範囲を含む分割文書内で指定範囲が占める割合（レイアウトサイズ比）とから、文書中に指定範囲が占める割合（第２のデータサイズ比）を得ることができる。
【０２５４】
また、指定範囲のレイアウトを表示して、得られた位置と割合でスクロールバーを表示することで、指定範囲に応じたスクロールバーを表示することができるようになる。
【０２５５】
さらに、スクロールバー上で指定範囲の位置を指定することで、ユーザーのスクロールバー操作に応じて表示範囲を制御することができるようになる。
【０２５６】
一般に、スクロールバーは表示範囲とレイアウトサイズとが、全文書のレイアウトサイズ中に占める割合に基づいて表示されたり、制御されたりしている。その割合を求めるには、本来、表示範囲と全文書とに関するレイアウトサイズが必要である。レイアウトサイズを高速に得るには予め計算しておくなどの方法が考えられるが、可変レイアウトの場合は表示手段の表示サイズや表示時のレイアウト設定などによってレイアウトサイズが変わってしまう為、予め計算しておくことはできない。
【０２５７】
全文書のレイアウトサイズを求めずに表示範囲のレイアウト割合を真に正確に求めるのは難しいが、ある程度の精度で「推定」（この言葉の意味については後で説明する）することはできる。そこで、本実施の形態では、指定範囲の表示レイアウトとデータサイズとを得る為に、必要最小限の分割文書だけレイアウトし（図１のＳ６１）、それ以外の分割文書はレイアウトを求めていない。そして、指定範囲のレイアウトサイズと、指定範囲を含む分割文書のデータサイズとからレイアウト割合を推定している。
【０２５８】
レイアウトは、全コンテンツ、すなわち全分割文書データをレイアウトしているのではなく、指定範囲が含まれる一部の分割文書しかレイアウトしていない。
【０２５９】
これによって、可変レイアウトの集まりからなる文書であっても、文書全てをレイアウトするのに比べて高速に指定範囲の割合を得ることができる効果が出てくる。また割合を計算する為に全てのレイアウトを保持する必要もないので、少ないメモリ環境などでも処理できる効果が出てくる。
【０２６０】
また、レイアウトが分かっている部分、すなわち指定範囲を含む一部の分割文書に対する指定範囲の割合は、レイアウトサイズベースで求めている。この理由について、以下に説明を補足しておく。
【０２６１】
まず、指定範囲のレイアウトサイズを使わず、指定範囲のデータサイズを使って分割文書内割合を求めることも可能である。ここでいう指定範囲のデータサイズとは、分割文書単位の大まかなものではなく、表示要素単位での細かなものである。例えば、図６の分割文書データ５１中の「人間」の部分が指定範囲だとすると、分割文書データ５１中の３〜６バイト目にあたるので、サイズは４バイトとなる。
【０２６２】
なお、実際に指定範囲のデータサイズを求める場合、レイアウト時にどの文字が何バイト目かは分かるので、指定範囲の最初および最後の文字同士でバイト数を引き算することにより、指定範囲のデータサイズを求めることができる。
【０２６３】
この時、全文書内割合ＤＲは、
（全文書内割合ＤＲ）＝（指定範囲のデータサイズ）／（全文書データサイズ）
で求められる。すなわち、この求め方の場合、前述のような分割文書内割合を求める必要は無い。
【０２６４】
この方法でも、高速、省メモリで指定範囲の割合を求めることは可能である。しかし、レイアウトサイズベースの割合を「理想」と考えると、できるだけレイアウトサイズを使える部分は使った方が「誤差」が小さくなる。（「理想」、「誤差」の意味については、後で説明する）。従って、本発明のようにレイアウトサイズベースの計算を一部使うことで、データサイズだけで割合を求めるよりも、「誤差」を小さくすることができる効果が出てくる。
【０２６５】
指定範囲のデータサイズを使う方法の短所としては、その他にも、図５に示す画像の部分を文字データが迂回するなどが原因となって、データ開始位置などの大小とレイアウト位置の大小とが必ずしも比例しない部分が出てくる場合もあるという問題もある。レイアウトサイズを基に全文書内割合を求める場合には、これらの曖昧性がなく、表示範囲がそのまま指定範囲のサイズであり、ユーザーの直感にも則しているという利点がある。
【０２６６】
処理量については、指定範囲のデータサイズを使う方法でも、指定範囲を含む分割文書のレイアウトを求め、そこから指定範囲のデータサイズを得るので、その部分の処理量については一緒である。違いは、分割文書内割合を求めるかどうかだが、これも単純な計算なので、レイアウト作成処理などに比べてほとんど無視できる程度の違いである。
【０２６７】
「推定」、「理想」、「誤差」などの言葉をここで使っている意味を説明しておく。
【０２６８】
なお、説明の為、レイアウトサイズだけを使って割合を求める場合を「レイアウトサイズベース」、データサイズとレイアウトサイズを使って割合を求める場合を「データサイズベース」と以降、呼ぶことがある。
【０２６９】
「推定」という言葉は、データサイズベースの割合が誤っていることを意味するものではない。例えば、データサイズベースの位置の割合もレイアウトサイズベースの位置の割合も、どちらも指定範囲の位置が上下すればそれに応じて求められる位置の割合も上下する。従って、割合を求めるどちらの方法を使ってもスクロールバーとしての基本的な機能は満たす。
【０２７０】
ただ、レイアウトサイズベースの割合は、指定範囲の位置の変化量と割合の変化量の比は一定の値になるが、データサイズベースの割合の場合、その比は一定とは限らず、指定範囲の位置によってその比は多少変動する。
【０２７１】
比が一定であるかどうかがどう違うか分かり易い例で説明すると、レイアウトサイズベースの割合の場合、ユーザーが表示範囲を一定の速度でスクロールさせると、表示範囲の文書中での位置を示すスクロールボックスも、それに応じて徐々に位置が変わり、その時のスクロールボックスの移動速度も一定となる。しかし、データサイズとレイアウトサイズを使って求める割合の場合、ユーザーが表示範囲を一定の速度でスクロールさせると、表示範囲を示すスクロールボックスもそれに応じて徐々に位置が変わるが、スクロールボックスの移動速度は一定とはならず、場所によって、多少速くなったり遅くなったりする。
【０２７２】
また、スクロールボックスの大きさも、レイアウトサイズベースの割合の場合は一定の大きさだが、データサイズベースの割合の場合はスクロールボックスの位置によって大きさが多少変化する。スクロールボックスの移動速度や大きさの多少の変化は、スクロールバーとして使用するには大きな問題とはならないが、多少違和感が感じられるかもしれない。
【０２７３】
文書の表示などを行うアプリケーションでは、普通、スクロールバーはレイアウトサイズだけを使って求められており、ユーザーもそのことに慣れている。従って、ユーザーに違和感を抱かせないようにするならば、レイアウトサイズベースの割合が「理想」であって、データサイズベースの割合はその理想の値にできるだけ近いことが望まれる。
【０２７４】
理想の値にできるだけ近い値を求めたいという意味で、データサイズベースで割合を求めることを「推定」と呼んでいる。後で出てくる「誤差」という言葉も、同様の考え方で、レイアウトサイズベースの値とデータサイズベースの値との差を「誤差」、「推定誤差」などと呼んでいる。
【０２７５】
ちなみに「誤差」を計算してみると、図８の例では指定範囲の大きさが２００ドットで、レイアウト全体のドット単位の大きさが
（２７行分の高さ）＝１６×２７＝４３２ドットなので、全ての分割文書でレイアウトを求めた際のドット単位による理想的な表示範囲の大きさの割合は、２００／４３２＝０．４６より、実際のレイアウトによる指定範囲は４６％の大きさとなる。データサイズベースによる推定では、前述のように４３％の大きさなので、推定誤差３％となっている。
【０２７６】
また、推定した中心位置（１２行目の中心なので、１１．５行分の位置）のレイアウト上の位置は、
（１１．５行分の高さ）/４３２＝（１６＊１１．５）/４３２＝０．４３
より、４３％の位置になっている。レイアウトサイズベースでは、指定範囲の中心位置は５０％なので、推定誤差７％となっている。これを表しているのが図５の表示範囲１１１（データサイズベース）と表示範囲１１３（レイアウトサイズベース）であり、表示範囲の中心の○がそれぞれの指定位置を示す。表示範囲１１３はレイアウト上の理想的な指定位置であり、ここで推定して求めた表示範囲１１１の指定位置とずれている。
【０２７７】
図１０では、分割文書のデータサイズとしてバイト数を使ったが、他の単位を使う方法も考えられる。例えば意味単位である。
【０２７８】
例えば、意味単位として文字数を使った方法について説明する。データ中には、文字の色などの指定やコメントなど、必ずしもレイアウト位置やサイズに直接関係ない情報が含まれていることもある。実際にレイアウトされる文字数を予め勘定しておくことで、バイト数よりレイアウトサイズに近い値が得られる場合も出てくる効果がある。
【０２７９】
文字数の数え方は、例えばＨＴＭＬのタグなどの表示に直接現れない制御文字列をどう扱うか、全角文字を半角文字２つ分とするかどうか、など色々考えられる。図１９は、図６の分割文書データを文字数で数えたデータサイズ例を示している。データサイズ１７０〜１７５は、ＨＴＭＬのタグなどの制御文字を全て無視し、全角は半角２つ分として、半角文字数で数えることにより求められている。
【０２８０】
図１０と比較すると、データサイズ１７０〜１７５が変わったことに伴って、データサイズ比１８０〜１８５および累積データサイズ比１９０〜１９６も変わっていることがわかる。
【０２８１】
図１９では、指定範囲の中心位置０．５が累積データサイズ比１９２と累積データサイズ比１９３の境界に来ているので、表示中心となる表示要素が、図１０のデータを基に処理する場合と多少前後する。
【０２８２】
元とするデータが図１９のものとなる以外は図１０の処理と一緒なので詳細な計算過程は省くが、指定範囲の中心位置は、累積データサイズ比１９２と累積データサイズ比１９３の境界に来ているので、分割文書データ５３の最初の文字「  」（全角スペース）とする。これは図５では上から１３行目の先頭文字であり、中心位置は１２．５行目の位置となる。
【０２８３】
レイアウト上の位置や大きさの計算は、先に説明したバイト単位の場合と同様なので、詳しい説明は省いて式のみ示すが、中心位置の割合は、
（１２．５行分の高さ）/４３２＝（１６＊１２．５）/４３２＝０．４６
より、４６％となり、誤差は４％となる。図１０のバイト単位の場合は誤差７％だったので、中心位置の精度が少し良くなっている。
【０２８４】
指定範囲はこの中心位置から上下に６．２５行分なので、上から７行目の「（２）」から１９行目の「する能力」までの範囲となる。この時、指定範囲を含む分割文書データは、分割文書データ５１〜５３までとなるので、図１０のデータの場合と同じとなる。従って、分割文書レイアウトサイズＳＤＬは同じとなる。指定範囲レイアウトサイズＬＤは２００（ドット）である。従って、全文書内割合は、
（全文書内割合）＝（ＬＤ／ＳＤＬ）×（ＳＤＤ／ＡＤ）
＝（２００／２７２）×（（５４＋９４＋１３２）／（６２＋５４
＋９４＋１３２＋２２＋６０））＝０．４９                                    
より、４９％となる。レイアウトサイズベースの全文書内割合４６％との誤差は３％で、図１０の場合と変わらない。
【０２８５】
分割文書のデータサイズとしては、バイト数、文字数以外にも、例えば単語数や行数を使う方法も考えられる。単語数は英語など単語の区切りがはっきりしている場合は意味単位として使いやすい。また、改行の場合、データ記述上の改行コードはレイアウト上の改行とは必ずしも限らないので、一般にレイアウト上の改行数を使った方が精度がよい。改行数だけだと１行の長さがまちまちの場合、精度が良く無いので、文字数と組み合わせるなどすると良い。
【０２８６】
図１９での誤差は、画像部分に関しての処理を無視した影響が大きい。図１０では、画像をあらわす「＜ＩＭＧ＞」タグをバイト数で数えてはいるが、画像の大きさを直接表している訳ではないので、やはり正確さに欠ける。これを補正する為、文章中に含まれる文字や画像などの表示要素の表示サイズをデータサイズに換算した値を使う方法が考えられる。
【０２８７】
例えば文字の大きさが途中で変わる場合、（文字数）＝（データサイズ）、すなわち文字数だけを数えただけではデータサイズの精度が落ちてしまうが、文字の大きさの変化に応じて、（文字数）×（文字サイズ比）＝（データサイズ）などと換算してやれば、精度を上げることができるようになる。同様に画像も、画像の表示サイズや面積をデータサイズに換算してやることで精度を上げることができるようになる効果が出てくる。
【０２８８】
例えば、図６の分割文書データ５４中に出てくるＩＭＧで指定されている画像ｅｙｅ．ｐｎｇの大きさが、７０ドット×３５ドットだったとする。１４ドット×１４ドットの全角文字（文字間１ドット、行間２ドット）を単位とした場合、この画像を、
（文字横サイズ）  ＝（文字幅）＋（文字間）＝１４＋１＝１５
（データ横サイズ）＝（（画像幅）＋（文字サイズ）−１））／（文字サイズ））
＝（７０＋１４−１）／１４＝５．９
（文字縦サイズ）  ＝（文字高さ）＋（行間）＝１４＋２＝１６
（データ縦サイズ）＝（（画像高さ）＋（文字縦サイズ）−１）／（文字縦サイズ）
＝（３５＋１６−１）×１６＝３．２
（データサイズ）  ＝（データ横サイズ）×（データ縦サイズ）＝５×３
＝１５文字（全角）＝３０文字（半角）
分のデータサイズと換算する。なお、ここでは縦横の文字分を整数とする為、（データ横サイズ）、（データ縦サイズ）は共に少数点以下切り捨てしてある。
【０２８９】
図２０は図１９にこの換算値を追加したものである。図１９と比較すると、図１９のデータサイズ１７４に換算値３０が加算され、データサイズ２７０〜２７５が再定義されたことに伴って、データサイズ比２８０〜２８５および累積データサイズ比２９０〜２９６も変わっていることがわかる。
【０２９０】
元とするデータが図２０となる以外は図１９の処理と一緒なので詳細な説明は省くが、指定範囲の中心位置は、４番目の分割文書内の「６０ｄＢ」の「Ｂ」の文字になる。図２１はこの状態の指定範囲を示す図である。指定範囲の中心位置は上から１４行目なので、中心位置は１３．５行目の所となり、
（１３．５行分の高さ）/４３２＝（１６＊１３．５）/４３２＝０．５０
より、中心位置は５０％となり、誤差０％となる。図５の理想的な表示範囲１１３と重なる結果が得られた。
【０２９１】
指定範囲はこの中心位置から上下に６．２５行分なので、８行目の「  人間は」から２０行目の「持っている。」までの範囲となり、３、４番目の分割文書データ５２、５３に含まれる。この場合、分割文書レイアウトサイズＳＤＬは、分割文書データ５２、５３のレイアウトサイズなので、
ＳＤＬ＝（１４行分）＝１６×１４＝２２４（ドット）
である。従って、全文書内割合は、
（全文書内割合）＝（ＬＤ／ＳＤＬ）×（ＳＤＤ／ＡＤ）
＝（２００／２２４）×（（９４＋１３２）／（６２＋５４＋９４
＋１３２＋５２＋６０））＝０．４４
より、４４％となる。レイアウトサイズベースの割合４６％との誤差は２％であり、図１０の場合と比べると、中心位置の算出精度が良くなって、指定範囲を含む分割文書の特定精度が上がったことにより、全文書内割合の算出精度も良くなっている。
【０２９２】
図１０のバイト単位のものや図１９の文字単位のもの、図２０のレイアウトサイズの要素を考慮した場合で、中心位置の誤差と大きさの誤差の和で総合的に比較してみると、図１０のバイト単位は、７＋３＝１０％、図１９の文字単位は、４＋３＝７％、図２０の換算手法を使った場合は、０＋２＝２％と、徐々に誤差が小さくなっている。
【０２９３】
もちろん、文書の内容によっては、誤差がかえって大きくなることもありえるが、データサイズの計算に、図１９のように意味単位の値を使うようにしたり、さらにレイアウトサイズの要素を考慮した換算値を加えることで、レイアウトベースの値と近い値が得られる可能性が高まると言える。
【０２９４】
この様に、データサイズとして意味単位の値を使うようにしたり、文書中に含まれる文字や画像などの表示要素の表示サイズをデータサイズに換算した値を使うようにすることで、推定精度を高くする可能性を大きくする効果がある。
【０２９５】
ところで、ここまで説明してきた手法では、例えば図８に示すように、指定範囲の位置（スクロールボックス１２１の中心位置）が、表示範囲の中心と一致するようにしている。
【０２９６】
図２２はこの状況を詳細に説明するものである。分かりやすいように、レイアウト全体の中で表示される範囲を枠で囲い、その横にスクロールバーをつけてある。実際に表示されるのは枠の中のレイアウトとスクロールバーだけである。
【０２９７】
スクロールバー全体の大きさ（長さ）をＳＡ、スクロールボックスの大きさをＳＤ、スクロールバーの開始位置から基準点ＳＰ（後述）までの大きさをＳＭ、スクロールボックス内での基準点ＳＰの上側の大きさをＳＰＤ、下側の大きさをＳＦＤとする。
【０２９８】
同様に、レイアウト全体の大きさをＬＡ，指定範囲のレイアウトの大きさをＬＤ，先頭から基準点ＬＰ（後述）までの大きさをＬＭ、基準点ＬＰより上側の大きさをＬＰＤ，下側の大きさをＬＦＤとする。右のスクロールバー側と左のレイアウト側に説明の記号が分けて書いてあるが、同じような意味をもつ記号は、記号名の末尾をそれぞれ同じ文字（列）としてある。
【０２９９】
「基準点」とは、スクロールバー上あるいはレイアウト上、指定範囲（表示範囲）の中のどこを指定範囲の「位置」とするか（どこを基準にするか）を意味する。レイアウト基準点ＬＰは、その点の上下ＬＰＤ、ＬＦＤの大きさだけレイアウトを表示することになる。スクロールバー基準点ＳＰは、その点の上下ＳＰＤ、ＳＦＤの大きさだけスクロールボックスを表示することになる。
【０３００】
スクロールバー基準点ＳＰとレイアウト基準点ＬＰは、文書全体の中で割合的に同じ位置を表す。従って、ＳＭ／ＳＡ＝ＬＭ／ＬＡとなる。なお、図２２ではたまたまＳＰとＬＰとが一直線上に並んでいるが、基準点の取り方やスクロールバーの位置によっては、後で説明する図２９のように一直線上に並ばない場合もある。
【０３０１】
スクロールバー基準点ＳＰとは、分かり易く言えば、指定範囲の位置（指定位置）を意味する。図２２では、スクロールボックスはスクロールバーの中心に位置し、ＳＭ＝ＳＡ／２、ＳＰＤ＝ＳＦＤとなっている。
【０３０２】
一方、レイアウト基準点ＬＰは、スクロールバー基準点ＳＰに対応するレイアウト上の位置である。図２２の例では、位置指定は（ＬＭ／ＬＡ）の割合で示されていることになる。図２２では、スクロールバー基準点ＳＰが真中を指しているので、レイアウト基準点ＬＰも中央のレイアウト「  人間の受光能力は６０」の行の中心に位置している。このとき、ＬＭ＝ＬＡ／２、ＬＰＤ＝ＬＦＤである。
【０３０３】
スクロールバー基準点ＳＰは、通常、スクロールボックスの中央にとる。すなわち、スクロールボックスによって表示範囲が指定された場合は、スクロールボックスの中央位置に対応するレイアウト上の位置が、表示の中心となるようにレイアウトを表示する。逆にある表示範囲のスクロールバーを表示する時は、表示範囲のレイアウトの中心に対応するスクロールバー上の位置が、スクロールボックスの中央となるようにスクロールバーを表示する。
【０３０４】
レイアウトをベースにしたスクロールバーでは、スクロールボックスの大きさと表示範囲の大きさは対応しており、表示範囲の大きさや表示倍率を変えるなどしなければ、スクロールボックスの大きさは変化しない。
【０３０５】
しかし、本発明ではスクロールボックスの大きさは推測なので、例えばスクロールボックスの移動によって変化する。表示される範囲はレイアウトサイズで指定しているので、２００ドットなら２００ドット分が常に表示されていて、表示倍率が変わる訳ではないのだが、スクロールボックスの大きさが変わってくる。通常のスクロールバーでは、表示倍率を変えない限り、スクロールボックスのサイズは変わらないので、ユーザーは少し違和感があるかもしれない。
【０３０６】
しかし、指定範囲の位置として中心位置を使うと、スクロールボックスの伸び縮みが両端に分散されるので、違和感を多少和らげる効果が出てくることがある。
【０３０７】
ただし、スクロールボックスの位置が、スクロールバーの最初や最後の端に接する位置付近に指定された場合、基準点としてスクロールボックスの中央位置を取るとうまくいかないことがある。
【０３０８】
図２３は、スクロールボックス１２１をスクロールバー１２０の上端に移動させて表示範囲を指定した時、スクロールボックス１２１が上端に位置し、表示は最初の行から隙間無く表示され、通常のスクロールバーによる指定と同様に表示された問題の無い例である。しかし、コンテンツやスクロールボックスの状態によっては、図２３のようには表示されず、ユーザーの意図と異なる表示のされかたをしてしまうことがある。
【０３０９】
例えば、図２４は、スクロールボックス１２１を上端に移動させて表示範囲を指定した時、スクロールボックス１２１が上端に位置するにも関わらず、最初の行が表示されず、途中から表示されてしまっている例である。図２４は実際には処理の途中状態である。
【０３１０】
図７のフローチャート図に沿った処理で説明すれば、スクロールボックス１２１を上端に移動させて表示範囲を指定することがＳ１０に相当し、指定範囲を表示する処理はＳ１２に相当する。Ｓ１２で指定範囲を表示した結果、図２４のように文書の途中から表示される。そして図２４の表示範囲にあわせたスクロールバー１２０を表示させる処理はＳ１４に相当する。Ｓ１４で図２４の表示範囲にあわせたスクロールバー１２０を表示させた結果が図２５である。表示範囲にスクロールバー表示を合わすと、図２５のようにスクロールボックス１２１の上に少し隙間がないといけないはずである。ユーザーは最終的には図２５の状態を見ることになる。
【０３１１】
図２６は、同様にスクロールボックス１２１を上端に移動させて表示範囲を指定した時、最初の行の前に空白が空いて表示されてしまっている例である。図２４同様、図７のフローチャート図の処理を一通り行うのだが、図２６は図２４と違い、ほぼユーザーが最終的に見る状態である（正確に言えば、図２６より若干、スクロールボックスが小さくなるかもしれない）。
【０３１２】
表示範囲にスクロールバー表示を無理に合わすなら、このような表示は実際にはありえないが、図２７のようにスクロールボックス１２１がスクロールバー１２０を上に突き抜けたようになり、これは本来レイアウトがない場所までも表示してしまっていることを表している。（なお、説明の都合上、同じコンテンツを使っているが、スクロールボックスを上端に移動させて表示範囲を指定した時に図２４と図２６が同時に起こる訳ではなく、コンテンツやスクロールバーの状態によってはどちらも起こりうるという意味で例にあげているだけである）。
【０３１３】
このような不具合は、スクロールボックスの大きさが位置によって変わる（大きさが変わる理由は「推測」の言葉の意味について述べた際に説明した）ため、発生する。スクロールボックスの大きさが変わるとは、例えば、図２３のようにコンテンツの先頭位置から表示される時のスクロールボックス１２１の大きさと、図８のようにコンテンツの途中の位置から表示される時のスクロールボックス１２１の大きさは同じとは限らないということである。レイアウトサイズベースのスクロールボックスを使って新たな表示範囲を指定する時、普通はスクロールボックスをマウスなどで移動させて指示する。その際、スクロールボックスの大きさは、普通変わらない。しかし、データサイズベースのスクロールボックスを同じ方法で表示範囲指定に使うと問題が発生する。
【０３１４】
例えば、図８に示す大きさのスクロールボックス１２１をマウスなどでスクロールバー１２０の上端位置に移動させるとする。スクロールボックス１２１の大きさは図８のままとする。ユーザーの意図としては図２３のように表示したい訳だが、場合によっては、図２５や図２６のような表示になってしまうことがある。直接的な原因は、この時のスクロールボックス１２１による表示範囲の指定が、コンテンツの先頭からの範囲として指定できていないからである。
【０３１５】
なぜコンテンツの先頭からの範囲として指定できないかというと、この時のスクロールボックス１２１の中心位置の指定が、コンテンツの先頭からの表示範囲の時のスクロールボックス１２１の位置である図２３のスクロールボックス１２１の中心位置とずれているからである。指定範囲は、スクロールボックスの中心位置から上下に何ドットという指定の仕方をしているので、スクロールボックスの中心位置さえ同じならば、同じ指定範囲になるはずである。しかし、先に説明したように、図２３のスクロールボックス１２１の大きさと図８のスクロールボックス１２１の大きさは同じとは限らないので、スクロールボックスを上端に移動させた時のスクロールボックスの中心位置は同じとは限らなくなってしまう。これが、図２５や図２６のような表示になってしまう理由である。
【０３１６】
図２３の時のスクロールボックス１２１の大きさはレイアウトしてみないと得られないので事前に得ることは難しい。また、スクロールボックス１２１の操作中は、通常、スクロールボックス１２１のサイズは変わらないので、事前に知ることができても、それをスクロールバー１２０の操作に反映させることが難しい。また反映できたとしても、ユーザーが端に移動したい時のみスクロールボックス１２１のサイズを変える為には、ユーザーの意向を知らなければいけないが、それはさらに難しい。
【０３１７】
これらの不具合を防止する為、ユーザーが指定範囲として端に接するような位置を指定した場合は、スクロールバー基準点ＳＰはスクロールボックスの中心位置を取らず、端を取るようにすれば良い。また、レイアウト基準点ＬＰについても同様に表示範囲の端をとるようにする。
【０３１８】
つまり指定範囲の大きさを、今までの例では上下にＬＰＤ＝ＬＦＤ＝１００ドットあわせて２００ドットとしていたが、例えば上端を指定された場合は上にＬＰＤ＝０ドット、下にＬＦＤ＝２００ドット、あわせて２００ドットとしてやればよい。下端の場合は逆である。
【０３１９】
図２８はスクロールバー基準点ＳＰをスクロールボックスの上端に取ると共に、レイアウト基準点ＬＰを表示範囲の上端に取った状態を示したものである。図２９では、基準点ＳＰ、ＬＰが端に位置しないが、図２８では端に位置している。
【０３２０】
これらの処理は、具体的には、図７のＳ１０で指定範囲を得る際に、スクロールボックスがスクロールバーの上端または下端に位置しているか否かの判断を加えてやればよい。
【０３２１】
このように、スクロールボックスがスクロールバーの最初もしくは最後を含む範囲として指定されている場合は、文書の最初からもしくは最後まで表示するように表示制御することで、端を含む範囲の指定を問題なく行えるようにすることができる効果がある。
【０３２２】
ただ、端を含む場合だけに限定してしまうと、端を含む場合と端をわずかに含まない場合で表示される範囲に大きなずれがでてしまうことがあり、スクロールバー操作の連続性が失われてしまうかもしれない。
【０３２３】
これはそもそもスクロールバーが端に来た時にだけ急に基準点を変更したのが原因なので、スクロールボックスの位置に応じて、あるいはスクロールボックスが位置する範囲に応じて、基準点を滑らかまたは段階的に変化させることで、不連続性を抑えることができる。
【０３２４】
基準点の変化のさせ方としては色々考えられるが、最も単純な方法として、スクロールボックスが中央に位置する時はスクロールボックスの中央にし、端に位置する時はスクロールボックスの端にし、その間は線形に変化させる方法がある。また、レイアウトの基準点も同様にそれに応じて変化させる。
【０３２５】
図で具体的に説明すると、スクロールバーが中央の時は図２２、スクロールバーが端に来た時は図２８、この中間の状態が図３０である。以降、説明を一般的にする為、図３０を基に説明する。
【０３２６】
図３０で、スクロールバーによって指定された場合、スクロールバーの開始位置から基準点ＳＰまでの大きさＳＭは、スクロールボックス内のどこに基準点を取るかによって決まる。スクロールバー内でスクロールボックスより上の空きスペースの大きさをＳＴとする。ＳＴは、スクロールボックスが中央の場合、
ＳＭ／ＳＡ＝０．５、ＳＴ＝（ＳＡ−ＳＤ）／２
であり、スクロールボックスが上端の場合、
ＳＭ／ＳＡ＝０．０、ＳＴ＝０．０
なので、
ＳＭ＝０．５×ＳＴ／（（ＳＡ−ＳＤ）／２）
とすれば、ＳＭを線形に求められる。つまり、スクロールボックスの位置からＳＭを直接求めるのではなく、スクロールボックス以外の残りの部分の大きさに注目して、ＳＭを求めている。
ＳＭが求まれば、
ＬＭ／ＬＡ＝ＳＭ／ＳＡより、
ＬＭ＝ＬＡ×（ＳＭ／ＳＡ）
でＬＭが求まる。
【０３２７】
次に、ＬＰＤ、ＬＦＤだが、ＬＰＤ／ＬＤ＝ＬＭ／ＬＡとするので、
ＬＰＤ＝ＬＤ×（ＬＭ／ＬＡ）
でＬＰＤが求まる。ＬＦＤもＬＦＤ＝ＬＤ−ＬＰＤで求まる。これによって、表示すべきレイアウト範囲が求まる。
【０３２８】
レイアウト範囲が求まったら、スクロールバーの描画だが、ＳＭは求まっているので、ＳＰＤ、ＳＦＤ、ＳＤが求まれば良い。ＳＤは既に説明した本発明の手法により、ＳＭとＬＰＤ、ＬＦＤが決まればスクロールボックスの割合が求まるのだから、ＳＤは求まる。ＳＰＤとＳＦＤについては、ＳＰＤ／ＳＤ＝ＬＰＤ／ＬＤとすればよいので、
ＳＰＤ＝ＳＤ×（ＬＰＤ／ＬＤ）
でＳＰＤが求まる。ＳＦＤ＝ＳＤ−ＳＰＤより、ＳＦＤも求まる。これによって、スクロールバーを表示させるだけの情報、ＳＭ，ＳＰＤ，ＳＦＤが得られる。
【０３２９】
なお、これらの計算結果でスクロールバーを再表示させた際、ＳＤやＳＴはスクロールバーで操作を行った時とは若干変化するかもしれないが、大幅な変化ではないので、違和感は少ない。
【０３３０】
以上の処理によって、スクロールバー端でも表示やスクロールバーが連続的に変化することを防ぎつつ、スクロールバーによる指定に応じたレイアウト範囲を表示し、またそのレイアウト範囲に応じたスクロールバーを表示することができるようになる。
【０３３１】
また、スクロールボックスの位置を表す割合に応じて基準位置を変化させることで、表示範囲を連続的に変更することができ、ひいてはスクロールバーによる指定を連続的に行えるようにすることができる効果が出てくる。
【０３３２】
また、スクロールバーを操作する時のスクロールボックスのサイズは、操作後に再描画した後のスクロールボックスのサイズとは異なるので、スクロールボックス内でどの点を基準点としてユーザーが意識していたかを正確に知ることは難しいが、スクロールバーのスクロールボックス以外の残りの大きさを使うことで、スクロールボックスのサイズに関わらず、ユーザーの表示させたい範囲、すなわち基準点をうまく推定することができる効果がある。
【０３３３】
ちなみに、この手法で表示させた場合、図３０のように、基準点の高さ方向はほぼ一致するはずである。
【０３３４】
さらに、全文書内割合の算出精度を高める方法として、既にレイアウトサイズの分かっている分割文書に関しては、そのレイアウトサイズを使って、分割文書内割合を算出するという方法が考えられる。
【０３３５】
例えば、図２１の例では、指定範囲を含む分割文書として、２つの分割文書データ５２・５３が特定され、その結果、分割文書内割合（ＬＤ／ＳＤＬ）として、２００／２２４＝０．８９が算出され、全文書内割合として、４４％が算出された。
【０３３６】
ここで、２番目の分割文書データ５１のレイアウトサイズが、
（３行分のレイアウト）＝１６×３＝４８ドット
として分かっているとする。このとき、２番目の分割文書データ５１は、図２１に示すとおり、指定範囲には含まれていないが、そのレイアウトサイズを用いて指定範囲の分割文書内割合を求めると、
２００／（２２４＋４８）＝０．７４
となる。図３１はこれを説明した図である。分割文書レイアウトサイズＳＤＬが２、３、４番目の分割文書データ５１〜５３のレイアウトサイズになっている。
【０３３７】
上記の新たな分割文書内割合を用いて、全文書内割合を求めると、
０．７４×（（５４＋９４＋１３２）／（６２＋５４＋９４＋１３２＋５２＋６０））＝０．４６
より、大きさ４６％となる。
【０３３８】
この時、位置の誤差は先ほどと同じく０％、大きさの誤差も０％で、総和も無論０％となり、最も誤差が小さくなり、理想値に限りなく近づく。
【０３３９】
このように、指定範囲を含む分割文書内でのレイアウトサイズベースによる割合を使うことで、より精度の高い推定を行うことができる可能性が高くなる効果が出、また、指定範囲に含まれないが、既に求まっている分割文書のレイアウトサイズを利用することで、さらに精度を高めることができる可能性が高くなる効果が出てくる。
【０３４０】
最後の手法では、文書を読み進めていくにつれ、レイアウトを得た分割文書の数は増えていくのだから、レイアウトを得た分割文書のレイアウトサイズを保持しておくことで、たとえそのレイアウトを破棄したとしても、レイアウトサイズに基づいた処理が行える。理想的には全ての分割文書のレイアウトを求めてレイアウトサイズだけで指定範囲の割合を求めたいのだから、レイアウトサイズを利用する分割文書の数の割合が多くなるほど、誤差が小さくなっていくはずである。従って、読み進めていけばいくほど精度がよくなっていくという効果が出てくる。
【０３４１】
なお、ここでは主にスクロールバーに基づいて説明を行ったが、スクロールバーだけでなく、それ以外の表示操作手法を用いても同様である。例えば、パーセントなどの数値で指定範囲やジャンプ先を指定するような場合である。あるいは文書の縮小表示上にマウスなどのポインティングデバイスなどを用いて矩形などの範囲指定を行う場合なども同様である。あるいは現在の表示中心を維持したまま表示倍率を変えるなどといった場合も含まれる。
【０３４２】
なお、特開平５−２８２２５５号公報では、複数のページからなる項目が複数ある時、各項目の区切りをスクロールバー上に表示し、また、表示をページ単位で行い、表示されているページ範囲をスクロールボックスとして表示させている。
【０３４３】
一見、各項目や各ページが本発明の分割文書に相当するように見えるが、全く異なる発明である。
【０３４４】
そもそも発明の課題が異なる。該公報の課題は「ユーザーの望む個所を簡単かつ確実に表示でき、また、手帳情報が複数の項目を有する場合に、各項目の占める分量を把握できる」ことである。本発明の課題は、可変レイアウトの文書において、高速かつできるだけ正確にスクロールバーの表示や制御を処理すること、少ないメモリ環境などにおいても無駄なく処理を行うことである。
【０３４５】
課題が異なる為、課題を解決する為の手段も異なり、該公報では、ユーザーに分かり易いようにスクロールバーを表示、制御する為に各項目のページ数の情報などを使っている。つまり、ページ数の情報の表示の仕方などに発明のポイントがあるのであり、ページ数の情報の求め方自体には発明のポイントはない。
【０３４６】
従って、ページ数の情報を可変レイアウトで高速に少ないメモリで算出する方法は請求項では述べられておらず、実施例などでも説明されていない。予め用意されているものとして説明されている。
【０３４７】
本発明は、分割文書や指定範囲の「データサイズ」からスクロールボックス位置、サイズを求めるステップ／手段（割合取得ステップ）などを用いることで、可変レイアウトであっても高速に少ないメモリでスクロールバーを表示／制御することができることを示している。つまり、可変レイアウトでスクロールバーの表示／制御を行う為の計算を高速、省メモリで行うことに発明のポイントがあるのであり、計算で得られた後の表示の仕方などに発明のポイントがあるのではない。
【０３４８】
従って、可変レイアウトであっても高速に少ないメモリでスクロールバーを表示／制御する方法として、分割文書や指定範囲のデータサイズを利用する方法が請求項で述べられている。
【０３４９】
このように両者は、異なる課題を持ち異なる手段を用いた異なる発明である。
【０３５０】
また、特開平８−３１４９０６号公報では、文書量に応じたページ区切り幅を計算し、その区切り幅でページ番号を付与したスクロールバーを表示／制御している。ページ区切り幅は、レイアウトサイズから計算している。
【０３５１】
これも一見、「文書量に応じたページ区切り幅」が本発明の分割文書のデータサイズから求めるスクロールボックスサイズに相当するように見えるが、全く異なる発明である。
【０３５２】
これもそもそも発明の課題が異なる。該公報の課題は「内部の文書量が異なる各ページが均等の幅でスクロールバー上に表示されるために、各ページのおおよその文書量を把握できない」ことである。本発明の課題は、上で説明した通り、可変レイアウトの文書において、高速かつできるだけ正確にスクロールバーの表示や制御を処理すること、少ないメモリ環境などにおいても無駄なく処理を行うことである。
【０３５３】
課題が異なる為、課題を解決する為の手段も異なり、該公報では、各ページの文書量がユーザーに分かるようにスクロールバーを表示、制御する為に各ページの文書量を使っている。つまり、各ページの文書量の表示の仕方などに発明のポイントがあるのであり、各ページの文書量の取得の仕方自体には発明のポイントはない。
【０３５４】
各ページの文書量はレイアウトサイズを使うことが請求項で述べられているが、そのレイアウトサイズを高速、省メモリで求める方法は述べられていない。全てのレイアウトサイズを求めると説明されているのみである。
【０３５５】
本発明は、上で説明した様に、可変レイアウトであっても高速に少ないメモリでスクロールバーを表示／制御する方法として、分割文書や指定範囲のデータサイズを利用する方法が請求項で述べられている。
【０３５６】
このように両者は、異なる課題を持ち異なる手段を用いた異なる発明である。
【０３５７】
なお、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（主記憶２５または外部記憶２６等）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【０３５８】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０３５９】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク，ハードディスク，光ディスク，光磁気ディスク，磁気テープ，不揮発性のメモリカード，等を用いることができる。
【０３６０】
また、上記プログラムコードは、通信ネットワークのような伝送媒体を介して、他のコンピュータシステムから主記憶２５または外部記憶２６等へダウンロードされるものであってもよい。
【０３６１】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０３６２】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０３６３】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードを格納することになる。
【０３６４】
本発明は上述した各実施形態に限らず、請求項に示した範囲で種々の変更が可能である。
【０３６５】
【発明の効果】
本発明に係る表示制御方法は、以上のように、文書を複数の部分に分割した分割文書の各データサイズを得る分割データサイズ取得ステップと、上記文書に対して指定した指定範囲を含む分割文書を特定すると共に、特定した分割文書の表示レイアウトを得る分割文書レイアウト取得ステップと、少なくとも、前記特定した分割文書の表示レイアウトに対して前記指定範囲が占めるレイアウトサイズ比を求める分割文書内割合取得ステップと、前記分割データサイズ取得ステップから得た各分割文書のデータサイズの和に対して、前記レイアウトサイズ比の算出に用いた分割文書の第１のデータサイズ比を求め、前記分割文書内割合取得ステップから得た前記指定範囲のレイアウトサイズ比と前記第１のデータサイズ比とから、文書中に前記指定範囲が占める第２のデータサイズ比を求める全文書内割合取得ステップと、を有することを特徴とする。
【０３６６】
これにより、レイアウトを求めるのは一部の分割文書に限られ、それ以外の部分はデータサイズを使うので、文書全体のレイアウトを求める場合に比べればレイアウトを求める処理量や必要なメモリなども最小限に抑えることができ、さらに、可変レイアウトの集まりからなる文書であっても、高速に指定範囲の割合を得ることができる効果が出てくる。
【０３６７】
また、本発明に係る表示制御方法は、以上のように、レイアウトサイズを取得できる分割文書に関しては、指定範囲を含まない分割文書であっても、そのレイアウトサイズを前記特定した分割文書のレイアウトサイズに加えて、前記レイアウトサイズ比を求めることを特徴とする。
【０３６８】
これにより、指定範囲に含まれない既に求まっている分割文書のレイアウトサイズを利用することで、文書全体の中でレイアウトサイズを利用する割合が高くなってくるので、先の方法に比べてさらに精度を高めることができる可能性が高くなる効果が出てくる。
【０３６９】
また、文書を読み進めていくにつれ、レイアウトを得た分割文書の数は増えていくのだから、レイアウトを得た分割文書の少なくともレイアウトサイズを保持しておくことで、レイアウトサイズだけで求めた理想的な処理結果に近づいていくという効果がある。
【０３７０】
また、本発明に係る表示制御方法は、以上のように、前記指定範囲を表示範囲とし、全文書内割合取得ステップから得られた第２のデータサイズ比に応じたスクロールバーを表示し、また、ユーザーのスクロールバー操作に応じて表示範囲の表示内容を制御するスクロールバー表示制御ステップを有することを特徴とする。
【０３７１】
これによって、可変レイアウトの表示システムでも、スクロールバーを使った表示や制御が高速に行えるという効果が出てくる。
【０３７２】
また、本発明に係る表示制御方法は、以上のように、前記分割文書のデータサイズとして、バイト数やビット数などの符号化データサイズを使うことを特徴とする。
【０３７３】
これにより、バイトやビットは、主記憶や外部記憶上などで扱うデータサイズの単位なので、文書データなどをコンピュータ上で扱う場合、データサイズを示す指標としては、符号化データサイズが最も得やすく、また扱い易いという効果が出てくる。ひいては割合を求めるなどの処理も簡単になるという効果が得られる。
【０３７４】
また、本発明に係る表示制御方法は、以上のように、前記分割文書のデータサイズとして分割文書の意味単位に基づく数を使うことを特徴とする。
【０３７５】
これにより、意味単位に基づく数をデータサイズとして使うことで、レイアウトサイズにあまり関係ないようなデータの影響を少なくすることができる効果が出てくる。
【０３７６】
また、これらの意味単位に基づく数は、レイアウト処理によって変わるものではないので、事前に数えておくことが可能であり、レイアウト処理などを最小限に抑えた処理を可能にするいう前述の効果が変わりなく得られるものである。
【０３７７】
また、本発明に係る表示制御方法は、以上のように、意味単位に基づく数として文字数あるいは単語数を使うことを特徴とする。
【０３７８】
これにより、意味単位が小さい程、データサイズの精度が上がるので、意味単位に基づく数として文字数あるいは単語数を使うことによって、表示割合の算出精度を上げることができる効果が出てくる。レイアウト処理などを最小限に抑えた処理が可能となる効果は同様である。
【０３７９】
また、本発明に係る表示制御方法は、以上のように、前記分割文書のデータサイズを得る際、実際の表示サイズがデータサイズと相関しない表示要素が文書中に含まれている場合、当該表示要素の表示サイズをデータサイズに換算した値を使うことを特徴とする。
【０３８０】
これによって、データサイズだけで推定するよりも推定精度が増す可能性が大きくなるという効果が出てくる。
【０３８１】
また、本発明に係る表示制御方法は、以上のように、前記スクロールバー表示制御ステップにおいて、表示範囲を指定するためにスクロールバー内に表示されるスクロールボックスの中央位置が、表示範囲の中央位置の表示割合を示すようにすることを特徴とする。
【０３８２】
これにより、指定範囲の割合を本発明では推測的に求めている為、指定範囲の位置によっては、スクロールボックスの長さが変わってしまうことがあるのに対して、上記の
ようにすることで、その誤差をスクロールボックスの両端に分散させることができる効果がある。
【０３８３】
また、ユーザーにとって、スクロールバーを操作する際に、視覚上、直感的に表示割合や表示部分の位置を捉えやすくなる効果も出てくる。
【０３８４】
また、本発明に係る表示制御方法は、以上のように、前記スクロールバー表示制御ステップにおいて、表示範囲を指定するためにスクロールバー内に表示されるスクロールボックスが、スクロールバーの始端もしくは終端を含む範囲を指定している場合には、文書の最初から、もしくは最後まで表示するようにすることを特徴とする。
【０３８５】
これにより、推定誤差による上記不具合を回避し、またユーザーの意図に沿った処理を行うことができるという効果が出てくる。
【０３８６】
また、本発明に係る表示制御方法は、以上のように、前記スクロールバー表示制御ステップにおいて、表示範囲を指定するためにスクロールバー内に表示されるスクロールボックスのスクロールバー内の位置に応じて、表示範囲が文書中に占める位置と割合とを表す基準となるスクロールボックス上の基準位置を変更すると共に、その基準位置に対応付けた表示範囲上の基準位置を合わせて変更することを特徴とする。
【０３８７】
これによって、スクロールバー末端付近のスクロールボックスのわずかな位置の違いで表示が大きくずれてしまうことを防ぐ効果が出てくる。
【０３８８】
また、本発明に係る表示制御装置は、以上のように、文書を複数の部分に分割した分割文書の各データサイズを得る分割データサイズ取得手段と、上記文書に対して指定した指定範囲を含む分割文書を特定すると共に、特定した分割文書の表示レイアウトを得る分割文書レイアウト取得手段と、少なくとも、前記特定した分割文書の表示レイアウトに対して、前記指定範囲が占めるレイアウトサイズ比を得る分割文書内割合取得手段と、前記分割データサイズ取得手段から得た各分割文書のデータサイズの和に対して、前記レイアウトサイズ比の算出に用いた分割文書の第１のデータサイズ比を求め、前記分割文書内割合取得手段から得た前記指定範囲のレイアウトサイズ比と前記第１のデータサイズ比とから、文書中に前記指定範囲が占める第２のデータサイズ比を求める全文書内割合取得手段と、を有することを特徴とする。
【０３８９】
これによる効果は上で説明した方法と同様である。
【０３９０】
また、本発明に係る表示制御プログラムは、以上のように、上記表示制御方法が備える各ステップをコンピュータに実行させることを特徴とする。
【０３９１】
また、本発明に係る表示制御プログラムは、以上のように、上記表示制御装置が備える各手段として、コンピュータを機能させることを特徴とする。
【０３９２】
これにより、汎用のコンピュータに、本発明の表示制御方法を実行させ、上記の作用、効果を得ることができる。
【０３９３】
また、本発明に係る記録媒体は、以上のように、上記表示制御プログラムを記録したことを特徴とする。
【０３９４】
これにより、上記記録媒体から汎用のコンピュータに、表示制御プログラムをインストールすることによって、本発明の表示制御方法を実行させ、上記の作用、効果を得ることができる。
【図面の簡単な説明】
【図１】
本発明のスクロールバー表示制御方法において、文書中の指定範囲の全文書内割合を求めるための概略的手順を示すフローチャート図である。
【図２】
データサイズとレイアウトサイズを主に利用した本発明のスクロールバー表示制御装置の機能的な構成を示すブロック図である。
【図３】
上記スクロールバー表示制御装置の一実施形態における構成例を示すブロック図である。
【図４】
上記スクロールバー表示制御装置の外観例を示す模式的な斜視図である。
【図５】
データサイズをベースにするか、レイアウトサイズをベースにするかの手法の違いによる指定範囲の解釈の違いを示す説明図である。
【図６】
図５の文書レイアウトを構成する分割文書データを示す説明図である。
【図７】
本発明のスクロールバー表示制御方法のスクロールバーの表示、制御処理の全体的手順を示すフローチャート図である。
【図８】
図５の文書全体の中の表示範囲１１１の表示要素をスクロールバーと共に表示した例を示す説明図である。
【図９】
図７の指定範囲レイアウト取得処理の手順を示すフローチャート図である。
【図１０】
各分割文書のデータサイズの例を示す説明図である。
【図１１】
全文書内割合の計算原理例を示す説明図である。
【図１２】
レイアウトされた表示要素データのデータ構造例を示す説明図である。
【図１３】
図９の周囲の分割文書レイアウト取得処理の手順を示すフローチャート図である。
【図１４】
レイアウトの不足を判断をする際に使うデータ構造例を示す説明図である。
【図１５】
図１３の上側レイアウト取得処理の手順を示すフローチャート図である。
【図１６】
図９の指定範囲のレイアウトされた表示要素を取得する処理の手順を示すフローチャート図である。
【図１７】
図１６の上限レイアウト表示要素を取得するの処理の手順を示すフローチャート図である。
【図１８】
図１０のデータサイズにおける指定範囲とレイアウトとの関係を示す説明図である。
【図１９】
分割文書のデータサイズを文字数で求めた例を示す説明図である。
【図２０】
分割文書のデータサイズを、文字数と画像を文字数に換算した値とで求めた例を示す説明図である。
【図２１】
図２０のデータサイズにおける指定範囲とレイアウトとの関係を示す説明図である。
【図２２】
文書の中心を表示する際のレイアウト全体と表示範囲、スクロールバーの状態との関係を示す説明図である。
【図２３】
文書の最初の部分をスクロールボックスで指定した際に、問題なく表示された例を示す説明図である。
【図２４】
文書の最初の部分をスクロールボックスで指定した際に、上の部分が欠けて表示された例を示す説明図である。
【図２５】
図２４の場合の表示レイアウトおよびスクロールバーの本来の表示状態を示す説明図である。
【図２６】
文書の最初の部分をスクロールボックスで指定した際に、上の部分が空いて表示された例を示す説明図である。
【図２７】
図２６の場合の表示レイアウトおよびスクロールバーの本来の表示状態を仮想的に示す説明図である。
【図２８】
図２３の場合に基準点をスクロールバーおよび表示範囲の各上端に設定した時の、レイアウト全体と基準点、表示範囲、スクロールバーの状態の関係を示す説明図である。
【図２９】
図２３の場合に基準点をスクロールバーおよび表示範囲の各中心に設定した時のレイアウト全体と表示範囲、スクロールバーの状態の関係を示す説明図である。
【図３０】
基準点をスクロールボックスの位置に応じて変化させた時の、レイアウト全体と基準点、表示範囲、スクロールバーの状態の関係を示す説明図である。
【図３１】
指定範囲以外の分割文書のレイアウトサイズが分かっている場合の分割文書内割合を示す説明図である。
【符号の説明】
１  分割データサイズ取得手段
２  分割文書内割合取得手段
３  全文書内割合取得手段
８  分割文書レイアウト取得手段
２５  主記憶（記録媒体）
２６  外部記憶（記録媒体）
５０  分割文書データ
５１  分割文書データ
５２  分割文書データ
５３  分割文書データ
５４  分割文書データ
５５  分割文書データ
１１０  レイアウト全体
１１１  表示範囲
１１３  表示範囲
１２０  スクロールバー
１２１  スクロールボックス
ＳＰ  基準点（スクロールボックス上の基準位置）