JP2004199021A - 国際自動行高/フォントサイズ/フォント測定システムおよび方法 - Google Patents

国際自動行高/フォントサイズ/フォント測定システムおよび方法 Download PDF

Info

Publication number
JP2004199021A
JP2004199021A JP2003141120A JP2003141120A JP2004199021A JP 2004199021 A JP2004199021 A JP 2004199021A JP 2003141120 A JP2003141120 A JP 2003141120A JP 2003141120 A JP2003141120 A JP 2003141120A JP 2004199021 A JP2004199021 A JP 2004199021A
Authority
JP
Japan
Prior art keywords
text
font
line
computer
font size
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003141120A
Other languages
English (en)
Inventor
Nathan W Everett
ダブリュ.エベレット ネーザン
David C Brown
デビッド シー.ブラウン
Marc B Mcdonald
ビー.マクドナルド マーク
James D Byers
ディー.バイヤーズ ジェームズ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/323,038 external-priority patent/US20040119714A1/en
Priority claimed from US10/322,857 external-priority patent/US7271806B2/en
Priority claimed from US10/323,059 external-priority patent/US7385606B2/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2004199021A publication Critical patent/JP2004199021A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/109Font handling; Temporal or kinetic typography

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Document Processing Apparatus (AREA)
  • Image Generation (AREA)
  • Digital Computer Display Output (AREA)
  • Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)
  • Soft Magnetic Materials (AREA)

Abstract

【課題】どの言語でも様々な表示媒体および可読性パラメータに適したフォント特性を自動的に決定するシステムおよび方法を提供すること。
【解決手段】システム,方法およびコンピュータ可読媒体は,様々な表示媒体および任意の言語の様々な可読性パラメータに合わせ,適切な行高を自動的に決定する。テキストストリングの行高を決定する方法を対象とし,そのテキストストリングの1エム当りクラスタ数を表す値を決定するステップと,指数関数によってデフォルト行高をスケーリングするステップを含む。別の実施形態は,フォント特性を定義する複数の要素を保持するように構成されたデータ構造と,そのデータ構造に結合されたモジュールを備えるコンピュータシステムを対象とする。このモジュールは,フォント特性を使用して,そのフォント特性を有するクラスタの平均幅に指数関数を適用することで,閲覧条件が変化すると動的に行高を調整する。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は、一般に、フォント、テキスト、および字並びに関し、より詳細には、国際自動フォント測定システムおよび方法に関する。
【0002】
【従来の技術】
彼らは言った。「さあ、都市を、そして頂が天に届く塔を建て、我々の名をあげよう、我々が全地に散らされないように。」工事はまもなくなんとか進むようになった。「そして彼らは石の代わりにレンガを、モルタルの代わりにスライム(アスファルト)を使用した。」しかし、神は彼らの言語を混乱させたので、彼らは互いの言葉がわからなくなった。このようにして彼らは全地に散らされた。
彼らは都市をつくることを止めた(「創世記」11章、1−9)。バベルの塔の崩落以来、様々な言語およびそれらに関連する書記体系で意思を疎通するための方法を見つけることが課題となっている。
【0003】
世界的なグローバル化が始まるとともに、この課題を克服することが最優先事項となっている。しかし、国家間には、完全に統合されたグローバル社会を阻んできた複雑な文化の相違がある。コンピュータ業界では、これらの相違によって、多言語間の表示および相互交換の限界による、国際協力上の問題が発生している。
【0004】
多国籍のコンピューティング業界による、この課題の克服に向けた1つのステップが、1988年のユニコードコンソーシアムであり、これによってグローバルな文字識別標準が開発された。コンソーシアムの目標は、あらゆる言語について、文字を一意に識別することを可能にする標準を開発することであった。コンソーシアムはユニコード標準を開発し、現在、その第2.1版(1977)がAddison−Wesley Developers Pressから入手可能である(http://www.unicode.orgで入手可能)。
【0005】
残念なことに、多数の言語から選択して文字を印字し、かつ表示できるということは、その国際的課題を克服するためのほんのわずかな一歩にすぎない。それと同等、またしばしば何倍も重要なことは、スクリプトのレイアウト、フォントの特性、およびテキストを読めるようにするための一般的なテキスト要件である。しかし、現在の言語の書体およびスクリプト形態は様々であり、多方面にわたり、同じ規則に従うものではない。例えば、典型的な英語のフォントであるTimes New Romanは、独自にローマン体に基づいたタイポグラフィ上の定則に従っており、行高が一般にフォントのポイントサイズの120%に設定される。用語はローマン体文字に基づいている。ローマ活字の概念には、ベースライン、キャップ高、アセンダ高、ディセンダ高、および行高が含まれる。
【0006】
書記言語は、デフォルト行長や書体などのフォント特性の規則と同じ規則に従うものではない。そうではなく、各言語およびスクリプトは、文化的に異なる基盤に由来している。例えば、アジアのスクリプトでは、絵に由来する象形文字を使用しているものもあるし、また、右から左に読み、記号に由来するものもある。さらに同じ言語においても、スクリプトおよびフォントが所定の特性の定則に従わない。デフォルトフォント特性を決定する定則を見つけることは不可能な仕事に思われる。グラフィックデザイナ達は、すべての言語に当てはまる定則を見つけることよりも、行長、書体および行高を目視で変更し、また、レンダリングが目に心地よく、グラフィックデザイナが知っている読み易さの要件に合致するように、それぞれのスクリプトを変更することに頼ってきた。
【0007】
現在、すべての既知のスクリプトに適用されるフォント特性を決定する解決策はない。すべてのスクリプトは、文化に由来し、異なる基盤および完全に異なる概念を持っている。ある定則が特定の言語の特定のスクリプトについて、各スクリプト内で応用できたとしても、そのスクリプトの多くの特性に直線の関係があるわけではない。例えば、同じスクリプト内で、フォントサイズまたは行高を変更するには、読み易さを考慮した行高の変更が必要である。グラフィックデザイナは、一般に、行長、書体、および行高を目視で変更する。活字行を長くすると、読み易さのために行を高くする必要がある。また、フォントのサイズは行高に関連するが、大きいフォントが小さいフォントと同様の行高を必要とするわけではない。
【0008】
【非特許文献1】
Allen Hurlburt, "Layout: The Design of the Printed Page" (Watson-Guptill Publications, NY, NY 1977, 1989. Page 82.)
【0009】
【非特許文献2】
Allen Hurlburt, "The Grid" (1978); "The Design Concept" (1981)
【0010】
【発明が解決しようとする課題】
行高、行長、およびフォントサイズの変更の間には、直接または明白な関係はないので、多くのコンピュータアプリケーションでは、手動による変更が必要である。レイアウトの問題をさらに複雑にしているのは、レンダリングコンピューティングマシンが満ち溢れているために、グラフィックデザイナ達に活字のレンダリングマシンがわからないことである。例えば、ウェブページ用にデザインされた印字ページを、行長、行高、およびフォントサイズの最適な読みサイズがわからないまま、どのようなサイズの画面にでもレンダリングできる。現在、グラフィックデザイナ達が行わなければならない特性の決定を、自動的に行う方法が必要とされている。手動で調整することなく、任意の言語の任意のサイズのテキストを、どのディスプレイ上にでもレンダリングすることができるように、行高、フォントサイズ、行長などのコンピュータ可読性パラメータを計算することができる自動的な方法およびシステムが必要とされている。
【0011】
【課題を解決するための手段】
したがって、システムおよび方法は、どのような言語であっても、様々な表示媒体および様々な可読性パラメータに適したフォント特性を自動的に決定する。
一実施形態は、フォント識別子および言語識別子を含むデータを受け取り、識別された言語の識別されたフォントによる代表活字行を生成し、その代表活字行の特性を測定し、その測定値を、複数のフォントおよび複数の言語の間で正規化することによって、フォントの特性を決定するための方法を対象としている。より詳細には、代表活字行の特性の測定は、代表活字行中の複数のピクセル列における、総ピクセルに対する黒の比率を測定するステップ、全体に対する黒の比率が最も高い列を識別するステップ、および識別した列を使って、複数のフォントおよび言語と比較した、代表活字行中のフォント特性を識別するステップを含むことができる。
【0012】
一実施形態では、代表活字行の特性を測定するステップが、フォント高を識別するステップと、そのフォント高内で、全体に対する黒の比率が最も高い列を含む第1の部分を識別するステップであって、その第1の部分が平均ピクセル列よりも暗い最初のピクセル列および最後のピクセル列を含むステップと、第1の部分の上の第2の部分を識別するステップと、第1の部分の下の第3の部分を識別するステップをさらに含む。以下の説明では、これらの部分を、「ブラックリバー」に関連する幅と呼ぶ。ブラックリバーとは、プロットした測定特性を識別して、読み方向に垂直な方向の平均グレー度を決定するために使用する用語である。平均グレー度は、複数のフォントおよび言語の比較を可能にする。
【0013】
一実施形態では、国際変換機構(an international translator)を使って、フォント識別子および言語識別子を含むデータを受け取り、その受け取ったデータは、ある言語のテキストを含むことができる。言語識別子は、国際変換機構がそのテキストを変換する先の1つまたは複数の言語を含むことができる。
【0014】
別の実施形態は、国際テキストレイアウトのための方法を対象としている。テキストレイアウトは、エム(em)で表されたフォントサイズでレンダリングされるテキストストリングに関連する。この方法は、所定のフォントの、正規化された代表国際テキスト行の測定された特性を使って、最適なフォントサイズ、行高、コラム数、行長を決定する。正規化された代表国際テキスト行の特性は、1凝視当りクラスタ数および1エム当りクラスタ数を提供する。
【0015】
あるフォントのテキストの国際テキストレイアウトを行うためのシステムを対象とする一実施形態は、1つまたは複数のテキストパラメータを保持するように構成された構造/レイアウト入力フィルタ、データ構造に結合され、テキストの1つまたは複数のパラメータを受け取るように構成された読取りメトリックスエンジン、および読取りメトリックスエンジンに結合されたテキストエンジンを含む。テキストエンジンは、フォントのグラフィック密度を決定するように構成されたモジュールを含む。フォントのグラフィック密度とは、識別された言語のあるフォントでレンダリングされたテキストの平均グレー度である。テキストエンジンが判定する活字特性には、1エム当りクラスタ数、活字深さ、活字幅、活字の最も暗い水平部分の幅、および活字の最も暗い水平部分の深さを表す値が含まれる。一実施形態による別のシステムは、レイアウトエンジン内に構成され、アプリケーションに結合されている国際変換機構を含む。国際変換機構は、アプリケーションからデータを受け取り、その変換済みテキストに適したテキストレイアウト特性を有する変換済みテキストを、アプリケーションに供給する。一実施形態では、国際変換機構は、アプリケーションから1つまたは複数の言語識別子およびテキストを受け取り、変換済みテキストを提供し、また、構造/レイアウト入力フィルタが、読取りメトリックスエンジンおよびテキストエンジンで動作可能な1つまたは複数のデータ構造を作成するのに必要なパラメータを決定するように構成される。国際変換機構は、アプリケーションから呼び出す外部国際変換機構(an external international translator)であってよい。アプリケーションは、サーバまたはクライアントマシンであってよく、そのアプリケーションを呼び出す任意のディスプレイに適した可読性パラメータを有する言語識別子に従って、変換済みテキストを表示する。アプリケーションはまた、複数のコンピュータがアクセス可能なインターネットアプリケーションであってよく、このアプリケーションは、変換済みテキストを提供するようにという要求を受け取り、複数のコンピュータそれぞれの各ディスプレイに合わせ、また前記複数のコンピュータのそれぞれが要求している言語で適切にフォーマットされた、変換済みテキストを伝送する。
【0016】
本発明のさらなる特徴および利点は、添付の図を参照しながら進める、以下の例示的実施形態の詳細な説明から明らかであろう。
【0017】
頭記の特許請求の範囲は本発明の特徴を詳細に述べているが、本発明は、その目的および利点とともに、添付の図面と関連する以下の詳細な説明からもっともよく理解することができる。
【0018】
【発明の実施の形態】
図面を見ると、同じ参照番号が同じ要素を指し、本発明を、適切なコンピューティング環境で実施しているものとして図示してある。必ずしも必要ではないが、本発明を、プログラムモジュールなどの、パーソナルコンピュータによって実行されるコンピュータ実行可能命令の一般的な状況で説明する。一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。さらに、当業者は、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な消費者電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどを含めて、その他のコンピュータシステム構成でも本発明を実施できることを理解されよう。また、本発明を、通信ネットワークを介してリンクされているリモート処理装置によってタスクが実行される分散コンピューティング環境においても実施することができる。分散コンピューティング環境においては、プログラムモジュールを、ローカルとリモートの両方のメモリ記憶装置に配置することができる。
【0019】
図1は、本発明を実施することができる、適切なコンピューティングシステム環境100の例を示す。コンピューティングシステム環境100は、適切なコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲に関していかなる限定も示唆するものではない。コンピューティングシステム環境100は、例示的動作環境100に示してあるコンポーネントのいずれか1つまたは組み合わせに関して、依存するものとしても、また要求するものとしても解釈すべきではない。
【0020】
本発明は、多数のその他の汎用または専用コンピューティングシステム環境または構成で動作可能である。本発明とともに使用するのに適した周知のコンピューティングシステム、環境、および/または構成の例には、非限定的に、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットアップボックス、プログラム可能な消費者電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記システムまたは装置のいずれかを含む分散コンピューティング環境などが含まれる。
【0021】
本発明を、プログラムモジュールなどの、コンピュータによって実行されるコンピュータ実行可能命令の一般的な状況で説明することができる。一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。また、本発明を、通信ネットワークを介してリンクされているリモート処理装置によってタスクが実行される分散コンピューティング環境においても実施することができる。分散コンピューティング環境においては、プログラムモジュールを、メモリ記憶装置を含めて、ローカルとリモートの両方のコンピュータ記憶媒体に配置することができる。
【0022】
図1を参照すると、本発明を実施するための例示的システムは、コンピュータ110の形の汎用コンピューティング装置を含む。コンピュータ110のコンポーネントは、非限定的に、処理装置120、システムメモリ130、およびシステムメモリを含めて、様々なシステムコンポーネントを処理装置120に結合するシステムバス121を含む。システムバス121は、様々なバスアーキテクチャのうちのいずれかを使った、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造のうちのいずれかであってよい。例として、このようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ機器標準協会(Video Electronics Standards Associate)(VESA)ローカルバス、およびメザニンバスとしても知られる周辺コンポーネント相互接続(PCI)バスを非限定的に含む。
【0023】
コンピュータ110は、一般に、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ110がアクセス可能ないずれかの入手可能な媒体であってよく、揮発性および不揮発性媒体、リムーバブルおよび非リムーバブル媒体がともに含まれる。例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を非限定的に含む。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータなどの情報を記憶するためのいずれかの方法または技術で実装される、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体がともに含まれる。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリまたはその他のメモリ技術、CD−ROM、DVD(ディジタル多用途ディスク)またはその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶またはその他の磁気記憶装置、あるいは、所望の情報を記憶するために使用でき、かつコンピュータ110がアクセス可能ないずれかのその他の媒体が非限定的に含まれる。通信媒体は、一般に、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを、搬送波またはその他のトランスポートメカニズムなどの変調データ信号に組み込み、また、いずれかの情報送達媒体を含む。「変調データ信号」という用語は、その特性の1つまたは複数が、その信号中の情報が符号化されるように設定または変更された信号を意味する。
【0024】
例として、通信媒体には、ワイヤードネットワークまたは直接ワイヤード接続などのワイヤード媒体、および、音響、RF、赤外線、その他の無線媒体などの無線媒体が非限定的に含まれる。上記のいずれかの組み合わせも、コンピュータ可読媒体の範囲に含まれるものとする。
【0025】
システムメモリ130は、読取り専用メモリ(ROM)131およびランダムアクセスメモリ(RAM)132などの、揮発性および/または不揮発性メモリの形のコンピュータ記憶媒体を含む。スタートアップ時の間などに、コンピュータ110内の要素間での情報の転送を援助する基本ルーチンを含む、基本入出力システム(BIOS)133は、一般にROM131に記憶されている。RAM132は、一般に、処理装置120が即座にアクセス可能であって、かつ/または現在、処理装置120上で動作している、データおよび/またはプログラムモジュールを含む。例として、図1は、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137を非限定的に示す。
【0026】
コンピュータ110は、その他のリムーバル/非リムーバル、揮発性/不揮発性のコンピュータ記憶媒体も含むことができる。例にすぎないが、図1は、非リムーバブルの不揮発性磁気媒体からの読取りおよびそれへの書込みを行うハードディスクドライブ141、リムーバブルの不揮発性磁気ディスク152からの読取りおよびそれへの書込みを行う磁気ディスクドライブ151、および、CD−ROMやその他の光媒体など、リムーバブルの不揮発性光ディスク156からの読取りおよびそれへの書込みを行う光ディスクドライブ155を示す。例示的オペレーティング環境で使用できる、その他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、ディジタル多用途ディスク、ソリッドステートRAM、ソリッドステートROMなどが非限定的に含まれる。ハードディスクドライブ141は、一般に、インタフェース140などの非リムーバブルメモリインタフェースを通して、システムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は、一般に、インタフェース150などのリムーバブルメモリインタフェースによって、システムバス121に接続される。
【0027】
上記に説明し、図1に示すドライブおよびそれらの関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールおよびその他のデータの記憶をコンピュータ110に提供する。例えば、図1には、ハードディスクドライブ141を、オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、およびプログラムデータ147を記憶するものとして示してある。これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137と同じであっても、あるいは異なってもよいことに注意されたい。ここでは、少なくともそれらが異なるコピーであることを示すために、オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、およびプログラムデータ147に異なる参照番号を付してある。ユーザは、キーボード162、および一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス161などの入力装置を通して、コマンドおよび情報をコンピュータ110に入力することができる。その他の入力装置(図示せず)には、マイクロフォン、ジョイステック、ゲームパッド、衛星パラボラアンテナ、スキャナなどを含めることができる。これらおよびその他の入力装置は、システムバスに結合されているユーザ入力インタフェース160を通して処理装置120に接続されることが多いが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)など、その他のインタフェースおよびバス構造によって接続することができる。モニタ191またはその他のタイプの表示装置も、ビデオインタフェース190などのインタフェースを介して、システムバス121に接続される。モニタに加えて、コンピュータは、出力周辺インタフェース195を通して接続することができる、スピーカ197およびプリンタ196などのその他の周辺出力装置を含むこともできる。
【0028】
コンピュータ110は、リモートコンピュータ180などの1台または複数のリモートコンピュータへの論理接続を使って、ネットワーク化された環境で動作することができる。リモートコンピュータ180は、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピア装置、またはその他の一般的なネットワークノードであってよく、一般に、パーソナルコンピュータ110に関連して上記に説明した要素の多くまたはすべてを含む。ただし、図1にはメモリ記憶装置181しか示していない。図1に示す論理接続は、ローカルエリアネットワーク(LAN)171および広域ネットワーク(WAN)173を含むが、その他のネットワークを含むこともできる。このようなネットワーキング環境は、オフィス、企業内のコンピュータネットワーク、イントラネット、およびインターネットでは一般的である。
【0029】
LANネットワーキング環境で使用される場合、パーソナルコンピュータ110は、ネットワークインタフェースまたはアダプタ170を通してLANネットワーク171に接続される。WANネットワーキング環境で使用される場合、コンピュータ110は、一般に、モデム172、またはインターネットなどの広域ネットワーク173を介して通信を確立するためのその他の手段を含むことができる。モデム172は、内部でも外部でもよく、ユーザ入力インタフェース160またはその他の適切なメカニズムを介してシステムバス121に接続することができる。ネットワーク化された環境では、パーソナルコンピュータ110に関連して示しているプログラムモジュール、またはその一部を、リモートメモリ記憶装置に記憶することができる。例として、非限定的に、図1は、リモートアプリケーションプログラム185をメモリ装置181上に常駐するものとして示す。示してあるネットワーク接続は例であって、コンピュータ間の通信リンクを確立するその他の手段を使用できることを理解されよう。
【0030】
以下の記載では、別途記載がない限り、本発明を、1台または複数のコンピュータが実施する動作および演算の記号表現を参照しながら説明する。したがって、コンピュータ実行によると呼ぶことがあるこのような動作および演算には、データを構造化した形で表している電気信号の、コンピュータの処理装置による操作が含まれることを理解されよう。この操作は、そのデータを変換し、または、それをコンピュータのメモリシステム中のロケーションに保持し、それによって、当業者がよく理解している方法でコンピュータのオペレーションを再構成または変更する。データが保持されているデータ構造は、そのデータのフォーマットが定義する特定のプロパティを備えた、メモリの物理ロケーションである。しかし、本発明を上記の状況で説明しているが、当業者であれば、以下に説明する様々な動作およびオペレーションをハードウェアにおいて実施できることを理解するように、その説明は限定することを意図したものではない。
【0031】
本発明の重要な一態様に従って、図2を参照する。図2は、本発明の実施形態を実施するために適した、Windows(登録商標)クライアントなどのクライアントソフトウェアの構成図を表す。この構成図は、図1に示すコンピュータ110上で実行する任意のアプリケーションであってよい、アプリケーション200を示す。該当するアプリケーションプログラムには、例えば、Microsoft Word、Microsoft Publisher、QuarkXPress、Adobe InDesignなどが含まれる。アプリケーション200を、プロパティシート210を含むものとして示す。プロパティシート210は、コンピュータ110内に存在することが可能であり、または、クライアントサーバ接続を介して利用可能であるレイアウトエンジン202と対話する。レイアウトエンジン202は、コンピュータ110上で実行するクライアントアプリケーションであってよく、または、ネットワーク接続を介して利用可能である。プロパティシート210はアプリケーション200内にあり、レイアウトエンジン202にプロパティ値を供給する。プロパティ値は、構造/レイアウト入力フィルタ230において受け取られる。構造/レイアウト入力フィルタ230に加えて、レイアウトエンジン202は、読取りメトリックスエンジン240およびテキストエンジン250も含む。プロパティシートのデータ構造は、レイアウトエンジン202が、フォントおよびテキストをレンダリングするための適切なレイアウトをアプリケーション200に提供するために必要とする要素を含む。
構造/レイアウト入力フィルタ230は、読取りメトリックスエンジン240に入力するための要素を編成し、読取りメトリックスエンジン240に入力プロパティを提供する。読取りメトリックスエンジン240は、プロパティに作用し、データをテキストエンジン250に送る。テキストエンジン250は、フォントファミリデータの識別子および言語の識別子を含むデータを受け取り、読取りメトリックスエンジン240が使用するための、テキスト特性について計算したデータを出力する。
【0032】
以下にさらに詳説するように、読取りメトリックスエンジン240は、入力値に作用して、呼び出しているアプリケーションの所与の制約の範囲内で、最適なタイポグラフィ上の設定を提供する。入力の制約には、環境上の制約とデザイン上の制約を、非限定的に含めることができる。環境上の制約には、倍率、画面サイズおよび解像度、読み手のための視覚的機能追加および読み手の距離を含めることができる。デザイン上の制約には、フォント要件、マージン要件、コラム要件、およびレイアウト長方形要件を含めることができる。これらの制約の範囲内で、読取りメトリックスエンジン240は、ウィンドウ、ページおよび有効原稿のサイズ、マージン幅、最適なコラム数、最適なコラム幅およびのど幅、および最適なフォントサイズおよび行高の設定を始めとする設定を提供する。提供される設定は、デザイン要件によって、ピクセルによる測定値、またはポイントによる測定値が可能である。有利には、読取りメトリックスエンジン240が出力する設定は、未知の言語およびフォントの場合にも適切である。
【0033】
次に図3を参照すると、図2の構成図が、データ構造の流れを示す構成図の形態で拡張されている。図3は、ページサイズ312、ページマージン314、フォントファミリ316、フォントサイズ318、行高320、コラム数322、コラム幅334、およびページサイズ326などの項目を含む、プロパティシート210を示す。プロパティシート210には、上書きできない値も含まれている。ブロック329によって適合可能な値、および適合不可能な値が、構造/レイアウト入力フィルタ230に供給される。より詳細には、構造/レイアウト入力フィルタ230は、要素ブロック330およびフロープレゼンタ352を含む。要素ブロック330は、データをデータ構造に編成する。例示的データ構造を、フォントファミリ332、言語334、フォントサイズの変更336、行高の変更338、ページマージン340、ページマージンのフレキシビリティ342、およびコラム設定344を含めて表示してある。要素ブロック330でデータが編成され、読取りメトリックスエンジンの入力プロパティ346として供給される。それとは別に、テキストフロープレゼンタ352は、読取りメトリックスエンジン240にウィンドウサイズ354を供給する。あるいは、テキストフロープレゼンタ352は、ネットワーク化されたコンポーネント、またはコンピュータ110内のシステムコンポーネントであってもよい。一実施形態では、レイアウトエンジン202は、媒体統合層360と対話する。媒体統合層360は、読取りメトリックスエンジン240に媒体サイズ362を供給する。媒体サイズ362の一例として、図1に示すコンピュータ110の画面のサイズが挙げられる。
【0034】
読取りメトリックスエンジン240は、以下にさらに詳説する本発明の実施形態を実施する。一実施形態では、読取りメトリックスエンジン240は、テキストエンジン250および要素ブロック330と対話する。要素ブロック330は、読取りメトリックスエンジンの入力プロパティ346を保持する。要素ブロック330は、テキストフロープレゼンタ352に結合されている。一実施形態では、要素ブロック230とテキストフロープレゼンタ352が一緒になって、要素ブロック230中には構造を、テキストフロープレゼンタ352中にはレイアウトを含む、1つのコンポーネントを形成している。
【0035】
読取りメトリックスエンジン240は、入力を受け取り、その入力に作用して、呼び出しているアプリケーション中に、有用なテキストレイアウトの設定を生成する。この設定はユーザによるサイジング設定を考慮することができ、あるいは、デフォルトのサイズが自動的に決定されることが可能である。テキストエンジン250は、レイアウトエンジン202の重要な機能である。テキストエンジン250は、テキスト値に関する言語特有のデータを追加する入力を、読取りメトリックスエンジン240に供給する。テキストエンジン250は、フォントファミリ識別子364および言語識別子366を受け取る。テキストエンジン250からの出力は、テキストエンジン250の内部で計算された測定値を含む。より詳細には、下記で図5に関して詳細に説明するように、テキストエンジン250は、レンダリングされたある活字行中の各ピクセル列の黒と白のピクセルの比率を測定し、それらの測定値を、提供されたフォントおよび言語の代表テキスト行の特性を識別する条件を使って、それらの測定値を供給する。テキストの測定値368は、読取りメトリックスエンジン240に供給される。読取りメトリックスエンジン240は、測定値および入力プロパティ346に方程式などを適用して、出力プロパティ値380を提供する。出力プロパティ値380には、ページサイズ382、ページマージン384、フォントファミリ386、フォントサイズ388、行高389、コラムギャップ390、画像幅392、コラム幅394、コラム数396、およびテキストのインデント398が含まれる。これらのプロパティは、呼び出しているアプリケーション200に返される。
【0036】
次に、図3とともに図4を参照すると、一実施形態によるテキストレイアウトプロパティを決定する方法を、流れ図で示してある。この方法は、図2および3に示す読取りメトリックスエンジン240およびテキストエンジン250において実行される機能に関する。特に、ブロック410では、国際テキストレイアウトの環境に関するデータを受け取る。図3に示すように、このデータは、プロパティシート210、テキストフロープレゼンタ352、およびテキストエンジン250のうち1つまたは複数からの要素を含むことができる。環境に関するデータには、画面サイズ、用紙サイズなどのレンダリング媒体に関するデータ、および、マージン、フォントサイズ、コラム、行高、行長、言語に関する、ユーザ定義またはシステム要求のパラメータが含まれる。ブロック420では、所定のフォントの、正規化された代表国際テキスト行の測定された特性、および測定された環境特性を用いて、そのデータに作用する。正規化された代表国際テキスト行の特性は、テキストエンジン250において測定される。読取りメトリックスエンジン240は、テキストエンジン250に結合することができ、または、アプリケーションプログラムインタフェース(API)を介してテキストエンジン250を呼び出すことができる。環境特性は、読取りメトリックスエンジン240において測定される。正規化された代表国際テキスト行の測定された特性を受け取った後、読取りメトリックスエンジン240は、受け取った計算データ上で複数のオペレーションを実行する。読取メトリックスエンジン240の出力は、呼び出しているアプリケーション200に供給される。
【0037】
テキストエンジン250のオペレーションについては、図5および6で流れ図の形でさらに詳細に説明する。図示のように、ブロック510で、テキストエンジン250は、フォントファミリ識別子364および言語識別子366を受け取る。ブロック520で、テキストエンジンは、識別した言語および識別したフォントの、代表活字行の特性を測定する。有利には、提供される測定値は、どのようなの所与の言語およびフォントについても、フォントサイズおよび行高を、任意の所与のレイアウトで偏ることなく決定することを可能にする。ブロック530で、テキストエンジン250は、複数のフォントおよび言語の間で測定値を正規化する。次いで、その測定値を使用して、適切なサイジングを決定する。
【0038】
開示の目的で、サイジングの条件には行高が非限定的に含まれる。行高とは、1活字行のベースラインから次の行のベースラインまでの距離である。ベースラインとは、ある書記体系の文字がその上に乗る、またはそこからぶら下がる、知覚される直線である。英語の文字の場合、ベースラインとは、その上に大文字および小文字が乗る、想像上の直線である。エックスハイトとは、小文字の標準的な高さを指し、そのフォントの小文字xの高さにほぼ等しい。キャップハイトとは、活字行中の大文字の高さを指し、アセンダ高と同等ではないが、それと同一視されることが多い。フォントによっては、ほとんどの大文字の高さよりもアセンダが長いもの、あるいは短いものがある。アセンダとは、小文字の1、t、f、b、d、h、kの、エックスハイトを超える部分である。ディセンダとは、小文字のg、j、p、q、yの、ベースラインよりも下に伸びる部分である。
【0039】
エムは、フォントサイズと同等の測定単位である。したがって、エムは、フォントサイズが変わると同時に変わる可変単位である。本開示の目的では、エムを測定されている活字の正方形とする。例えば、フォント12ポイントの活字でレンダリングされる場合、そのエムは、高さ12ポイント、幅12ポイントである。フォントが100ポイントの活字でレンダリングされている場合、そのエムは、高さ100ポイント、幅100ポイントである。したがって、エムは、活字の表現されないサイズ単位として使用され、また、物理的特性ではなく、活字をデザインする方法に基づいている。その結果、フォントのデザインによっては、タイ語のように、エムの外にインクがはみ出すものもあり、また、朝鮮語のように、エムよりもずっと少ない空間しか占めないものもある。本開示の目的では、「クラスタ」とは、解析したフォントおよびテキストのレンダリングされる単位を指す。特に、クラスタは、電子テキストの行にカーソルを挿入することが可能な、地点間の印字物である。クラスタは、キーストローク、文字、またはグリフによってではなく行上の空間の欠乏によって識別され、したがってあらゆる言語に当てはまる。そのため、クラスタという用語はよく耳にする。ラテン語のフォントでは、クラスタと文字が同等の場合がある。
【0040】
次に、図6を参照すると、図5の方法をさらに詳細に説明している。図6に記載の方法は、任意のフォント、任意の言語の任意のテキスト活字のグレー度を数値特性化する。数値特性化は、活字がページ上に置かれたときに読み手が何を見るか、すなわち、読むという動作において目が追いかけていく暗色の行に基づいている。これらの行のサイズおよびそれらの間の空間は、書記体系、スクリプトタイプ、言語および文化が異なると変わるため、その測定値は、任意の言語の任意の書記体系について適切であるようにデザインされる。テキスト行中のインク部空間を、本明細書では「ブラックリバー」と呼ぶ。特に、ブラックリバーとは、代表活字行中のインク部の最上部および最下部を含めて、所与のフォントおよび言語の単一テキスト行中においてインク部が占める総空間を指す。
【0041】
図6では、ブラックリバーを測定する方法を説明している。ブロック610に示すように、フォントファミリ識別子および言語識別子を受け取った後、テキストエンジン250は、代表活字行中の複数のピクセル列における総ピクセルに対する黒の比率を測定する。一実施形態では、テキストエンジン250は、レンダリングされた活字行中の各ピクセル列における総ピクセルに対する黒の比率を測定する。黒のピクセルを有する各ピクセル列について測定した後、ブロック620に示すように、総ピクセルに対する黒の比率が最も高い列を黒に正規化する。
すべてのその他の列の測定値は、その黒色点に正規化される。この正規化によって、さまざまなウェイトのフォントから同等の測定値を得ることが可能になり、それによって、そのフォントの黒色点を、あらゆるフォントの間で正規化することができる。例えば、エムの1/200として測定されたブラックリバーの最も暗い部分は、その黒色度が実際にどの程度であるかにかかわらず、100%の黒であるとみなされる。ブラックリバーのその他の部分はすべて、0%(白)と100%(正規化された黒、すなわちリバーの最も暗い部分)の間の値としてのグレー度が測定される。平均比率が計算され、次いで、その平均値よりも暗い最初のピクセル行と最後のピクセル行がマークされる。
【0042】
ブロック630では、測定した、総ピクセルに対する黒の比率を使って、フォント高を識別する。ブロック640では、テキストエンジンが、フォント高を使って、本明細書では「チャネル」と呼ぶ、総ピクセルに対する黒の比率が最も高い列を含む第1の部分を識別する。この第1の部分は、平均ピクセル列よりも暗い、最初のピクセル列と最後のピクセル列を含む。ラテン語のテキストでは、このチャネルがエックスハイトと等しい。その他のスクリプトタイプでは、エックスハイトと直接的に同等のものはない。テキスト行にレンダリングされた各言語の各フォントはそのテキスト行中に暗い部分を有するので、本明細書の実施形態では、エックスハイトの代わりに、チャネルおよびチャネルに関する測定値について言及する。本明細書に記載の多くの実施形態では、チャネルは、あるスクリプトのテキスト行の適切な行高およびその他の設定を決定するための重要な測定値である。
【0043】
ブロック650で、テキストエンジン250は、第1の部分の上の第2の部分を識別する。ブロック660で、テキストエンジン250は、第1の部分の下の第3の部分を識別する。第2の部分および第3の部分を、ここでは、それぞれ「シャロー前」および「シャロー後」と呼び、総称して「シャロー」と呼ぶ。ほとんどのスクリプトでは、一般に、識別されたチャネルの両側にシャローがある。
シャローは、活字行がインクを有するエリアであるが、すべての文字がその中に及んでいるわけではない。ラテン語では、活字が、アセンダおよびディセンダと同等のシャローを持っている。多数のアクセント記号を使用している言語は、一般に、アクセント記号を含むシャローを有する。ほぼ一様な言語は、シャローがわずかしかない、または全くないチャネルを有する言語として識別することができる。多くのアジアの言語は、チャネルだけでシャローがない言語として識別される。これらの言語は、同サイズのリバーとチャネルを有する。ブロック670では、テキストエンジン250が測定値をグラフ化して、アラインメントポイント、暗さのピークなどの識別を可能にする。
【0044】
チャネルとシャローを識別した後、ブロック680で、各部分における黒対総ピクセルの比率の平均を決定する。これらの部分は、チャネル幅、シャローの前の幅、シャローの後の幅の3種類の幅の測定値を提供することによって、特定のフォントの活字行を記述する。
【0045】
一実施形態では、テキストエンジン250は、最も暗いピクセル列の黒対総ピクセルの比率、代表活字行全体の黒対総ピクセルの平均比率、シャロー前の幅、シャロー前の黒対総ピクセルの比率、チャネル幅、チャネルの黒対総ピクセルの比率、シャロー後の幅、およびシャロー後の黒対総ピクセルの比率のうち1つまたは複数を含む測定値を、読取りメトリックスエンジン240に返す。特定のアジアの言語など、言語が縦に書かれる場合にも、横書き言語の場合の横書き活字列の測定の代わりに、その縦書き言語の縦書き活字列を測定することにより、同じ測定を行うことができる。本開示の恩恵を得た当業者が理解するように、縦書き言語の特性を決定する原理も同じであり、したがって、例えば、縦書き活字のチャネルは、横書き活字のチャネルの測定を90度ずらしたものになる。
【0046】
その他の実施形態では、その3つの部分とは精細度の程度が異なるアラインメントポイント、または最も暗い列に対応する測定値、または作成されたいずれかのグラフにおけるピークなど、さらなる測定値を、読取りメトリックスエンジン240が必要とするのに応じて、返すことができる。
【0047】
図7を参照すると、一実施形態による、シミュレートしたテキストの写真を、対応するグラフとともに示してある。写真710は、ピークが、大体、キャップの上端部、エックスハイト、小文字の「e」の横棒、ベースライン、およびディセンダにあることを表している、セリフ系ラテンフォントを示す。それとは対照的に、写真720は、アラインメントポイントが異なり、かつ一層集中している、非ラテン系のスクリプトの形を示す。
【0048】
返される別の測定値が、エムに関連する測定値の場合がある。テキストエンジン250および読取りメトリックスエンジン240では、エムを使って、水平方向および垂直方向両方の測定値を設定する。テキストエンジン250が返すことができる別の測定値は、1エム当りクラスタ数であり、これも読取りメトリックスエンジン240に返される測定値であり得る。1エム当りクラスタ数は、フォント高の平均クラスタ幅に対する比率に等しい。
【0049】
読取りメトリックスエンジン240にとって役立つその他の測定値には、エムに対する実数としてのブラックリバー幅、エムに対する実数としてのシャロー前の幅、エムに対する実数としてのシャロー後の幅、エムに対する実数としてのチャネル幅、正規化後、0=完全に白、1=完全に黒になるような、実数としての、チャネルおよび各社ローの平均深さ、1エム当り平均クラスタ数、および代表テキスト行中の総クラスタ数が含まれる。幅の値を、エムに対する実数として読取りメトリックスエンジン240に返すことができ、また、深さの値を、正規化した黒色点に対する実数として読取りメトリックスエンジン240に返すことができる。一実施形態では、クラスタ総数が、読取りメトリックスエンジン240またはテキストエンジン250のいずれかの中にある言語テーブル中に事前記憶されている。
【0050】
図8では、読取りメトリックスエンジン240と、テキストエンジン250内の動作間の対話を示す流れ図において、例示的方法を説明している。ブロック810で、ユーザは、アプリケーションにおいて文書にマークアップする。マークアップは、言語およびフォントの指示を含む。この指示は、システムリンクを介して、またはユーザの入力により可能である。ブロック820で、言語およびフォントを識別する指示が、読取りメトリックスエンジン240に送られる。一実施形態では、テキストエンジン250は、読取りメトリックスエンジン240が測定のために呼び出すことができるフォントオブジェクトおよびAPIをexposeする。ブロック822で、読取りメトリックスエンジン240がフォントオブジェクトのインスタンスを生成した場合には、フォント識別子および言語識別子がテキストエンジン250に送られる。そうでない場合には、読取りメトリックスエンジン240は、テキストエンジン250を呼び出さずに言語およびフォントに作用する。例えば、読取りメトリックスエンジン240がそのフォントおよび言語に必要な測定値を備えたテーブルを有する場合には、テキストエンジン250の呼出しは不必要である。ブロック828では、テキストエンジン250内において、言語およびフォントを所定のテーブルと比較してフォント特性に関するデータを検索するか、またはその言語の代表テキストストリングを検索するかのいずれかを行うことにより、言語識別子およびフォント識別子を使用する。代表テキストストリングが検索された場合には、ブロック829で、そのフォントまたはフォントファミリがその言語に適用されて、代表テキストストリングが作成される。これは、単一テキスト行またはその他の適切な測定可能フォーマットであると考えられる。ブロック830で、テキストエンジンは、ブラックリバー、チャネル、およびシャローを測定する。ブロック832で、テキストエンジン250は、次いで、黒色点、およびすべてのその他の関連する値をパーセンテージとして正規化する。ブロック840で、テキストエンジン250は、幅および深さの測定値、活字の1エム当り平均クラスタ数、代表活字行中の総クラスタ数、および上記の測定値などの同様の測定値を返す。
【0051】
一実施形態では、テキストエンジン250は、代表テキスト行中のピクセル列を、エムの1/200の間隔で測定して、代表テキスト行中の総ピクセルに対する黒のピクセルの比率を平均レベルのグレーとして記録する。この測定は、0−255までの値、または2桁までのパーセントのいずれかと行うことができる。
ブロック850で、測定値が読取りメトリックスエンジン240に送られた後、読取りメトリックスエンジン240は、フォントサイズおよび行高を計算する。
ブロック860で、ユーザは、適切な大きさの、適切に間隔があいた活字で、任意の閲覧面上のページを見る。次に、図9Aを参照すると、グラフ900は、テキストエンジン250が図8に記載の測定値を計算した後の、測定されたサンプルを示す。このグラフは、図7に示すグラフの正規化版などのTimes New Romanの測定値を示す。示している測定値は、0(黒)から255(白)までの、測定された各ピクセル列の平均グレー度を含む。グラフ900は、グレー度をパーセンテージとして表している正規化版を示す。グラフ900では生データが正規化され、最も暗い活字行が絶対的な黒、すなわち100%として、また最も明るいピクセルが0%として扱われている。より詳細には、グラフ900は、x軸910に沿って代表テキスト行高をポイントで表し、y軸920に沿って各ピクセル列の平均グレー度をパーセンテージで表している。正規化された測定値を実線902で示し、チャネルおよびシャローの絶対測定値を破線909で示し、グレー度の中間値を直線906で示している。図7に示すグラフ710とグラフ900との比較は、アラインメントポイント930、940を示し、また、このフォントおよび言語のエックスハイト940およびベースライン930によって表されるチャネルを示す。直線906と活字曲線902が交差する点は、データポイント24であり、次に交差する点はデータポイント71である。フォントの総高は91である。100のエムブロックの場合、エムに対する1組の実数は次の通りである。すなわち、シャロー前=0.24、チャネル=0.45、シャロー後=0.20、ブラックリバー=0.91。
【0052】
図9Bは、同じ活字曲線902と、各シャローおよびチャネルの平均深さを表す破線950を有するグラフ990を示す。パーセンテージで表される平均深さの値を使って、行高の量を決定することができる。返される値には、シャロー前の平均深さ0.099、チャネルの平均深さ0.61、およびシャロー後の平均深さ0.038が含まれ得る。
【0053】
テキストエンジン250からの測定値は、読取りメトリックスエンジン240に返される。読取りメトリックスエンジン240は、測定値を様々な目的に使用する。読取りメトリックスエンジン240の機能の1つは、任意の言語のテキストが可読であるためのデフォルトフォントサイズを決定することである。従来技術のデフォルトフォントサイズは、タイプライタのEliteおよびPica活字のフォントサイズに基づいて、12ピッチまたは10ポイント、10ピッチまたは12ポイントなど、ポイントまたはピクセル単位の組み込まれた数を使用している。読取りメトリックスエンジン240は、その言語および文化の読み特性、およびテキストエンジン250および環境的な要因によって決定される、フォントの物理的にレンダリングされる特性に基づいて、任意の所与の言語またはスクリプトタイプのテキストについて、それに適したサイズを決定することにより、新しいアプローチを採っている。読取りメトリックスエンジン240は、自動的かつスケーラブルであることが可能であり、文化に特有の入力およびユーザが調整可能な入力を使用することができる。
【0054】
より詳細には、読取りメトリックスエンジン240は、フォントサイズを、閲覧媒体に関連する特性および言語の特性の関数として決定する、一実施形態による方法を適用する。閲覧媒体の特性には、閲覧媒体からのデフォルト距離の決定が含まれ、これは必要に応じてユーザが入力により変更することができる。
【0055】
図10を参照すると、流れ図が、ディスプレイからのデフォルト距離でフォントサイズを計算する方法を示している。この方法は、ブロック1010で、任意のディスプレイからの最小距離の指数関数関係を使用する、ディスプレイからの最小または最大デフォルト距離を決定する。一実施形態では、最小距離を12インチ(30.48センチメートル)として設定し、最大距離を約27インチ(68.58センチメートル)として設定する。指数曲線は急激に加速し、ディスプレイが大きいほど距離が長くなる。関数、ad+b=Dは、デフォルト距離の決定に適した例示的指数関数である。この関数において、aは、dの定乗数を表し、bは、a+b=12になるように、adに追加される定数、あるいは読み手が活字ページを見ることができる最小距離を表す。Dおよびdは、実際の読み距離およびディスプレイサイズの、グラフ上で識別できる点である。小文字dは、ディスプレイの表面の対角線をインチで表したものであり、Dは、ディスプレイの表面からの距離をインチで表したものである。一例では、a=0.02353、b=11.97647とし、ポイントに72を乗算して変換すると、図11のグラフに示す指数曲線が得られる。示しているように、x軸は、一般的条件のディスプレイの対角線を表し、y軸1102は、ディスプレイからの距離を表す。図11のグラフはインチで示してあるが、この例を別の単位に変換した場合には、aおよびbの定数も同様に換算する必要がある。
【0056】
デフォルト閲覧距離を決定した後は、読取りメトリックスエンジン240がその距離を使用して、所定のフォントの活字のデフォルトサイズを決定する。より詳細には、ブロック1020では、中心窩角度の三角関数、および文字密度を使って、ある環境で読むのに適した、所定のフォントの活字サイズを決定する。本明細書で使用しているように、所定のフォントの活字サイズをフォントサイズという。中心窩角度を使用して、閲覧媒体上の最も鮮明に焦点を合わせることができるエリアを決定する。このエリアを決定するために、関数は、中心窩角度の半分のタンジェントの2倍に、表示表面からの距離を乗算したものを使用する。別の実施形態では、距離の決定に使用する中心窩角度を、読み手特有の中心窩角度の入力の1つまたは複数、あるいは、約0.75度という標準中心窩角度によって決定する。読み手特有の中心窩角度は、読み手の視力を反映することができる。例えば、読み手に特有の中心窩角度は、黄斑変性、視力低下、トンネル視野、眼病、近眼、遠視、難読症、乱視の1つまたは複数を考慮することができる。
【0057】
中心窩角度を例示するために、図12および13に、どのように最も鮮明に焦点を合わせることができるエリアを決定するかを表す図を示す。図示のように、眼1202は、閲覧距離1206から閲覧面1204を見る。人間の眼の能力の研究は、0.75度の中心窩角度1208は、眼1202の最も鮮明な焦点の最大角度であることを指摘している。
【0058】
図13には、最も鮮明に焦点を合わせることができるエリアの長さ1210を決定する方法を例示している。三角関数を使って、長さ1210を、中心窩角度の半分1304のタンジェント1302の2倍として表すことができる。人間の眼の中心窩角度は、様々な研究に基づき、約0.75°である。傍中心窩角度は、10〜12°である。12°は、焦点のピークではないが、データを知覚することができる視野であることに加え、眼の位置付けを支援するために頭の不随意運動が開始する前のおよその眼の動きの範囲である。一実施形態では、概算16回の中心窩凝視が最適な行長である。クラスタ数は、文化に応じて定義される。
英語の行長に関する研究については、目的研究およびブックデザインの進化の観察の両方による研究の文献が十分にある。研究によれば、英語では、1回の中心窩凝視で即座に識別可能な活字は約4文字であるという。したがって、一実施形態は、最適な英語の行の推定値として、4×16=64クラスタを使用している。観察によれば、英語よりも1クラスタ当りの情報を多く含む文字集合は、理解を速めるために、必要とする1凝視当りクラスタ数が少ない。これは絶対的な関係ではないため、一実施形態は、言語ごとのベースで、その言語の1中心窩凝視当りクラスタがいくつかを示すテーブルを使用している。テーブルは、言語ごとのものであってもよく、あるいは、ローマン体、アラビア語、タイ語、アジアの言語およびインド語派を非限定的に含めた言語グループのものであってもよい。
これらのグループ分けは、書記体系の特性によって行われる。任意の個別言語を、異なる、またはよりよい最適値を持つように示すことができる。
【0059】
図10に戻ると、ブロック1020では、文字密度を使ってフォントサイズを決定する。文字密度は、1エム当りクラスタ数を、1凝視当りクラスタ数で除算することによって決定することができる。言語活字の1凝視当りクラスタ数は、それぞれがその言語で読む情報密度を表す定数を有する、複数言語の1つに関連付けられた定数である。1エム当りクラスタ数とは、グラフィック密度の記述である。したがって、文字密度を、ある文字のグラフィック密度および情報密度の関数として記述することができる。一実施形態では、グラフィック密度および情報密度は、読み手にとって閲覧可能な最も鮮明に焦点を合わせることができるエリア当りの情報量によるその言語の読み特性を含めて言語に依存する。
【0060】
一実施形態によれば、読取りメトリックスエンジン240は、1中心窩凝視当りクラスタ数の言語テーブルを含み、またはそれにアクセスできる。1回の中心窩凝視で把握可能なクラスタの最大数は、言語ごとの調査によるテーブルの生成によって決定することができ、あるいは、読取りメトリックスエンジン240へのアクセス権を与えられたユーザが入力することができる。各言語は、傍中心窩角度の何分の一、例えば1/16などで、いくつのクラスタを見ることができるかを定義する。したがって、あらゆる言語は、確定可能な1傍中心窩角度当りクラスタ数を有する。この値を使って、行長、コラム幅などを決定することができる。一実施形態では、1行の長さで閲覧が可能なクラスタ数は、各言語につき、およそ10個であると想定される。ある言語について決定されたクラスタ数に、アルファベット間の比較を表す数を乗算することができる。あるいは、1行中のクラスタ数を決定し、そのクラスタ数を、そのテキスト行中の人間の眼の凝視数を表す定数で除算することにより、1中心窩凝視当りクラスタ数が決定される。
【0061】
1つまたは複数の言語の定数は、約16である。1凝視当りクラスタ数に傍中心窩範囲中の中心窩凝視数を乗算することによって、1可読行当りの最適なクラスタ数が得られる。傍中心窩角度は中心窩角度よりも広く、また、一般に、眼が焦点を合わせることが可能な最大エリアを見ることができる角度を指す。一実施形態では、傍中心窩角度は約10度である。上述のように、中心窩角度は約0.75度であり、傍中心窩焦点エリア当り2文字から4文字の間までに関連する。1テキスト行中の人間の眼の凝視の定数として16を使って、1中心窩凝視当りクラスタ数を乗算することにより、表1に示すように、各言語の1行当りクラスタ数を決定することができる。
【0062】
表1
Figure 2004199021
【0063】
図14を参照すると、文字密度を決定する方法は、ブロック1410で、フォントの1エム当りクラスタ数を決定する。一例示的実施形態では、1エム当りクラスタ数はテキストエンジン250から得られる。ブロック1420で、そのフォントの1エム当りクラスタ数の、所定の中心窩角度内の可視クラスタの数に対する比率を決定する。この比率を、以下、1凝視当りのクラスタと呼ぶ。上述のように、1凝視当りのクラスタの数は、表1などのソースから得ることができ、あるいは検索することができ、それは各言語の各フォントごとに異なる。ブロック1430で、1エム当りクラスタ数の1凝視当りクラスタ数に対する比率に、ポイントで表した閲覧媒体の幅を乗算することによって、所与の閲覧距離における、そのフォントファミリの最適なポイントサイズを得る。ブロック1440で、任意選択により、ユーザまたはその他のソースによって入力されたマークアップに従って、得られたフォントサイズを最適にスケーリングする。ブロック1450で、最小フォントサイズおよび最大フォントサイズを決定する。より詳細には、一実施形態では、最小フォントサイズは、ユーザが1回の中心窩凝視で把握できる最大クラスタ数に基づく。最大フォントサイズは、ユーザが1回の中心窩凝視で把握でき、その活字行から意味が理解できる最小クラスタ数に基づく。別の実施形態では、最小および最大フォントサイズを、最適フォントサイズの所定のパーセンテージ、例えば、1凝視当りクラスタ数(Cpf)のテーブル値の±25%に基づいて決定することができる。これは、0.8に最適フォントサイズを乗算した最小フォントサイズ、および1.33に最適フォントサイズを乗算した最大フォントサイズに変換される。別の代替実施形態では、最小フォントサイズを、レンダリングエンジンが、そのフォントを完全な状態でうまくレンダリングするために必要な出力解像度および最小ピクセル数に基づいて決定する。
【0064】
次に、図15を参照すると、あるフォントのテキストを閲覧媒体上で最適に読めるように調整するためのシステム1500を示す。このシステムは、1つまたは複数のテキストパラメータ1510を保持するデータ構造を含む、クライアントアプリケーション200を含む。システムはさらに、クライアントアプリケーション200に結合された読取りメトリックスエンジン240を含み、読取りメトリックスエンジン240は、1つまたは複数のテキストパラメータ1510を受け取るように構成されている。読取りメトリックスエンジン240は、フォントの文字密度を決定するように構成されたモジュール1520、および、その文字密度に、眼の最も鮮明に焦点を合わせることができるエリアを乗算して、そのフォントを可読にするための最適サイズを生成するモジュール1530を含む。
文字密度モジュール1520を、そのフォントの1エム当りクラスタ1550を検索するように、API1540を介してテキストエンジン250に結合して示してある。文字密度は、1エム当りクラスタ数を1凝視当りクラスタ数で除算することによって算出される。一実施形態では、読取りメトリックスエンジン240は、フォントの最適サイズ、言語活字(type)の1凝視当りクラスタ数、1エム当りクラスタ数、および閲覧媒体からの距離の関数によって最適コラム幅を決定するように構成されたモジュールをさらに含む。システム1500は、閲覧媒体1560のためのレンダリング装置をさらに含む。閲覧媒体は、印字されたページ、コンピュータの画面、パーソナルディジタルアシスタント、自筆の画像、掲示板、映画の画面、眼鏡へのインサートなどであってよい。一例として、言語が英語(1凝視当りクラスタ数は4.0)であって、モニタからの距離が1368ポイント(19インチ(48.26cm))であって、フォントがTimes New Roman(1エム当りクラスタ数が2.58)である場合、明瞭に見えるための最適な活字サイズは、2×タンジェント0.006544×1368×2.58/4.0=11.5ポイントタイプとして得られる。別のフォントである、1エム当りクラスタ数がわずか2.33のLinotype Palatinoの場合、最適活字サイズは、2×タンジェント0.006544×1368×2.33/4.0=10.4ポイントタイプとして得られる。
【0065】
言語およびスクリプトの形態が異なると、著しく異なる結果になる。例えば、Arabic Times New Roman。1凝視当りクラスタ数の文化測定値は、4.0ではなく4.4であり、1エム当りクラスタ数は2.97である。したがって、アラビア語のTimes New Romanの最適可読活字サイズは、2×タンジェント0.006544×1368×2.97/4.4=12.1ポイントタイプである。
【0066】
1凝視当りクラスタ数の値は各言語グループについて決定しなければならないが、公式自体は、トンネル視野、閲覧面からの距離、およびその他の視覚障害者のために、アクセス可能性の調整が行えるようにオープンになっている。調整は公式への入力に作用し、抽出されるデフォルト値が変更される。これらの特別な調整の中には、複数のコラム、小型装置、大型画面、高解像度モニタのような、異なる閲覧条件へのテキストの適合を支援するように自動化できるものもある。
別の実施形態では、傍中心窩角度、中心窩角度および文字密度を、ユーザの入力に従って、障害のあるユーザ、欠陥のあるユーザ、または狭視野のユーザを援助するように変更することができる。より狭い傍中心窩角度は、トンネル視野のユーザに関連する。より広い傍中心窩角度は、狭周辺視覚のユーザに関連する。より狭い中心窩角度は黄斑変性のユーザに関連する。
【0067】
次いで図7および8とともに図16を参照すると、図8のブロック850で、フォントサイズおよび行高を計算する。当技術分野で知られているように、行高の要件は、行長に応じて、また、異なる活字サイズごとに変わる。同じフォントサイズの場合でも、行高の要件は、1ページ当りのコラムの数によって変わる。
本明細書の実施形態によれば、行高を、利用可能な情報に応じて異なる方法で決定する。一実施形態では、上述のように活字サイズを決定した後、そのサイズの活字の行高を決定する。次いで、その行高を、1行中のクラスタ数、行長などに基づいて操作することができる。
【0068】
行高を計算する方法の1つを図16を参照しながら説明する。図示のように、読取りメトリックスエンジン240は、テキストエンジン250から、所与の言語の所与のフォントのグレー度に関する複数の計算結果を受け取る。これらの計算結果には、1エム当りクラスタ数1610、リバー幅1620、リバー深さ1630、チャネル幅1640、およびチャネル深さ1650が含まれる。読取りメトリックスエンジン240内において、最適可読行高乗算モジュール1660が行高を計算する。
【0069】
より詳細には、一実施形態は、あるフォントのテキストの全体的なリバーとチャネルの対比と、そのフォントの文字密度の関係に基づいて、行高を計算することを対象としている。行高の決定に役立つ、テキストエンジン250からの5種類の出力1610、1620、1630、1640、1650をさらに詳細に説明する。第1はリバー幅である。リバー幅(R)は、エム正方形の乗数として、フォントの最上部インクからフォントの最下部インクまでを測定したものである。ほとんどのラテンおよびアジアのフォントではリバー幅がエム正方形よりも著しく短く、また、ほとんどアラビアおよびタイのフォントではリバー幅がエム正方形よりも著しく長いように、リバー幅は必ずしもエム正方形と同じではない。例えば、図17を参照すると、English Tahoma1710をレンダリングしたものをArabic Tahoma1720の隣に示してある。Tahomaのエムのフォントサイズを、直線1730と1740の間として示す。この図は、English Tahomaがエムよりも小さく、また、右側のArabic Tahomaがエムよりも著しく大きいことを示している。
【0070】
図16に戻ると、正規化したリバー深さ(R)1620は、上記に図8において説明したように、測定したテキストの代表行中の最も暗いピクセル列に正規化された、テキストエンジン250内の計算結果に関連する。深さの表現はすべて、最も暗いピクセル列に関連させることができる。深さは、平均的な黒色であり、所与の範囲のテキスト中のピクセルの総比率を表す。R×Rは、リバーの総グレー値を表す。
【0071】
チャネルのグレー値は、同じ公式を使うが、リバーチャネル幅(RC)およびリバーチャネル深さ(RC)に基づいて計算する。チャネルのグレー値をリバーの総グレー値で除算することによって、チャネルとリバーの残り部分の対比の程度が得られる。
【0072】
最適可読行高乗算モジュール1660は、チャネルのグレー値の総グレー値に対する比率を、フォントの文字密度(Cpm)で除算して、ある行高のフォントサイズに追加すべきフォントサイズの端数を生成することによって決定される。
この数に1を加えることにより、システムは、最適な行高(LO)を、そのフォントサイズの乗数として生成する。次の方程式は、最適可読行高乗算モジュール内の動作を要約したものである。(1+((RC×RC)/(R×R)/Cpm))×L?=LO
一実施形態では、最適な行高を確定する前に、行高にマークアップ行高率(L?)を乗算する。
【0073】
別の実施形態では、テキストエンジン250からの計算結果には、B=シャロー前の幅、B=シャロー前の深さ、A=シャロー後の幅、A=シャロー後の深さ、RC=チャネル幅、RC=チャネル深さ、Cpm=1エム当りクラスタ数、FS=デフォルトフォントサイズが含まれ、最適可読行高乗算モジュール1660内では、次の公式から行高が計算される。FS/(((BxB)+(A×A)+(RC×RC))×Cpm)=行高
言い換えれば、リバーの3つの部分の幅の合計に深さを乗算した値に、1エム当りクラスタ数を乗算し、その値でフォントサイズを除算することによって行高が得られる。したがって、10ポイントのTimes New Romanは、次のように計算される。10/(((0.24×0.09)+(0.45×0.6)+(0.22×0.04))×2.58)=10/(0.0216+0.27×0.0088)×2.58=10/0.775032=12.9
同じ方法のさらに簡易版では次の公式を使用する。FS/(R×R×Cpm)=L
【0074】
その他の実施形態では、英語のテキストに使用されている、テキストの高さの120%に調整するという一般的な行高の調整を使用して、その他の言語の行高のグローバル化を図っている。図18には、この既知の120%を使って行高を決定する別の方法を説明している。ブロック1810で、フォントサイズの120%をとって、デフォルト行高を決定する。ブロック1820で、そのデフォルト行高を、所定のフォントの単一クラスタの平均幅の指数関数を適用することによって変更する。より詳細には、この関数は、任意のフォントの任意の単一クラスタの平均幅と、その活字の実際の高さの二乗を合計した値の平方根であってよい。任意の国際フォントの任意のクラスタの実際の高さおよび幅は、テキストエンジン250において決定される。一実施形態は、次の方程式を使っている。1.2FS(R +(1/Cpm ))1/2。これは、FSをデフォルト活字のサイズ、1.2をユーザの入力または標準デフォルト行高乗数、Rを、1エム当りの、活字の上端部インク部から底部インク部までの実際の高さ、Cpmを1エム当りクラスタ数とする指数関数である。
【0075】
一例として、デフォルトフォントサイズを10ポイントとすると、次のように行高が計算される。10×1.2×(0.912+1/2.581/2=12×0.9891=11.9
したがって、10ポイントのTimes New Romanの最適な行高は、11.9ポイントである。しかし、同じ公式を、1エム当り1.01のインク部高、1エム当り2.33クラスタの10ポイントのLinotype Palatinoフォントに適用すると、最適な行高は13.2ポイントになる。
【0076】
別の実施形態では、行長が増加すると、行高が変更される。図19を参照すると、流れ図に、行高の調整が、テキスト行の物理的長さまたは1行中のクラスタ数の関数に基づくことを示してある。ブロック1910で、1活字行当りの所望クラスタ数、および1活字行当りのクラスタ単位の最適デフォルト行長を決定する。ブロック1920で、1行当りの所望クラスタ数、および1行当りのクラスタ単位の最適デフォルト行長を使った商により元の活字サイズをスケーリングする。
【0077】
フォントサイズに従って行高を決定すると、フォントサイズを変更すると行高も変更される。フォントサイズを大きくした場合、行高を見つけることは線形の関係ではない。一実施形態では、指数関係の関数を適用することによって、フォントサイズを変えた場合に行高の変更が行われる。この指数関数は、1エム当りクラスタ数を考慮することができる。元の活字サイズがわかっており、その活字サイズの行高もわかっている。より大きい活字サイズへの変更には制約がある。行高はその活字自体よりも小さくなることはできない。したがって、図20を参照すると、グラフ2000は、ポイント単位の所与のフォントサイズの行高が経験的に見つけられる可能性を示している。x軸2002は、ポイント単位のフォントサイズを表す。y軸2004は、ポイント単位の行長を表す。45度の直線2010は、フォントサイズに等しい行高を示す。行高のサイズは、フォントサイズの増加と直接の関係を示さない。そうではなく、フォントサイズが増加すると、直線2020で示すように、必要とされる行高は減少する。一実施形態では、行高を自動的に決定する方法は、指数関数を使っている。この関数は、1エム当りの可変クラスタを使用している。特に、1.02と1.07の間の範囲の定数の累乗を使用するべき関数を使用できることが発見されている。さらに、あらゆる活字に使用可能な定数が1.047であり得ることが発見されている。この定数は、π÷3にほぼ等しい。別の変形形態は、下位互換性に関する。30ポイントの活字の場合に20%の行高を適用した場合には、その方法がどこで開始するかにかかわらず、別のフォントサイズが関連し、同じフォントサイズには同じ行高を与えるはずである。
【0078】
次に、図21を参照すると、流れ図にフォントサイズを決定する方法を示している。ブロック2110では、所定の可読行長およびフォントサイズとの関係で、行高の適切なデフォルト指定を決定する。ブロック2120で、指定されたデフォルトとはフォントサイズが異なることによって生じるフォントサイズの値の変化を求める。知られているように、活字が大きいほど、フォントサイズの因数として必要とされる行高は少なくてよい。従来技術の方法では、デザイナが目視による調整を行うことが要求される。活字が詰まって見える場合は、デザイナは行間を空ける。活字が空きすぎて見える場合は、デザイナは行間を詰める。ブロック2130で、最適デフォルトフォントサイズと実際のフォントサイズの差を求めることにより、新しい行高を自動的に決定し、ブロック2140で、フォントサイズの差を累乗した定数によって、行高を調整する。公式、(1.047(FSO−FSA)×(L/FS−1))×FS=Lは、この方法に従って新しい行高を決定するための一実施形態を表す。この公式で、FSは、元のデフォルトフォントサイズを、FSは新しいフォントサイズを、Lは元のデフォルト行高を、Lは新しい行高を表す。
【0079】
一例として、フォントサイズが14ポイントのTimes New Romanの新しい行高を見つけるために、フォントサイズを10ポイント、行高を12.9ポイントとして、上述の方法に従ってそのデフォルトを求めることができる。この場合の方程式は次のようになる。(1.047(10−14)×(12.910−1)+1)×14=((1.047−4×0.29)+1)×14=((0.8321×0.29)+1)×14=1.2413×14=17.38
【0080】
読取りメトリックスエンジンの流れ
次に、図22Aないし図22Cを参照すると、流れ図に、読取りメトリックスエンジン240がどのように入力に作用するか、また、その他の測定値を決定するために、計算された各測定値がどのように共用されるかを示している。図22Aないし図22Cは、上述の実施形態が、読取りメトリックスエンジン240のシステム全体にどのように適合するかを示している。
【0081】
ブロック2202は、1凝視当りクラスタ数テーブル、またはその他のソースからの入力を表す。ブロック2202はブロック2204に流れ、そこでは最良の1可読行当りクラスタ数を出力する。計算は、表1に従ったものでよい。
【0082】
ブロック2206は、画面の対角線など、閲覧媒体のサイズの値を提供するコンピュータシステムからの入力を表す。ブロック2208は、閲覧媒体からのデフォルト距離を決定するための計算を表す。デフォルト距離を決定するための1方法を、図10を参照しながら上記に説明してある。ブロック2210では、ユーザによって、またはマークアップページによって入力することができる入力、「フォントスケール」を提供する。このようなマークアップは、<Element FontScale=”1.2”>Element content.</Element>と似たものになる。
【0083】
ブロック2210、2212、2208、2202では、それぞれ、最適可読フォントサイズを計算するための入力を提供する。ブロック2214は、最適可読フォントサイズの計算を表す。上述のように、最適なフォントサイズを見つけるステップは、最初に、所定の中心窩角度範囲内の所定の距離にある閲覧媒体上に、水平面エリアを決定するステップと、所与の言語およびフォントに適した、1凝視当りクラスタ数に従って、サイズのタイプを決定するステップを含む。一実施形態では、フォントスケール2210は、フォントサイズを決定するための乗数を提供する。
【0084】
ブロック2214では、ブロック2216のための入力を提供する。ブロック2216では、最小および最大フォントサイズを決定する。一実施形態では、最小および最大フォントサイズは、最適フォントサイズから25%の逸脱範囲、または最小フォントサイズとしての所定の最小フォントサイズに0.8を乗算した値、または、最大フォントサイズとしての所定の最大フォントサイズに1.33を乗算した値に基づく。一実施形態では、1回の中心窩凝視で把握できる最大クラスタ数が、所与の言語の最小フォントサイズおよび最大フォントサイズを決定する。
【0085】
ブロック2218、2220、2222、2224は、図15を参照しながら上記に説明した最適可読行高乗算モジュール2228を決定するための入力を提供する、テキストエンジン250からの出力を表すことができる。一実施形態では、ブロック2228が、マークアップまたはユーザの入力から、<Element LineHeightScale=”1.5”>Element content </Elementなどの行高スケール入力2226を受け取る。
【0086】
ブロック2230では、1行当りの最小および最大数クラスタ数を決定する。
最小および最大行長は、ユーザが入力できるコラム設定オプションを援助する。
一実施形態では、低のコラム設定が、没入して読むためのクラスタ単位の最適可読行長を提供する。中、高、最大のコラム設定オプションでは、徐々にクラスタが少なくなり、提供される行が短くなる。「単一」のコラム設定は、クラスタ単位の行長を、没入して読むための標準を超えて延長する。
【0087】
一実施形態では、インクリメントが、1行当りの最適クラスタの2分の1からその最適値の1.167倍までの範囲で一様である。クラスタ単位の最小行長(C)およびクラスタ単位の最大行長(C)を決定するために、次の方程式を適用する。C=0.5×Cpl、C=1.167×Cpl
1行当りの最小および最大クラスタ2230は、1最適可読行当りクラスタ数2204、最小および最大可読フォントサイズ2216、および1エム当りクラスタ数2212とともに、ブロック2232の入力である。ブロック2232では、最適、最小および最大コラム幅が決定される。
【0088】
最小コラム幅は、最小フォントサイズを計算し、最小フォントサイズに1行に可能な最小クラスタ数を乗算することによって決定することができる。次の方程式は、それぞれ、最適、最小、および最大コラム幅を求める。CW=FS÷Cpm×Cpl(1最良可読行当りクラスタ数)、CW=FS÷Cpm×C(1最良可読行当り最小クラスタ数)、CW=FS÷Cpm×C(1最良可読行当り最大クラスタ数)。
【0089】
最適な最小および最大コラム数2242を決定する前に、読取りメトリックスエンジン240は、まず可能な有効原稿幅2240を決定する。有効原稿エリアとは、ページのマージンの内側のレイアウトエリアである。可能な有効原稿エリアは、ウィンドウのサイズとユーザ定義のマージン設定の差である。マージンは、ページの最も短い寸法に基づいて計算される。したがって、評価ステップでは、最初に、ページの縦寸法と横寸法のどちらが短いかを決定する。次いで、マークアップ中で要求されているマージンの量を、短い方の寸法から差し引く。その結果が、有効原稿エリアである。可能な有効原稿幅を決定するための入力には、ウィンドウ幅(WW)2234、ウィンドウ高(WH)2236、ユーザのマージン設定(MP)2238が含まれる。したがって、可能な有効原稿エリアの幅(LW)を決定するには、マークアップのマージン設定(MP)をウィンドウ幅(単位はポイント)から差し引き、かつウィンドウの最も短い寸法を乗算する。すなわち、WW−(最小(WW,WH)×MP×2)。
【0090】
可能な有効原稿2240および最適、最小および最大コラム幅(それぞれ、CW、CW、CW)2232は入力を提供して、最適、最小および最大コラム数(それぞれ、CC、CCおよびCC)2242を決定する。一実施形態では、コラム数を決定するために、方程式が、それぞれの幅が可能な有効原稿幅内に収まる、コラムの数を計算する。その出力は、そのページに収まる、最小、最大および最適コラム数の範囲を提供する。可能な有効原稿幅をコラム幅で除算することによって、最小、最大、および最適コラム幅について可能なコラム数(CC)を計算することができる。次の方程式を適用して、最適、最小、および最大コラム数を決定する。CC=LW÷CW、CC=LW÷CW、CC=LW÷CW
ブロック2244および2246を参照すると、コラム数を決定した後、読取りメトリックスエンジン240は、その総数およびユーザ入力のコラム設定を使って、実際の好ましいコラム数を決定する。
【0091】
ブロック2242の方程式の値は自然数のコラム数にならないため、実際の数の計算が必要である。ブロック2242で、コラム設定2244を通して要求された実際のコラム数を、適切な自然数(CC)に四捨五入する。一実施形態では、ブロック2246は評価的であるである。コラム設定=「単」(「0」)の場合、CCは自動的に1になる。コラム設定=「低」(「1」)の場合、CCは、CCを四捨五入した値になる。
【0092】
コラム設定(CP)=「中/高」(2/3)の場合は、CCを計算しなければならない。
【0093】
コラム設定(CP)=「最大」(4)の場合、CCはCCを四捨五入した値になる。
【0094】
「中」および「高」の計算結果は、「最適」と「最大」の間の3分の1および3分の2になる。したがって、CCは、次の式の値を四捨五入して求めることができる。
【0095】
((CC−CC)÷3)+CC(中)
(((CC−CC)÷3)×2)+CC(高)
次の擬似コードは、ブロック2246の動作を例示するものである。
【0096】
IF CP=0
THENCC=1
ELSECC=(((CC−CC)/3)×(CP−1))+CC自然数のコラム数にするための四捨五入は、要求されたコラム数が0.75を超える端数コラムを含む場合には切り上げ、そうでない場合には切り下げを行う。この0.75という値は、ユーザまたは作成者の入力により変更することができる。
【0097】
ブロック2248では、有効原稿幅を決定し、ブロック2232から最適、最小、および最大コラム幅、ブロック2240から可能な有効原稿幅、ブロック2244からコラム設定、ブロック2246からコラム数の入力を受け取る。
【0098】
実際の有効原稿幅(LW)は、前に計算された可能な有効原稿幅(LW)よりも大きくなることはないため、その計算は、その計算された値を可能な幅と比較して、どちらが小さいかを確認する。小さい方が確定される。有効原稿幅の計算は、有効原稿幅の計算には、コラム設定のユーザのマークアップに基づく特別な場合もある。コラム設定=「単」の場合、ブロック2248は、1行当りクラスタ数2204およびフォントサイズ2214のパラメータの範囲内に収まる大きさのコラムをページ上に提供する。コラム設定が「低」の場合は、読取りメトリックスエンジン240が最適な読みを試みる。より高いコラム設定は、利用可能な空間幅による制限を受けることがある。次の擬似コードは、有効原稿幅の決定を例示するものである。
【0099】
IF CP=0、
THEN Minimum of CW or LW=LW
ELSE
IF CP=1、
THEN Minimum of(CC×CW)+(CW×(CP−1)×0.075)or LW=LW
ELSE LW=LW
【0100】
コラム数2246および有効原稿幅2248はブロック2250への入力であり、ブロック2250では、実際ののど幅(CG)を計算する。のど幅は、マークアッププロパティのコラムギャップに等しくてよい。1つの相違点は、ブロック2250の測定単位がコラムの端数に基づくことが可能なことであるが、マルチコラムスプレッドにおけるコラムの測定にわずかに影響を与えるだけである。次の方程式によって、実際ののど幅(CG)を決定することができる。LW÷CC×0.075=CG
【0101】
ブロック2252を参照すると、実際ののど幅が決定すると、実際のコラム幅(CW)を決定することができる。これは、マークアッププロパティのコラム幅に等しい可能性がある。コラム数、有効幅およびのどがわかると、次の方程式を使って、正確なコラム単位を計算することができる。(LW÷CC)−((CC−1)×CG)=CW
【0102】
ブロック2254を参照すると、読取りメトリックスエンジン240が、ブロック2252、2212、2214、2230からの入力を使って、実際のフォントサイズ(FS)を計算する。一実施形態では、実際のフォントサイズを、そのレイアウトの推奨フォントサイズ(FS)を計算することによって実施する。次いで、その推奨フォントサイズを、最小フォントサイズおよび最大フォントサイズと照合して、そのフォントサイズが前に計算された範囲内に収まるようにする。最初のステップはまた、その行が、その行中に現れるクラスタの数のために、最適フォントサイズを使用するには長すぎる、または短すぎるかどうかを判定する条件プロセスでもある。最適フォントサイズにおいてクラスタ数の範囲を超えた場合にのみ、フォントのサイズが変わる。次の擬似コードは、ブロック2254の計算を実行することができる。
【0103】
IF:CW>FSxC:Cpm
THEN CW÷C×CPm
ELSE IF:CW<FS×C÷CPm
THEN:CW÷C×Cpm
ELSE:FS=FS
実際のフォントサイズ(FS)を確定するためのバウンドチェックも条件付きである。
IF:FS>FS
THEN:FS
ELSE IF:FS<FS
THEN:FS
ELSE:FS=FS
【0104】
次に、ブロック2256を参照すると、実際の1行当りクラスタの計算が、ブロック2254およびブロック2252で決定された値を使って実行される。実際の1行当りクラスタは、特定のフォントの適切な行高の量を決定する前に決定される。次の方程式によって、1行当りクラスタが求められる。CW÷FS×Cpm
【0105】
ブロック2258を参照すると、読取りメトリックスエンジン240が、実際の行高(L)を、この環境の最も可読性が高いテキストに適用される、フォントサイズの乗数として決定する。実際の行高を決定する方法は、少なくとも2種類の調整を含む。第1に、読取りメトリックスエンジン240は、FS?FSoの場合に、そのフォントサイズの行高を最適化する。この最適化によって、大きいフォントの行高が小さいフォントに比例して増えないことが保証される。次に、読取りメトリックスエンジン240は、その行長の行高を調整する。次の方程式により、最適化と調整が実施される。((C×(1.047(FS−FS)×(L−1)))÷Cpl)+1
この方程式の(1.047(FS−FS)×(L−1)の部分が、フォントサイズを調整する。残りの部分は行長を調整する。得られた結果は、実際のコラム幅の実際のフォントサイズの最適な行高である。
【0106】
図20に戻ると、方程式のフォントサイズの部分を図20に示してある。図23は、行長の調節のグラフ2300を示す。図示のようにx軸2302はフォントサイズを表し、y軸2304は行高を表す。直線2320(2020と同じ)を、半分の行長用に調整したものを直線2323として、1.5倍の行長用に調整したものを直線2330に示す。
【0107】
図22Aないし図22Cに戻ると、ブロック2260では、実際のデフォルトヘッディングフォントサイズが、ボディテキストのフォントサイズの場合とほぼ同じように計算される。ただし、ユーザが設定可能な最小1行当りクラスタ(C)の0.75倍および実際の有効原稿エリア(LW)に基づいている。次の方程式が適用される。HFSA=LW÷(0.75×C)×Cpm
一実施形態では、ヘッディングフォントサイズにより、読取りメトリックスエンジン240のポイント出力のためのスケールの上端部が固定される。
【0108】
ブロック2262に戻ると、ヘッディングフォントサイズのデフォルト行高(HL)が、ボディテキストのフォントサイズ2258の実際の行高と同じ方程式に従って決定される。乗数は、次のように、FSおよびユーザ設定の最小1行当りクラスタ(C)の0.75倍ではなく、HFSAに基づいて生成される。
((0.75×C×(1.047(FS−HFSA)×(L−1)))÷Cpl)+1=HL
【0109】
行高は、行の長さおよびフォントのサイズに基づいてフレキシブルであり、フォントサイズの乗数については、ボディテキストサイズとヘッディングサイズでは異なる連続体を形成する。したがって、ボディテキストの行高がフォントサイズの1.16倍のときに、ヘッディングフォントの行高がヘッディングフォントサイズの1.05倍でしかないことがある。
【0110】
次にブロック2264を参照すると、実際のヘッディングフォントサイズ2260および実際のフォントサイズ2254の入力を使って、読取りメトリックスエンジンのポイントが決定される。読取りメトリックスエンジンのポイントは、2つのタイポグラフィ基準ポイント、すなわちレイアウトの最適可読フォントサイズ、およびウィンドウ中のフォントの最適なトップレベルヘッディングサイズに関連する。これらの間で、読取りメトリックスエンジン240は1つの設定されたインクリメント数をプロットする。そのそれぞれは、そのフォントファミリについてタイポグラフィポイントとして交差する。1/72インチ(約0.0353センチメートル)の「実」ポイントと、読取りメトリックスエンジンのポイントの間で移動させるために、上端部および底部について同等物を作成することができる。
【0111】
読取りメトリックスエンジンのポイントの値は、デフォルトウィンドウフォントサイズと、計算された実際のフォントサイズの比較に基づいている。デフォルトは12ポイントである。したがって、読取りメトリックスエンジン240の値への変換においては、12ポイントの活字の参照は、どれもFSの参照して解釈される。12ポイントに満たないサイズは、FSを12の部分に分ける乗数として解釈される。したがって、
読取りメトリックスエンジンのポイント=FS÷12
【0112】
しかし、12ポイントを超える読取りメトリックスエンジンのポイントは、必ずしも12ポイント以下のポイントの値と同じではない。上記の読取りメトリックスエンジンのポイントの値は、事前設定された48ポイントの最適ヘッディングサイズ(Windows(登録商標)のテキストフォントサイズのデフォルトなどのデフォルト)と、12ポイントのボディテキストサイズの間の空間の分割に基づいている。したがって、12ポイントを超える場合には、次の公式になる。
読取りメトリックスエンジンのポイント=(HFSA−FS)÷36
【0113】
任意のマークアップしたフォントサイズ(FSμ)の出力サイズを計算するには、以下のような複合公式になる。
IF,FSμ=12、
THEN,FSμ×FS÷12
ELSE,((FSμ−12)×((HFSA−FS)÷36))+FS
【0114】
この演算の結果、XXSmall、XSmall、Small、Medium、Large、XLarge、XXLargeにおけるようなカスケードスタイルシート(CSS)などの規格から生成されるフォントサイズのデフォルト測定値、および、ヘッディングレベル1〜7すべてのデフォルト値を含めて、読取りメトリックスエンジンのポイントの値に従って、任意のマークアップされたフォントサイズを解釈することができる。読取りメトリックスエンジンのポイントがフォントサイズのポイントにしか適用されず、その他のどのポイント単位の測定値にも適用されないことに注意されたい。
【0115】
ブロック2266を参照すると、実際のマージン値は「マージン」と呼ばれる単位であって、これは、いくつかの他の単位(特にコラム)の値を調整する組み合わせにも使用される場合がある。実際のマージン(M)は、有効原稿幅(LW)とウィンドウ高のうち少ない方、およびマージン設定(MP)から逆算される。ウィンドウ高が有効原稿幅よりも少ない場合には、実際のマージンは、ウィンドウ高にマージン設定を乗算した値になる。しかし、有効原稿幅がウィンドウ高よりも少ない場合には、読取りメトリックスエンジンは、有効原稿幅を、1からマージン設定を差し引いた値で除算したものから逆算する。したがって、マージン(M)を求める公式は次の通りである。
IF,W<LW
THEN,W×M
ELSE,((LW÷(1−2M))−LW)÷2
【0116】
ブロック2268を参照すると、過去500年にわたってレイアウトデザイナの基本的ツールがグリッドである。しかし、グリッドは、常に、所与のページサイズの1種類の出版物にのみ関連する静的ツールとみなされてきた。次のように述べている文献があり(例えば、非特許文献1参照)、それは、参照として本明細書に組み込む。
【0117】
デザイナのグリッドは、特定のコンテントを、それが占める精確な空間に関連させて編成する。グリッドが作動すると、デザイナは、グリッドのフレームワーク内に、様々な要素を含む多くの異なるレイアウトを作成することができる。出版物、広告キャンペーン、またはシリーズのデザインで使用すると、それぞれのユニットの内容に著しい変化があっても、一連の連続性を感じさせる。
【0118】
この著者は、この著書においても、またその後の著書(例えば、非特許文献2参照)においても、良好なグリッドの重要性と必要性を強調しているが、グリッドの静的な性質こそが、グリッドをデザイナが使用するのに有用なものとしていることを繰り返し強調している。しかし、ディスプレイのサイズや形状が前もってわからない電子の世界のデザイナ達は、ディスプレイのサイズおよび形状を前もって固定することなしには信頼できるグリッドが作成できないことで苦労している。
【0119】
読取りメトリックスエンジン240は、様々なディスプレイおよびフォントサイズに対して動的かつスケーラブルであるグリッドユニット(G)2268を出力する。ブロック2268の入力には、実際のコラム幅(CW)2252、実際のフォントサイズ(FSA)2254、1最良可読行当りクラスタ数(Cpl)、1エム当りクラスタ数(Cpm)が含まれる。各グリッドユニットの幅は、実際のコラム幅(CW)とバランスをとった最適な1行当りクラスタ(Cpl)の決定に基づいている。方程式では、Cplを6で除算し、次いで、そのFSで、その長さの何単位が、CWに収まるかを決定する。端数単位は、全グリッドユニットの幅に均等に割り振られる。したがって、
UA=CW÷Trunc((6×CW×Cpm)÷(FS×Cpl))
グリッドは、その幅に基づく単一の測定値を有する。グリッドユニットを高さの単位の値として使うと、幅の値と同じ値になる。一実施形態では、グリッドユニットが動的であり得て、縦方向の空間を横方向の空間とは異なって分割することができる。
【0120】
ブロック2270を参照すると、コラム単位は、高さおよび幅で使用すると異なる寸法になる。したがって、マークアップで使用した場合、1コラムの幅が、1コラムの高さと異なる測定値になる。一実施形態では、実際のコラムの高さを、自然数の行数で除算することができる。したがって、ウィンドウ高(W)からマージンを引くと、可能な有効原稿高(LHO)に等しくなる。LHOを行(L)で除算して切り捨てた値に行を乗算すると、コラム高(C)に等しくなる。言い換えれば、W−(2×MA)(あるいは、マークアップが1MAマージンよりも深いことを指示する場合には他の倍数)=LHO
((LHO/L)を切り捨てた値)×L=C
【0121】
ブロック2272を参照すると、実際のページ高(P)は、コラム高に上部および底部マージンを加えたものに等しい。したがって、P=C+2MA(あるいは、マークアップが、上部または底部いずれかで1MAマージンよりも深いことを指示する場合には他の倍数)。
【0122】
ブロック2274を参照すると、実際のページ幅(P)は、コラム幅、のど幅、および左右マージンの和に等しい。したがって、
=(CW×CCA)+(CG×(CCA−1))+(2×MA)
したがって、このページの高さは、幅とは異なる寸法であり、これらの高さおよび幅は、ウィンドウのサイズとは等しくないことがある。
【0123】
図2に戻って、図22Aないし図22Cとともに参照すると、高さ、コラム、およびフォントサイズを決定するための上記の方法は、テキストをレンダリングする目的で、閲覧媒体上で読むことができるための最適なサイズを自動的に決定することを可能にする。それぞれの場合において、本明細書で提供している方法を実施するための適切な装置は、それらの方法を実施するためのマイクロセッサなどのコンピュータコンポーネントを含むことができる。例えば、最適なフォントサイズを決定する目的で、プリンタまたはレンダリング装置と通信を行うことができるプリンタまたはハンドヘルドコンピューティングデバイスなどの装置は、閲覧媒体の幅および閲覧媒体からの距離を入力として受け付け、あるフォントの最適なサイズおよび行高を出力として提供することができ、あるいは、決定した最適なサイズおよび行高を使って自動的に出力することができる。この装置はまた、コンピュータ、ポータブルコンピューティングデバイス、または、プリンタなどの中に設置されたマイクロプロセッサであってもよい。プリンタまたは装置の出力は、その閲覧媒体であり得る。また、閲覧媒体は、印字されたページ、画面、無線で接続された閲覧媒体、掲示板、画像、または任意のフォントレンダリング媒体であってよい。実施形態によっては、閲覧媒体のサイズ、および閲覧媒体からの距離を、ネットワークを介して、またはインターネット接続などを介したクライアントネットワーク環境で入力することができる。
【0124】
上述の図22Aないし図22Cは、図2に示すレイアウトエンジン202の中で発生する動作を示す。次に図24を参照すると、一実施形態は、レイアウトエンジン202を国際変換機構とともに使用することを対象としている。この状況の国際変換機構は、所与の言語のテキストを変換して異なる言語の出力を提供することができる、当技術分野で知られているソフトウェアタイプの変換機構を含む。例えば、特定のユニバーサルリソースロケータ(URL)のロケーションに配置されたテキストを別の言語に変更する、本明細書に記載の実施形態に適する、インターネット上で入手可能な既知の変換機構がある。図24を参照すると、レイアウトエンジン202およびアプリケーション200を含む構成図を示してある。アプリケーション200は、図1に示すコンピュータ110上で実行する任意のアプリケーションであってよい。この実施形態の場合、該当するアプリケーションプログラムには、例えば、Microsoft Word、Microsoft Publisher、QuarkXPress、Adobe InDesign、および、ブラウザまたはMicrosoft Outlook(登録商標)などの電子メールタイプのアプリケーションと関連してなど、サーバ接続で、またはサーバ接続上で実行するその他のアプリケーションが含まれる。アプリケーション200は、プロパティシート210およびプロパティ値220を含むものとして示してある。ただし、一実施形態では、プロパティシート210およびプロパティ値220はアクセスされるコンポーネントであって、アプリケーション200は、プロパティシート210コンポーネントおよびプロパティ値220コンポーネントの内容を供給する別のアプリケーションへのリンクのみを有する。図24は、接続2470を介してアプリケーション200に結合される外部国際変換機構(an external international translator)2460をさらに示す。アプリケーション200が、インターネットを介して、または、エリアネットワークなど、ネットワーク化された変換機構へのサーバ接続を介して変換機能にアクセスする実施形態では、外部国際変換機構を外部コンポーネントとして示す。あるいは外部国際変換機構は、コンピュータシステム中の中央バスを介してアクセス可能であるなど、アプリケーション200のみの外部機構である。図24とともに図25を参照すると、一実施形態では、ブロック2510で、外部国際変換機構は、アプリケーション200が作成した、またはアプリケーション200が受け取ったテキストを変換する。ブロック2520に示すように、外部国際変換機構2460によるプロパティの変更が、プロパティシート210またはプロパティ値220中の要素を変更するためにアプリケーション200に供給されるか、あるいは、直接、レイアウトエンジン202に供給される。レイアウトエンジン202は、国際変換機構(an international translator)2462を備えることはできるが、この実施形態の場合、必要ではない。存在する場合には、外部国際変換機構2460は、国際変換機構2462にデータを送り、またそこからデータを受け取る(ブロック2510)。国際変換機構2462は、外部国際変換機構2460とレイアウトエンジン202の間の途切れのない対話を可能にする互換性コンポーネントを提供する位置実施形態では、外部国際翻訳機構2460は、ある言語の変換済みテキストと基礎となるテキストをアプリケーション200に供給する。次いで、アプリケーション200は、接続280を介して関連するデータをレイアウトエンジン202に送る(ブロック2520)。
次いで、レイアウトエンジン202は、上記のデータに作用して、可読性パラメータをアプリケーション200に供給する(ブロック2530)。より詳細には、レイアウトエンジン202は、読取りメトリックスエンジン240およびテキストエンジン250を使って、アプリケーション200によって、および/または外国際変換機構2460から直接、受け取ったデータに作用して、テキストの変換先の言語に適したコラム、行高、フォントサイズなどを使った可読フォーマットで、変換済みテキストを供給する。
【0125】
別の実施形態では、図26に示すように、アプリケーション200外部国際翻訳機構と対話せず、レイアウトエンジン202に、テキストデータと、提供言語および1つまたは複数の出力所望言語を表す言語識別子とを供給する(ブロック2610)。国際変換機構2462は、次いで、言語識別子およびテキストを受け取り、構造/レイアウト入力フィルタ230が、読取りメトリックスエンジン240およびテキストエンジン250で動作可能なデータ構造を作成するのに必要なパラメータを決定する目的で、変換済みテキストを供給する(ブロック2620)。したがって、一実施形態では、アプリケーション200は、1言語のデータをレイアウトエンジンに供給し、アプリケーション200が、所望されている各言語の、個々の言語に適した表示にフォーマットされたテキストを、複数言語で表示することを可能にするデータを受け取ることができる。したがって、例えば、アプリケーション200がいくつかの国においてクライアントマシンにサービスしているサーバ上で実行している場合、サーバグループ中の各ディスプレイは、その言語および該当するディスプレイに適したサイズおよびフォーマットの、適切な言語のテキストを受け取ることになる。電子メールプログラムなどを実行しているサーバの場合、アプリケーション200は、Microsoft Outlook(登録商標)など、それぞれのクライアントマシン上で動作していることがある。または、Unix(登録商標)などのサーバ上で実行していることがある。また、サーバは、例えば交換サーバタイプであってよい。アプリケーション200を実行しているサーバまたはクライアントマシンは、どのような言語のテキストでも受け取り、レイアウトエンジン202と対話して、受け取ったどの言語も、現地の言語、または国際変換機構2462中にプログラムされている選択言語に自動的に変換し、また、変換済みテキストを言語およびディスプレイに合わせて適切にフォーマットするために必要なパラメータを、アプリケーション200に出力するように構成することができる。
【0126】
本発明の原理を適用できる多くの可能な実施形態を鑑みて、図面の図に関して本明細書に記載している実施形態は例示にすぎず、本発明の範囲を限定するものとして解釈すべきではないことを理解されたい。例えば、当業者は、ソフトウェアで示している、例示の実施形態の要素がハードウェアとして実装でき、またその反対も可能であること、あるいは、例示の実施形態の構成および詳細を、本発明の趣旨から逸脱することなく、変更することが可能であることを理解されよう。したがって、本明細書に記載の本発明は、頭記の特許請求の範囲およびその同等物の範囲内に入る実施形態すべてを考えている。
【図面の簡単な説明】
【図1】本発明が常駐する、例示的コンピュータシステムを全体的に示す構成図である。
【図2】本発明の一実施形態によるコンピュータシステム内における、例示的データフローを示す構成図である。
【図3】本発明の一実施形態による、図2に示すデータフローを説明する、より詳細な構成図である。
【図4】本発明の一実施形態による、国際テキストの特性を決定する方法を示す流れ図である。
【図5】本発明の一実施形態による、国際テキストの特性を決定するためのより詳細な方法を示す流れ図である。
【図6】本発明の一実施形態による、国際テキストの特性を決定するためのより詳細な方法を示す流れ図である。
【図7】本発明の一実施形態による方法を適用することによって得られるグラフおよびテキストを表す2枚の写真である。
【図8】本発明の一実施形態による、行高およびフォントサイズを自動的に決定する方法を示す流れ図である。
【図9A】本発明の一実施形態による、フォント特性を決定する方法を実施することにより得られるグラフを示す図である。
【図9B】本発明の一実施形態による、フォント特性を決定する方法を実施することにより得られる別のグラフを示す図である。
【図10】本発明の一実施形態による、フォントサイズを決定する方法を示す流れ図である。
【図11】本発明の一実施形態による、閲覧距離に関連してテキスト特性を決定するのに適した曲線を示すグラフである。
【図12】本発明の一実施形態に従って、最も鮮明に焦点を合わせることが可能なエリアをどのように決定するかを示すグラフである。
【図13】本発明の一実施形態に従って、最も鮮明に焦点を合わせることが可能なエリアを決定するために、どのように三角関数を適用するかを示すグラフである。
【図14】本発明の一実施形態による、最大および最小フォントサイズを自動的に決定する方法を示す流れ図である。
【図15】本発明の一実施形態に従ってフォントサイズを決定するために使用するデータフローを示す構成図である。
【図16】本発明の一実施形態に従ってテキスト特性を決定するために使用するデータフローを示す構成図である。
【図17】本発明の一実施形態に従って幅が変化する、異なる言語の同じフォントの例を示す図である。
【図18】本発明の一実施形態による、フォントサイズを自動的にスケーリングする方法を示す流れ図である。
【図19】本発明の一実施形態による、1行中のクラスタの数の関数に基づいて、行高を調整する方法を示す流れ図である。
【図20】本発明の一実施形態に従って、所与のポイントサイズの文字の行高が経験的に見つけられる可能性を示すグラフである。
【図21】本発明の一実施形態による、デフォルト行高の調整を決定する方法を示す流れ図である。
【図22A】本発明の一実施形態による読取りメトリックスエンジン内のデータフローの一部を示す構成図である。
【図22B】本発明の一実施形態による読取りメトリックスエンジン内のデータフローの別の一部を示す構成図である。
【図22C】本発明の一実施形態による読取りメトリックスエンジン内のデータフローの別の一部を示す構成図である。
【図23】本発明の一実施形態による行長の決定を示すグラフである。
【図24】本発明の一実施形態に従って、コンピュータシステム内で国際変換プログラムを使用するデータフローを示す構成図である。
【図25】本発明の一実施形態による、諸実施形態との組み合わせで変換プログラムを使用する方法を示す流れ図である。
【図26】本発明の一実施形態による、レイアウトエンジン内で変換プログラムを使用する方法を示す流れ図である。
【符号の説明】
100 コンピューティングシステム環境
110 コンピュータ
120 処理装置
121 システムバス
130 システムメモリ
131 ROM
132 RAM
133 基本入出力システム(BIOS)
134,144 オペレーティングシステム
135,145 アプリケーションプログラム
136,146 その他のプログラムモジュール
137,147 プログラムデータ
140,150 インタフェース
141 ハードディスクドライブ
151 磁気ディスクドライブ
155 光ディスクドライブ
156 リムーバブルの不揮発性光ディスク
160 ユーザ入力インタフェース
161 ポインティングデバイス
162 キーボード
170 アダプタ
171 ローカルエリアネットワーク(LAN)
172 モデム
173 広域エリアネットワーク(WAN)
180 リモートコンピュータ
181 メモリ記憶装置
185 リモートアプリケーションプログラム
190 ビデオインタフェース
191 モニタ
195 出力周辺インタフェース
196 プリンタ
197 スピーカ
200 アプリケーション、クライアントアプリケーション
202 レイアウトエンジン
210 プロパティシート
220 プロパティ値
230 構造/レイアウト入力フィルタ
240 読取りメトリックスエンジン
250 テキストエンジン
280 接続
312,326,382 ページサイズ
314,340,384 ページマージン
316,332,386 フォントファミリ
318,388 フォントサイズ
320,389 行高
322,396,2246 コラム数
334,394 コラム幅
330 要素ブロック
334 言語
336 フォントサイズの変更
338 行高の変更
342 ページマージンのフレキシビリティ
346 入力プロパティ
352 フロープレゼンタ、テキストフロープレゼンタ
354 ウィンドウサイズ
360 媒体統合層
362 媒体サイズ
364 フォントファミリ識別子
366 言語識別子
368 テキストの測定値
380 出力プロパティ値
390 コラムギャップ
392 画像幅
398 テキストのインデント
710,900,990,2000 グラフ
902 実線、活字曲線
906,1730,1740,2010,2020,2320,2323,2330 直線
909,950 破線
910,2002,2302 x軸
920,2004,2304 y軸
930 アラインメントポイント、ベースライン
940 アラインメントポイント、エックスハイト
1202 眼
1204 閲覧面
1206 閲覧距離
1208 中心窩角度
1302 タンジェント
1304 中心窩角度の半分
1500 システム
1510 テキストパラメータ
1520,1530 モジュール
1550,1610 1エム当りクラスタ数
1540 API
1560 閲覧媒体
1620 リバー幅
1630 リバー深さ
1640 チャネル幅
1650 チャネル深さ
1660,2228 最適可読行高乗算モジュール
2204 1最適可読行当りクラスタ数、1行当りクラスタ数
2210 フォントスケール
2212 1エム当りクラスタ数
2214 最適可読フォントサイズ、フォントサイズ
2216 最小および最大可読フォントサイズ
2226 行高スケール入力
2230 1行当り最小および最大クラスタ
2232 最適,最小および最大コラム幅
2234 ウィンドウ幅
2236 ウィンドウ高
2238 マージン設定
2240,2248 有効原稿幅
2242 最適、最小および最大コラム数
2244,344 コラム設定
2252 実際のコラム幅
2254 実際のフォントサイズ
2258 実際の行高
2260 実際のヘッディングフォントサイズ
2268 グリッドユニット
2300 行長の調節のグラフ
2460 外部国際変換機構
2462 国際変換機構

Claims (111)

  1. テキストストリングの行高を決定する方法において、前記テキストはクラスタに編成され、各クラスタは、カーソルを挿入できる地点間の印字物の量によって識別される、前記テキストストリングのレンダリング単位であり、前記テキストストリングは、エムで表されたフォントサイズでレンダリングされ、各エムは活字の正方形によって識別される方法であって、前記方法が、
    前記テキストストリング中の1エム当りクラスタ数を表す値を決定するステップと、
    指数関数によってデフォルト行高をスケーリングするステップと
    を含むことを特徴とする方法。
  2. 前記デフォルト行高は、前記テキストストリング中で使用されているフォントサイズの約120%であることを特徴とする請求項1に記載の方法。
  3. 前記指数関数は、定数に関数(c+1)/cを乗算した値であることを特徴とする請求項1に記載の方法。
  4. 前記定数は、デフォルトフォントとフォントサイズ乗数の積であることを特徴とする請求項3に記載の方法。
  5. テキストストリングの行高を決定するためのコンピュータ実行可能命令を搬送する、コンピュータ可読媒体を含むコンピュータプログラム(a computer program product)において、前記テキストはクラスタに編成され、各クラスタは、カーソルを挿入できる地点間の印字物の量によって識別される、前記テキストストリングのレンダリング単位であり、前記テキストストリングは、エムで表されたフォントサイズでレンダリングされ、各エムは活字の正方形によって識別されるコンピュータプログラムであって、前記命令は、
    前記テキストストリング中の1エム当りクラスタ数を表す値を決定するステップと、
    指数関数によってデフォルト行高をスケーリングするステップと
    を含むことを特徴とするコンピュータプログラム。
  6. 前記指数関数は、デフォルトフォントとフォントサイズ乗数と関数(C+1)/cの積であることを特徴とする請求項5に記載のコンピュータプログラム。
  7. プロセッサと、
    前記プロセッサに結合されたメモリと、
    前記プロセッサおよび前記メモリに結合されたデータ構造であって、フォントの特性を定義する複数の要素を保持するように構成されたデータ構造と、
    前記データ構造に結合されたモジュールであって、前記フォントの特性を有するクラスタの平均幅に指数関数を適用することにより、前記フォントの特性を使ってテキストの行高を調整するように構成されたモジュールと
    を備えることを特徴とするコンピュータシステム。
  8. 前記データ構造はレイアウトエンジン内にあり、前記レイアウトエンジンは、
    アプリケーションから複数のテキストプロパティを受け取るように構成された構造/レイアウト入力フィルタと、
    前記複数のテキストプロパティの少なくとも1つを受け取るように、また、フォントのクラスタの平均幅を決定するように構成されたテキストエンジンと、
    前記テキストエンジンから前記フォントの単一クラスタの平均幅を受け取って前記指数関数を適用するように結合された読取りメトリックスエンジンと
    を含むことを特徴とする請求項7に記載のコンピュータシステム。
  9. 前記モジュールは、閲覧条件が変わると動的に前記フォントの特性に作用することを特徴とする請求項7に記載のコンピュータシステム。
  10. 前記指数関数は、デフォルトフォントサイズに前記クラスタの平均幅の関数の平方根を乗算した値であることを特徴とする請求項7に記載のコンピュータシステム。
  11. 前記モジュールのインスタンスはアプリケーションプログラミングインタフェースを介して生成されることを特徴とする請求項7に記載のコンピュータシステム。
  12. 前記モジュールは、クライアント/サーバ接続を介してアクセス可能であることを特徴とする請求項7に記載のコンピュータシステム。
  13. 前記モジュールは、前記テキストの所定部分のグレー値の、総グレー値に対する前記テキストの比率を求めて、前記比率を、前記テキストの所定のフォントの文字密度で除算するように構成された、最適可読行高乗算モジュールであることを特徴とする請求項7に記載のコンピュータシステム。
  14. 前記モジュールは、除算した比率に1を加えて、フォントサイズの乗数を求めることを特徴とする請求項13に記載のコンピュータシステム。
  15. 前記モジュールは、行高を求め、前記行高にマークアップ行高率を乗算することを特徴とする請求項7に記載のコンピュータシステム。
  16. 前記モジュールは、前記テキストの少なくとも3つの所定の代表部分のエリアを求め、前記エリアにフォントサイズを乗算して行高を求めることを特徴とする請求項7に記載のコンピュータシステム。
  17. 前記モジュールは、フォントサイズに(R +(1/Cpm ))1/2を乗算した関数に従って行高を求め、式中、Rは、エム当りの、上端部インク部から底部インク部までの活字の実際の高さであり、Cpmはエム当りの文字数を表すことを特徴とする請求項7に記載のコンピュータシステム。
  18. 前記関数は、ユーザ入力および標準デフォルト行高乗数の1つによって修正されることを特徴とする請求項55に記載のコンピュータシステム。
  19. 前記モジュールは、前記テキストの行長が変化した場合には、行高を自動的に変更することを特徴とする請求項7に記載のコンピュータシステム。
  20. 前記行高の自動変更は、前記テキストの物理的長さおよび前記テキストの1行中のクラスタ数の関数に基づくことを特徴とする請求項57に記載のコンピュータシステム。
  21. 任意の言語のあるフォントのデフォルト行高を決定する方法において、テキストストリングの前記デフォルト行高は、エムで表されたフォントサイズでレンダリングされ、各エムはその活字の正方形で識別される方法であって、前記方法が、
    前記フォントの代表的サンプルテキストの平均グレー度を決定するステップと、
    前記平均グレー度に、前記フォントの1エム当りクラスタ数を乗算するステップと、
    フォントサイズに、前記グレー度と1エム当りクラスタ数の積の逆数を乗算するステップと
    を含むことを特徴とする方法。
  22. 前記平均グレー度は、
    前記代表サンプルテキストの最も暗い部分を識別する第1の部分と、
    前記最も暗い部分の前の部分を識別する第2の部分と、
    前記最も暗い部分の後の部分を識別する第3の部分と
    を含み、前記平均グレー度は、前記第1、第2および第3の部分の幅に、それぞれ前記第1、第2および第3の部分の深さを乗算した値の合計であることを特徴とする請求項21に記載の方法。
  23. フォントのサイズに変更するために行高を調整する方法であって、
    前記フォントの文字密度を決定するステップと、
    フォントの対比を文字密度で除算して、前記フォントサイズの端数を得るステップと、
    前記端数を前記フォントサイズに加えて前記行高を調整するステップと
    を含むことを特徴とする方法。
  24. テキストの行高を決定するためのコンピュータ実行可能命令を備えたコンピュータ可読媒体であって、前記命令が、
    前記テキストのパラメータを記憶するステップと、
    前記テキストの前記パラメータを使った指数関数を適用するステップと
    を実行するためのものであることを特徴とするコンピュータ可読媒体。
  25. 前記指数関数は、定数に、前記テキストの前記パラメータを使った指数関数を乗算した値であることを特徴とする請求項74に記載のコンピュータ可読媒体。
  26. 前記テキストの前記パラメータは、単一文字の平均幅であることを特徴とする請求項74に記載のコンピュータ可読媒体。
  27. 前記定数は、前記テキストのデフォルトフォントサイズのサイズに関連することを特徴とする請求項25に記載のコンピュータ可読媒体。
  28. 前記行高にマークアップ行高率を乗算するステップを実行するための命令をさらに含むことを特徴とする請求項74に記載のコンピュータ可読媒体。
  29. 前記テキストの前記パラメータはフォントサイズであり、前記指数関数は前記フォントサイズに(R +(1/Cpm ))1/2を乗算した値であり、式中、Rは、1エム当りの、上端部インク部から底部インク部までの活字の実際の高さであり、Cpmは1エム当りの文字数を表すことを特徴とする請求項74に記載のコンピュータ可読媒体。
  30. 前記関数は、ユーザ入力および標準デフォルト行高乗数の1つによって修正されることを特徴とする請求項29に記載のコンピュータ可読媒体。
  31. 前記関数は、前記テキストの行長が変化した場合には、前記行高を自動的に変更することを特徴とする請求項29に記載のコンピュータ可読媒体。
  32. 前記行高の自動変更は、前記テキストの物理的長さおよび前記テキストの1行中のクラスタ数の関数に基づくことを特徴とする請求項31に記載のコンピュータ可読媒体。
  33. 行高を決定する方法であって、
    所定の可読行長および所定のフォントサイズの関数として行高を決定するステップと、
    前記所定のフォントサイズと実際のフォントサイズの差を求めるステップと、前記差を累乗した定数によって前記行高を調整するステップと
    を含むことを特徴とする方法。
  34. 実際のフォントサイズが前記所定のフォントサイズと異なる場合には、前記所定のフォントサイズを変更するステップをさらに含むことを特徴とする請求項33に記載の方法。
  35. 前記定数は1.07よりも小さく、1.02よりも大きいサイズであることを特徴とする請求項33に記載の方法。
  36. テキストの行高を決定するためのコンピュータ実行可能命令を備えたコンピュータ可読媒体であって、前記命令が、
    所定の可読行長および所定のフォントサイズの関数として行高を決定するステップと、
    前記所定のフォントサイズと実際のフォントサイズの差を求めるステップと、
    前記差を累乗した定数によって前記行高を調整するステップと
    を実行するためのものであることを特徴とするコンピュータ可読媒体。
  37. 前記コンピュータ実行可能命令は、実際のフォントサイズが前記所定のフォントサイズと異なる場合には、前記所定のフォントサイズを変更するステップをさらに実行することを特徴とする請求項36に記載のコンピュータ可読媒体。
  38. 前記定数は1.07よりも小さく、1.02よりも大きいサイズであることを特徴とする請求項36に記載のコンピュータ可読媒体。
  39. 任意の言語のフォントの特性を決定する方法であって、
    フォント識別子および言語識別子を含むデータを受け取るステップと、
    識別された言語で、識別されたフォントの代表活字行を生成するステップと、
    前記代表活字行の特性を測定するステップと、
    複数のフォントおよび複数の言語の間で測定値を正規化するステップと
    を含むことを特徴とする方法。
  40. 前記代表活字行の特性を測定するステップは、
    前記代表活字行中の複数のピクセル列中の総ピクセルに対する黒の比率を測定するステップと、
    黒対総ピクセルの比率が最も高い列を識別するステップと、
    前記識別した列を使って、複数のフォントおよび言語と比較して前記代表テキスト行中のフォントの特性を識別するステップと
    を含むことを特徴とする請求項39に記載の方法。
  41. 前記代表活字行の特性を測定するステップは、
    フォントの高さを識別するステップと、
    前記フォントの高さ内で、黒対総ピクセルの比率が最も高い列を含む第1の部分を識別するステップであって、前記第1の部分が、平均ピクセル列よりも暗い最初のピクセル列および最後のピクセル列を含むステップと
    をさらに含むことを特徴とする請求項40に記載の方法。
  42. 前記代表活字行の特性を測定するステップは、
    前記第1の部分の上の第2の部分を識別するステップと、
    前記第1の部分の下の第3の部分を識別するステップと
    をさらに含むことを特徴とする請求項41に記載の方法。
  43. 前記複数のフォントおよび複数の言語の間で測定値を正規化するステップは、
    前記測定した特性をプロットして、読み方向に対して垂直な面上の平均グレー度を決定するステップを含むことを特徴とする請求項39に記載の方法。
  44. 前記複数のフォントおよび複数の言語の間で測定値を正規化するステップは、
    黒対総ピクセルの比率が最も高いピクセル列を識別するステップと、
    前記ピクセル列を黒に指定するように正規化するステップと、
    残りの各ピクセル列を、前記正規化された列に従って調整するステップと、
    前記正規化されたピクセル列および調整されたピクセル列を使って前記代表活字行の平均グレー度を決定するステップであって、前記平均グレー度が複数のフォントおよび言語との比較を可能にするステップと
    を含むことを特徴とする請求項39に記載の方法。
  45. 暗さのアラインメントポイントおよびピークを識別することを可能にする、前記測定値のグラフ化を行うステップをさらに含むことを特徴とする請求項39に記載の方法。
  46. 前記フォント識別子および言語識別子を含むデータを受け取るステップは国際変換機構によって行われ、前記受け取ったデータはある言語のテキストを含み、前記言語識別子は、前記国際変換機構が前記テキストを変換する先の1つまたは複数の言語を含み、
    前記識別された言語の、前記識別されたフォントによる前記生成された代表活字行は、特性が前記変換済みテキストに適用される、記憶されている活字行であることを特徴とする請求項39に記載の方法。
  47. テキストストリングがあるフォントサイズでレンダリングされることに関連する国際テキストレイアウトのための方法において、前記フォントサイズはエムで表され、各エムはその活字の正方形によって識別される方法であって、前記方法が、
    前記テキストレイアウトの環境に関するデータを受け取るステップと、
    所定のフォントの国際テキストの正規化された代表行の測定された特性を使って、データに作用するステップと、
    前記テキストレイアウトの環境に合わせて調整された、前記テキストレイアウトの1つまたは複数のプロパティ値を伝送するステップと
    を含むことを特徴とする方法。
  48. 前記データに作用するステップは、最適なフォントサイズ、行高、コラム数および行長を決定するステップを含むことを特徴とする請求項47に記載の方法。
  49. 前記国際テキストの正規化された代表行の特性は、1凝視当りクラスタ数および1エム当りクラスタ数を提供することを特徴とする請求項47に記載の方法。
  50. あるフォントのテキストの国際テキストレイアウトのためのシステムにおいて、前記テキストはクラスタに編成され、各クラスタは、カーソルを挿入できる地点間の印字物の量によって識別される、前記テキストストリングのレンダリング単位であり、前記テキストは、エムで表されたフォントサイズでレンダリングされ、各エムはその活字の正方形によって識別されるシステムであって、前記システムが、
    1つまたは複数のテキストパラメータを保持するように構成された構造/レイアウト入力フィルタと、
    データ構造に結合され、前記テキストの1つまたは複数のパラメータを受け取るように構成された読取りメトリックスエンジンと、
    前記読取りエンジンに結合され、前記フォントのグラフィック密度を決定するように構成されたモジュールを含むテキストエンジンであって、前記グラフィック密度が、識別された言語の、前記フォントでレンダリングされた前記テキストの平均グレー度を含むテキストエンジンと
    を備えたことを特徴とするシステム。
  51. 前記テキストエンジンは、1エム当りクラスタ数、活字の深さ、活字の幅、活字の最も暗い水平部分の幅、および活字の最も暗い水平部分の深さを表す1つまたは複数の値を含む、活字の特性を提供するように構成されていることを特徴とする請求項50に記載のシステム。
  52. 前記構造/レイアウト入力フィルタ、前記テキストエンジン、および前記読取りメトリックスエンジンの1つまたは複数に結合された国際変換機構であって、テキストおよび1つまたは複数の言語識別子を受け取り、変換済みテキストのパラメータを提供して、前記変換済みテキストに適したテキストレイアウトを決定する国際変換機構をさらに含むことを特徴とする請求項50に記載のシステム。
  53. 前記国際変換機構は、アプリケーションに結合されたレイアウトエンジン内に構成され、また、前記アプリケーションからデータを受け取って適切なテキストレイアウト特性を備えた変換済みテキストを前記アプリケーションに提供するように構成されていることを特徴とする請求項52に記載のシステム。
  54. 前記国際変換機構は、アプリケーションから1つまたは複数の言語識別子およびテキストを受け取って前記変換済みテキストを提供するように構成され、また、前記読取りメトリックスエンジンおよび前記テキストエンジンで動作可能な1つまたは複数のデータ構造を作成するために前記構造/レイアウト入力フィルタが必要とする1つまたは複数のパラメータを決定するように構成されることを特徴とする請求項52に記載のシステム。
  55. 前記国際変換機構は、前記構造/レイアウト入力フィルタに結合されたアプリケーションから呼び出される外部国際変換機構であって、前記アプリケーションは、前記変換済みテキストから言語パラメータを決定して、前記言語パラメータを前記構造/レイアウト入力フィルタに提供するように構成されることを特徴とする請求項52に記載のシステム。
  56. 前記アプリケーションは、前記アプリケーションに関連する言語、フォント、ディスプレイに適した可読パラメータを受け取るように構成されることを特徴とする請求項55に記載のシステム。
  57. 前記構造/レイアウト入力フィルタ、前記テキストエンジン、および前記読取りメトリックスエンジンの1つまたは複数、および変換済みテキストから、前記1つまたは複数の言語識別子に従って可読パラメータを受け取るように結合されたアプリケーションをさらに含むことを特徴とする請求項52に記載のシステム。
  58. 前記アプリケーションは、サーバおよびクライアントマシンの1つまたは複数の中にあり、また、前記アプリケーションを呼び出している1台または複数のディスプレイに適した可読パラメータを有する前記1つまたは複数の言語識別子に従って前記変換済みテキストを表示するように構成されていることを特徴とする請求項57に記載のシステム。
  59. 前記アプリケーションは、複数のコンピュータがアクセス可能なインターネットアプリケーションであり、また、変換済みテキストを提供するようにという要求を受け取り、前記複数のコンピュータそれぞれの各ディスプレイに合わせて、前記複数のコンピュータのそれぞれが要求している言語で適切にフォーマットされた前記変換済みテキストを伝送することを特徴とする請求項57に記載のシステム。
  60. クラスタに編成されたテキストのフォントの特性を決定するためのコンピュータ実行可能命令を備えたコンピュータ可読媒体において、各クラスタは、カーソルを挿入できる地点間の印字物の量によって識別される、前記テキストストリングのレンダリング単位であり、前記テキストは、エムで表されたフォントサイズでレンダリングされ、各エムはその活字の正方形によって識別されるコンピュータ可読媒体であって、前記命令は、
    フォント識別子および言語識別子を含むデータを受け取るステップと、
    識別された言語で、識別されたフォントの代表活字行を生成するステップと、
    前記代表活字行の特性を測定するステップと、
    複数のフォントおよび言語の間で測定値を正規化するステップと
    を含むことを特徴とするコンピュータ可読媒体。
  61. 前記代表活字行の特性を測定するステップは、
    前記代表活字行中の複数のピクセル列中の総ピクセルに対する黒の比率を測定するステップと、
    黒対総ピクセルの比率が最も高い列を識別するステップと、
    前記識別した列を使って、複数のフォントおよび言語と比較して前記代表テキスト行中のフォントの特性を識別するステップと、
    フォントの高さを識別するステップと、
    前記フォントの高さ内で、黒対総ピクセルの比率が最も高い列を含む第1の部分を識別するステップであって、前記第1の部分が、平均ピクセル列よりも暗い最初のピクセル列および最後のピクセル列を含むステップと、
    前記第1の部分の上の第2の部分を識別するステップと、
    前記第1の部分の下の第3の部分を識別するステップと
    を含むことを特徴とする請求項60に記載のコンピュータ可読媒体。
  62. 前記複数のフォントおよび複数の言語の間で測定値を正規化するステップは、
    前記測定した特性をプロットして、読み方向に対して垂直な面上の平均グレー度を決定するステップを含むことを特徴とする請求項60に記載のコンピュータ可読媒体。
  63. 前記複数のフォントおよび複数の言語の間で測定値を正規化するステップは、
    黒対総ピクセルの比率が最も高いピクセル列を識別するステップと、
    前記ピクセル列を黒に指定するように正規化するステップと、
    残りの各ピクセル列を、前記正規化された列に従って調整するステップと、
    前記正規化されたピクセル列および調整されたピクセル列を使って前記代表活字行の平均グレー度を決定するステップであって、前記平均グレー度が複数のフォントおよび言語との比較を可能にするステップと
    を含むことを特徴とする請求項60に記載のコンピュータ可読媒体。
  64. 前記テキストのフォントの特性を使って、所定の言語およびフォントに適した行高およびフォントサイズを決定することを特徴とする請求項60に記載のコンピュータ可読媒体。
  65. 任意の言語のフォントの特性を決定するシステムであって、
    プロパティシートコンポーネントおよびプロパティ値コンポーネントを含むアプリケーションと、
    前記アプリケーションに結合され、フォント識別子および言語識別子を含むデータを受け取るように構成されたレイアウトエンジンであって、
    前記データを受け取るように構成された構造/レイアウト入力フィルタと、
    前記構造/レイアウト入力フィルタに結合され、前記アプリケーションに適した可読パラメータを決定するように構成された読取りメトリックスエンジンと、前記識別された言語および前記識別されたフォントの代表活字行を生成し、前記代表活字行の特性を測定し、複数のフォントおよび複数の言語の間で測定値を正規化するように構成されたテキストエンジンであって、正規化された測定値が、可読性パラメータを決定するために使用するよう前記読取りメトリックスエンジンに提供されるように構成されたフォントの特性を含むテキストエンジンとを含むレイアウトエンジンと
    を備えたことを特徴とするシステム。
  66. 前記レイアウトエンジンは、前記アプリケーションからの1つまたは複数の言語識別子および変換のためのテキストを受け取るように構成され、前記国際変換機構は、前記構造/レイアウト入力フィルタのためにデータを生成するように構成されていることを特徴とする請求項65に記載のシステム。
  67. 前記代表活字行の特性を測定するように構成されている前記テキストエンジンは、
    前記代表活字行中の複数のピクセル列中の総ピクセルに対する黒の比率を測定するための手段と、
    黒対総ピクセルの比率が最も高い列を識別するステップと、
    前記識別した列を使って、複数のフォントおよび言語と比較して前記代表テキスト行中のフォントの特性を識別するための手段と、
    フォントの高さを識別するための手段と、
    前記フォントの高さ内で、黒対総ピクセルの比率が最も高い列を含む第1の部分を識別するための手段であって、前記第1の部分が、平均ピクセル列よりも暗い最初のピクセル列および最後のピクセル列を含む手段と、
    前記第1の部分の上の第2の部分を識別するための手段と、
    前記第1の部分の下の第3の部分を識別するための手段と
    をさらに含むことを特徴とする請求項65に記載のシステム。
  68. 前記テキストエンジンは、複数のフォントおよび言語の間で測定値を正規化するように構成され、
    前記測定した特性をプロットして、読み方向に対して垂直な面上の平均グレー度を決定するための手段と、
    黒対総ピクセルの比率が最も高いピクセル列を識別するための手段と、
    前記ピクセル列を黒に指定するように正規化するための手段と、
    残りの各ピクセル列を、前記正規化された列に従って調整するための手段と、前記正規化されたピクセル列および調整されたピクセル列を使って前記代表活字行の平均グレー度を決定するための手段であって、前記平均グレー度が複数のフォントおよび言語との比較を可能にする手段と
    を含むことを特徴とする請求項65に記載のシステム。
  69. 前記テキストエンジンは、暗さのアラインメントポイントおよびピークを識別することを可能にする、前記測定値のグラフ化を行うように構成されていることを特徴とする請求項65に記載のシステム。
  70. 閲覧媒体上で読むことができるためのフォントの最適サイズを自動的に決定する方法において、前記フォントは、クラスタに編成されたテキストをレンダリングすることが可能であり、各クラスタは、カーソルを挿入できる地点間の印字物の量によって識別される、前記テキストストリングのレンダリング単位であり、前記テキストは、エムで表されたフォントサイズでレンダリングされ、各エムはその活字の正方形によって識別される方法であって、前記方法が、
    前記フォントの文字密度を決定するステップと、
    前記文字密度に、前記閲覧媒体の最も鮮明に焦点を合わせることができるエリアを乗算するステップと
    をさらに含むことを特徴とする方法。
  71. 請求項70に記載の方法を実施するための装置であって、前記閲覧媒体の幅および前記閲覧媒体からの距離を入力として受け付け、また、前記求めた文字密度および前記乗算した最も鮮明に焦点を合わせることができるエリアを使って、前記フォントの最適サイズおよび行高を出力として供給することを特徴とする装置。
  72. 前記出力はネットワーク上で前記閲覧媒体が利用可能であることを特徴とする請求項71に記載の装置。
  73. ハンドヘルドコンピューティングデバイス、コンピュータ、ポータブルコンピューティングデバイス、プリンタ内に設置されたマイクロプロセッシングユニットの1つであることを特徴とする請求項71に記載の装置。
  74. 文字密度と最も鮮明に焦点を合わせることができるエリアを乗算した値に基づいて、前記閲覧媒体に適したフォントサイズを決定するステップと、
    前記閲覧媒体は、前記最適なサイズになったフォントをレンダリングすることを可能にするステップと
    をさらに含むことを特徴とする請求項70に記載の方法。
  75. 少なくとも前記決定するステップはコンピュータ上で実施されることを特徴とする請求項74に記載の方法。
  76. 前記決定するステップはコンピュータ上で実施され、前記閲覧媒体は、印字されたページ、画面、無線で接続された閲覧媒体、掲示板、画像、およびフォントレンダリング媒体の1つまたは複数であることを特徴とする請求項74に記載の方法。
  77. 前記文字密度を、1凝視当りクラスタ数の範囲に従って変化させて、最大フォントサイズおよび最小フォントサイズを決定するステップであって、前記1凝視当りクラスタ数が言語特性の関数であるステップをさらに含むことを特徴とする請求項70に記載の方法。
  78. 前記最も鮮明に焦点を合わせることができるエリアは、中心窩角度の三角関数および前記閲覧媒体からの距離を使って求められることを特徴とする請求項70に記載の方法。
  79. 前記文字密度は、クラスタのグラフィック密度および情報密度の関数であることを特徴とする請求項70に記載の方法。
  80. 前記グラフィック密度および情報密度は、読み特性を含めて言語に依存し、前記情報密度は、読み手にとって最も鮮明に焦点を合わせて見ることができるエリア当りのある量の情報を提供することを特徴とする請求項79に記載の方法。
  81. 前記文字密度は、所定の中心窩角度内の可視クラスタ数に対する、前記フォントの1エム当りクラスタ数の比率であることを特徴とする請求項70に記載の方法。
  82. 前記最も鮮明に焦点を合わせることができるエリアは、所定の中心窩角度の半分のタンジェントを2倍した値に、閲覧表面からの距離を乗算した値であることを特徴とする請求項70に記載の方法。
  83. 前記所定の中心窩角度は、眼が最も鮮明に焦点を合わせることができる視野であることを特徴とする請求項81に記載の方法。
  84. ラジアン単位の前記所定の中心窩角度の半分は約0.006544であり、所定の中心窩角度は約0.75度であることを特徴とする請求項82に記載の方法。
  85. 前記所定の中心窩角度は、
    読み手特有の中心窩角度の入力、および
    約0.75度の中心窩角度の1つまたは複数によって求められる変数であることを特徴とする請求項81に記載の方法。
  86. 前記読み手特有の中心窩角度は、読み手の視力を反映し、また、黄斑変性、視力低下、視覚の鋭さ、トンネル視野、眼病、近眼、遠視、難読症、乱視の1つまたは複数を考慮することを特徴とする請求項85に記載の方法。
  87. 閲覧媒体上で最適な可読性が得られるように、あるフォントのテキストを調整するためのシステムであって、
    1つまたは複数のテキストパラメータを保持するように構成されたデータ構造と、
    前記データ構造に結合され、前記テキストの前記1つまたは複数のパラメータを受け取るように構成された読取りメトリックスエンジンであって、
    前記フォントの文字密度を決定するように構成されたモジュールと、
    前記文字密度に、眼の最も鮮明に焦点を合わせることができるエリアを乗算して、前記フォントの可読性に最適なサイズを生成するように構成されたモジュールとを含む読取りメトリックスエンジンと
    を備えたことを特徴とするシステム。
  88. 前記読取りメトリックスエンジンは、
    前記フォントの前記最適サイズと、言語活字の1凝視当りクラスタ数と、1エム当りクラスタ数と、前記閲覧媒体からの距離との関数によって最適コラム幅を決定するように構成されたモジュールをさらに含むことを特徴とする請求項87に記載のシステム。
  89. 前記1凝視当りクラスタ数は、言語に応じた1凝視当りの複数クラスタを提供するテーブルに従って求められることを特徴とする請求項88に記載のシステム。
  90. 前記言語活字の1凝視当りクラスタ数は、複数言語の1つに関連する定数であり、前記複数の言語のそれぞれは、その言語で読むためのグラフィック密度および情報密度を表す代表定数を有することを特徴とする請求項88に記載のシステム。
  91. 前記閲覧媒体のためのレンダリング装置であって、閲覧表面が、印字されたページ、コンピュータの画面、パーソナルディジタルアシスタント、自筆の画像、掲示板、映画の画面、および眼鏡へのインサートの1つであるレンダリング装置をさらに含むことを特徴とする請求項87に記載のシステム。
  92. 前記眼が最も鮮明に焦点を合わせることができるエリアは、閲覧媒体からの距離および中心窩角度によって求められることを特徴とする請求項87に記載のシステム。
  93. 閲覧媒体上で読むことができるためのフォントの最適サイズを自動的に決定するシステムにおいて、前記フォントは、クラスタに編成されたテキストをレンダリングすることが可能であり、各クラスタは、カーソルを挿入できる地点間の印字物の量によって識別される、前記テキストストリングのレンダリング単位であり、前記テキストストリングは、エムで表されたフォントサイズでレンダリングされ、各エムはその活字の正方形によって識別されるシステムであって、前記システムが、
    テキストを表示するように構成されたアプリケーションと、
    前記アプリケーションからデータを受信し、かつ前記アプリケーションにデータを送信するように結合されたレイアウトエンジンであって、
    前記アプリケーションからデータを受け取るように結合された構造/レイアウト入力フィルタと、
    前記フォントの文字密度を決定するように構成されたテキストエンジンと、
    前記文字密度に、前記閲覧媒体の最も鮮明に焦点を合わせることができるエリアを乗算するように構成された読取りメトリックスエンジンとを含むレイアウトエンジンと
    を備えたことを特徴とするシステム。
  94. 前記レイアウトエンジンは、前記構造/レイアウト入力フィルタおよび前記閲覧媒体上にテキストをレンダリングするための前記アプリケーションの1つまたは複数に、データを提供するように結合された国際変換機構を含むことを特徴とする請求項93に記載のシステム。
  95. 前記読取りメトリックスエンジンは、
    言語テーブルから1凝視当りクラスタ数パラメータを受け取るように構成された、1最良可読行当りクラスタモジュールと、
    前記1最良可読行当りクラスタモジュールに結合され、1行当り最小および最大クラスタパラメータを決定するように構成された1行当りクラスタモジュールと、
    前記1行当りクラスタモジュールに結合され、最小および最大コラム幅を決定するように構成されたコラム幅モジュールと、
    前記コラム幅モジュールに結合され、マークアップおよびシステムが提供するウィンドウ測定値を使ってコラム数を決定するように構成されたコラム数モジュールと
    を含むことを特徴とする請求項93に記載のシステム。
  96. 前記読取りメトリックスモジュールは、
    前記文字密度を受け取るように結合され、1エム当りクラスタ数の計算結果および1凝視当りクラスタ数を使って、前記フォントサイズを決定する可読フォントサイズモジュールを含むことを特徴とする請求項93に記載のシステム。
  97. 前記フォントサイズは、前記閲覧媒体からの距離に基づくことを特徴とする請求項96に記載のシステム。
  98. 前記コラム幅は、前記フォントサイズを、1エム当りクラスタ数と1行当りクラスタ数の積で除算することによって求められることを特徴とする請求項95に記載のシステム。
  99. 前記コラム幅は、ディスプレイの寸法およびユーザの設定に従って実際の有効原稿幅を求め、前記実際の有効原稿幅をフォントサイズおよびクラスタ寸法の関数で除算することによって求められることを特徴とする請求項95に記載のシステム。
  100. 前記読取りメトリックスモジュールは、
    前記文字密度、1行当りクラスタ数パラメータ、および有効原稿パラメータを受け取って、ヘッディングのフォントサイズを決定するように結合されたヘッディング行高モジュールを含むことを特徴とする請求項93に記載のシステム。
  101. 閲覧表面上で読むことができるための最適なフォントサイズを決定するためのコンピュータ実行可能命令を備えたコンピュータ可読媒体であって、前記命令が、
    フォントの文字密度を決定するステップと、
    前記文字密度に、眼の最も鮮明に焦点を合わせることができるエリアの長さを乗算するステップと
    を含むことを特徴とするコンピュータ可読媒体。
  102. 前記文字密度を、1凝視当りクラスタ数の範囲に従って変化させて、最大フォントサイズおよび最小フォントサイズを決定するステップであって、前記1凝視当りクラスタ数が言語特性の関数であることを特徴とする請求項101に記載のコンピュータ可読媒体。
  103. 前記最も鮮明に焦点を合わせることができるエリアは、中心窩角度の三角関数および前記閲覧媒体からの距離を使って求められることを特徴とする請求項101に記載のコンピュータ可読媒体。
  104. 前記文字密度は、クラスタのグラフィック密度および情報密度の関数であることを特徴とする請求項101に記載のコンピュータ可読媒体。
  105. 前記グラフィック密度と情報密度は、読み特性を含めて言語に依存し、前記情報密度は、読み手にとって最も鮮明に焦点を合わせることができるエリア当りのある量の情報を提供することを特徴とする請求項104に記載のコンピュータ可読媒体。
  106. 前記文字密度は、所定の中心窩角度内の可視クラスタ数に対する、前記フォントの1エム当りクラスタ数の比率であることを特徴とする請求項101に記載のコンピュータ可読媒体。
  107. 前記最も鮮明に焦点を合わせることができるエリアは、所定の中心窩角度の半分のタンジェントを2倍した値に、閲覧表面からの距離を乗算した値であることを特徴とする請求項101に記載のコンピュータ可読媒体。
  108. 前記所定の中心窩角度は、眼が最も鮮明に焦点を合わせることができる視野に関することを特徴とする請求項107に記載のコンピュータ可読媒体。
  109. ラジアン単位の前記所定の中心窩角度の半分は約0.006544であり、所定の中心窩角度は約0.75度であることを特徴とする請求項107に記載のコンピュータ可読媒体。
  110. 前記所定の中心窩角度は、
    読み手特有の中心窩角度の入力、および
    約0.75度の中心窩角度の1つまたは複数によって求められる変数であることを特徴とする請求項107に記載のコンピュータ可読媒体。
  111. 前記読み手特有の中心窩角度は、読み手の視力を反映し、また、黄斑変性、視力低下、視覚鋭敏、トンネル視野、眼病、近眼、遠視、難読症、乱視の1つまたは複数を考慮することを特徴とする請求項110に記載のコンピュータ可読媒体。
JP2003141120A 2002-12-18 2003-05-19 国際自動行高/フォントサイズ/フォント測定システムおよび方法 Pending JP2004199021A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/323,038 US20040119714A1 (en) 2002-12-18 2002-12-18 International automatic font size system and method
US10/322,857 US7271806B2 (en) 2002-12-18 2002-12-18 International automatic line height system and method
US10/323,059 US7385606B2 (en) 2002-12-18 2002-12-18 International font measurement system and method

Publications (1)

Publication Number Publication Date
JP2004199021A true JP2004199021A (ja) 2004-07-15

Family

ID=32397934

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003141120A Pending JP2004199021A (ja) 2002-12-18 2003-05-19 国際自動行高/フォントサイズ/フォント測定システムおよび方法

Country Status (10)

Country Link
EP (1) EP1431881B1 (ja)
JP (1) JP2004199021A (ja)
KR (1) KR101002524B1 (ja)
CN (1) CN1508722B (ja)
AT (1) ATE438146T1 (ja)
AU (1) AU2003200654B2 (ja)
BR (1) BR0301148A (ja)
CA (1) CA2421511C (ja)
DE (1) DE60328578D1 (ja)
MX (1) MXPA03002285A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017124572A (ja) * 2016-01-15 2017-07-20 セイコーエプソン株式会社 印刷装置、及び印刷装置の制御方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7576749B2 (en) * 2005-09-15 2009-08-18 Microsoft Corporation Positioning screen elements
US20070094591A1 (en) * 2005-10-24 2007-04-26 Etgen Michael P System and method for text legibility enhancement
KR100777444B1 (ko) * 2006-01-02 2007-11-21 삼성전자주식회사 폰트 크기를 변경하여 인쇄하는 방법 및 이에 사용되는호스트와 프린터
FR2911974B1 (fr) * 2007-01-25 2009-04-17 Streamezzo Sa Procede de gestion de polices de caracteres dans un terminal de radiocommunication, pour restituer des contenus multimedia sur un ecran, et terminal correspondant
RU2460151C1 (ru) * 2011-01-12 2012-08-27 Альберт Владимирович Патраль Устройство для индикации с наилучшей идентификацией знаков
CN103186506A (zh) * 2011-12-31 2013-07-03 北大方正集团有限公司 一种调整字符对间距的方法和系统
KR101302292B1 (ko) * 2012-01-05 2013-09-03 (주)이스트소프트 렌더링엔진 자동변환을 위한 웹브라우저를 기록한 컴퓨터 판독가능한 기록매체 및 렌더링엔진 자동변환방법
CN103699520A (zh) * 2012-09-27 2014-04-02 茵弗维尔株式会社 用于维持电子文档布局的字体处理方法
JP6295541B2 (ja) * 2013-08-09 2018-03-20 オムロン株式会社 情報処理装置、プログラマブル表示器、データ処理方法、およびプログラム
CN104503955B (zh) * 2014-12-03 2018-07-20 中建材国际贸易有限公司 一种生成个性化excel表单据的方法
CN104537004A (zh) * 2014-12-15 2015-04-22 小米科技有限责任公司 网页文字显示方法及装置
KR101755807B1 (ko) 2015-07-10 2017-07-10 김성일 휴대단말의 화면에 문자를 표시하는 방법 및 저장매체
CN106383689B (zh) * 2016-09-20 2019-11-29 青岛海信电器股份有限公司 显示字体大小调整方法、装置及终端设备
CN110162232A (zh) * 2018-02-11 2019-08-23 中国移动通信集团终端有限公司 屏幕显示方法、具有显示屏幕的装置、设备及存储介质
CN109657205B (zh) * 2018-10-09 2024-01-12 创新先进技术有限公司 文本行高的调整方法及装置、电子设备
WO2020124454A1 (zh) * 2018-12-19 2020-06-25 深圳市欢太科技有限公司 字体切换方法及相关产品
CN112631491A (zh) * 2020-12-31 2021-04-09 咪咕文化科技有限公司 屏幕文字调整方法、装置、网络设备及存储介质
CN113778582A (zh) * 2021-07-28 2021-12-10 赤子城网络技术(北京)有限公司 本地化多语言适配的设置方法、装置、设备及存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5416898A (en) * 1992-05-12 1995-05-16 Apple Computer, Inc. Apparatus and method for generating textual lines layouts
JPH0749865A (ja) * 1993-08-06 1995-02-21 Omron Corp テキスト表示装置
US5598520A (en) * 1994-09-26 1997-01-28 Microsoft Corporation Methods and apparatus for hinting a font for controlling stem width as font size and resolution of output device vary
US5668891A (en) * 1995-01-06 1997-09-16 Xerox Corporation Methods for determining font attributes of characters
JP3364868B2 (ja) * 1995-11-24 2003-01-08 日本電信電話株式会社 階層毎に書体を推奨する方法および装置
US6320587B1 (en) * 1996-08-26 2001-11-20 Fujitsu Limited Font processing apparatus in network environment and method thereof
US6356650B1 (en) * 1997-05-07 2002-03-12 Siemens Ag Method for computer-adaptation of a reference data set on the basis of at least one input data set
JP3604902B2 (ja) * 1998-04-10 2004-12-22 キヤノン株式会社 画像処理装置
US6256650B1 (en) * 1998-05-18 2001-07-03 Microsoft Corporation Method and system for automatically causing editable text to substantially occupy a text frame
US6282327B1 (en) 1999-07-30 2001-08-28 Microsoft Corporation Maintaining advance widths of existing characters that have been resolution enhanced

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017124572A (ja) * 2016-01-15 2017-07-20 セイコーエプソン株式会社 印刷装置、及び印刷装置の制御方法

Also Published As

Publication number Publication date
CA2421511A1 (en) 2004-06-18
MXPA03002285A (es) 2004-10-29
EP1431881A2 (en) 2004-06-23
KR20040054467A (ko) 2004-06-25
BR0301148A (pt) 2004-08-17
EP1431881B1 (en) 2009-07-29
ATE438146T1 (de) 2009-08-15
DE60328578D1 (de) 2009-09-10
CN1508722A (zh) 2004-06-30
AU2003200654A1 (en) 2004-07-08
AU2003200654B2 (en) 2009-04-02
KR101002524B1 (ko) 2010-12-17
CA2421511C (en) 2011-02-08
EP1431881A3 (en) 2006-02-15
CN1508722B (zh) 2010-04-28

Similar Documents

Publication Publication Date Title
US20040119714A1 (en) International automatic font size system and method
US7385606B2 (en) International font measurement system and method
US7271806B2 (en) International automatic line height system and method
JP2004199021A (ja) 国際自動行高/フォントサイズ/フォント測定システムおよび方法
US6321243B1 (en) Laying out a paragraph by defining all the characters as a single text run by substituting, and then positioning the glyphs
EP1416394B1 (en) Method for selecting a font
US7697001B2 (en) Personalized ink font
US6993209B1 (en) Low resolution-to-high resolution image correlation
JP2007058868A (ja) 置換コンピュータ字体の供給方法及び装置
US8330760B1 (en) Modifying glyph outlines
KR20150082097A (ko) 클라우드 기반 폰트 서비스 시스템
US7295206B2 (en) Ink input region adjustments
US9886426B1 (en) Methods and apparatus for generating an efficient SVG file
US8891874B1 (en) Legibility analysis of text in an electronic document
RU2323470C2 (ru) Система и способ автоматического измерения высоты строки, размера и других параметров международного шрифта
US9984053B2 (en) Replicating the appearance of typographical attributes by adjusting letter spacing of glyphs in digital publications
US9075776B2 (en) Document processing apparatus, document processing method, and program
JP6614857B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP2004118465A (ja) 文書印刷システム及び方法
JP4919245B2 (ja) 行組版装置、行組版プログラム及びそれを記録した記録媒体
Safonov et al. Toner Saving by Random Perforation
Budd et al. Web Typography
JPH01240968A (ja) 文書編集方法
JP2002157060A (ja) ドキュメントデザイン変換システム、ドキュメントデザイン変換方法、記録媒体
Daniel Example of Using Latex to Create PDF Document

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091110

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100402