(57)【要約】【課題】どの言語でも様々な表示媒体および可読性パラメータに適したフォント特性を自動的に決定するシステムおよび方法を提供すること。【解決手段】システム，方法およびコンピュータ可読媒体は，様々な表示媒体および任意の言語の様々な可読性パラメータに合わせ，適切な行高を自動的に決定する。テキストストリングの行高を決定する方法を対象とし，そのテキストストリングの１エム当りクラスタ数を表す値を決定するステップと，指数関数によってデフォルト行高をスケーリングするステップを含む。別の実施形態は，フォント特性を定義する複数の要素を保持するように構成されたデータ構造と，そのデータ構造に結合されたモジュールを備えるコンピュータシステムを対象とする。このモジュールは，フォント特性を使用して，そのフォント特性を有するクラスタの平均幅に指数関数を適用することで，閲覧条件が変化すると動的に行高を調整する。【選択図】        図１
2004199021.tif 000002
【特許請求の範囲】
【請求項１】
テキストストリングの行高を決定する方法において、前記テキストはクラスタに編成され、各クラスタは、カーソルを挿入できる地点間の印字物の量によって識別される、前記テキストストリングのレンダリング単位であり、前記テキストストリングは、エムで表されたフォントサイズでレンダリングされ、各エムは活字の正方形によって識別される方法であって、前記方法が、
前記テキストストリング中の１エム当りクラスタ数を表す値を決定するステップと、
指数関数によってデフォルト行高をスケーリングするステップと
を含むことを特徴とする方法。
【請求項２】
前記デフォルト行高は、前記テキストストリング中で使用されているフォントサイズの約１２０％であることを特徴とする請求項１に記載の方法。
【請求項３】
前記指数関数は、定数に関数（ｃ２＋１）／ｃ２を乗算した値であることを特徴とする請求項１に記載の方法。
【請求項４】
前記定数は、デフォルトフォントとフォントサイズ乗数の積であることを特徴とする請求項３に記載の方法。
【請求項５】
テキストストリングの行高を決定するためのコンピュータ実行可能命令を搬送する、コンピュータ可読媒体を含むコンピュータプログラム（a computer program product）において、前記テキストはクラスタに編成され、各クラスタは、カーソルを挿入できる地点間の印字物の量によって識別される、前記テキストストリングのレンダリング単位であり、前記テキストストリングは、エムで表されたフォントサイズでレンダリングされ、各エムは活字の正方形によって識別されるコンピュータプログラムであって、前記命令は、
前記テキストストリング中の１エム当りクラスタ数を表す値を決定するステップと、
指数関数によってデフォルト行高をスケーリングするステップと
を含むことを特徴とするコンピュータプログラム。
【請求項６】
前記指数関数は、デフォルトフォントとフォントサイズ乗数と関数（Ｃ２＋１）／ｃ２の積であることを特徴とする請求項５に記載のコンピュータプログラム。
【請求項７】
プロセッサと、
前記プロセッサに結合されたメモリと、
前記プロセッサおよび前記メモリに結合されたデータ構造であって、フォントの特性を定義する複数の要素を保持するように構成されたデータ構造と、
前記データ構造に結合されたモジュールであって、前記フォントの特性を有するクラスタの平均幅に指数関数を適用することにより、前記フォントの特性を使ってテキストの行高を調整するように構成されたモジュールと
を備えることを特徴とするコンピュータシステム。
【請求項８】
前記データ構造はレイアウトエンジン内にあり、前記レイアウトエンジンは、
アプリケーションから複数のテキストプロパティを受け取るように構成された構造／レイアウト入力フィルタと、
前記複数のテキストプロパティの少なくとも１つを受け取るように、また、フォントのクラスタの平均幅を決定するように構成されたテキストエンジンと、
前記テキストエンジンから前記フォントの単一クラスタの平均幅を受け取って前記指数関数を適用するように結合された読取りメトリックスエンジンと
を含むことを特徴とする請求項７に記載のコンピュータシステム。
【請求項９】
前記モジュールは、閲覧条件が変わると動的に前記フォントの特性に作用することを特徴とする請求項７に記載のコンピュータシステム。
【請求項１０】
前記指数関数は、デフォルトフォントサイズに前記クラスタの平均幅の関数の平方根を乗算した値であることを特徴とする請求項７に記載のコンピュータシステム。
【請求項１１】
前記モジュールのインスタンスはアプリケーションプログラミングインタフェースを介して生成されることを特徴とする請求項７に記載のコンピュータシステム。
【請求項１２】
前記モジュールは、クライアント／サーバ接続を介してアクセス可能であることを特徴とする請求項７に記載のコンピュータシステム。
【請求項１３】
前記モジュールは、前記テキストの所定部分のグレー値の、総グレー値に対する前記テキストの比率を求めて、前記比率を、前記テキストの所定のフォントの文字密度で除算するように構成された、最適可読行高乗算モジュールであることを特徴とする請求項７に記載のコンピュータシステム。
【請求項１４】
前記モジュールは、除算した比率に１を加えて、フォントサイズの乗数を求めることを特徴とする請求項１３に記載のコンピュータシステム。
【請求項１５】
前記モジュールは、行高を求め、前記行高にマークアップ行高率を乗算することを特徴とする請求項７に記載のコンピュータシステム。
【請求項１６】
前記モジュールは、前記テキストの少なくとも３つの所定の代表部分のエリアを求め、前記エリアにフォントサイズを乗算して行高を求めることを特徴とする請求項７に記載のコンピュータシステム。
【請求項１７】
前記モジュールは、フォントサイズに（Ｒｗ２＋（１／Ｃｐｍ２））１／２を乗算した関数に従って行高を求め、式中、Ｒｗは、エム当りの、上端部インク部から底部インク部までの活字の実際の高さであり、Ｃｐｍはエム当りの文字数を表すことを特徴とする請求項７に記載のコンピュータシステム。
【請求項１８】
前記関数は、ユーザ入力および標準デフォルト行高乗数の１つによって修正されることを特徴とする請求項５５に記載のコンピュータシステム。
【請求項１９】
前記モジュールは、前記テキストの行長が変化した場合には、行高を自動的に変更することを特徴とする請求項７に記載のコンピュータシステム。
【請求項２０】
前記行高の自動変更は、前記テキストの物理的長さおよび前記テキストの１行中のクラスタ数の関数に基づくことを特徴とする請求項５７に記載のコンピュータシステム。
【請求項２１】
任意の言語のあるフォントのデフォルト行高を決定する方法において、テキストストリングの前記デフォルト行高は、エムで表されたフォントサイズでレンダリングされ、各エムはその活字の正方形で識別される方法であって、前記方法が、
前記フォントの代表的サンプルテキストの平均グレー度を決定するステップと、
前記平均グレー度に、前記フォントの１エム当りクラスタ数を乗算するステップと、
フォントサイズに、前記グレー度と１エム当りクラスタ数の積の逆数を乗算するステップと
を含むことを特徴とする方法。
【請求項２２】
前記平均グレー度は、
前記代表サンプルテキストの最も暗い部分を識別する第１の部分と、
前記最も暗い部分の前の部分を識別する第２の部分と、
前記最も暗い部分の後の部分を識別する第３の部分と
を含み、前記平均グレー度は、前記第１、第２および第３の部分の幅に、それぞれ前記第１、第２および第３の部分の深さを乗算した値の合計であることを特徴とする請求項２１に記載の方法。
【請求項２３】
フォントのサイズに変更するために行高を調整する方法であって、
前記フォントの文字密度を決定するステップと、
フォントの対比を文字密度で除算して、前記フォントサイズの端数を得るステップと、
前記端数を前記フォントサイズに加えて前記行高を調整するステップと
を含むことを特徴とする方法。
【請求項２４】
テキストの行高を決定するためのコンピュータ実行可能命令を備えたコンピュータ可読媒体であって、前記命令が、
前記テキストのパラメータを記憶するステップと、
前記テキストの前記パラメータを使った指数関数を適用するステップと
を実行するためのものであることを特徴とするコンピュータ可読媒体。
【請求項２５】
前記指数関数は、定数に、前記テキストの前記パラメータを使った指数関数を乗算した値であることを特徴とする請求項７４に記載のコンピュータ可読媒体。
【請求項２６】
前記テキストの前記パラメータは、単一文字の平均幅であることを特徴とする請求項７４に記載のコンピュータ可読媒体。
【請求項２７】
前記定数は、前記テキストのデフォルトフォントサイズのサイズに関連することを特徴とする請求項２５に記載のコンピュータ可読媒体。
【請求項２８】
前記行高にマークアップ行高率を乗算するステップを実行するための命令をさらに含むことを特徴とする請求項７４に記載のコンピュータ可読媒体。
【請求項２９】
前記テキストの前記パラメータはフォントサイズであり、前記指数関数は前記フォントサイズに（Ｒｗ２＋（１／Ｃｐｍ２））１／２を乗算した値であり、式中、Ｒｗは、１エム当りの、上端部インク部から底部インク部までの活字の実際の高さであり、Ｃｐｍは１エム当りの文字数を表すことを特徴とする請求項７４に記載のコンピュータ可読媒体。
【請求項３０】
前記関数は、ユーザ入力および標準デフォルト行高乗数の１つによって修正されることを特徴とする請求項２９に記載のコンピュータ可読媒体。
【請求項３１】
前記関数は、前記テキストの行長が変化した場合には、前記行高を自動的に変更することを特徴とする請求項２９に記載のコンピュータ可読媒体。
【請求項３２】
前記行高の自動変更は、前記テキストの物理的長さおよび前記テキストの１行中のクラスタ数の関数に基づくことを特徴とする請求項３１に記載のコンピュータ可読媒体。
【請求項３３】
行高を決定する方法であって、
所定の可読行長および所定のフォントサイズの関数として行高を決定するステップと、
前記所定のフォントサイズと実際のフォントサイズの差を求めるステップと、前記差を累乗した定数によって前記行高を調整するステップと
を含むことを特徴とする方法。
【請求項３４】
実際のフォントサイズが前記所定のフォントサイズと異なる場合には、前記所定のフォントサイズを変更するステップをさらに含むことを特徴とする請求項３３に記載の方法。
【請求項３５】
前記定数は１．０７よりも小さく、１．０２よりも大きいサイズであることを特徴とする請求項３３に記載の方法。
【請求項３６】
テキストの行高を決定するためのコンピュータ実行可能命令を備えたコンピュータ可読媒体であって、前記命令が、
所定の可読行長および所定のフォントサイズの関数として行高を決定するステップと、
前記所定のフォントサイズと実際のフォントサイズの差を求めるステップと、
前記差を累乗した定数によって前記行高を調整するステップと
を実行するためのものであることを特徴とするコンピュータ可読媒体。
【請求項３７】
前記コンピュータ実行可能命令は、実際のフォントサイズが前記所定のフォントサイズと異なる場合には、前記所定のフォントサイズを変更するステップをさらに実行することを特徴とする請求項３６に記載のコンピュータ可読媒体。
【請求項３８】
前記定数は１．０７よりも小さく、１．０２よりも大きいサイズであることを特徴とする請求項３６に記載のコンピュータ可読媒体。
【請求項３９】
任意の言語のフォントの特性を決定する方法であって、
フォント識別子および言語識別子を含むデータを受け取るステップと、
識別された言語で、識別されたフォントの代表活字行を生成するステップと、
前記代表活字行の特性を測定するステップと、
複数のフォントおよび複数の言語の間で測定値を正規化するステップと
を含むことを特徴とする方法。
【請求項４０】
前記代表活字行の特性を測定するステップは、
前記代表活字行中の複数のピクセル列中の総ピクセルに対する黒の比率を測定するステップと、
黒対総ピクセルの比率が最も高い列を識別するステップと、
前記識別した列を使って、複数のフォントおよび言語と比較して前記代表テキスト行中のフォントの特性を識別するステップと
を含むことを特徴とする請求項３９に記載の方法。
【請求項４１】
前記代表活字行の特性を測定するステップは、
フォントの高さを識別するステップと、
前記フォントの高さ内で、黒対総ピクセルの比率が最も高い列を含む第１の部分を識別するステップであって、前記第１の部分が、平均ピクセル列よりも暗い最初のピクセル列および最後のピクセル列を含むステップと
をさらに含むことを特徴とする請求項４０に記載の方法。
【請求項４２】
前記代表活字行の特性を測定するステップは、
前記第１の部分の上の第２の部分を識別するステップと、
前記第１の部分の下の第３の部分を識別するステップと
をさらに含むことを特徴とする請求項４１に記載の方法。
【請求項４３】
前記複数のフォントおよび複数の言語の間で測定値を正規化するステップは、
前記測定した特性をプロットして、読み方向に対して垂直な面上の平均グレー度を決定するステップを含むことを特徴とする請求項３９に記載の方法。
【請求項４４】
前記複数のフォントおよび複数の言語の間で測定値を正規化するステップは、
黒対総ピクセルの比率が最も高いピクセル列を識別するステップと、
前記ピクセル列を黒に指定するように正規化するステップと、
残りの各ピクセル列を、前記正規化された列に従って調整するステップと、
前記正規化されたピクセル列および調整されたピクセル列を使って前記代表活字行の平均グレー度を決定するステップであって、前記平均グレー度が複数のフォントおよび言語との比較を可能にするステップと
を含むことを特徴とする請求項３９に記載の方法。
【請求項４５】
暗さのアラインメントポイントおよびピークを識別することを可能にする、前記測定値のグラフ化を行うステップをさらに含むことを特徴とする請求項３９に記載の方法。
【請求項４６】
前記フォント識別子および言語識別子を含むデータを受け取るステップは国際変換機構によって行われ、前記受け取ったデータはある言語のテキストを含み、前記言語識別子は、前記国際変換機構が前記テキストを変換する先の１つまたは複数の言語を含み、
前記識別された言語の、前記識別されたフォントによる前記生成された代表活字行は、特性が前記変換済みテキストに適用される、記憶されている活字行であることを特徴とする請求項３９に記載の方法。
【請求項４７】
テキストストリングがあるフォントサイズでレンダリングされることに関連する国際テキストレイアウトのための方法において、前記フォントサイズはエムで表され、各エムはその活字の正方形によって識別される方法であって、前記方法が、
前記テキストレイアウトの環境に関するデータを受け取るステップと、
所定のフォントの国際テキストの正規化された代表行の測定された特性を使って、データに作用するステップと、
前記テキストレイアウトの環境に合わせて調整された、前記テキストレイアウトの１つまたは複数のプロパティ値を伝送するステップと
を含むことを特徴とする方法。
【請求項４８】
前記データに作用するステップは、最適なフォントサイズ、行高、コラム数および行長を決定するステップを含むことを特徴とする請求項４７に記載の方法。
【請求項４９】
前記国際テキストの正規化された代表行の特性は、１凝視当りクラスタ数および１エム当りクラスタ数を提供することを特徴とする請求項４７に記載の方法。
【請求項５０】
あるフォントのテキストの国際テキストレイアウトのためのシステムにおいて、前記テキストはクラスタに編成され、各クラスタは、カーソルを挿入できる地点間の印字物の量によって識別される、前記テキストストリングのレンダリング単位であり、前記テキストは、エムで表されたフォントサイズでレンダリングされ、各エムはその活字の正方形によって識別されるシステムであって、前記システムが、
１つまたは複数のテキストパラメータを保持するように構成された構造／レイアウト入力フィルタと、
データ構造に結合され、前記テキストの１つまたは複数のパラメータを受け取るように構成された読取りメトリックスエンジンと、
前記読取りエンジンに結合され、前記フォントのグラフィック密度を決定するように構成されたモジュールを含むテキストエンジンであって、前記グラフィック密度が、識別された言語の、前記フォントでレンダリングされた前記テキストの平均グレー度を含むテキストエンジンと
を備えたことを特徴とするシステム。
【請求項５１】
前記テキストエンジンは、１エム当りクラスタ数、活字の深さ、活字の幅、活字の最も暗い水平部分の幅、および活字の最も暗い水平部分の深さを表す１つまたは複数の値を含む、活字の特性を提供するように構成されていることを特徴とする請求項５０に記載のシステム。
【請求項５２】
前記構造／レイアウト入力フィルタ、前記テキストエンジン、および前記読取りメトリックスエンジンの１つまたは複数に結合された国際変換機構であって、テキストおよび１つまたは複数の言語識別子を受け取り、変換済みテキストのパラメータを提供して、前記変換済みテキストに適したテキストレイアウトを決定する国際変換機構をさらに含むことを特徴とする請求項５０に記載のシステム。
【請求項５３】
前記国際変換機構は、アプリケーションに結合されたレイアウトエンジン内に構成され、また、前記アプリケーションからデータを受け取って適切なテキストレイアウト特性を備えた変換済みテキストを前記アプリケーションに提供するように構成されていることを特徴とする請求項５２に記載のシステム。
【請求項５４】
前記国際変換機構は、アプリケーションから１つまたは複数の言語識別子およびテキストを受け取って前記変換済みテキストを提供するように構成され、また、前記読取りメトリックスエンジンおよび前記テキストエンジンで動作可能な１つまたは複数のデータ構造を作成するために前記構造／レイアウト入力フィルタが必要とする１つまたは複数のパラメータを決定するように構成されることを特徴とする請求項５２に記載のシステム。
【請求項５５】
前記国際変換機構は、前記構造／レイアウト入力フィルタに結合されたアプリケーションから呼び出される外部国際変換機構であって、前記アプリケーションは、前記変換済みテキストから言語パラメータを決定して、前記言語パラメータを前記構造／レイアウト入力フィルタに提供するように構成されることを特徴とする請求項５２に記載のシステム。
【請求項５６】
前記アプリケーションは、前記アプリケーションに関連する言語、フォント、ディスプレイに適した可読パラメータを受け取るように構成されることを特徴とする請求項５５に記載のシステム。
【請求項５７】
前記構造／レイアウト入力フィルタ、前記テキストエンジン、および前記読取りメトリックスエンジンの１つまたは複数、および変換済みテキストから、前記１つまたは複数の言語識別子に従って可読パラメータを受け取るように結合されたアプリケーションをさらに含むことを特徴とする請求項５２に記載のシステム。
【請求項５８】
前記アプリケーションは、サーバおよびクライアントマシンの１つまたは複数の中にあり、また、前記アプリケーションを呼び出している１台または複数のディスプレイに適した可読パラメータを有する前記１つまたは複数の言語識別子に従って前記変換済みテキストを表示するように構成されていることを特徴とする請求項５７に記載のシステム。
【請求項５９】
前記アプリケーションは、複数のコンピュータがアクセス可能なインターネットアプリケーションであり、また、変換済みテキストを提供するようにという要求を受け取り、前記複数のコンピュータそれぞれの各ディスプレイに合わせて、前記複数のコンピュータのそれぞれが要求している言語で適切にフォーマットされた前記変換済みテキストを伝送することを特徴とする請求項５７に記載のシステム。
【請求項６０】
クラスタに編成されたテキストのフォントの特性を決定するためのコンピュータ実行可能命令を備えたコンピュータ可読媒体において、各クラスタは、カーソルを挿入できる地点間の印字物の量によって識別される、前記テキストストリングのレンダリング単位であり、前記テキストは、エムで表されたフォントサイズでレンダリングされ、各エムはその活字の正方形によって識別されるコンピュータ可読媒体であって、前記命令は、
フォント識別子および言語識別子を含むデータを受け取るステップと、
識別された言語で、識別されたフォントの代表活字行を生成するステップと、
前記代表活字行の特性を測定するステップと、
複数のフォントおよび言語の間で測定値を正規化するステップと
を含むことを特徴とするコンピュータ可読媒体。
【請求項６１】
前記代表活字行の特性を測定するステップは、
前記代表活字行中の複数のピクセル列中の総ピクセルに対する黒の比率を測定するステップと、
黒対総ピクセルの比率が最も高い列を識別するステップと、
前記識別した列を使って、複数のフォントおよび言語と比較して前記代表テキスト行中のフォントの特性を識別するステップと、
フォントの高さを識別するステップと、
前記フォントの高さ内で、黒対総ピクセルの比率が最も高い列を含む第１の部分を識別するステップであって、前記第１の部分が、平均ピクセル列よりも暗い最初のピクセル列および最後のピクセル列を含むステップと、
前記第１の部分の上の第２の部分を識別するステップと、
前記第１の部分の下の第３の部分を識別するステップと
を含むことを特徴とする請求項６０に記載のコンピュータ可読媒体。
【請求項６２】
前記複数のフォントおよび複数の言語の間で測定値を正規化するステップは、
前記測定した特性をプロットして、読み方向に対して垂直な面上の平均グレー度を決定するステップを含むことを特徴とする請求項６０に記載のコンピュータ可読媒体。
【請求項６３】
前記複数のフォントおよび複数の言語の間で測定値を正規化するステップは、
黒対総ピクセルの比率が最も高いピクセル列を識別するステップと、
前記ピクセル列を黒に指定するように正規化するステップと、
残りの各ピクセル列を、前記正規化された列に従って調整するステップと、
前記正規化されたピクセル列および調整されたピクセル列を使って前記代表活字行の平均グレー度を決定するステップであって、前記平均グレー度が複数のフォントおよび言語との比較を可能にするステップと
を含むことを特徴とする請求項６０に記載のコンピュータ可読媒体。
【請求項６４】
前記テキストのフォントの特性を使って、所定の言語およびフォントに適した行高およびフォントサイズを決定することを特徴とする請求項６０に記載のコンピュータ可読媒体。
【請求項６５】
任意の言語のフォントの特性を決定するシステムであって、
プロパティシートコンポーネントおよびプロパティ値コンポーネントを含むアプリケーションと、
前記アプリケーションに結合され、フォント識別子および言語識別子を含むデータを受け取るように構成されたレイアウトエンジンであって、
前記データを受け取るように構成された構造／レイアウト入力フィルタと、
前記構造／レイアウト入力フィルタに結合され、前記アプリケーションに適した可読パラメータを決定するように構成された読取りメトリックスエンジンと、前記識別された言語および前記識別されたフォントの代表活字行を生成し、前記代表活字行の特性を測定し、複数のフォントおよび複数の言語の間で測定値を正規化するように構成されたテキストエンジンであって、正規化された測定値が、可読性パラメータを決定するために使用するよう前記読取りメトリックスエンジンに提供されるように構成されたフォントの特性を含むテキストエンジンとを含むレイアウトエンジンと
を備えたことを特徴とするシステム。
【請求項６６】
前記レイアウトエンジンは、前記アプリケーションからの１つまたは複数の言語識別子および変換のためのテキストを受け取るように構成され、前記国際変換機構は、前記構造／レイアウト入力フィルタのためにデータを生成するように構成されていることを特徴とする請求項６５に記載のシステム。
【請求項６７】
前記代表活字行の特性を測定するように構成されている前記テキストエンジンは、
前記代表活字行中の複数のピクセル列中の総ピクセルに対する黒の比率を測定するための手段と、
黒対総ピクセルの比率が最も高い列を識別するステップと、
前記識別した列を使って、複数のフォントおよび言語と比較して前記代表テキスト行中のフォントの特性を識別するための手段と、
フォントの高さを識別するための手段と、
前記フォントの高さ内で、黒対総ピクセルの比率が最も高い列を含む第１の部分を識別するための手段であって、前記第１の部分が、平均ピクセル列よりも暗い最初のピクセル列および最後のピクセル列を含む手段と、
前記第１の部分の上の第２の部分を識別するための手段と、
前記第１の部分の下の第３の部分を識別するための手段と
をさらに含むことを特徴とする請求項６５に記載のシステム。
【請求項６８】
前記テキストエンジンは、複数のフォントおよび言語の間で測定値を正規化するように構成され、
前記測定した特性をプロットして、読み方向に対して垂直な面上の平均グレー度を決定するための手段と、
黒対総ピクセルの比率が最も高いピクセル列を識別するための手段と、
前記ピクセル列を黒に指定するように正規化するための手段と、
残りの各ピクセル列を、前記正規化された列に従って調整するための手段と、前記正規化されたピクセル列および調整されたピクセル列を使って前記代表活字行の平均グレー度を決定するための手段であって、前記平均グレー度が複数のフォントおよび言語との比較を可能にする手段と
を含むことを特徴とする請求項６５に記載のシステム。
【請求項６９】
前記テキストエンジンは、暗さのアラインメントポイントおよびピークを識別することを可能にする、前記測定値のグラフ化を行うように構成されていることを特徴とする請求項６５に記載のシステム。
【請求項７０】
閲覧媒体上で読むことができるためのフォントの最適サイズを自動的に決定する方法において、前記フォントは、クラスタに編成されたテキストをレンダリングすることが可能であり、各クラスタは、カーソルを挿入できる地点間の印字物の量によって識別される、前記テキストストリングのレンダリング単位であり、前記テキストは、エムで表されたフォントサイズでレンダリングされ、各エムはその活字の正方形によって識別される方法であって、前記方法が、
前記フォントの文字密度を決定するステップと、
前記文字密度に、前記閲覧媒体の最も鮮明に焦点を合わせることができるエリアを乗算するステップと
をさらに含むことを特徴とする方法。
【請求項７１】
請求項７０に記載の方法を実施するための装置であって、前記閲覧媒体の幅および前記閲覧媒体からの距離を入力として受け付け、また、前記求めた文字密度および前記乗算した最も鮮明に焦点を合わせることができるエリアを使って、前記フォントの最適サイズおよび行高を出力として供給することを特徴とする装置。
【請求項７２】
前記出力はネットワーク上で前記閲覧媒体が利用可能であることを特徴とする請求項７１に記載の装置。
【請求項７３】
ハンドヘルドコンピューティングデバイス、コンピュータ、ポータブルコンピューティングデバイス、プリンタ内に設置されたマイクロプロセッシングユニットの１つであることを特徴とする請求項７１に記載の装置。
【請求項７４】
文字密度と最も鮮明に焦点を合わせることができるエリアを乗算した値に基づいて、前記閲覧媒体に適したフォントサイズを決定するステップと、
前記閲覧媒体は、前記最適なサイズになったフォントをレンダリングすることを可能にするステップと
をさらに含むことを特徴とする請求項７０に記載の方法。
【請求項７５】
少なくとも前記決定するステップはコンピュータ上で実施されることを特徴とする請求項７４に記載の方法。
【請求項７６】
前記決定するステップはコンピュータ上で実施され、前記閲覧媒体は、印字されたページ、画面、無線で接続された閲覧媒体、掲示板、画像、およびフォントレンダリング媒体の１つまたは複数であることを特徴とする請求項７４に記載の方法。
【請求項７７】
前記文字密度を、１凝視当りクラスタ数の範囲に従って変化させて、最大フォントサイズおよび最小フォントサイズを決定するステップであって、前記１凝視当りクラスタ数が言語特性の関数であるステップをさらに含むことを特徴とする請求項７０に記載の方法。
【請求項７８】
前記最も鮮明に焦点を合わせることができるエリアは、中心窩角度の三角関数および前記閲覧媒体からの距離を使って求められることを特徴とする請求項７０に記載の方法。
【請求項７９】
前記文字密度は、クラスタのグラフィック密度および情報密度の関数であることを特徴とする請求項７０に記載の方法。
【請求項８０】
前記グラフィック密度および情報密度は、読み特性を含めて言語に依存し、前記情報密度は、読み手にとって最も鮮明に焦点を合わせて見ることができるエリア当りのある量の情報を提供することを特徴とする請求項７９に記載の方法。
【請求項８１】
前記文字密度は、所定の中心窩角度内の可視クラスタ数に対する、前記フォントの１エム当りクラスタ数の比率であることを特徴とする請求項７０に記載の方法。
【請求項８２】
前記最も鮮明に焦点を合わせることができるエリアは、所定の中心窩角度の半分のタンジェントを２倍した値に、閲覧表面からの距離を乗算した値であることを特徴とする請求項７０に記載の方法。
【請求項８３】
前記所定の中心窩角度は、眼が最も鮮明に焦点を合わせることができる視野であることを特徴とする請求項８１に記載の方法。
【請求項８４】
ラジアン単位の前記所定の中心窩角度の半分は約０．００６５４４であり、所定の中心窩角度は約０．７５度であることを特徴とする請求項８２に記載の方法。
【請求項８５】
前記所定の中心窩角度は、
読み手特有の中心窩角度の入力、および
約０．７５度の中心窩角度の１つまたは複数によって求められる変数であることを特徴とする請求項８１に記載の方法。
【請求項８６】
前記読み手特有の中心窩角度は、読み手の視力を反映し、また、黄斑変性、視力低下、視覚の鋭さ、トンネル視野、眼病、近眼、遠視、難読症、乱視の１つまたは複数を考慮することを特徴とする請求項８５に記載の方法。
【請求項８７】
閲覧媒体上で最適な可読性が得られるように、あるフォントのテキストを調整するためのシステムであって、
１つまたは複数のテキストパラメータを保持するように構成されたデータ構造と、
前記データ構造に結合され、前記テキストの前記１つまたは複数のパラメータを受け取るように構成された読取りメトリックスエンジンであって、
前記フォントの文字密度を決定するように構成されたモジュールと、
前記文字密度に、眼の最も鮮明に焦点を合わせることができるエリアを乗算して、前記フォントの可読性に最適なサイズを生成するように構成されたモジュールとを含む読取りメトリックスエンジンと
を備えたことを特徴とするシステム。
【請求項８８】
前記読取りメトリックスエンジンは、
前記フォントの前記最適サイズと、言語活字の１凝視当りクラスタ数と、１エム当りクラスタ数と、前記閲覧媒体からの距離との関数によって最適コラム幅を決定するように構成されたモジュールをさらに含むことを特徴とする請求項８７に記載のシステム。
【請求項８９】
前記１凝視当りクラスタ数は、言語に応じた１凝視当りの複数クラスタを提供するテーブルに従って求められることを特徴とする請求項８８に記載のシステム。
【請求項９０】
前記言語活字の１凝視当りクラスタ数は、複数言語の１つに関連する定数であり、前記複数の言語のそれぞれは、その言語で読むためのグラフィック密度および情報密度を表す代表定数を有することを特徴とする請求項８８に記載のシステム。
【請求項９１】
前記閲覧媒体のためのレンダリング装置であって、閲覧表面が、印字されたページ、コンピュータの画面、パーソナルディジタルアシスタント、自筆の画像、掲示板、映画の画面、および眼鏡へのインサートの１つであるレンダリング装置をさらに含むことを特徴とする請求項８７に記載のシステム。
【請求項９２】
前記眼が最も鮮明に焦点を合わせることができるエリアは、閲覧媒体からの距離および中心窩角度によって求められることを特徴とする請求項８７に記載のシステム。
【請求項９３】
閲覧媒体上で読むことができるためのフォントの最適サイズを自動的に決定するシステムにおいて、前記フォントは、クラスタに編成されたテキストをレンダリングすることが可能であり、各クラスタは、カーソルを挿入できる地点間の印字物の量によって識別される、前記テキストストリングのレンダリング単位であり、前記テキストストリングは、エムで表されたフォントサイズでレンダリングされ、各エムはその活字の正方形によって識別されるシステムであって、前記システムが、
テキストを表示するように構成されたアプリケーションと、
前記アプリケーションからデータを受信し、かつ前記アプリケーションにデータを送信するように結合されたレイアウトエンジンであって、
前記アプリケーションからデータを受け取るように結合された構造／レイアウト入力フィルタと、
前記フォントの文字密度を決定するように構成されたテキストエンジンと、
前記文字密度に、前記閲覧媒体の最も鮮明に焦点を合わせることができるエリアを乗算するように構成された読取りメトリックスエンジンとを含むレイアウトエンジンと
を備えたことを特徴とするシステム。
【請求項９４】
前記レイアウトエンジンは、前記構造／レイアウト入力フィルタおよび前記閲覧媒体上にテキストをレンダリングするための前記アプリケーションの１つまたは複数に、データを提供するように結合された国際変換機構を含むことを特徴とする請求項９３に記載のシステム。
【請求項９５】
前記読取りメトリックスエンジンは、
言語テーブルから１凝視当りクラスタ数パラメータを受け取るように構成された、１最良可読行当りクラスタモジュールと、
前記１最良可読行当りクラスタモジュールに結合され、１行当り最小および最大クラスタパラメータを決定するように構成された１行当りクラスタモジュールと、
前記１行当りクラスタモジュールに結合され、最小および最大コラム幅を決定するように構成されたコラム幅モジュールと、
前記コラム幅モジュールに結合され、マークアップおよびシステムが提供するウィンドウ測定値を使ってコラム数を決定するように構成されたコラム数モジュールと
を含むことを特徴とする請求項９３に記載のシステム。
【請求項９６】
前記読取りメトリックスモジュールは、
前記文字密度を受け取るように結合され、１エム当りクラスタ数の計算結果および１凝視当りクラスタ数を使って、前記フォントサイズを決定する可読フォントサイズモジュールを含むことを特徴とする請求項９３に記載のシステム。
【請求項９７】
前記フォントサイズは、前記閲覧媒体からの距離に基づくことを特徴とする請求項９６に記載のシステム。
【請求項９８】
前記コラム幅は、前記フォントサイズを、１エム当りクラスタ数と１行当りクラスタ数の積で除算することによって求められることを特徴とする請求項９５に記載のシステム。
【請求項９９】
前記コラム幅は、ディスプレイの寸法およびユーザの設定に従って実際の有効原稿幅を求め、前記実際の有効原稿幅をフォントサイズおよびクラスタ寸法の関数で除算することによって求められることを特徴とする請求項９５に記載のシステム。
【請求項１００】
前記読取りメトリックスモジュールは、
前記文字密度、１行当りクラスタ数パラメータ、および有効原稿パラメータを受け取って、ヘッディングのフォントサイズを決定するように結合されたヘッディング行高モジュールを含むことを特徴とする請求項９３に記載のシステム。
【請求項１０１】
閲覧表面上で読むことができるための最適なフォントサイズを決定するためのコンピュータ実行可能命令を備えたコンピュータ可読媒体であって、前記命令が、
フォントの文字密度を決定するステップと、
前記文字密度に、眼の最も鮮明に焦点を合わせることができるエリアの長さを乗算するステップと
を含むことを特徴とするコンピュータ可読媒体。
【請求項１０２】
前記文字密度を、１凝視当りクラスタ数の範囲に従って変化させて、最大フォントサイズおよび最小フォントサイズを決定するステップであって、前記１凝視当りクラスタ数が言語特性の関数であることを特徴とする請求項１０１に記載のコンピュータ可読媒体。
【請求項１０３】
前記最も鮮明に焦点を合わせることができるエリアは、中心窩角度の三角関数および前記閲覧媒体からの距離を使って求められることを特徴とする請求項１０１に記載のコンピュータ可読媒体。
【請求項１０４】
前記文字密度は、クラスタのグラフィック密度および情報密度の関数であることを特徴とする請求項１０１に記載のコンピュータ可読媒体。
【請求項１０５】
前記グラフィック密度と情報密度は、読み特性を含めて言語に依存し、前記情報密度は、読み手にとって最も鮮明に焦点を合わせることができるエリア当りのある量の情報を提供することを特徴とする請求項１０４に記載のコンピュータ可読媒体。
【請求項１０６】
前記文字密度は、所定の中心窩角度内の可視クラスタ数に対する、前記フォントの１エム当りクラスタ数の比率であることを特徴とする請求項１０１に記載のコンピュータ可読媒体。
【請求項１０７】
前記最も鮮明に焦点を合わせることができるエリアは、所定の中心窩角度の半分のタンジェントを２倍した値に、閲覧表面からの距離を乗算した値であることを特徴とする請求項１０１に記載のコンピュータ可読媒体。
【請求項１０８】
前記所定の中心窩角度は、眼が最も鮮明に焦点を合わせることができる視野に関することを特徴とする請求項１０７に記載のコンピュータ可読媒体。
【請求項１０９】
ラジアン単位の前記所定の中心窩角度の半分は約０．００６５４４であり、所定の中心窩角度は約０．７５度であることを特徴とする請求項１０７に記載のコンピュータ可読媒体。
【請求項１１０】
前記所定の中心窩角度は、
読み手特有の中心窩角度の入力、および
約０．７５度の中心窩角度の１つまたは複数によって求められる変数であることを特徴とする請求項１０７に記載のコンピュータ可読媒体。
【請求項１１１】
前記読み手特有の中心窩角度は、読み手の視力を反映し、また、黄斑変性、視力低下、視覚鋭敏、トンネル視野、眼病、近眼、遠視、難読症、乱視の１つまたは複数を考慮することを特徴とする請求項１１０に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に、フォント、テキスト、および字並びに関し、より詳細には、国際自動フォント測定システムおよび方法に関する。
【０００２】
【従来の技術】
彼らは言った。「さあ、都市を、そして頂が天に届く塔を建て、我々の名をあげよう、我々が全地に散らされないように。」工事はまもなくなんとか進むようになった。「そして彼らは石の代わりにレンガを、モルタルの代わりにスライム（アスファルト）を使用した。」しかし、神は彼らの言語を混乱させたので、彼らは互いの言葉がわからなくなった。このようにして彼らは全地に散らされた。
彼らは都市をつくることを止めた（「創世記」１１章、１−９）。バベルの塔の崩落以来、様々な言語およびそれらに関連する書記体系で意思を疎通するための方法を見つけることが課題となっている。
【０００３】
世界的なグローバル化が始まるとともに、この課題を克服することが最優先事項となっている。しかし、国家間には、完全に統合されたグローバル社会を阻んできた複雑な文化の相違がある。コンピュータ業界では、これらの相違によって、多言語間の表示および相互交換の限界による、国際協力上の問題が発生している。
【０００４】
多国籍のコンピューティング業界による、この課題の克服に向けた１つのステップが、１９８８年のユニコードコンソーシアムであり、これによってグローバルな文字識別標準が開発された。コンソーシアムの目標は、あらゆる言語について、文字を一意に識別することを可能にする標準を開発することであった。コンソーシアムはユニコード標準を開発し、現在、その第２．１版（１９７７）がＡｄｄｉｓｏｎ−Ｗｅｓｌｅｙ  Ｄｅｖｅｌｏｐｅｒｓ  Ｐｒｅｓｓから入手可能である（ｈｔｔｐ：／／ｗｗｗ．ｕｎｉｃｏｄｅ．ｏｒｇで入手可能）。
【０００５】
残念なことに、多数の言語から選択して文字を印字し、かつ表示できるということは、その国際的課題を克服するためのほんのわずかな一歩にすぎない。それと同等、またしばしば何倍も重要なことは、スクリプトのレイアウト、フォントの特性、およびテキストを読めるようにするための一般的なテキスト要件である。しかし、現在の言語の書体およびスクリプト形態は様々であり、多方面にわたり、同じ規則に従うものではない。例えば、典型的な英語のフォントであるＴｉｍｅｓ  Ｎｅｗ  Ｒｏｍａｎは、独自にローマン体に基づいたタイポグラフィ上の定則に従っており、行高が一般にフォントのポイントサイズの１２０％に設定される。用語はローマン体文字に基づいている。ローマ活字の概念には、ベースライン、キャップ高、アセンダ高、ディセンダ高、および行高が含まれる。
【０００６】
書記言語は、デフォルト行長や書体などのフォント特性の規則と同じ規則に従うものではない。そうではなく、各言語およびスクリプトは、文化的に異なる基盤に由来している。例えば、アジアのスクリプトでは、絵に由来する象形文字を使用しているものもあるし、また、右から左に読み、記号に由来するものもある。さらに同じ言語においても、スクリプトおよびフォントが所定の特性の定則に従わない。デフォルトフォント特性を決定する定則を見つけることは不可能な仕事に思われる。グラフィックデザイナ達は、すべての言語に当てはまる定則を見つけることよりも、行長、書体および行高を目視で変更し、また、レンダリングが目に心地よく、グラフィックデザイナが知っている読み易さの要件に合致するように、それぞれのスクリプトを変更することに頼ってきた。
【０００７】
現在、すべての既知のスクリプトに適用されるフォント特性を決定する解決策はない。すべてのスクリプトは、文化に由来し、異なる基盤および完全に異なる概念を持っている。ある定則が特定の言語の特定のスクリプトについて、各スクリプト内で応用できたとしても、そのスクリプトの多くの特性に直線の関係があるわけではない。例えば、同じスクリプト内で、フォントサイズまたは行高を変更するには、読み易さを考慮した行高の変更が必要である。グラフィックデザイナは、一般に、行長、書体、および行高を目視で変更する。活字行を長くすると、読み易さのために行を高くする必要がある。また、フォントのサイズは行高に関連するが、大きいフォントが小さいフォントと同様の行高を必要とするわけではない。
【０００８】
【非特許文献１】
Allen Hurlburt, "Layout: The Design of the Printed Page" (Watson-Guptill Publications, NY, NY 1977, 1989. Page 82.)
【０００９】
【非特許文献２】
Allen Hurlburt, "The Grid" (1978); "The Design Concept" (1981)
【００１０】
【発明が解決しようとする課題】
行高、行長、およびフォントサイズの変更の間には、直接または明白な関係はないので、多くのコンピュータアプリケーションでは、手動による変更が必要である。レイアウトの問題をさらに複雑にしているのは、レンダリングコンピューティングマシンが満ち溢れているために、グラフィックデザイナ達に活字のレンダリングマシンがわからないことである。例えば、ウェブページ用にデザインされた印字ページを、行長、行高、およびフォントサイズの最適な読みサイズがわからないまま、どのようなサイズの画面にでもレンダリングできる。現在、グラフィックデザイナ達が行わなければならない特性の決定を、自動的に行う方法が必要とされている。手動で調整することなく、任意の言語の任意のサイズのテキストを、どのディスプレイ上にでもレンダリングすることができるように、行高、フォントサイズ、行長などのコンピュータ可読性パラメータを計算することができる自動的な方法およびシステムが必要とされている。
【００１１】
【課題を解決するための手段】
したがって、システムおよび方法は、どのような言語であっても、様々な表示媒体および様々な可読性パラメータに適したフォント特性を自動的に決定する。
一実施形態は、フォント識別子および言語識別子を含むデータを受け取り、識別された言語の識別されたフォントによる代表活字行を生成し、その代表活字行の特性を測定し、その測定値を、複数のフォントおよび複数の言語の間で正規化することによって、フォントの特性を決定するための方法を対象としている。より詳細には、代表活字行の特性の測定は、代表活字行中の複数のピクセル列における、総ピクセルに対する黒の比率を測定するステップ、全体に対する黒の比率が最も高い列を識別するステップ、および識別した列を使って、複数のフォントおよび言語と比較した、代表活字行中のフォント特性を識別するステップを含むことができる。
【００１２】
一実施形態では、代表活字行の特性を測定するステップが、フォント高を識別するステップと、そのフォント高内で、全体に対する黒の比率が最も高い列を含む第１の部分を識別するステップであって、その第１の部分が平均ピクセル列よりも暗い最初のピクセル列および最後のピクセル列を含むステップと、第１の部分の上の第２の部分を識別するステップと、第１の部分の下の第３の部分を識別するステップをさらに含む。以下の説明では、これらの部分を、「ブラックリバー」に関連する幅と呼ぶ。ブラックリバーとは、プロットした測定特性を識別して、読み方向に垂直な方向の平均グレー度を決定するために使用する用語である。平均グレー度は、複数のフォントおよび言語の比較を可能にする。
【００１３】
一実施形態では、国際変換機構（an international translator）を使って、フォント識別子および言語識別子を含むデータを受け取り、その受け取ったデータは、ある言語のテキストを含むことができる。言語識別子は、国際変換機構がそのテキストを変換する先の１つまたは複数の言語を含むことができる。
【００１４】
別の実施形態は、国際テキストレイアウトのための方法を対象としている。テキストレイアウトは、エム（em）で表されたフォントサイズでレンダリングされるテキストストリングに関連する。この方法は、所定のフォントの、正規化された代表国際テキスト行の測定された特性を使って、最適なフォントサイズ、行高、コラム数、行長を決定する。正規化された代表国際テキスト行の特性は、１凝視当りクラスタ数および１エム当りクラスタ数を提供する。
【００１５】
あるフォントのテキストの国際テキストレイアウトを行うためのシステムを対象とする一実施形態は、１つまたは複数のテキストパラメータを保持するように構成された構造／レイアウト入力フィルタ、データ構造に結合され、テキストの１つまたは複数のパラメータを受け取るように構成された読取りメトリックスエンジン、および読取りメトリックスエンジンに結合されたテキストエンジンを含む。テキストエンジンは、フォントのグラフィック密度を決定するように構成されたモジュールを含む。フォントのグラフィック密度とは、識別された言語のあるフォントでレンダリングされたテキストの平均グレー度である。テキストエンジンが判定する活字特性には、１エム当りクラスタ数、活字深さ、活字幅、活字の最も暗い水平部分の幅、および活字の最も暗い水平部分の深さを表す値が含まれる。一実施形態による別のシステムは、レイアウトエンジン内に構成され、アプリケーションに結合されている国際変換機構を含む。国際変換機構は、アプリケーションからデータを受け取り、その変換済みテキストに適したテキストレイアウト特性を有する変換済みテキストを、アプリケーションに供給する。一実施形態では、国際変換機構は、アプリケーションから１つまたは複数の言語識別子およびテキストを受け取り、変換済みテキストを提供し、また、構造／レイアウト入力フィルタが、読取りメトリックスエンジンおよびテキストエンジンで動作可能な１つまたは複数のデータ構造を作成するのに必要なパラメータを決定するように構成される。国際変換機構は、アプリケーションから呼び出す外部国際変換機構（an external international translator）であってよい。アプリケーションは、サーバまたはクライアントマシンであってよく、そのアプリケーションを呼び出す任意のディスプレイに適した可読性パラメータを有する言語識別子に従って、変換済みテキストを表示する。アプリケーションはまた、複数のコンピュータがアクセス可能なインターネットアプリケーションであってよく、このアプリケーションは、変換済みテキストを提供するようにという要求を受け取り、複数のコンピュータそれぞれの各ディスプレイに合わせ、また前記複数のコンピュータのそれぞれが要求している言語で適切にフォーマットされた、変換済みテキストを伝送する。
【００１６】
本発明のさらなる特徴および利点は、添付の図を参照しながら進める、以下の例示的実施形態の詳細な説明から明らかであろう。
【００１７】
頭記の特許請求の範囲は本発明の特徴を詳細に述べているが、本発明は、その目的および利点とともに、添付の図面と関連する以下の詳細な説明からもっともよく理解することができる。
【００１８】
【発明の実施の形態】
図面を見ると、同じ参照番号が同じ要素を指し、本発明を、適切なコンピューティング環境で実施しているものとして図示してある。必ずしも必要ではないが、本発明を、プログラムモジュールなどの、パーソナルコンピュータによって実行されるコンピュータ実行可能命令の一般的な状況で説明する。一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。さらに、当業者は、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な消費者電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなどを含めて、その他のコンピュータシステム構成でも本発明を実施できることを理解されよう。また、本発明を、通信ネットワークを介してリンクされているリモート処理装置によってタスクが実行される分散コンピューティング環境においても実施することができる。分散コンピューティング環境においては、プログラムモジュールを、ローカルとリモートの両方のメモリ記憶装置に配置することができる。
【００１９】
図１は、本発明を実施することができる、適切なコンピューティングシステム環境１００の例を示す。コンピューティングシステム環境１００は、適切なコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲に関していかなる限定も示唆するものではない。コンピューティングシステム環境１００は、例示的動作環境１００に示してあるコンポーネントのいずれか１つまたは組み合わせに関して、依存するものとしても、また要求するものとしても解釈すべきではない。
【００２０】
本発明は、多数のその他の汎用または専用コンピューティングシステム環境または構成で動作可能である。本発明とともに使用するのに適した周知のコンピューティングシステム、環境、および／または構成の例には、非限定的に、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットアップボックス、プログラム可能な消費者電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記システムまたは装置のいずれかを含む分散コンピューティング環境などが含まれる。
【００２１】
本発明を、プログラムモジュールなどの、コンピュータによって実行されるコンピュータ実行可能命令の一般的な状況で説明することができる。一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。また、本発明を、通信ネットワークを介してリンクされているリモート処理装置によってタスクが実行される分散コンピューティング環境においても実施することができる。分散コンピューティング環境においては、プログラムモジュールを、メモリ記憶装置を含めて、ローカルとリモートの両方のコンピュータ記憶媒体に配置することができる。
【００２２】
図１を参照すると、本発明を実施するための例示的システムは、コンピュータ１１０の形の汎用コンピューティング装置を含む。コンピュータ１１０のコンポーネントは、非限定的に、処理装置１２０、システムメモリ１３０、およびシステムメモリを含めて、様々なシステムコンポーネントを処理装置１２０に結合するシステムバス１２１を含む。システムバス１２１は、様々なバスアーキテクチャのうちのいずれかを使った、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造のうちのいずれかであってよい。例として、このようなアーキテクチャは、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオ機器標準協会（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｅ）（ＶＥＳＡ）ローカルバス、およびメザニンバスとしても知られる周辺コンポーネント相互接続（ＰＣＩ）バスを非限定的に含む。
【００２３】
コンピュータ１１０は、一般に、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０がアクセス可能ないずれかの入手可能な媒体であってよく、揮発性および不揮発性媒体、リムーバブルおよび非リムーバブル媒体がともに含まれる。例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を非限定的に含む。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータなどの情報を記憶するためのいずれかの方法または技術で実装される、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体がともに含まれる。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたはその他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（ディジタル多用途ディスク）またはその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶またはその他の磁気記憶装置、あるいは、所望の情報を記憶するために使用でき、かつコンピュータ１１０がアクセス可能ないずれかのその他の媒体が非限定的に含まれる。通信媒体は、一般に、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを、搬送波またはその他のトランスポートメカニズムなどの変調データ信号に組み込み、また、いずれかの情報送達媒体を含む。「変調データ信号」という用語は、その特性の１つまたは複数が、その信号中の情報が符号化されるように設定または変更された信号を意味する。
【００２４】
例として、通信媒体には、ワイヤードネットワークまたは直接ワイヤード接続などのワイヤード媒体、および、音響、ＲＦ、赤外線、その他の無線媒体などの無線媒体が非限定的に含まれる。上記のいずれかの組み合わせも、コンピュータ可読媒体の範囲に含まれるものとする。
【００２５】
システムメモリ１３０は、読取り専用メモリ（ＲＯＭ）１３１およびランダムアクセスメモリ（ＲＡＭ）１３２などの、揮発性および／または不揮発性メモリの形のコンピュータ記憶媒体を含む。スタートアップ時の間などに、コンピュータ１１０内の要素間での情報の転送を援助する基本ルーチンを含む、基本入出力システム（ＢＩＯＳ）１３３は、一般にＲＯＭ１３１に記憶されている。ＲＡＭ１３２は、一般に、処理装置１２０が即座にアクセス可能であって、かつ／または現在、処理装置１２０上で動作している、データおよび／またはプログラムモジュールを含む。例として、図１は、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７を非限定的に示す。
【００２６】
コンピュータ１１０は、その他のリムーバル／非リムーバル、揮発性／不揮発性のコンピュータ記憶媒体も含むことができる。例にすぎないが、図１は、非リムーバブルの不揮発性磁気媒体からの読取りおよびそれへの書込みを行うハードディスクドライブ１４１、リムーバブルの不揮発性磁気ディスク１５２からの読取りおよびそれへの書込みを行う磁気ディスクドライブ１５１、および、ＣＤ−ＲＯＭやその他の光媒体など、リムーバブルの不揮発性光ディスク１５６からの読取りおよびそれへの書込みを行う光ディスクドライブ１５５を示す。例示的オペレーティング環境で使用できる、その他のリムーバブル／非リムーバブル、揮発性／不揮発性コンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、ディジタル多用途ディスク、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが非限定的に含まれる。ハードディスクドライブ１４１は、一般に、インタフェース１４０などの非リムーバブルメモリインタフェースを通して、システムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は、一般に、インタフェース１５０などのリムーバブルメモリインタフェースによって、システムバス１２１に接続される。
【００２７】
上記に説明し、図１に示すドライブおよびそれらの関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールおよびその他のデータの記憶をコンピュータ１１０に提供する。例えば、図１には、ハードディスクドライブ１４１を、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７を記憶するものとして示してある。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７と同じであっても、あるいは異なってもよいことに注意されたい。ここでは、少なくともそれらが異なるコピーであることを示すために、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７に異なる参照番号を付してある。ユーザは、キーボード１６２、および一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス１６１などの入力装置を通して、コマンドおよび情報をコンピュータ１１０に入力することができる。その他の入力装置（図示せず）には、マイクロフォン、ジョイステック、ゲームパッド、衛星パラボラアンテナ、スキャナなどを含めることができる。これらおよびその他の入力装置は、システムバスに結合されているユーザ入力インタフェース１６０を通して処理装置１２０に接続されることが多いが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）など、その他のインタフェースおよびバス構造によって接続することができる。モニタ１９１またはその他のタイプの表示装置も、ビデオインタフェース１９０などのインタフェースを介して、システムバス１２１に接続される。モニタに加えて、コンピュータは、出力周辺インタフェース１９５を通して接続することができる、スピーカ１９７およびプリンタ１９６などのその他の周辺出力装置を含むこともできる。
【００２８】
コンピュータ１１０は、リモートコンピュータ１８０などの１台または複数のリモートコンピュータへの論理接続を使って、ネットワーク化された環境で動作することができる。リモートコンピュータ１８０は、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア装置、またはその他の一般的なネットワークノードであってよく、一般に、パーソナルコンピュータ１１０に関連して上記に説明した要素の多くまたはすべてを含む。ただし、図１にはメモリ記憶装置１８１しか示していない。図１に示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１および広域ネットワーク（ＷＡＮ）１７３を含むが、その他のネットワークを含むこともできる。このようなネットワーキング環境は、オフィス、企業内のコンピュータネットワーク、イントラネット、およびインターネットでは一般的である。
【００２９】
ＬＡＮネットワーキング環境で使用される場合、パーソナルコンピュータ１１０は、ネットワークインタフェースまたはアダプタ１７０を通してＬＡＮネットワーク１７１に接続される。ＷＡＮネットワーキング環境で使用される場合、コンピュータ１１０は、一般に、モデム１７２、またはインターネットなどの広域ネットワーク１７３を介して通信を確立するためのその他の手段を含むことができる。モデム１７２は、内部でも外部でもよく、ユーザ入力インタフェース１６０またはその他の適切なメカニズムを介してシステムバス１２１に接続することができる。ネットワーク化された環境では、パーソナルコンピュータ１１０に関連して示しているプログラムモジュール、またはその一部を、リモートメモリ記憶装置に記憶することができる。例として、非限定的に、図１は、リモートアプリケーションプログラム１８５をメモリ装置１８１上に常駐するものとして示す。示してあるネットワーク接続は例であって、コンピュータ間の通信リンクを確立するその他の手段を使用できることを理解されよう。
【００３０】
以下の記載では、別途記載がない限り、本発明を、１台または複数のコンピュータが実施する動作および演算の記号表現を参照しながら説明する。したがって、コンピュータ実行によると呼ぶことがあるこのような動作および演算には、データを構造化した形で表している電気信号の、コンピュータの処理装置による操作が含まれることを理解されよう。この操作は、そのデータを変換し、または、それをコンピュータのメモリシステム中のロケーションに保持し、それによって、当業者がよく理解している方法でコンピュータのオペレーションを再構成または変更する。データが保持されているデータ構造は、そのデータのフォーマットが定義する特定のプロパティを備えた、メモリの物理ロケーションである。しかし、本発明を上記の状況で説明しているが、当業者であれば、以下に説明する様々な動作およびオペレーションをハードウェアにおいて実施できることを理解するように、その説明は限定することを意図したものではない。
【００３１】
本発明の重要な一態様に従って、図２を参照する。図２は、本発明の実施形態を実施するために適した、Ｗｉｎｄｏｗｓ（登録商標）クライアントなどのクライアントソフトウェアの構成図を表す。この構成図は、図１に示すコンピュータ１１０上で実行する任意のアプリケーションであってよい、アプリケーション２００を示す。該当するアプリケーションプログラムには、例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄ、Ｍｉｃｒｏｓｏｆｔ  Ｐｕｂｌｉｓｈｅｒ、ＱｕａｒｋＸＰｒｅｓｓ、Ａｄｏｂｅ  ＩｎＤｅｓｉｇｎなどが含まれる。アプリケーション２００を、プロパティシート２１０を含むものとして示す。プロパティシート２１０は、コンピュータ１１０内に存在することが可能であり、または、クライアントサーバ接続を介して利用可能であるレイアウトエンジン２０２と対話する。レイアウトエンジン２０２は、コンピュータ１１０上で実行するクライアントアプリケーションであってよく、または、ネットワーク接続を介して利用可能である。プロパティシート２１０はアプリケーション２００内にあり、レイアウトエンジン２０２にプロパティ値を供給する。プロパティ値は、構造／レイアウト入力フィルタ２３０において受け取られる。構造／レイアウト入力フィルタ２３０に加えて、レイアウトエンジン２０２は、読取りメトリックスエンジン２４０およびテキストエンジン２５０も含む。プロパティシートのデータ構造は、レイアウトエンジン２０２が、フォントおよびテキストをレンダリングするための適切なレイアウトをアプリケーション２００に提供するために必要とする要素を含む。
構造／レイアウト入力フィルタ２３０は、読取りメトリックスエンジン２４０に入力するための要素を編成し、読取りメトリックスエンジン２４０に入力プロパティを提供する。読取りメトリックスエンジン２４０は、プロパティに作用し、データをテキストエンジン２５０に送る。テキストエンジン２５０は、フォントファミリデータの識別子および言語の識別子を含むデータを受け取り、読取りメトリックスエンジン２４０が使用するための、テキスト特性について計算したデータを出力する。
【００３２】
以下にさらに詳説するように、読取りメトリックスエンジン２４０は、入力値に作用して、呼び出しているアプリケーションの所与の制約の範囲内で、最適なタイポグラフィ上の設定を提供する。入力の制約には、環境上の制約とデザイン上の制約を、非限定的に含めることができる。環境上の制約には、倍率、画面サイズおよび解像度、読み手のための視覚的機能追加および読み手の距離を含めることができる。デザイン上の制約には、フォント要件、マージン要件、コラム要件、およびレイアウト長方形要件を含めることができる。これらの制約の範囲内で、読取りメトリックスエンジン２４０は、ウィンドウ、ページおよび有効原稿のサイズ、マージン幅、最適なコラム数、最適なコラム幅およびのど幅、および最適なフォントサイズおよび行高の設定を始めとする設定を提供する。提供される設定は、デザイン要件によって、ピクセルによる測定値、またはポイントによる測定値が可能である。有利には、読取りメトリックスエンジン２４０が出力する設定は、未知の言語およびフォントの場合にも適切である。
【００３３】
次に図３を参照すると、図２の構成図が、データ構造の流れを示す構成図の形態で拡張されている。図３は、ページサイズ３１２、ページマージン３１４、フォントファミリ３１６、フォントサイズ３１８、行高３２０、コラム数３２２、コラム幅３３４、およびページサイズ３２６などの項目を含む、プロパティシート２１０を示す。プロパティシート２１０には、上書きできない値も含まれている。ブロック３２９によって適合可能な値、および適合不可能な値が、構造／レイアウト入力フィルタ２３０に供給される。より詳細には、構造／レイアウト入力フィルタ２３０は、要素ブロック３３０およびフロープレゼンタ３５２を含む。要素ブロック３３０は、データをデータ構造に編成する。例示的データ構造を、フォントファミリ３３２、言語３３４、フォントサイズの変更３３６、行高の変更３３８、ページマージン３４０、ページマージンのフレキシビリティ３４２、およびコラム設定３４４を含めて表示してある。要素ブロック３３０でデータが編成され、読取りメトリックスエンジンの入力プロパティ３４６として供給される。それとは別に、テキストフロープレゼンタ３５２は、読取りメトリックスエンジン２４０にウィンドウサイズ３５４を供給する。あるいは、テキストフロープレゼンタ３５２は、ネットワーク化されたコンポーネント、またはコンピュータ１１０内のシステムコンポーネントであってもよい。一実施形態では、レイアウトエンジン２０２は、媒体統合層３６０と対話する。媒体統合層３６０は、読取りメトリックスエンジン２４０に媒体サイズ３６２を供給する。媒体サイズ３６２の一例として、図１に示すコンピュータ１１０の画面のサイズが挙げられる。
【００３４】
読取りメトリックスエンジン２４０は、以下にさらに詳説する本発明の実施形態を実施する。一実施形態では、読取りメトリックスエンジン２４０は、テキストエンジン２５０および要素ブロック３３０と対話する。要素ブロック３３０は、読取りメトリックスエンジンの入力プロパティ３４６を保持する。要素ブロック３３０は、テキストフロープレゼンタ３５２に結合されている。一実施形態では、要素ブロック２３０とテキストフロープレゼンタ３５２が一緒になって、要素ブロック２３０中には構造を、テキストフロープレゼンタ３５２中にはレイアウトを含む、１つのコンポーネントを形成している。
【００３５】
読取りメトリックスエンジン２４０は、入力を受け取り、その入力に作用して、呼び出しているアプリケーション中に、有用なテキストレイアウトの設定を生成する。この設定はユーザによるサイジング設定を考慮することができ、あるいは、デフォルトのサイズが自動的に決定されることが可能である。テキストエンジン２５０は、レイアウトエンジン２０２の重要な機能である。テキストエンジン２５０は、テキスト値に関する言語特有のデータを追加する入力を、読取りメトリックスエンジン２４０に供給する。テキストエンジン２５０は、フォントファミリ識別子３６４および言語識別子３６６を受け取る。テキストエンジン２５０からの出力は、テキストエンジン２５０の内部で計算された測定値を含む。より詳細には、下記で図５に関して詳細に説明するように、テキストエンジン２５０は、レンダリングされたある活字行中の各ピクセル列の黒と白のピクセルの比率を測定し、それらの測定値を、提供されたフォントおよび言語の代表テキスト行の特性を識別する条件を使って、それらの測定値を供給する。テキストの測定値３６８は、読取りメトリックスエンジン２４０に供給される。読取りメトリックスエンジン２４０は、測定値および入力プロパティ３４６に方程式などを適用して、出力プロパティ値３８０を提供する。出力プロパティ値３８０には、ページサイズ３８２、ページマージン３８４、フォントファミリ３８６、フォントサイズ３８８、行高３８９、コラムギャップ３９０、画像幅３９２、コラム幅３９４、コラム数３９６、およびテキストのインデント３９８が含まれる。これらのプロパティは、呼び出しているアプリケーション２００に返される。
【００３６】
次に、図３とともに図４を参照すると、一実施形態によるテキストレイアウトプロパティを決定する方法を、流れ図で示してある。この方法は、図２および３に示す読取りメトリックスエンジン２４０およびテキストエンジン２５０において実行される機能に関する。特に、ブロック４１０では、国際テキストレイアウトの環境に関するデータを受け取る。図３に示すように、このデータは、プロパティシート２１０、テキストフロープレゼンタ３５２、およびテキストエンジン２５０のうち１つまたは複数からの要素を含むことができる。環境に関するデータには、画面サイズ、用紙サイズなどのレンダリング媒体に関するデータ、および、マージン、フォントサイズ、コラム、行高、行長、言語に関する、ユーザ定義またはシステム要求のパラメータが含まれる。ブロック４２０では、所定のフォントの、正規化された代表国際テキスト行の測定された特性、および測定された環境特性を用いて、そのデータに作用する。正規化された代表国際テキスト行の特性は、テキストエンジン２５０において測定される。読取りメトリックスエンジン２４０は、テキストエンジン２５０に結合することができ、または、アプリケーションプログラムインタフェース（ＡＰＩ）を介してテキストエンジン２５０を呼び出すことができる。環境特性は、読取りメトリックスエンジン２４０において測定される。正規化された代表国際テキスト行の測定された特性を受け取った後、読取りメトリックスエンジン２４０は、受け取った計算データ上で複数のオペレーションを実行する。読取メトリックスエンジン２４０の出力は、呼び出しているアプリケーション２００に供給される。
【００３７】
テキストエンジン２５０のオペレーションについては、図５および６で流れ図の形でさらに詳細に説明する。図示のように、ブロック５１０で、テキストエンジン２５０は、フォントファミリ識別子３６４および言語識別子３６６を受け取る。ブロック５２０で、テキストエンジンは、識別した言語および識別したフォントの、代表活字行の特性を測定する。有利には、提供される測定値は、どのようなの所与の言語およびフォントについても、フォントサイズおよび行高を、任意の所与のレイアウトで偏ることなく決定することを可能にする。ブロック５３０で、テキストエンジン２５０は、複数のフォントおよび言語の間で測定値を正規化する。次いで、その測定値を使用して、適切なサイジングを決定する。
【００３８】
開示の目的で、サイジングの条件には行高が非限定的に含まれる。行高とは、１活字行のベースラインから次の行のベースラインまでの距離である。ベースラインとは、ある書記体系の文字がその上に乗る、またはそこからぶら下がる、知覚される直線である。英語の文字の場合、ベースラインとは、その上に大文字および小文字が乗る、想像上の直線である。エックスハイトとは、小文字の標準的な高さを指し、そのフォントの小文字ｘの高さにほぼ等しい。キャップハイトとは、活字行中の大文字の高さを指し、アセンダ高と同等ではないが、それと同一視されることが多い。フォントによっては、ほとんどの大文字の高さよりもアセンダが長いもの、あるいは短いものがある。アセンダとは、小文字の１、ｔ、ｆ、ｂ、ｄ、ｈ、ｋの、エックスハイトを超える部分である。ディセンダとは、小文字のｇ、ｊ、ｐ、ｑ、ｙの、ベースラインよりも下に伸びる部分である。
【００３９】
エムは、フォントサイズと同等の測定単位である。したがって、エムは、フォントサイズが変わると同時に変わる可変単位である。本開示の目的では、エムを測定されている活字の正方形とする。例えば、フォント１２ポイントの活字でレンダリングされる場合、そのエムは、高さ１２ポイント、幅１２ポイントである。フォントが１００ポイントの活字でレンダリングされている場合、そのエムは、高さ１００ポイント、幅１００ポイントである。したがって、エムは、活字の表現されないサイズ単位として使用され、また、物理的特性ではなく、活字をデザインする方法に基づいている。その結果、フォントのデザインによっては、タイ語のように、エムの外にインクがはみ出すものもあり、また、朝鮮語のように、エムよりもずっと少ない空間しか占めないものもある。本開示の目的では、「クラスタ」とは、解析したフォントおよびテキストのレンダリングされる単位を指す。特に、クラスタは、電子テキストの行にカーソルを挿入することが可能な、地点間の印字物である。クラスタは、キーストローク、文字、またはグリフによってではなく行上の空間の欠乏によって識別され、したがってあらゆる言語に当てはまる。そのため、クラスタという用語はよく耳にする。ラテン語のフォントでは、クラスタと文字が同等の場合がある。
【００４０】
次に、図６を参照すると、図５の方法をさらに詳細に説明している。図６に記載の方法は、任意のフォント、任意の言語の任意のテキスト活字のグレー度を数値特性化する。数値特性化は、活字がページ上に置かれたときに読み手が何を見るか、すなわち、読むという動作において目が追いかけていく暗色の行に基づいている。これらの行のサイズおよびそれらの間の空間は、書記体系、スクリプトタイプ、言語および文化が異なると変わるため、その測定値は、任意の言語の任意の書記体系について適切であるようにデザインされる。テキスト行中のインク部空間を、本明細書では「ブラックリバー」と呼ぶ。特に、ブラックリバーとは、代表活字行中のインク部の最上部および最下部を含めて、所与のフォントおよび言語の単一テキスト行中においてインク部が占める総空間を指す。
【００４１】
図６では、ブラックリバーを測定する方法を説明している。ブロック６１０に示すように、フォントファミリ識別子および言語識別子を受け取った後、テキストエンジン２５０は、代表活字行中の複数のピクセル列における総ピクセルに対する黒の比率を測定する。一実施形態では、テキストエンジン２５０は、レンダリングされた活字行中の各ピクセル列における総ピクセルに対する黒の比率を測定する。黒のピクセルを有する各ピクセル列について測定した後、ブロック６２０に示すように、総ピクセルに対する黒の比率が最も高い列を黒に正規化する。
すべてのその他の列の測定値は、その黒色点に正規化される。この正規化によって、さまざまなウェイトのフォントから同等の測定値を得ることが可能になり、それによって、そのフォントの黒色点を、あらゆるフォントの間で正規化することができる。例えば、エムの１／２００として測定されたブラックリバーの最も暗い部分は、その黒色度が実際にどの程度であるかにかかわらず、１００％の黒であるとみなされる。ブラックリバーのその他の部分はすべて、０％（白）と１００％（正規化された黒、すなわちリバーの最も暗い部分）の間の値としてのグレー度が測定される。平均比率が計算され、次いで、その平均値よりも暗い最初のピクセル行と最後のピクセル行がマークされる。
【００４２】
ブロック６３０では、測定した、総ピクセルに対する黒の比率を使って、フォント高を識別する。ブロック６４０では、テキストエンジンが、フォント高を使って、本明細書では「チャネル」と呼ぶ、総ピクセルに対する黒の比率が最も高い列を含む第１の部分を識別する。この第１の部分は、平均ピクセル列よりも暗い、最初のピクセル列と最後のピクセル列を含む。ラテン語のテキストでは、このチャネルがエックスハイトと等しい。その他のスクリプトタイプでは、エックスハイトと直接的に同等のものはない。テキスト行にレンダリングされた各言語の各フォントはそのテキスト行中に暗い部分を有するので、本明細書の実施形態では、エックスハイトの代わりに、チャネルおよびチャネルに関する測定値について言及する。本明細書に記載の多くの実施形態では、チャネルは、あるスクリプトのテキスト行の適切な行高およびその他の設定を決定するための重要な測定値である。
【００４３】
ブロック６５０で、テキストエンジン２５０は、第１の部分の上の第２の部分を識別する。ブロック６６０で、テキストエンジン２５０は、第１の部分の下の第３の部分を識別する。第２の部分および第３の部分を、ここでは、それぞれ「シャロー前」および「シャロー後」と呼び、総称して「シャロー」と呼ぶ。ほとんどのスクリプトでは、一般に、識別されたチャネルの両側にシャローがある。
シャローは、活字行がインクを有するエリアであるが、すべての文字がその中に及んでいるわけではない。ラテン語では、活字が、アセンダおよびディセンダと同等のシャローを持っている。多数のアクセント記号を使用している言語は、一般に、アクセント記号を含むシャローを有する。ほぼ一様な言語は、シャローがわずかしかない、または全くないチャネルを有する言語として識別することができる。多くのアジアの言語は、チャネルだけでシャローがない言語として識別される。これらの言語は、同サイズのリバーとチャネルを有する。ブロック６７０では、テキストエンジン２５０が測定値をグラフ化して、アラインメントポイント、暗さのピークなどの識別を可能にする。
【００４４】
チャネルとシャローを識別した後、ブロック６８０で、各部分における黒対総ピクセルの比率の平均を決定する。これらの部分は、チャネル幅、シャローの前の幅、シャローの後の幅の３種類の幅の測定値を提供することによって、特定のフォントの活字行を記述する。
【００４５】
一実施形態では、テキストエンジン２５０は、最も暗いピクセル列の黒対総ピクセルの比率、代表活字行全体の黒対総ピクセルの平均比率、シャロー前の幅、シャロー前の黒対総ピクセルの比率、チャネル幅、チャネルの黒対総ピクセルの比率、シャロー後の幅、およびシャロー後の黒対総ピクセルの比率のうち１つまたは複数を含む測定値を、読取りメトリックスエンジン２４０に返す。特定のアジアの言語など、言語が縦に書かれる場合にも、横書き言語の場合の横書き活字列の測定の代わりに、その縦書き言語の縦書き活字列を測定することにより、同じ測定を行うことができる。本開示の恩恵を得た当業者が理解するように、縦書き言語の特性を決定する原理も同じであり、したがって、例えば、縦書き活字のチャネルは、横書き活字のチャネルの測定を９０度ずらしたものになる。
【００４６】
その他の実施形態では、その３つの部分とは精細度の程度が異なるアラインメントポイント、または最も暗い列に対応する測定値、または作成されたいずれかのグラフにおけるピークなど、さらなる測定値を、読取りメトリックスエンジン２４０が必要とするのに応じて、返すことができる。
【００４７】
図７を参照すると、一実施形態による、シミュレートしたテキストの写真を、対応するグラフとともに示してある。写真７１０は、ピークが、大体、キャップの上端部、エックスハイト、小文字の「ｅ」の横棒、ベースライン、およびディセンダにあることを表している、セリフ系ラテンフォントを示す。それとは対照的に、写真７２０は、アラインメントポイントが異なり、かつ一層集中している、非ラテン系のスクリプトの形を示す。
【００４８】
返される別の測定値が、エムに関連する測定値の場合がある。テキストエンジン２５０および読取りメトリックスエンジン２４０では、エムを使って、水平方向および垂直方向両方の測定値を設定する。テキストエンジン２５０が返すことができる別の測定値は、１エム当りクラスタ数であり、これも読取りメトリックスエンジン２４０に返される測定値であり得る。１エム当りクラスタ数は、フォント高の平均クラスタ幅に対する比率に等しい。
【００４９】
読取りメトリックスエンジン２４０にとって役立つその他の測定値には、エムに対する実数としてのブラックリバー幅、エムに対する実数としてのシャロー前の幅、エムに対する実数としてのシャロー後の幅、エムに対する実数としてのチャネル幅、正規化後、０＝完全に白、１＝完全に黒になるような、実数としての、チャネルおよび各社ローの平均深さ、１エム当り平均クラスタ数、および代表テキスト行中の総クラスタ数が含まれる。幅の値を、エムに対する実数として読取りメトリックスエンジン２４０に返すことができ、また、深さの値を、正規化した黒色点に対する実数として読取りメトリックスエンジン２４０に返すことができる。一実施形態では、クラスタ総数が、読取りメトリックスエンジン２４０またはテキストエンジン２５０のいずれかの中にある言語テーブル中に事前記憶されている。
【００５０】
図８では、読取りメトリックスエンジン２４０と、テキストエンジン２５０内の動作間の対話を示す流れ図において、例示的方法を説明している。ブロック８１０で、ユーザは、アプリケーションにおいて文書にマークアップする。マークアップは、言語およびフォントの指示を含む。この指示は、システムリンクを介して、またはユーザの入力により可能である。ブロック８２０で、言語およびフォントを識別する指示が、読取りメトリックスエンジン２４０に送られる。一実施形態では、テキストエンジン２５０は、読取りメトリックスエンジン２４０が測定のために呼び出すことができるフォントオブジェクトおよびＡＰＩをｅｘｐｏｓｅする。ブロック８２２で、読取りメトリックスエンジン２４０がフォントオブジェクトのインスタンスを生成した場合には、フォント識別子および言語識別子がテキストエンジン２５０に送られる。そうでない場合には、読取りメトリックスエンジン２４０は、テキストエンジン２５０を呼び出さずに言語およびフォントに作用する。例えば、読取りメトリックスエンジン２４０がそのフォントおよび言語に必要な測定値を備えたテーブルを有する場合には、テキストエンジン２５０の呼出しは不必要である。ブロック８２８では、テキストエンジン２５０内において、言語およびフォントを所定のテーブルと比較してフォント特性に関するデータを検索するか、またはその言語の代表テキストストリングを検索するかのいずれかを行うことにより、言語識別子およびフォント識別子を使用する。代表テキストストリングが検索された場合には、ブロック８２９で、そのフォントまたはフォントファミリがその言語に適用されて、代表テキストストリングが作成される。これは、単一テキスト行またはその他の適切な測定可能フォーマットであると考えられる。ブロック８３０で、テキストエンジンは、ブラックリバー、チャネル、およびシャローを測定する。ブロック８３２で、テキストエンジン２５０は、次いで、黒色点、およびすべてのその他の関連する値をパーセンテージとして正規化する。ブロック８４０で、テキストエンジン２５０は、幅および深さの測定値、活字の１エム当り平均クラスタ数、代表活字行中の総クラスタ数、および上記の測定値などの同様の測定値を返す。
【００５１】
一実施形態では、テキストエンジン２５０は、代表テキスト行中のピクセル列を、エムの１／２００の間隔で測定して、代表テキスト行中の総ピクセルに対する黒のピクセルの比率を平均レベルのグレーとして記録する。この測定は、０−２５５までの値、または２桁までのパーセントのいずれかと行うことができる。
ブロック８５０で、測定値が読取りメトリックスエンジン２４０に送られた後、読取りメトリックスエンジン２４０は、フォントサイズおよび行高を計算する。
ブロック８６０で、ユーザは、適切な大きさの、適切に間隔があいた活字で、任意の閲覧面上のページを見る。次に、図９Ａを参照すると、グラフ９００は、テキストエンジン２５０が図８に記載の測定値を計算した後の、測定されたサンプルを示す。このグラフは、図７に示すグラフの正規化版などのＴｉｍｅｓ  Ｎｅｗ  Ｒｏｍａｎの測定値を示す。示している測定値は、０（黒）から２５５（白）までの、測定された各ピクセル列の平均グレー度を含む。グラフ９００は、グレー度をパーセンテージとして表している正規化版を示す。グラフ９００では生データが正規化され、最も暗い活字行が絶対的な黒、すなわち１００％として、また最も明るいピクセルが０％として扱われている。より詳細には、グラフ９００は、ｘ軸９１０に沿って代表テキスト行高をポイントで表し、ｙ軸９２０に沿って各ピクセル列の平均グレー度をパーセンテージで表している。正規化された測定値を実線９０２で示し、チャネルおよびシャローの絶対測定値を破線９０９で示し、グレー度の中間値を直線９０６で示している。図７に示すグラフ７１０とグラフ９００との比較は、アラインメントポイント９３０、９４０を示し、また、このフォントおよび言語のエックスハイト９４０およびベースライン９３０によって表されるチャネルを示す。直線９０６と活字曲線９０２が交差する点は、データポイント２４であり、次に交差する点はデータポイント７１である。フォントの総高は９１である。１００のエムブロックの場合、エムに対する１組の実数は次の通りである。すなわち、シャロー前＝０．２４、チャネル＝０．４５、シャロー後＝０．２０、ブラックリバー＝０．９１。
【００５２】
図９Ｂは、同じ活字曲線９０２と、各シャローおよびチャネルの平均深さを表す破線９５０を有するグラフ９９０を示す。パーセンテージで表される平均深さの値を使って、行高の量を決定することができる。返される値には、シャロー前の平均深さ０．０９９、チャネルの平均深さ０．６１、およびシャロー後の平均深さ０．０３８が含まれ得る。
【００５３】
テキストエンジン２５０からの測定値は、読取りメトリックスエンジン２４０に返される。読取りメトリックスエンジン２４０は、測定値を様々な目的に使用する。読取りメトリックスエンジン２４０の機能の１つは、任意の言語のテキストが可読であるためのデフォルトフォントサイズを決定することである。従来技術のデフォルトフォントサイズは、タイプライタのＥｌｉｔｅおよびＰｉｃａ活字のフォントサイズに基づいて、１２ピッチまたは１０ポイント、１０ピッチまたは１２ポイントなど、ポイントまたはピクセル単位の組み込まれた数を使用している。読取りメトリックスエンジン２４０は、その言語および文化の読み特性、およびテキストエンジン２５０および環境的な要因によって決定される、フォントの物理的にレンダリングされる特性に基づいて、任意の所与の言語またはスクリプトタイプのテキストについて、それに適したサイズを決定することにより、新しいアプローチを採っている。読取りメトリックスエンジン２４０は、自動的かつスケーラブルであることが可能であり、文化に特有の入力およびユーザが調整可能な入力を使用することができる。
【００５４】
より詳細には、読取りメトリックスエンジン２４０は、フォントサイズを、閲覧媒体に関連する特性および言語の特性の関数として決定する、一実施形態による方法を適用する。閲覧媒体の特性には、閲覧媒体からのデフォルト距離の決定が含まれ、これは必要に応じてユーザが入力により変更することができる。
【００５５】
図１０を参照すると、流れ図が、ディスプレイからのデフォルト距離でフォントサイズを計算する方法を示している。この方法は、ブロック１０１０で、任意のディスプレイからの最小距離の指数関数関係を使用する、ディスプレイからの最小または最大デフォルト距離を決定する。一実施形態では、最小距離を１２インチ（３０．４８センチメートル）として設定し、最大距離を約２７インチ（６８．５８センチメートル）として設定する。指数曲線は急激に加速し、ディスプレイが大きいほど距離が長くなる。関数、ａｄ２＋ｂ＝Ｄは、デフォルト距離の決定に適した例示的指数関数である。この関数において、ａは、ｄ２の定乗数を表し、ｂは、ａ＋ｂ＝１２になるように、ａｄ２に追加される定数、あるいは読み手が活字ページを見ることができる最小距離を表す。Ｄおよびｄは、実際の読み距離およびディスプレイサイズの、グラフ上で識別できる点である。小文字ｄは、ディスプレイの表面の対角線をインチで表したものであり、Ｄは、ディスプレイの表面からの距離をインチで表したものである。一例では、ａ＝０．０２３５３、ｂ＝１１．９７６４７とし、ポイントに７２を乗算して変換すると、図１１のグラフに示す指数曲線が得られる。示しているように、ｘ軸は、一般的条件のディスプレイの対角線を表し、ｙ軸１１０２は、ディスプレイからの距離を表す。図１１のグラフはインチで示してあるが、この例を別の単位に変換した場合には、ａおよびｂの定数も同様に換算する必要がある。
【００５６】
デフォルト閲覧距離を決定した後は、読取りメトリックスエンジン２４０がその距離を使用して、所定のフォントの活字のデフォルトサイズを決定する。より詳細には、ブロック１０２０では、中心窩角度の三角関数、および文字密度を使って、ある環境で読むのに適した、所定のフォントの活字サイズを決定する。本明細書で使用しているように、所定のフォントの活字サイズをフォントサイズという。中心窩角度を使用して、閲覧媒体上の最も鮮明に焦点を合わせることができるエリアを決定する。このエリアを決定するために、関数は、中心窩角度の半分のタンジェントの２倍に、表示表面からの距離を乗算したものを使用する。別の実施形態では、距離の決定に使用する中心窩角度を、読み手特有の中心窩角度の入力の１つまたは複数、あるいは、約０．７５度という標準中心窩角度によって決定する。読み手特有の中心窩角度は、読み手の視力を反映することができる。例えば、読み手に特有の中心窩角度は、黄斑変性、視力低下、トンネル視野、眼病、近眼、遠視、難読症、乱視の１つまたは複数を考慮することができる。
【００５７】
中心窩角度を例示するために、図１２および１３に、どのように最も鮮明に焦点を合わせることができるエリアを決定するかを表す図を示す。図示のように、眼１２０２は、閲覧距離１２０６から閲覧面１２０４を見る。人間の眼の能力の研究は、０．７５度の中心窩角度１２０８は、眼１２０２の最も鮮明な焦点の最大角度であることを指摘している。
【００５８】
図１３には、最も鮮明に焦点を合わせることができるエリアの長さ１２１０を決定する方法を例示している。三角関数を使って、長さ１２１０を、中心窩角度の半分１３０４のタンジェント１３０２の２倍として表すことができる。人間の眼の中心窩角度は、様々な研究に基づき、約０．７５°である。傍中心窩角度は、１０〜１２°である。１２°は、焦点のピークではないが、データを知覚することができる視野であることに加え、眼の位置付けを支援するために頭の不随意運動が開始する前のおよその眼の動きの範囲である。一実施形態では、概算１６回の中心窩凝視が最適な行長である。クラスタ数は、文化に応じて定義される。
英語の行長に関する研究については、目的研究およびブックデザインの進化の観察の両方による研究の文献が十分にある。研究によれば、英語では、１回の中心窩凝視で即座に識別可能な活字は約４文字であるという。したがって、一実施形態は、最適な英語の行の推定値として、４×１６＝６４クラスタを使用している。観察によれば、英語よりも１クラスタ当りの情報を多く含む文字集合は、理解を速めるために、必要とする１凝視当りクラスタ数が少ない。これは絶対的な関係ではないため、一実施形態は、言語ごとのベースで、その言語の１中心窩凝視当りクラスタがいくつかを示すテーブルを使用している。テーブルは、言語ごとのものであってもよく、あるいは、ローマン体、アラビア語、タイ語、アジアの言語およびインド語派を非限定的に含めた言語グループのものであってもよい。
これらのグループ分けは、書記体系の特性によって行われる。任意の個別言語を、異なる、またはよりよい最適値を持つように示すことができる。
【００５９】
図１０に戻ると、ブロック１０２０では、文字密度を使ってフォントサイズを決定する。文字密度は、１エム当りクラスタ数を、１凝視当りクラスタ数で除算することによって決定することができる。言語活字の１凝視当りクラスタ数は、それぞれがその言語で読む情報密度を表す定数を有する、複数言語の１つに関連付けられた定数である。１エム当りクラスタ数とは、グラフィック密度の記述である。したがって、文字密度を、ある文字のグラフィック密度および情報密度の関数として記述することができる。一実施形態では、グラフィック密度および情報密度は、読み手にとって閲覧可能な最も鮮明に焦点を合わせることができるエリア当りの情報量によるその言語の読み特性を含めて言語に依存する。
【００６０】
一実施形態によれば、読取りメトリックスエンジン２４０は、１中心窩凝視当りクラスタ数の言語テーブルを含み、またはそれにアクセスできる。１回の中心窩凝視で把握可能なクラスタの最大数は、言語ごとの調査によるテーブルの生成によって決定することができ、あるいは、読取りメトリックスエンジン２４０へのアクセス権を与えられたユーザが入力することができる。各言語は、傍中心窩角度の何分の一、例えば１／１６などで、いくつのクラスタを見ることができるかを定義する。したがって、あらゆる言語は、確定可能な１傍中心窩角度当りクラスタ数を有する。この値を使って、行長、コラム幅などを決定することができる。一実施形態では、１行の長さで閲覧が可能なクラスタ数は、各言語につき、およそ１０個であると想定される。ある言語について決定されたクラスタ数に、アルファベット間の比較を表す数を乗算することができる。あるいは、１行中のクラスタ数を決定し、そのクラスタ数を、そのテキスト行中の人間の眼の凝視数を表す定数で除算することにより、１中心窩凝視当りクラスタ数が決定される。
【００６１】
１つまたは複数の言語の定数は、約１６である。１凝視当りクラスタ数に傍中心窩範囲中の中心窩凝視数を乗算することによって、１可読行当りの最適なクラスタ数が得られる。傍中心窩角度は中心窩角度よりも広く、また、一般に、眼が焦点を合わせることが可能な最大エリアを見ることができる角度を指す。一実施形態では、傍中心窩角度は約１０度である。上述のように、中心窩角度は約０．７５度であり、傍中心窩焦点エリア当り２文字から４文字の間までに関連する。１テキスト行中の人間の眼の凝視の定数として１６を使って、１中心窩凝視当りクラスタ数を乗算することにより、表１に示すように、各言語の１行当りクラスタ数を決定することができる。
【００６２】
表１
2004199021.tif 000003
【００６３】
図１４を参照すると、文字密度を決定する方法は、ブロック１４１０で、フォントの１エム当りクラスタ数を決定する。一例示的実施形態では、１エム当りクラスタ数はテキストエンジン２５０から得られる。ブロック１４２０で、そのフォントの１エム当りクラスタ数の、所定の中心窩角度内の可視クラスタの数に対する比率を決定する。この比率を、以下、１凝視当りのクラスタと呼ぶ。上述のように、１凝視当りのクラスタの数は、表１などのソースから得ることができ、あるいは検索することができ、それは各言語の各フォントごとに異なる。ブロック１４３０で、１エム当りクラスタ数の１凝視当りクラスタ数に対する比率に、ポイントで表した閲覧媒体の幅を乗算することによって、所与の閲覧距離における、そのフォントファミリの最適なポイントサイズを得る。ブロック１４４０で、任意選択により、ユーザまたはその他のソースによって入力されたマークアップに従って、得られたフォントサイズを最適にスケーリングする。ブロック１４５０で、最小フォントサイズおよび最大フォントサイズを決定する。より詳細には、一実施形態では、最小フォントサイズは、ユーザが１回の中心窩凝視で把握できる最大クラスタ数に基づく。最大フォントサイズは、ユーザが１回の中心窩凝視で把握でき、その活字行から意味が理解できる最小クラスタ数に基づく。別の実施形態では、最小および最大フォントサイズを、最適フォントサイズの所定のパーセンテージ、例えば、１凝視当りクラスタ数（Ｃｐｆ）のテーブル値の±２５％に基づいて決定することができる。これは、０．８に最適フォントサイズを乗算した最小フォントサイズ、および１．３３に最適フォントサイズを乗算した最大フォントサイズに変換される。別の代替実施形態では、最小フォントサイズを、レンダリングエンジンが、そのフォントを完全な状態でうまくレンダリングするために必要な出力解像度および最小ピクセル数に基づいて決定する。
【００６４】
次に、図１５を参照すると、あるフォントのテキストを閲覧媒体上で最適に読めるように調整するためのシステム１５００を示す。このシステムは、１つまたは複数のテキストパラメータ１５１０を保持するデータ構造を含む、クライアントアプリケーション２００を含む。システムはさらに、クライアントアプリケーション２００に結合された読取りメトリックスエンジン２４０を含み、読取りメトリックスエンジン２４０は、１つまたは複数のテキストパラメータ１５１０を受け取るように構成されている。読取りメトリックスエンジン２４０は、フォントの文字密度を決定するように構成されたモジュール１５２０、および、その文字密度に、眼の最も鮮明に焦点を合わせることができるエリアを乗算して、そのフォントを可読にするための最適サイズを生成するモジュール１５３０を含む。
文字密度モジュール１５２０を、そのフォントの１エム当りクラスタ１５５０を検索するように、ＡＰＩ１５４０を介してテキストエンジン２５０に結合して示してある。文字密度は、１エム当りクラスタ数を１凝視当りクラスタ数で除算することによって算出される。一実施形態では、読取りメトリックスエンジン２４０は、フォントの最適サイズ、言語活字（ｔｙｐｅ）の１凝視当りクラスタ数、１エム当りクラスタ数、および閲覧媒体からの距離の関数によって最適コラム幅を決定するように構成されたモジュールをさらに含む。システム１５００は、閲覧媒体１５６０のためのレンダリング装置をさらに含む。閲覧媒体は、印字されたページ、コンピュータの画面、パーソナルディジタルアシスタント、自筆の画像、掲示板、映画の画面、眼鏡へのインサートなどであってよい。一例として、言語が英語（１凝視当りクラスタ数は４．０）であって、モニタからの距離が１３６８ポイント（１９インチ（４８．２６ｃｍ））であって、フォントがＴｉｍｅｓ  Ｎｅｗ  Ｒｏｍａｎ（１エム当りクラスタ数が２．５８）である場合、明瞭に見えるための最適な活字サイズは、２×タンジェント０．００６５４４×１３６８×２．５８／４．０＝１１．５ポイントタイプとして得られる。別のフォントである、１エム当りクラスタ数がわずか２．３３のＬｉｎｏｔｙｐｅ  Ｐａｌａｔｉｎｏの場合、最適活字サイズは、２×タンジェント０．００６５４４×１３６８×２．３３／４．０＝１０．４ポイントタイプとして得られる。
【００６５】
言語およびスクリプトの形態が異なると、著しく異なる結果になる。例えば、Ａｒａｂｉｃ  Ｔｉｍｅｓ  Ｎｅｗ  Ｒｏｍａｎ。１凝視当りクラスタ数の文化測定値は、４．０ではなく４．４であり、１エム当りクラスタ数は２．９７である。したがって、アラビア語のＴｉｍｅｓ  Ｎｅｗ  Ｒｏｍａｎの最適可読活字サイズは、２×タンジェント０．００６５４４×１３６８×２．９７／４．４＝１２．１ポイントタイプである。
【００６６】
１凝視当りクラスタ数の値は各言語グループについて決定しなければならないが、公式自体は、トンネル視野、閲覧面からの距離、およびその他の視覚障害者のために、アクセス可能性の調整が行えるようにオープンになっている。調整は公式への入力に作用し、抽出されるデフォルト値が変更される。これらの特別な調整の中には、複数のコラム、小型装置、大型画面、高解像度モニタのような、異なる閲覧条件へのテキストの適合を支援するように自動化できるものもある。
別の実施形態では、傍中心窩角度、中心窩角度および文字密度を、ユーザの入力に従って、障害のあるユーザ、欠陥のあるユーザ、または狭視野のユーザを援助するように変更することができる。より狭い傍中心窩角度は、トンネル視野のユーザに関連する。より広い傍中心窩角度は、狭周辺視覚のユーザに関連する。より狭い中心窩角度は黄斑変性のユーザに関連する。
【００６７】
次いで図７および８とともに図１６を参照すると、図８のブロック８５０で、フォントサイズおよび行高を計算する。当技術分野で知られているように、行高の要件は、行長に応じて、また、異なる活字サイズごとに変わる。同じフォントサイズの場合でも、行高の要件は、１ページ当りのコラムの数によって変わる。
本明細書の実施形態によれば、行高を、利用可能な情報に応じて異なる方法で決定する。一実施形態では、上述のように活字サイズを決定した後、そのサイズの活字の行高を決定する。次いで、その行高を、１行中のクラスタ数、行長などに基づいて操作することができる。
【００６８】
行高を計算する方法の１つを図１６を参照しながら説明する。図示のように、読取りメトリックスエンジン２４０は、テキストエンジン２５０から、所与の言語の所与のフォントのグレー度に関する複数の計算結果を受け取る。これらの計算結果には、１エム当りクラスタ数１６１０、リバー幅１６２０、リバー深さ１６３０、チャネル幅１６４０、およびチャネル深さ１６５０が含まれる。読取りメトリックスエンジン２４０内において、最適可読行高乗算モジュール１６６０が行高を計算する。
【００６９】
より詳細には、一実施形態は、あるフォントのテキストの全体的なリバーとチャネルの対比と、そのフォントの文字密度の関係に基づいて、行高を計算することを対象としている。行高の決定に役立つ、テキストエンジン２５０からの５種類の出力１６１０、１６２０、１６３０、１６４０、１６５０をさらに詳細に説明する。第１はリバー幅である。リバー幅（Ｒｗ）は、エム正方形の乗数として、フォントの最上部インクからフォントの最下部インクまでを測定したものである。ほとんどのラテンおよびアジアのフォントではリバー幅がエム正方形よりも著しく短く、また、ほとんどアラビアおよびタイのフォントではリバー幅がエム正方形よりも著しく長いように、リバー幅は必ずしもエム正方形と同じではない。例えば、図１７を参照すると、Ｅｎｇｌｉｓｈ  Ｔａｈｏｍａ１７１０をレンダリングしたものをＡｒａｂｉｃ  Ｔａｈｏｍａ１７２０の隣に示してある。Ｔａｈｏｍａのエムのフォントサイズを、直線１７３０と１７４０の間として示す。この図は、Ｅｎｇｌｉｓｈ  Ｔａｈｏｍａがエムよりも小さく、また、右側のＡｒａｂｉｃ  Ｔａｈｏｍａがエムよりも著しく大きいことを示している。
【００７０】
図１６に戻ると、正規化したリバー深さ（Ｒｄ）１６２０は、上記に図８において説明したように、測定したテキストの代表行中の最も暗いピクセル列に正規化された、テキストエンジン２５０内の計算結果に関連する。深さの表現はすべて、最も暗いピクセル列に関連させることができる。深さは、平均的な黒色であり、所与の範囲のテキスト中のピクセルの総比率を表す。Ｒｗ×Ｒｄは、リバーの総グレー値を表す。
【００７１】
チャネルのグレー値は、同じ公式を使うが、リバーチャネル幅（ＲＣｗ）およびリバーチャネル深さ（ＲＣｄ）に基づいて計算する。チャネルのグレー値をリバーの総グレー値で除算することによって、チャネルとリバーの残り部分の対比の程度が得られる。
【００７２】
最適可読行高乗算モジュール１６６０は、チャネルのグレー値の総グレー値に対する比率を、フォントの文字密度（Ｃｐｍ）で除算して、ある行高のフォントサイズに追加すべきフォントサイズの端数を生成することによって決定される。
この数に１を加えることにより、システムは、最適な行高（ＬＯ）を、そのフォントサイズの乗数として生成する。次の方程式は、最適可読行高乗算モジュール内の動作を要約したものである。（１＋（（ＲＣｗ×ＲＣｄ）／（Ｒｗ×Ｒｄ）／Ｃｐｍ））×Ｌ？＝ＬＯ
一実施形態では、最適な行高を確定する前に、行高にマークアップ行高率（Ｌ？）を乗算する。
【００７３】
別の実施形態では、テキストエンジン２５０からの計算結果には、Ｂｈ＝シャロー前の幅、Ｂｄ＝シャロー前の深さ、Ａｈ＝シャロー後の幅、Ａｄ＝シャロー後の深さ、ＲＣｗ＝チャネル幅、ＲＣｄ＝チャネル深さ、Ｃｐｍ＝１エム当りクラスタ数、ＦＳ＝デフォルトフォントサイズが含まれ、最適可読行高乗算モジュール１６６０内では、次の公式から行高が計算される。ＦＳ／（（（ＢｈｘＢｄ）＋（Ａｈ×Ａｄ）＋（ＲＣｗ×ＲＣｄ））×Ｃｐｍ）＝行高
言い換えれば、リバーの３つの部分の幅の合計に深さを乗算した値に、１エム当りクラスタ数を乗算し、その値でフォントサイズを除算することによって行高が得られる。したがって、１０ポイントのＴｉｍｅｓ  Ｎｅｗ  Ｒｏｍａｎは、次のように計算される。１０／（（（０．２４×０．０９）＋（０．４５×０．６）＋（０．２２×０．０４））×２．５８）＝１０／（０．０２１６＋０．２７×０．００８８）×２．５８＝１０／０．７７５０３２＝１２．９
同じ方法のさらに簡易版では次の公式を使用する。ＦＳ／（Ｒｄ×Ｒｗ×Ｃｐｍ）＝Ｌ
【００７４】
その他の実施形態では、英語のテキストに使用されている、テキストの高さの１２０％に調整するという一般的な行高の調整を使用して、その他の言語の行高のグローバル化を図っている。図１８には、この既知の１２０％を使って行高を決定する別の方法を説明している。ブロック１８１０で、フォントサイズの１２０％をとって、デフォルト行高を決定する。ブロック１８２０で、そのデフォルト行高を、所定のフォントの単一クラスタの平均幅の指数関数を適用することによって変更する。より詳細には、この関数は、任意のフォントの任意の単一クラスタの平均幅と、その活字の実際の高さの二乗を合計した値の平方根であってよい。任意の国際フォントの任意のクラスタの実際の高さおよび幅は、テキストエンジン２５０において決定される。一実施形態は、次の方程式を使っている。１．２ＦＳ（Ｒｗ２＋（１／Ｃｐｍ２））１／２。これは、ＦＳをデフォルト活字のサイズ、１．２をユーザの入力または標準デフォルト行高乗数、Ｒｗを、１エム当りの、活字の上端部インク部から底部インク部までの実際の高さ、Ｃｐｍを１エム当りクラスタ数とする指数関数である。
【００７５】
一例として、デフォルトフォントサイズを１０ポイントとすると、次のように行高が計算される。１０×１．２×（０．９１２＋１／２．５８２）１／２＝１２×０．９８９１＝１１．９
したがって、１０ポイントのＴｉｍｅｓ  Ｎｅｗ  Ｒｏｍａｎの最適な行高は、１１．９ポイントである。しかし、同じ公式を、１エム当り１．０１のインク部高、１エム当り２．３３クラスタの１０ポイントのＬｉｎｏｔｙｐｅ  Ｐａｌａｔｉｎｏフォントに適用すると、最適な行高は１３．２ポイントになる。
【００７６】
別の実施形態では、行長が増加すると、行高が変更される。図１９を参照すると、流れ図に、行高の調整が、テキスト行の物理的長さまたは１行中のクラスタ数の関数に基づくことを示してある。ブロック１９１０で、１活字行当りの所望クラスタ数、および１活字行当りのクラスタ単位の最適デフォルト行長を決定する。ブロック１９２０で、１行当りの所望クラスタ数、および１行当りのクラスタ単位の最適デフォルト行長を使った商により元の活字サイズをスケーリングする。
【００７７】
フォントサイズに従って行高を決定すると、フォントサイズを変更すると行高も変更される。フォントサイズを大きくした場合、行高を見つけることは線形の関係ではない。一実施形態では、指数関係の関数を適用することによって、フォントサイズを変えた場合に行高の変更が行われる。この指数関数は、１エム当りクラスタ数を考慮することができる。元の活字サイズがわかっており、その活字サイズの行高もわかっている。より大きい活字サイズへの変更には制約がある。行高はその活字自体よりも小さくなることはできない。したがって、図２０を参照すると、グラフ２０００は、ポイント単位の所与のフォントサイズの行高が経験的に見つけられる可能性を示している。ｘ軸２００２は、ポイント単位のフォントサイズを表す。ｙ軸２００４は、ポイント単位の行長を表す。４５度の直線２０１０は、フォントサイズに等しい行高を示す。行高のサイズは、フォントサイズの増加と直接の関係を示さない。そうではなく、フォントサイズが増加すると、直線２０２０で示すように、必要とされる行高は減少する。一実施形態では、行高を自動的に決定する方法は、指数関数を使っている。この関数は、１エム当りの可変クラスタを使用している。特に、１．０２と１．０７の間の範囲の定数の累乗を使用するべき関数を使用できることが発見されている。さらに、あらゆる活字に使用可能な定数が１．０４７であり得ることが発見されている。この定数は、π÷３にほぼ等しい。別の変形形態は、下位互換性に関する。３０ポイントの活字の場合に２０％の行高を適用した場合には、その方法がどこで開始するかにかかわらず、別のフォントサイズが関連し、同じフォントサイズには同じ行高を与えるはずである。
【００７８】
次に、図２１を参照すると、流れ図にフォントサイズを決定する方法を示している。ブロック２１１０では、所定の可読行長およびフォントサイズとの関係で、行高の適切なデフォルト指定を決定する。ブロック２１２０で、指定されたデフォルトとはフォントサイズが異なることによって生じるフォントサイズの値の変化を求める。知られているように、活字が大きいほど、フォントサイズの因数として必要とされる行高は少なくてよい。従来技術の方法では、デザイナが目視による調整を行うことが要求される。活字が詰まって見える場合は、デザイナは行間を空ける。活字が空きすぎて見える場合は、デザイナは行間を詰める。ブロック２１３０で、最適デフォルトフォントサイズと実際のフォントサイズの差を求めることにより、新しい行高を自動的に決定し、ブロック２１４０で、フォントサイズの差を累乗した定数によって、行高を調整する。公式、（１．０４７（ＦＳＯ−ＦＳＡ）×（Ｌｏ／ＦＳｏ−１））×ＦＳＡ＝ＬＡは、この方法に従って新しい行高を決定するための一実施形態を表す。この公式で、ＦＳｏは、元のデフォルトフォントサイズを、ＦＳＡは新しいフォントサイズを、Ｌｏは元のデフォルト行高を、ＬＡは新しい行高を表す。
【００７９】
一例として、フォントサイズが１４ポイントのＴｉｍｅｓ  Ｎｅｗ  Ｒｏｍａｎの新しい行高を見つけるために、フォントサイズを１０ポイント、行高を１２．９ポイントとして、上述の方法に従ってそのデフォルトを求めることができる。この場合の方程式は次のようになる。（１．０４７（１０−１４）×（１２．９／１０−１）＋１）×１４＝（（１．０４７−４×０．２９）＋１）×１４＝（（０．８３２１×０．２９）＋１）×１４＝１．２４１３×１４＝１７．３８
【００８０】
読取りメトリックスエンジンの流れ
次に、図２２Ａないし図２２Ｃを参照すると、流れ図に、読取りメトリックスエンジン２４０がどのように入力に作用するか、また、その他の測定値を決定するために、計算された各測定値がどのように共用されるかを示している。図２２Ａないし図２２Ｃは、上述の実施形態が、読取りメトリックスエンジン２４０のシステム全体にどのように適合するかを示している。
【００８１】
ブロック２２０２は、１凝視当りクラスタ数テーブル、またはその他のソースからの入力を表す。ブロック２２０２はブロック２２０４に流れ、そこでは最良の１可読行当りクラスタ数を出力する。計算は、表１に従ったものでよい。
【００８２】
ブロック２２０６は、画面の対角線など、閲覧媒体のサイズの値を提供するコンピュータシステムからの入力を表す。ブロック２２０８は、閲覧媒体からのデフォルト距離を決定するための計算を表す。デフォルト距離を決定するための１方法を、図１０を参照しながら上記に説明してある。ブロック２２１０では、ユーザによって、またはマークアップページによって入力することができる入力、「フォントスケール」を提供する。このようなマークアップは、＜Ｅｌｅｍｅｎｔ  ＦｏｎｔＳｃａｌｅ＝”１．２”＞Ｅｌｅｍｅｎｔ  ｃｏｎｔｅｎｔ．＜／Ｅｌｅｍｅｎｔ＞と似たものになる。
【００８３】
ブロック２２１０、２２１２、２２０８、２２０２では、それぞれ、最適可読フォントサイズを計算するための入力を提供する。ブロック２２１４は、最適可読フォントサイズの計算を表す。上述のように、最適なフォントサイズを見つけるステップは、最初に、所定の中心窩角度範囲内の所定の距離にある閲覧媒体上に、水平面エリアを決定するステップと、所与の言語およびフォントに適した、１凝視当りクラスタ数に従って、サイズのタイプを決定するステップを含む。一実施形態では、フォントスケール２２１０は、フォントサイズを決定するための乗数を提供する。
【００８４】
ブロック２２１４では、ブロック２２１６のための入力を提供する。ブロック２２１６では、最小および最大フォントサイズを決定する。一実施形態では、最小および最大フォントサイズは、最適フォントサイズから２５％の逸脱範囲、または最小フォントサイズとしての所定の最小フォントサイズに０．８を乗算した値、または、最大フォントサイズとしての所定の最大フォントサイズに１．３３を乗算した値に基づく。一実施形態では、１回の中心窩凝視で把握できる最大クラスタ数が、所与の言語の最小フォントサイズおよび最大フォントサイズを決定する。
【００８５】
ブロック２２１８、２２２０、２２２２、２２２４は、図１５を参照しながら上記に説明した最適可読行高乗算モジュール２２２８を決定するための入力を提供する、テキストエンジン２５０からの出力を表すことができる。一実施形態では、ブロック２２２８が、マークアップまたはユーザの入力から、＜Ｅｌｅｍｅｎｔ  ＬｉｎｅＨｅｉｇｈｔＳｃａｌｅ＝”１．５”＞Ｅｌｅｍｅｎｔ  ｃｏｎｔｅｎｔ  ＜／Ｅｌｅｍｅｎｔなどの行高スケール入力２２２６を受け取る。
【００８６】
ブロック２２３０では、１行当りの最小および最大数クラスタ数を決定する。
最小および最大行長は、ユーザが入力できるコラム設定オプションを援助する。
一実施形態では、低のコラム設定が、没入して読むためのクラスタ単位の最適可読行長を提供する。中、高、最大のコラム設定オプションでは、徐々にクラスタが少なくなり、提供される行が短くなる。「単一」のコラム設定は、クラスタ単位の行長を、没入して読むための標準を超えて延長する。
【００８７】
一実施形態では、インクリメントが、１行当りの最適クラスタの２分の１からその最適値の１．１６７倍までの範囲で一様である。クラスタ単位の最小行長（Ｃｍ）およびクラスタ単位の最大行長（ＣＭ）を決定するために、次の方程式を適用する。Ｃｍ＝０．５×Ｃｐｌ、ＣＭ＝１．１６７×Ｃｐｌ
１行当りの最小および最大クラスタ２２３０は、１最適可読行当りクラスタ数２２０４、最小および最大可読フォントサイズ２２１６、および１エム当りクラスタ数２２１２とともに、ブロック２２３２の入力である。ブロック２２３２では、最適、最小および最大コラム幅が決定される。
【００８８】
最小コラム幅は、最小フォントサイズを計算し、最小フォントサイズに１行に可能な最小クラスタ数を乗算することによって決定することができる。次の方程式は、それぞれ、最適、最小、および最大コラム幅を求める。ＣＷｏ＝ＦＳｏ÷Ｃｐｍ×Ｃｐｌ（１最良可読行当りクラスタ数）、ＣＷｍ＝ＦＳｍ÷Ｃｐｍ×Ｃｍ（１最良可読行当り最小クラスタ数）、ＣＷＭ＝ＦＳＭ÷Ｃｐｍ×ＣＭ（１最良可読行当り最大クラスタ数）。
【００８９】
最適な最小および最大コラム数２２４２を決定する前に、読取りメトリックスエンジン２４０は、まず可能な有効原稿幅２２４０を決定する。有効原稿エリアとは、ページのマージンの内側のレイアウトエリアである。可能な有効原稿エリアは、ウィンドウのサイズとユーザ定義のマージン設定の差である。マージンは、ページの最も短い寸法に基づいて計算される。したがって、評価ステップでは、最初に、ページの縦寸法と横寸法のどちらが短いかを決定する。次いで、マークアップ中で要求されているマージンの量を、短い方の寸法から差し引く。その結果が、有効原稿エリアである。可能な有効原稿幅を決定するための入力には、ウィンドウ幅（ＷＷ）２２３４、ウィンドウ高（ＷＨ）２２３６、ユーザのマージン設定（ＭＰ）２２３８が含まれる。したがって、可能な有効原稿エリアの幅（ＬＷｏ）を決定するには、マークアップのマージン設定（ＭＰ）をウィンドウ幅（単位はポイント）から差し引き、かつウィンドウの最も短い寸法を乗算する。すなわち、ＷＷ−（最小（ＷＷ，ＷＨ）×ＭＰ×２）。
【００９０】
可能な有効原稿２２４０および最適、最小および最大コラム幅（それぞれ、ＣＷｏ、ＣＷｍ、ＣＷＭ）２２３２は入力を提供して、最適、最小および最大コラム数（それぞれ、ＣＣｏ、ＣＣｍおよびＣＣＭ）２２４２を決定する。一実施形態では、コラム数を決定するために、方程式が、それぞれの幅が可能な有効原稿幅内に収まる、コラムの数を計算する。その出力は、そのページに収まる、最小、最大および最適コラム数の範囲を提供する。可能な有効原稿幅をコラム幅で除算することによって、最小、最大、および最適コラム幅について可能なコラム数（ＣＣ）を計算することができる。次の方程式を適用して、最適、最小、および最大コラム数を決定する。ＣＣｏ＝ＬＷｏ÷ＣＷｏ、ＣＣｍ＝ＬＷｏ÷ＣＷＭ、ＣＣＭ＝ＬＷｏ÷ＣＷｍ
ブロック２２４４および２２４６を参照すると、コラム数を決定した後、読取りメトリックスエンジン２４０は、その総数およびユーザ入力のコラム設定を使って、実際の好ましいコラム数を決定する。
【００９１】
ブロック２２４２の方程式の値は自然数のコラム数にならないため、実際の数の計算が必要である。ブロック２２４２で、コラム設定２２４４を通して要求された実際のコラム数を、適切な自然数（ＣＣＡ）に四捨五入する。一実施形態では、ブロック２２４６は評価的であるである。コラム設定＝「単」（「０」）の場合、ＣＣＡは自動的に１になる。コラム設定＝「低」（「１」）の場合、ＣＣＡは、ＣＣｏを四捨五入した値になる。
【００９２】
コラム設定（ＣＰ）＝「中／高」（２／３）の場合は、ＣＣＡを計算しなければならない。
【００９３】
コラム設定（ＣＰ）＝「最大」（４）の場合、ＣＣＡはＣＣＭを四捨五入した値になる。
【００９４】
「中」および「高」の計算結果は、「最適」と「最大」の間の３分の１および３分の２になる。したがって、ＣＣＡは、次の式の値を四捨五入して求めることができる。
【００９５】
（（ＣＣＭ−ＣＣｏ）÷３）＋ＣＣｏ（中）
（（（ＣＣＭ−ＣＣｏ）÷３）×２）＋ＣＣｏ（高）
次の擬似コードは、ブロック２２４６の動作を例示するものである。
【００９６】
ＩＦ  ＣＰ＝０
ＴＨＥＮＣＣＡ＝１
ＥＬＳＥＣＣＡ＝（（（ＣＣＭ−ＣＣＯ）／３）×（ＣＰ−１））＋ＣＣＯ自然数のコラム数にするための四捨五入は、要求されたコラム数が０．７５を超える端数コラムを含む場合には切り上げ、そうでない場合には切り下げを行う。この０．７５という値は、ユーザまたは作成者の入力により変更することができる。
【００９７】
ブロック２２４８では、有効原稿幅を決定し、ブロック２２３２から最適、最小、および最大コラム幅、ブロック２２４０から可能な有効原稿幅、ブロック２２４４からコラム設定、ブロック２２４６からコラム数の入力を受け取る。
【００９８】
実際の有効原稿幅（ＬＷＡ）は、前に計算された可能な有効原稿幅（ＬＷＯ）よりも大きくなることはないため、その計算は、その計算された値を可能な幅と比較して、どちらが小さいかを確認する。小さい方が確定される。有効原稿幅の計算は、有効原稿幅の計算には、コラム設定のユーザのマークアップに基づく特別な場合もある。コラム設定＝「単」の場合、ブロック２２４８は、１行当りクラスタ数２２０４およびフォントサイズ２２１４のパラメータの範囲内に収まる大きさのコラムをページ上に提供する。コラム設定が「低」の場合は、読取りメトリックスエンジン２４０が最適な読みを試みる。より高いコラム設定は、利用可能な空間幅による制限を受けることがある。次の擬似コードは、有効原稿幅の決定を例示するものである。
【００９９】
ＩＦ  ＣＰ＝０、
ＴＨＥＮ  Ｍｉｎｉｍｕｍ  ｏｆ  ＣＷＭ  ｏｒ  ＬＷｏ＝ＬＷＡ
ＥＬＳＥ
ＩＦ  ＣＰ＝１、
ＴＨＥＮ  Ｍｉｎｉｍｕｍ  ｏｆ（ＣＣＡ×ＣＷｏ）＋（ＣＷｏ×（ＣＰ−１）×０．０７５）ｏｒ  ＬＷｏ＝ＬＷＡ
ＥＬＳＥ  ＬＷｏ＝ＬＷＡ
【０１００】
コラム数２２４６および有効原稿幅２２４８はブロック２２５０への入力であり、ブロック２２５０では、実際ののど幅（ＣＧＡ）を計算する。のど幅は、マークアッププロパティのコラムギャップに等しくてよい。１つの相違点は、ブロック２２５０の測定単位がコラムの端数に基づくことが可能なことであるが、マルチコラムスプレッドにおけるコラムの測定にわずかに影響を与えるだけである。次の方程式によって、実際ののど幅（ＣＧＡ）を決定することができる。ＬＷＡ÷ＣＣＡ×０．０７５＝ＣＧＡ
【０１０１】
ブロック２２５２を参照すると、実際ののど幅が決定すると、実際のコラム幅（ＣＷＡ）を決定することができる。これは、マークアッププロパティのコラム幅に等しい可能性がある。コラム数、有効幅およびのどがわかると、次の方程式を使って、正確なコラム単位を計算することができる。（ＬＷＡ÷ＣＣＡ）−（（ＣＣＡ−１）×ＣＧＡ）＝ＣＷＡ
【０１０２】
ブロック２２５４を参照すると、読取りメトリックスエンジン２４０が、ブロック２２５２、２２１２、２２１４、２２３０からの入力を使って、実際のフォントサイズ（ＦＳＡ）を計算する。一実施形態では、実際のフォントサイズを、そのレイアウトの推奨フォントサイズ（ＦＳｒ）を計算することによって実施する。次いで、その推奨フォントサイズを、最小フォントサイズおよび最大フォントサイズと照合して、そのフォントサイズが前に計算された範囲内に収まるようにする。最初のステップはまた、その行が、その行中に現れるクラスタの数のために、最適フォントサイズを使用するには長すぎる、または短すぎるかどうかを判定する条件プロセスでもある。最適フォントサイズにおいてクラスタ数の範囲を超えた場合にのみ、フォントのサイズが変わる。次の擬似コードは、ブロック２２５４の計算を実行することができる。
【０１０３】
ＩＦ：ＣＷＡ＞ＦＳｏｘＣＭ：Ｃｐｍ
ＴＨＥＮ  ＣＷＡ÷ＣＭ×ＣＰｍ
ＥＬＳＥ  ＩＦ：ＣＷＡ＜ＦＳｏ×Ｃｍ÷ＣＰｍ
ＴＨＥＮ：ＣＷＡ÷Ｃｍ×Ｃｐｍ
ＥＬＳＥ：ＦＳｏ＝ＦＳｒ
実際のフォントサイズ（ＦＳＡ）を確定するためのバウンドチェックも条件付きである。
ＩＦ：ＦＳｒ＞ＦＳＭ
ＴＨＥＮ：ＦＳＭ
ＥＬＳＥ  ＩＦ：ＦＳｒ＜ＦＳｍ
ＴＨＥＮ：ＦＳｍ
ＥＬＳＥ：ＦＳｒ＝ＦＳＡ
【０１０４】
次に、ブロック２２５６を参照すると、実際の１行当りクラスタの計算が、ブロック２２５４およびブロック２２５２で決定された値を使って実行される。実際の１行当りクラスタは、特定のフォントの適切な行高の量を決定する前に決定される。次の方程式によって、１行当りクラスタが求められる。ＣＷＡ÷ＦＳＡ×Ｃｐｍ
【０１０５】
ブロック２２５８を参照すると、読取りメトリックスエンジン２４０が、実際の行高（ＬＡ）を、この環境の最も可読性が高いテキストに適用される、フォントサイズの乗数として決定する。実際の行高を決定する方法は、少なくとも２種類の調整を含む。第１に、読取りメトリックスエンジン２４０は、ＦＳＡ？ＦＳｏの場合に、そのフォントサイズの行高を最適化する。この最適化によって、大きいフォントの行高が小さいフォントに比例して増えないことが保証される。次に、読取りメトリックスエンジン２４０は、その行長の行高を調整する。次の方程式により、最適化と調整が実施される。（（ＣＡ×（１．０４７（ＦＳｏ−ＦＳＡ）×（Ｌｏ−１）））÷Ｃｐｌ）＋１
この方程式の（１．０４７（ＦＳｏ−ＦＳＡ）×（Ｌｏ−１）の部分が、フォントサイズを調整する。残りの部分は行長を調整する。得られた結果は、実際のコラム幅の実際のフォントサイズの最適な行高である。
【０１０６】
図２０に戻ると、方程式のフォントサイズの部分を図２０に示してある。図２３は、行長の調節のグラフ２３００を示す。図示のようにｘ軸２３０２はフォントサイズを表し、ｙ軸２３０４は行高を表す。直線２３２０（２０２０と同じ）を、半分の行長用に調整したものを直線２３２３として、１．５倍の行長用に調整したものを直線２３３０に示す。
【０１０７】
図２２Ａないし図２２Ｃに戻ると、ブロック２２６０では、実際のデフォルトヘッディングフォントサイズが、ボディテキストのフォントサイズの場合とほぼ同じように計算される。ただし、ユーザが設定可能な最小１行当りクラスタ（Ｃｍ）の０．７５倍および実際の有効原稿エリア（ＬＷＡ）に基づいている。次の方程式が適用される。ＨＦＳＡ＝ＬＷＡ÷（０．７５×Ｃｍ）×Ｃｐｍ
一実施形態では、ヘッディングフォントサイズにより、読取りメトリックスエンジン２４０のポイント出力のためのスケールの上端部が固定される。
【０１０８】
ブロック２２６２に戻ると、ヘッディングフォントサイズのデフォルト行高（ＨＬＡ）が、ボディテキストのフォントサイズ２２５８の実際の行高と同じ方程式に従って決定される。乗数は、次のように、ＦＳＡおよびユーザ設定の最小１行当りクラスタ（Ｃｍ）の０．７５倍ではなく、ＨＦＳＡに基づいて生成される。
（（０．７５×Ｃｍ×（１．０４７（ＦＳｏ−ＨＦＳＡ）×（Ｌｏ−１）））÷Ｃｐｌ）＋１＝ＨＬＡ
【０１０９】
行高は、行の長さおよびフォントのサイズに基づいてフレキシブルであり、フォントサイズの乗数については、ボディテキストサイズとヘッディングサイズでは異なる連続体を形成する。したがって、ボディテキストの行高がフォントサイズの１．１６倍のときに、ヘッディングフォントの行高がヘッディングフォントサイズの１．０５倍でしかないことがある。
【０１１０】
次にブロック２２６４を参照すると、実際のヘッディングフォントサイズ２２６０および実際のフォントサイズ２２５４の入力を使って、読取りメトリックスエンジンのポイントが決定される。読取りメトリックスエンジンのポイントは、２つのタイポグラフィ基準ポイント、すなわちレイアウトの最適可読フォントサイズ、およびウィンドウ中のフォントの最適なトップレベルヘッディングサイズに関連する。これらの間で、読取りメトリックスエンジン２４０は１つの設定されたインクリメント数をプロットする。そのそれぞれは、そのフォントファミリについてタイポグラフィポイントとして交差する。１／７２インチ（約０．０３５３センチメートル）の「実」ポイントと、読取りメトリックスエンジンのポイントの間で移動させるために、上端部および底部について同等物を作成することができる。
【０１１１】
読取りメトリックスエンジンのポイントの値は、デフォルトウィンドウフォントサイズと、計算された実際のフォントサイズの比較に基づいている。デフォルトは１２ポイントである。したがって、読取りメトリックスエンジン２４０の値への変換においては、１２ポイントの活字の参照は、どれもＦＳＡの参照して解釈される。１２ポイントに満たないサイズは、ＦＳＡを１２の部分に分ける乗数として解釈される。したがって、
読取りメトリックスエンジンのポイント＝ＦＳＡ÷１２
【０１１２】
しかし、１２ポイントを超える読取りメトリックスエンジンのポイントは、必ずしも１２ポイント以下のポイントの値と同じではない。上記の読取りメトリックスエンジンのポイントの値は、事前設定された４８ポイントの最適ヘッディングサイズ（Ｗｉｎｄｏｗｓ（登録商標）のテキストフォントサイズのデフォルトなどのデフォルト）と、１２ポイントのボディテキストサイズの間の空間の分割に基づいている。したがって、１２ポイントを超える場合には、次の公式になる。
読取りメトリックスエンジンのポイント＝（ＨＦＳＡ−ＦＳＡ）÷３６
【０１１３】
任意のマークアップしたフォントサイズ（ＦＳμ）の出力サイズを計算するには、以下のような複合公式になる。
ＩＦ，ＦＳμ＝１２、
ＴＨＥＮ，ＦＳμ×ＦＳＡ÷１２
ＥＬＳＥ，（（ＦＳμ−１２）×（（ＨＦＳＡ−ＦＳＡ）÷３６））＋ＦＳＡ
【０１１４】
この演算の結果、ＸＸＳｍａｌｌ、ＸＳｍａｌｌ、Ｓｍａｌｌ、Ｍｅｄｉｕｍ、Ｌａｒｇｅ、ＸＬａｒｇｅ、ＸＸＬａｒｇｅにおけるようなカスケードスタイルシート（ＣＳＳ）などの規格から生成されるフォントサイズのデフォルト測定値、および、ヘッディングレベル１〜７すべてのデフォルト値を含めて、読取りメトリックスエンジンのポイントの値に従って、任意のマークアップされたフォントサイズを解釈することができる。読取りメトリックスエンジンのポイントがフォントサイズのポイントにしか適用されず、その他のどのポイント単位の測定値にも適用されないことに注意されたい。
【０１１５】
ブロック２２６６を参照すると、実際のマージン値は「マージン」と呼ばれる単位であって、これは、いくつかの他の単位（特にコラム）の値を調整する組み合わせにも使用される場合がある。実際のマージン（ＭＡ）は、有効原稿幅（ＬＷＡ）とウィンドウ高のうち少ない方、およびマージン設定（ＭＰ）から逆算される。ウィンドウ高が有効原稿幅よりも少ない場合には、実際のマージンは、ウィンドウ高にマージン設定を乗算した値になる。しかし、有効原稿幅がウィンドウ高よりも少ない場合には、読取りメトリックスエンジンは、有効原稿幅を、１からマージン設定を差し引いた値で除算したものから逆算する。したがって、マージン（ＭＡ）を求める公式は次の通りである。
ＩＦ，ＷＨ＜ＬＷＡ
ＴＨＥＮ，ＷＨ×ＭＰ
ＥＬＳＥ，（（ＬＷＡ÷（１−２ＭＰ））−ＬＷＡ）÷２
【０１１６】
ブロック２２６８を参照すると、過去５００年にわたってレイアウトデザイナの基本的ツールがグリッドである。しかし、グリッドは、常に、所与のページサイズの１種類の出版物にのみ関連する静的ツールとみなされてきた。次のように述べている文献があり（例えば、非特許文献１参照）、それは、参照として本明細書に組み込む。
【０１１７】
デザイナのグリッドは、特定のコンテントを、それが占める精確な空間に関連させて編成する。グリッドが作動すると、デザイナは、グリッドのフレームワーク内に、様々な要素を含む多くの異なるレイアウトを作成することができる。出版物、広告キャンペーン、またはシリーズのデザインで使用すると、それぞれのユニットの内容に著しい変化があっても、一連の連続性を感じさせる。
【０１１８】
この著者は、この著書においても、またその後の著書（例えば、非特許文献２参照）においても、良好なグリッドの重要性と必要性を強調しているが、グリッドの静的な性質こそが、グリッドをデザイナが使用するのに有用なものとしていることを繰り返し強調している。しかし、ディスプレイのサイズや形状が前もってわからない電子の世界のデザイナ達は、ディスプレイのサイズおよび形状を前もって固定することなしには信頼できるグリッドが作成できないことで苦労している。
【０１１９】
読取りメトリックスエンジン２４０は、様々なディスプレイおよびフォントサイズに対して動的かつスケーラブルであるグリッドユニット（ＧＵ）２２６８を出力する。ブロック２２６８の入力には、実際のコラム幅（ＣＷＡ）２２５２、実際のフォントサイズ（ＦＳＡ）２２５４、１最良可読行当りクラスタ数（Ｃｐｌ）、１エム当りクラスタ数（Ｃｐｍ）が含まれる。各グリッドユニットの幅は、実際のコラム幅（ＣＷＡ）とバランスをとった最適な１行当りクラスタ（Ｃｐｌ）の決定に基づいている。方程式では、Ｃｐｌを６で除算し、次いで、そのＦＳＡで、その長さの何単位が、ＣＷＡに収まるかを決定する。端数単位は、全グリッドユニットの幅に均等に割り振られる。したがって、
ＧＵＡ＝ＣＷＡ÷Ｔｒｕｎｃ（（６×ＣＷＡ×Ｃｐｍ）÷（ＦＳＡ×Ｃｐｌ））
グリッドは、その幅に基づく単一の測定値を有する。グリッドユニットを高さの単位の値として使うと、幅の値と同じ値になる。一実施形態では、グリッドユニットが動的であり得て、縦方向の空間を横方向の空間とは異なって分割することができる。
【０１２０】
ブロック２２７０を参照すると、コラム単位は、高さおよび幅で使用すると異なる寸法になる。したがって、マークアップで使用した場合、１コラムの幅が、１コラムの高さと異なる測定値になる。一実施形態では、実際のコラムの高さを、自然数の行数で除算することができる。したがって、ウィンドウ高（ＷＨ）からマージンを引くと、可能な有効原稿高（ＬＨＯ）に等しくなる。ＬＨＯを行（ＬＡ）で除算して切り捨てた値に行を乗算すると、コラム高（ＣＨ）に等しくなる。言い換えれば、ＷＨ−（２×ＭＡ）（あるいは、マークアップが１ＭＡマージンよりも深いことを指示する場合には他の倍数）＝ＬＨＯ
（（ＬＨＯ／ＬＡ）を切り捨てた値）×ＬＡ＝ＣＨ
【０１２１】
ブロック２２７２を参照すると、実際のページ高（ＰＨ）は、コラム高に上部および底部マージンを加えたものに等しい。したがって、ＰＨ＝ＣＨ＋２ＭＡ（あるいは、マークアップが、上部または底部いずれかで１ＭＡマージンよりも深いことを指示する場合には他の倍数）。
【０１２２】
ブロック２２７４を参照すると、実際のページ幅（ＰＷ）は、コラム幅、のど幅、および左右マージンの和に等しい。したがって、
ＰＷ＝（ＣＷＡ×ＣＣＡ）＋（ＣＧＡ×（ＣＣＡ−１））＋（２×ＭＡ）
したがって、このページの高さは、幅とは異なる寸法であり、これらの高さおよび幅は、ウィンドウのサイズとは等しくないことがある。
【０１２３】
図２に戻って、図２２Ａないし図２２Ｃとともに参照すると、高さ、コラム、およびフォントサイズを決定するための上記の方法は、テキストをレンダリングする目的で、閲覧媒体上で読むことができるための最適なサイズを自動的に決定することを可能にする。それぞれの場合において、本明細書で提供している方法を実施するための適切な装置は、それらの方法を実施するためのマイクロセッサなどのコンピュータコンポーネントを含むことができる。例えば、最適なフォントサイズを決定する目的で、プリンタまたはレンダリング装置と通信を行うことができるプリンタまたはハンドヘルドコンピューティングデバイスなどの装置は、閲覧媒体の幅および閲覧媒体からの距離を入力として受け付け、あるフォントの最適なサイズおよび行高を出力として提供することができ、あるいは、決定した最適なサイズおよび行高を使って自動的に出力することができる。この装置はまた、コンピュータ、ポータブルコンピューティングデバイス、または、プリンタなどの中に設置されたマイクロプロセッサであってもよい。プリンタまたは装置の出力は、その閲覧媒体であり得る。また、閲覧媒体は、印字されたページ、画面、無線で接続された閲覧媒体、掲示板、画像、または任意のフォントレンダリング媒体であってよい。実施形態によっては、閲覧媒体のサイズ、および閲覧媒体からの距離を、ネットワークを介して、またはインターネット接続などを介したクライアントネットワーク環境で入力することができる。
【０１２４】
上述の図２２Ａないし図２２Ｃは、図２に示すレイアウトエンジン２０２の中で発生する動作を示す。次に図２４を参照すると、一実施形態は、レイアウトエンジン２０２を国際変換機構とともに使用することを対象としている。この状況の国際変換機構は、所与の言語のテキストを変換して異なる言語の出力を提供することができる、当技術分野で知られているソフトウェアタイプの変換機構を含む。例えば、特定のユニバーサルリソースロケータ（ＵＲＬ）のロケーションに配置されたテキストを別の言語に変更する、本明細書に記載の実施形態に適する、インターネット上で入手可能な既知の変換機構がある。図２４を参照すると、レイアウトエンジン２０２およびアプリケーション２００を含む構成図を示してある。アプリケーション２００は、図１に示すコンピュータ１１０上で実行する任意のアプリケーションであってよい。この実施形態の場合、該当するアプリケーションプログラムには、例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄ、Ｍｉｃｒｏｓｏｆｔ  Ｐｕｂｌｉｓｈｅｒ、ＱｕａｒｋＸＰｒｅｓｓ、Ａｄｏｂｅ  ＩｎＤｅｓｉｇｎ、および、ブラウザまたはＭｉｃｒｏｓｏｆｔ  Ｏｕｔｌｏｏｋ（登録商標）などの電子メールタイプのアプリケーションと関連してなど、サーバ接続で、またはサーバ接続上で実行するその他のアプリケーションが含まれる。アプリケーション２００は、プロパティシート２１０およびプロパティ値２２０を含むものとして示してある。ただし、一実施形態では、プロパティシート２１０およびプロパティ値２２０はアクセスされるコンポーネントであって、アプリケーション２００は、プロパティシート２１０コンポーネントおよびプロパティ値２２０コンポーネントの内容を供給する別のアプリケーションへのリンクのみを有する。図２４は、接続２４７０を介してアプリケーション２００に結合される外部国際変換機構（an external international translator）２４６０をさらに示す。アプリケーション２００が、インターネットを介して、または、エリアネットワークなど、ネットワーク化された変換機構へのサーバ接続を介して変換機能にアクセスする実施形態では、外部国際変換機構を外部コンポーネントとして示す。あるいは外部国際変換機構は、コンピュータシステム中の中央バスを介してアクセス可能であるなど、アプリケーション２００のみの外部機構である。図２４とともに図２５を参照すると、一実施形態では、ブロック２５１０で、外部国際変換機構は、アプリケーション２００が作成した、またはアプリケーション２００が受け取ったテキストを変換する。ブロック２５２０に示すように、外部国際変換機構２４６０によるプロパティの変更が、プロパティシート２１０またはプロパティ値２２０中の要素を変更するためにアプリケーション２００に供給されるか、あるいは、直接、レイアウトエンジン２０２に供給される。レイアウトエンジン２０２は、国際変換機構（an international translator）２４６２を備えることはできるが、この実施形態の場合、必要ではない。存在する場合には、外部国際変換機構２４６０は、国際変換機構２４６２にデータを送り、またそこからデータを受け取る（ブロック２５１０）。国際変換機構２４６２は、外部国際変換機構２４６���とレイアウトエンジン２０２の間の途切れのない対話を可能にする互換性コンポーネントを提供する位置実施形態では、外部国際翻訳機構２４６０は、ある言語の変換済みテキストと基礎となるテキストをアプリケーション２００に供給する。次いで、アプリケーション２００は、接続２８０を介して関連するデータをレイアウトエンジン２０２に送る（ブロック２５２０）。
次いで、レイアウトエンジン２０２は、上記のデータに作用して、可読性パラメータをアプリケーション２００に供給する（ブロック２５３０）。より詳細には、レイアウトエンジン２０２は、読取りメトリックスエンジン２４０およびテキストエンジン２５０を使って、アプリケーション２００によって、および／または外国際変換機構２４６０から直接、受け取ったデータに作用して、テキストの変換先の言語に適したコラム、行高、フォントサイズなどを使った可読フォーマットで、変換済みテキストを供給する。
【０１２５】
別の実施形態では、図２６に示すように、アプリケーション２００外部国際翻訳機構と対話せず、レイアウトエンジン２０２に、テキストデータと、提供言語および１つまたは複数の出力所望言語を表す言語識別子とを供給する（ブロック２６１０）。国際変換機構２４６２は、次いで、言語識別子およびテキストを受け取り、構造／レイアウト入力フィルタ２３０が、読取りメトリックスエンジン２４０およびテキストエンジン２５０で動作可能なデータ構造を作成するのに必要なパラメータを決定する目的で、変換済みテキストを供給する（ブロック２６２０）。したがって、一実施形態では、アプリケーション２００は、１言語のデータをレイアウトエンジンに供給し、アプリケーション２００が、所望されている各言語の、個々の言語に適した表示にフォーマットされたテキストを、複数言語で表示することを可能にするデータを受け取ることができる。したがって、例えば、アプリケーション２００がいくつかの国においてクライアントマシンにサービスしているサーバ上で実行している場合、サーバグループ中の各ディスプレイは、その言語および該当するディスプレイに適したサイズおよびフォーマットの、適切な言語のテキストを受け取ることになる。電子メールプログラムなどを実行しているサーバの場合、アプリケーション２００は、Ｍｉｃｒｏｓｏｆｔ  Ｏｕｔｌｏｏｋ（登録商標）など、それぞれのクライアントマシン上で動作していることがある。または、Ｕｎｉｘ（登録商標）などのサーバ上で実行していることがある。また、サーバは、例えば交換サーバタイプであってよい。アプリケーション２００を実行しているサーバまたはクライアントマシンは、どのような言語のテキストでも受け取り、レイアウトエンジン２０２と対話して、受け取ったどの言語も、現地の言語、または国際変換機構２４６２中にプログラムされている選択言語に自動的に変換し、また、変換済みテキストを言語およびディスプレイに合わせて適切にフォーマットするために必要なパラメータを、アプリケーション２００に出力するように構成することができる。
【０１２６】
本発明の原理を適用できる多くの可能な実施形態を鑑みて、図面の図に関して本明細書に記載している実施形態は例示にすぎず、本発明の範囲を限定するものとして解釈すべきではないことを理解されたい。例えば、当業者は、ソフトウェアで示している、例示の実施形態の要素がハードウェアとして実装でき、またその反対も可能であること、あるいは、例示の実施形態の構成および詳細を、本発明の趣旨から逸脱することなく、変更することが可能であることを理解されよう。したがって、本明細書に記載の本発明は、頭記の特許請求の範囲およびその同等物の範囲内に入る実施形態すべてを考えている。
【図面の簡単な説明】
【図１】本発明が常駐する、例示的コンピュータシステムを全体的に示す構成図である。
【図２】本発明の一実施形態によるコンピュータシステム内における、例示的データフローを示す構成図である。
【図３】本発明の一実施形態による、図２に示すデータフローを説明する、より詳細な構成図である。
【図４】本発明の一実施形態による、国際テキストの特性を決定する方法を示す流れ図である。
【図５】本発明の一実施形態による、国際テキストの特性を決定するためのより詳細な方法を示す流れ図である。
【図６】本発明の一実施形態による、国際テキストの特性を決定するためのより詳細な方法を示す流れ図である。
【図７】本発明の一実施形態による方法を適用することによって得られるグラフおよびテキストを表す２枚の写真である。
【図８】本発明の一実施形態による、行高およびフォントサイズを自動的に決定する方法を示す流れ図である。
【図９Ａ】本発明の一実施形態による、フォント特性を決定する方法を実施することにより得られるグラフを示す図である。
【図９Ｂ】本発明の一実施形態による、フォント特性を決定する方法を実施することにより得られる別のグラフを示す図である。
【図１０】本発明の一実施形態による、フォントサイズを決定する方法を示す流れ図である。
【図１１】本発明の一実施形態による、閲覧距離に関連してテキスト特性を決定するのに適した曲線を示すグラフである。
【図１２】本発明の一実施形態に従って、最も鮮明に焦点を合わせることが可能なエリアをどのように決定するかを示すグラフである。
【図１３】本発明の一実施形態に従って、最も鮮明に焦点を合わせることが可能なエリアを決定するために、どのように三角関数を適用するかを示すグラフである。
【図１４】本発明の一実施形態による、最大および最小フォントサイズを自動的に決定する方法を示す流れ図である。
【図１５】本発明の一実施形態に従ってフォントサイズを決定するために使用するデータフローを示す構成図である。
【図１６】本発明の一実施形態に従ってテキスト特性を決定するために使用するデータフローを示す構成図である。
【図１７】本発明の一実施形態に従って幅が変化する、異なる言語の同じフォントの例を示す図である。
【図１８】本発明の一実施形態による、フォントサイズを自動的にスケーリングする方法を示す流れ図である。
【図１９】本発明の一実施形態による、１行中のクラスタの数の関数に基づいて、行高を調整する方法を示す流れ図である。
【図２０】本発明の一実施形態に従って、所与のポイントサイズの文字の行高が経験的に見つけられる可能性を示すグラフである。
【図２１】本発明の一実施形態による、デフォルト行高の調整を決定する方法を示す流れ図である。
【図２２Ａ】本発明の一実施形態による読取りメトリックスエンジン内のデータフローの一部を示す構成図である。
【図２２Ｂ】本発明の一実施形態による読取りメトリックスエンジン内のデータフローの別の一部を示す構成図である。
【図２２Ｃ】本発明の一実施形態による読取りメトリックスエンジン内のデータフローの別の一部を示す構成図である。
【図２３】本発明の一実施形態による行長の決定を示すグラフである。
【図２４】本発明の一実施形態に従って、コンピュータシステム内で国際変換プログラムを使用するデータフローを示す構成図である。
【図２５】本発明の一実施形態による、諸実施形態との組み合わせで変換プログラムを使用する方法を示す流れ図である。
【図２６】本発明の一実施形態による、レイアウトエンジン内で変換プログラムを使用する方法を示す流れ図である。
【符号の説明】
１００  コンピューティングシステム環境
１１０  コンピュータ
１２０  処理装置
１２１  システムバス
１３０  システムメモリ
１３１  ＲＯＭ
１３２  ＲＡＭ
１３３  基本入出力システム（ＢＩＯＳ）
１３４，１４４  オペレーティングシステム
１３５，１４５  アプリケーションプログラム
１３６，１４６  その他のプログラムモジュール
１３７，１４７  プログラムデータ
１４０，１５０  インタフェース
１４１  ハードディスクドライブ
１５１  磁気ディスクドライブ
１５５  光ディスクドライブ
１５６  リムーバブルの不揮発性光ディスク
１６０  ユーザ入力インタフェース
１６１  ポインティングデバイス
１６２  キーボード
１７０  アダプタ
１７１  ローカルエリアネットワーク（ＬＡＮ）
１７２  モデム
１７３  広域エリアネットワーク（ＷＡＮ）
１８０  リモートコンピュータ
１８１  メモリ記憶装置
１８５  リモートアプリケーションプログラム
１９０  ビデオインタフェース
１９１  モニタ
１９５  出力周辺インタフェース
１９６  プリンタ
１９７  スピーカ
２００  アプリケーション、クライアントアプリケーション
２０２  レイアウトエンジン
２１０  プロパティシート
２２０  プロパティ値
２３０  構造／レイアウト入力フィルタ
２４０  読取りメトリックスエンジン
２５０  テキストエンジン
２８０  接続
３１２，３２６，３８２  ページサイズ
３１４，３４０，３８４  ページマージン
３１６，３３２，３８６  フォントファミリ
３１８，３８８  フォントサイズ
３２０，３８９  行高
３２２，３９６，２２４６  コラム数
３３４，３９４  コラム幅
３３０  要素ブロック
３３４  言語
３３６  フォントサイズの変更
３３８  行高の変更
３４２  ページマージンのフレキシビリティ
３４６  入力プロパティ
３５２  フロープレゼンタ、テキストフロープレゼンタ
３５４  ウィンドウサイズ
３６０  媒体統合層
３６２  媒体サイズ
３６４  フォントファミリ識別子
３６６  言語識別子
３６８  テキストの測定値
３８０  出力プロパティ値
３９０  コラムギャップ
３９２  画像幅
３９８  テキストのインデント
７１０，９００，９９０，２０００  グラフ
９０２  実線、活字曲線
９０６，１７３０，１７４０，２０１０，２０２０，２３２０，２３２３，２３３０  直線
９０９，９５０  破線
９１０，２００２，２３０２  ｘ軸
９２０，２００４，２３０４  ｙ軸
９３０  アラインメントポイント、ベースライン
９４０  アラインメントポイント、エックスハイト
１２０２  眼
１２０４  閲覧面
１２０６  閲覧距離
１２０８  中心窩角度
１３０２  タンジェント
１３０４  中心窩角度の半分
１５００  システム
１５１０  テキストパラメータ
１５２０，１５３０  モジュール
１５５０，１６１０  １エム当りクラスタ数
１５４０  ＡＰＩ
１５６０  閲覧媒体
１６２０  リバー幅
１６３０  リバー深さ
１６４０  チャネル幅
１６５０  チャネル深さ
１６６０，２２２８  最適可読行高乗算モジュール
２２０４  １最適可読行当りクラスタ数、１行当りクラスタ数
２２１０  フォントスケール
２２１２  １エム当りクラスタ数
２２１４  最適可読フォントサイズ、フォントサイズ
２２１６  最小および最大可読フォントサイズ
２２２６  行高スケール入力
２２３０  １行当り最小および最大クラスタ
２２３２  最適，最小および最大コラム幅
２２３４  ウィンドウ幅
２２３６  ウィンドウ高
２２３８  マージン設定
２２４０，２２４８  有効原稿幅
２２４２  最適、最小および最大コラム数
２２４４，３４４  コラム設定
２２５２  実際のコラム幅
２２５４  実際のフォントサイズ
２２５８  実際の行高
２２６０  実際のヘッディングフォントサイズ
２２６８  グリッドユニット
２３００  行長の調節のグラフ
２４６０  外部国際変換機構
２４６２  国際変換機構
【図１】
2004199021.tif 000004
【図２】
2004199021.tif 000005
【図３】
2004199021.tif 000006
【図４】
2004199021.tif 000007
【図５】
2004199021.tif 000008
【図６】
2004199021.tif 000009
【図７】
2004199021.tif 000010
【図８】
2004199021.tif 000011
【図９Ａ】
2004199021.tif 000012
【図９Ｂ】
2004199021.tif 000013
【図１０】
2004199021.tif 000014
【図１１】
2004199021.tif 000015
【図１２】
2004199021.tif 000016
【図１３】
2004199021.tif 000017
【図１４】
2004199021.tif 000018
【図１５】
2004199021.tif 000019
【図１６】
2004199021.tif 000020
【図１７】
2004199021.tif 000021
【図１８】
2004199021.tif 000022
【図１９】
2004199021.tif 000023
【図２０】
2004199021.tif 000024
【図２１】
2004199021.tif 000025
【図２２Ａ】
2004199021.tif 000026
【図２２Ｂ】
2004199021.tif 000027
【図２２Ｃ】
2004199021.tif 000028
【図２３】
2004199021.tif 000029
【図２４】
2004199021.tif 000030
【図２５】
2004199021.tif 000031
【図２６】
2004199021.tif 000032