(57)【要約】  フォントが所望のサイズを有する文字の既存のまたは所定のバリアントを含むか否か、最初に判断されることにより、フォント内の文字が所望のサイズに拡大される。適切なサイズのバリアントが存在しない場合は、拡大された文字はそのフォントと共に格納されている複数のコンポーネントグリフから組み立てられる。ここでコンポーネントグリフはエクステンダを含み、組み立てられた文字内において反復されることで所望のサイズが達成される。一実施形態においては、フォントは特定の文字に対する拡大されたバリアントのレコード、並びにその拡大された文字を組み立てるためのコンポーネントグリフに対するパーツレコードを有するテーブルを含む。
2009509197.tif 000002
【特許請求の範囲】
【請求項１】
文書内の文字を拡大する方法を実行するためのコンピュータ実行可能命令を有するコンピュータ読み取り可能媒体であって、前記文字はある所定のフォントのコンポーネントであり、前記方法は、
前記文字に対する所望のサイズを決定するステップと、
前記所定のフォントは、前記所望のサイズを有する前記文字の既存のバリアントを含むか否かを判断するステップと、
前記所定のフォントは前記所望のサイズを有する前記文字のバリアントを含むと判断したときに、前記文書内に挿入するために前記バリアントを選択するステップと、
前記所定のフォントは前記所望のサイズを有する前記文字のバリアントを含まないと判断したときに、前記所望のサイズの文字を前記所定のフォント内に格納されている複数のコンポーネントグリフから組み立てるステップと
を有することを特徴とするコンピュータ読み取り可能媒体。
【請求項２】
各々のコンポーネントグリフは、隣接するコンポーネントグリフのコネクタと重ね合せるための少なくとも１つの直線のコネクタを含み、
前記文字の初期の組み立ては、最小数のコンポーネントグリフがエクステンションを含めることなく用いられること
を特徴とする請求項１に記載のコンピュータ読み取り可能媒体。
【請求項３】
前記文字を組み立てるステップはさらに、
前記コネクタの全体としてのサイズを最小化させるために、隣接するコンポーネントグリフの各々の端部に隣接するコネクタ間の重なりの量を最大化するステップと、
重なりの前記最大量から所定の最小量に前記コネクタの重なりの量を低減させる結果から生ずる文字サイズの潜在的な増加を計算するステップであって、前記所定の最小量はゼロより大きいステップと、
前記文字サイズの潜在的な増加は前記所望の文字サイズ以上であるか否か判断するステップと
を有することを特徴とする請求項２に記載のコンピュータ読み取り可能媒体。
【請求項４】
前記文字を組み立てるステップはさらに、
前記文字サイズの潜在的な増加は前記所望の文字サイズ以上であると判断されたときに、前記隣接するコネクタ間の重なりを、前記所望の文字サイズが達成されるまで、実質的に均一な量だけ低減するステップとを有することを特徴とする請求項３に記載のコンピュータ読み取り可能媒体。
【請求項５】
前記文字を組み立てるステップはさらに、
前記文字サイズの潜在的な増加は前記所望の文字サイズ以上ではないと判断されたときに、前記文字に少なくとも１つのエクステンダグリフを加えて前記文字の全体のサイズを増加させるステップを有すること
を特徴とする請求項３に記載のコンピュータ読み取り可能媒体。
【請求項６】
前記エクステンダグリフは、各々の端部にコネクタを有する直線のセグメントを備えることを特徴とする請求項５に記載のコンピュータ読み取り可能媒体。
【請求項７】
前記文字が中心点に関して対称であるときは、文字に２つのエクステンダグリフが加えられ、１つのエクステンダグリフが前記中心点の各々の側に加えられることで前記文字の対称性を維持することを特徴とする請求項６に記載のコンピュータ読み取り可能媒体。
【請求項８】
前記請求項３および請求項５に記載のステップを、前記コネクタの重なりの量を前記所定の最小量まで低減させる結果として生ずる前記文字サイズの前記潜在的な増加が、前記所望の文字サイズ以上であるという判断がされるまで反復するステップと、
前記隣接するコネクタ間の重なりを、前記所望の文字サイズが達成されるまで、実質的に均一な量だけ低減させるステップと
をさらに有することを特徴とする請求項５に記載のコンピュータ読み取り可能媒体。
【請求項９】
前記文字は数学記号であり、
前記所定のフォントは、ＯｐｅｎＴｙｐｅまたはＴｒｕｅＴｙｐｅフォントのうちの１つであること
を特徴とする請求項８に記載のコンピュータ読み取り可能媒体。
【請求項１０】
前記文字は垂直または水平方向の一方に拡大されること
を特徴とする請求項９に記載のコンピュータ読み取り可能媒体。
【請求項１１】
所定のフォント内の指定された文字の拡大バージョンを生成するためのコンピュータ実行可能命令を有するコンピュータ読み取り可能媒体であって、前記指定された文字は垂直または水平方向の少なくとも一方に拡大され、前記コンピュータ実行可能命令はデータ構造を前記所定のフォント内に定義し、前記データ構造は、
前記指定された文字に対する所定の拡大されたバリアントのレコードを含む第１のデータフィールドと、
前記指定された文字に対するグリフアセンブリテーブルへのポインタを含む第２のデータフィールドとを有し、前記グリフアセンブリテーブルは前記指定された文字の拡大されたバージョンを組み立てるために用いるコンポーネントグリフのシーケンスに関する情報を含むこと
を特徴とするコンピュータ読み取り可能媒体。
【請求項１２】
前記所定のフォント内に定義される前記データ構造はさらに、
垂直方向に拡大することが可能なフォント文字の総数を含む第３のデータフィールドと、
水平方向に拡大することが可能なフォント文字の総数を含む第４のデータフィールドと
を有することを特徴とする請求項１１に記載のコンピュータ読み取り可能媒体。
【請求項１３】
前記第１のデータフィールド内に含まれる前記レコードは、前記指定された文字の前記所定の拡大されたバリアントに対する垂直または水平方向のうちの一方における前進計量を含むことを特徴とする請求項１１に記載のコンピュータ読み取り可能媒体。
【請求項１４】
前記グリフアセンブリテーブルは、
前記指定された文字を組み立てるために用いられるコンポーネントグリフの総数と、
前記指定された文字を組み立てるために用いるコンポーネントグリフレコードの配列と
を含むことを特徴とする請求項１１に記載のコンピュータ読み取り可能媒体。
【請求項１５】
前記コンポーネントグリフレコードの配列は、
各コンポーネントグリフに対するグリフ識別子を表現する第１の値と、
前記コンポーネントグリフの一方の端部のコネクタの長さを表現する第２の値と、
前記コンポーネントグリフの反対側の端部のコネクタの長さを表現する第３の値であって、前記第３の値は前記コンポーネントグリフが単一のコネクタのみ含む場合はゼロとなり得る値と、
前記コンポーネントグリフの高さまたは長さの一方に対する総前進計量を表現する第４の値と、
前記コンポーネントグリフが前記指定された文字の組立ての際に反復できるエクステンダであるか否かを示す第５の値であって、前記エクステンダは前記指定された文字の所望のサイズを達成するための長さまたは幅を追加する値と
を含むことを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１６】
前記所定のフォント内に定義される前記データ構造はさらに、隣接するコンポーネントグリフのコネクタが前記指定された文字の組み立ての際に必要な重なり合い最小量を表現する値を含むことを特徴とする請求項１５に記載のコンピュータ読み取り可能媒体。
【請求項１７】
前記指定された文字は数学記号であり、
前記所定のフォントは、ＯｐｅｎＴｙｐｅまたはＴｒｕｅＴｙｐｅフォントのうちの１つであること
を特徴とする請求項１５に記載のコンピュータ読み取り可能媒体。
【請求項１８】
所定のフォント内の指定された文字の拡大されたバージョンを生成するためのコンピュータ実行可能命令を有するコンピュータ読み取り可能媒体であって、前記指定された文字は垂直または水平方向の少なくとも一方に拡大され、前記コンピュータ実行可能命令は前記所定のフォントと共に含まれる複数のテーブルを定義し、前記複数のテーブルは、
垂直方向に拡大可能なフォント文字の第１の総数および水平方向に拡大可能なフォント文字の第２の総数を含む第１のテーブルと、
前記指定された文字の拡大されたバージョンを組み立てるのに用いられるコンポーネントグリフの総数を含む第２のテーブルあって、前記第２のテーブルはさらに、前記指定された文字の前記拡大されたバージョンを組み立てるために用いられる各々のコンポーネントグリフを記述するコンポーネントグリフレコードの配列を含むテーブルと、
前記指定された文字に対する所定の拡大されたバリアントのレコードを含む第３のテーブルであって、前記第３のテーブルはさらに、前記指定された文字に対する前記第２のテーブルへのポインタを含むテーブルと、を有し、
前記第１、第２および第３のテーブルは、タイプセッティングアプリケーションが前記所定のフォントを利用して、前記指定された文字の所定の拡大されたバリアントを代替的に選択すること、または前記指定された文字の拡大されたバージョンをコンポーネントグリフから組み立てることを可能にし、前記指定された文字の前記組み立てられたバージョンは前記所定の拡大されたバリアント内では表現されない所望のサイズを有すること
を特徴とするコンピュータ読み取り可能媒体。
【請求項１９】
前記コンポーネントグリフレコードの配列は、
各コンポーネントグリフに対するグリフ識別子を表現する第１の値と、
前記コンポーネントグリフの一方の端部のコネクタの長さを表現する第２の値と、
前記コンポーネントグリフの反対側の端部のコネクタの長さを表現する第３の値であって、前記第３の値は前記コンポーネントグリフが単一のコネクタのみ含む場合はゼロとし得る値と、
前記コンポーネントグリフの高さまたは長さの一方に対する総前進計量を表現する第４の値と、
前記コンポーネントグリフが前記指定された文字の組み立ての際に反復できるエクステンダであるか否かを示す第５の値であって、前記エクステンダは前記指定された文字の所望のサイズを達成するための長さあるいは幅を追加する値と
を含むことを特徴とする請求項１８に記載のコンピュータ読み取り可能媒体。
【請求項２０】
前記所定のフォントは、ＯｐｅｎＴｙｐｅまたはＴｒｕｅＴｙｐｅフォントのうちの１つであり、
前記第１のテーブルはさらに、隣接するコンポーネントグリフのコネクタが前記指定された文字の組み立ての際に必要な重なり合いの最小量を表現する値を含むこと
を特徴とする請求項１９に記載のコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
ソフトウェアアプリケーション、例えば、ワードプロセッサ、表計算プログラムおよび／または式エディタは、数学の方程式を表示および印刷する能力を必要とする。より拡大したあるいはより複雑な方程式を適切に表示するためには、その方程式のコンポーネントを収容するために、所定の数学記号を水平あるいは垂直方向に拡大することを必要とする。例えば、一組の括弧は、長い式を収容するために垂直あるいは水平方向に拡大する必要がある。同様に、平方根の根号は、その根号の中の引数のサイズに合わせて垂直あるいは水平方向に拡大する必要がある。他のこのような数学記号としては、（水平および垂直方向の両方の）角括弧（大括弧）のあるいは波括弧（中括弧）、矢印、アクセント、その他が含まれる。
【発明の開示】
【発明が解決しようとする課題】
【０００２】
典型的なフォントは、様々なサイズの多数の数学記号を含むが、個々の可能な全ての所望の文字およびサイズに対して所定のバリアント（ｖａｒｉａｎｔｓ）を含めておくことは不可能である。さらに、単一の数学記号をグラフィックスプログラム内にコピーし、その記号を従来の手段を用いて引き伸ばすことができるが、現在の式エディタ（例えば、ワードプロセシングプログラム内に見られるもの）は、式内の単一の記号を引き伸ばすことはできない。むしろ、各々の記号は、トゥルータイプフォント（ｔｒｕｅ  ｔｙｐｅ  ｆｏｎｔ）などのフォントの一部であり、既存のどのフォントもある記号をそのフォント内の残りの記号に対して１方向に（すなわち、垂直あるいは水平方向に）拡大または増大させることはできない。
【課題を解決するための手段】
【０００３】
上述およびその他の課題を式内の単一の数学記号などの文書内の文字を拡大するためのシステムおよび方法により解決する。幾つかの実施形態においては、その文字に対する所望のサイズが決定され、次に、その文字と関連するフォントが、その文字のその所望のサイズを有する既存のまたは所定のバリアントを含むか否かの判定がなされる。そのフォントが、その文字のその所望のサイズを有する所定のバリアントは有さないと判定された場合は、その文字は、そのフォントと共に格納されている複数のコンポーネントパーツすなわち「グリフ」から組み立てられる（「グリフ」はあるフォント内に格納されている文字あるいは文字の一部の図式表現である）。これらコンポーネントグリフは複数のエクステンダ（ｅｘｔｅｎｄｅｒｓ）を含み、これらを組み立てられた文字に追加することで、所望のサイズが達成される。加えて、一実施形態においては、各々のコンポーネントグリフは、少なくとも１つの直線のコネクタを含み、ここでは隣接するこれらコネクタの部分は拡大された文字の対称性を維持するために等量だけ重ね合わせられる。
【０００４】
別の実施形態においては、フォントはある特定のフォント文字に対する拡大されたバリアントのレコード、並びに所望のサイズを有する所定のバリアントが存在しないとき、拡大された文字を組み立てるために用いられるコンポーネントグリフに対するパーツレコードを含むテーブルを含む。一実施形態においては、これらテーブルは垂直あるいは水平方向のどちらか一方に拡大できる文字の総数を含む。これらテーブルは各々のコンポーネントグリフに対する（そのグリフが垂直あるいは水平方向のどちらか一方に延長する距離を示す）前進値、並びに個々のコンポーネントグリフの端部のコネクタに対する最小の重なり値も含む。
【０００５】
後に説明される様々な実施形態は、コンピュータプロセスとして、コンピューティングシステム、またはコンピュータプログラム製品もしくはコンピュータ読み取り可能媒体などの製品としても実施することができる。コンピュータプログラム製品としては、コンピュータシステムにより読み出し可能であり、コンピュータプロセスを実行するための命令であるコンピュータプログラムを符号化するコンピュータ記憶媒体が可能である。コンピュータプログラム製品としては、コンピュータシステムによって読み出し可能であり、コンピュータプロセスを実行するための命令であるコンピュータプログラムを符号化する搬送波上に伝搬される信号も可能である。
【０００６】
これらおよび様々な他の特徴および長所は以下の詳細な説明を関連する図面を参照しながら読むことで明白となるものである。この概要は後にさらに詳細に説明される概念の抜粋を簡素化した形式で紹介するために提供しており、請求項の主題の本質的な特徴を特定することを意図するものでも、請求項の主題の範囲の決定の手助けとして用いることを意図するものでもない。
【発明を実施するための最良の形態】
【０００７】
図１Ａおよび１Ｂは、等式内に拡張されたデータまたは引数を包み込むために、拡大する能力を有する数学記号の必要性を示す。より詳細には、図１Ａ内の等式１０２は引数ｘの値に依存して異なる式を取る関数ｆ（ｘ）の例である。図１Ａ内の標準サイズの波括弧１０４は、関数ｆ（ｘ）が取り得る全ての値を囲むためにはあまりにも小さすぎる。図１Ｂ内の等式１１２は、波括弧１１４を拡大した適切なサイズを使用している同じ関数を示す。この波括弧１１４は、等式全体を包み込むための十分な高さを有する。ＴｒｕｅＴｙｐｅ（トゥルータイプ）の幾つかのフォントは、異なるサイズの文字バリアント（例えば、波括弧）を含むが、静的なリストが、その等式のデータあるいは引数を完全に包み込むためにちょうど良いサイズのバリアントを含むことは考え難い。むしろ、通常、ユーザは、妥協することを求められ、大きすぎるあるいは小さすぎる文字サイズ（例えば、左括弧の高さあるいは平方根記号の長さ）を選択することを強制される。
【０００８】
本発明の幾つかの実施形態は、所定のＯｐｅｎＴｙｐｅまたはＴｒｕｅＴｙｐｅのフォントに情報を追加して、増大するまたは拡張可能な記号に提供する。一実施形態においては、これら追加される情報は、丸括弧、波括弧、平方根の根号などの数学記号に関する。後述するように、本発明の一実施形態は、ＯｐｅｎＴｙｐｅまたはＴｒｕｅＴｙｐｅのフォントに情報を追加するために、それらテーブル内に格納されている情報のみを用いて、拡大された数学記号を直接生成できるようにする新たなテーブルを含める。一実施形態においては、フォントは、さらに、拡大が可能な各々の文字の構築ブロックすなわち「グリフ」を詳述する追加のテーブル、並びに、そのグリフセット内のピースを組み立てることで、所与の高さあるいは長さの文字を構築するためのアルゴリズムも含む。これらテーブルおよびアルゴリズムについては後に詳細に説明される。
【０００９】
図２は本発明の実施形態を実施可能な適切なコンピューティングシステム環境２００の一例を示すために提供される。その最も基本的な構成において、システム２００は、少なくとも１つの処理ユニット２０２およびメモリ２０４を含む。コンピューティング装置の正確な構成および種類に依存して、メモリ２０４は揮発性（例えば、ＲＡＭ）、不揮発性（例えばＲＯＭ、フラッシュメモリその他）、またはこれら２つの組合せであっても良い。この最も基本的な構成が図２において点線２０６にて示さる。
【００１０】
メモリ２０４に加えて、このシステムは、コンピュータ読み取り可能媒体の少なくとも１つの他の形態を含んでも良い。コンピュータ読み取り可能媒体は、システム２００がアクセスできる任意の利用可能な媒体が可能である。例示として、これに限られるものではないが、コンピュータ読み取り可能媒体はコンピュータ記憶媒体および通信媒体を含む。
【００１１】
コンピュータ記憶媒体は、例えば、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、その他のデータなどの情報を格納するための任意の方法あるいは技術にて実施する揮発性／不揮発性、取り外し可能／取り外し不可能な媒体が含まれる。メモリ２０４、取り外し可能なストレージ２０８、および取り外し不可能なストレージ２１０は、全て、コンピュータ記憶媒体の例である。コンピュータ記憶媒体は、これに限られるものではないが、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリあるいは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）あるいは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージあるいは他の磁気記憶装置、あるいは所望の情報を格納することができ、システム２００がアクセスできる任意の他の媒体が含まれる。このようなコンピュータ記憶媒体はシステム２００の一部として可能である。
【００１２】
システム２００は、システムが他の装置と通信することを可能にする通信接続２１２も含む。通信接続２１２は、通信媒体の一例に過ぎない。通信媒体は、典型的には、搬送波または他の搬送メカニズムなどの変調されたデータ信号内のコンピュータ読み取り可能命令、データ構造、プログラムモジュールまたは他のデータを具現し、任意の情報配信媒体を含む。「変調データ信号」なる用語は、その信号内に情報を符号化するようなやり方で設定または変更される１つまたは複数の特徴を有する信号を意味する。例示として、これに限られるものではないが、通信媒体は、有線媒体、例えば、有線のネットワークあるいは直接有線接続、および無線媒体、例えば、音響、ＲＦ、赤外および他の無線媒体を含む。ここで用いられる「コンピュータ読み取り可能媒体」なる用語は、記憶媒体および通信媒体の両方を本明細書では含む。
【００１３】
一実施形態によれば、システム２００は、入力装置２１４および／または出力装置２１６などの周辺装置を含む。例示的入力装置２１４としては、これに限られるものではないが、キーボード、コンピュータマウス、ペン、またはスタイラス、音声入力装置、触覚入力装置、その他が含まれる。例示的出力装置２１６としては、これに限られるものではないが、ディスプレイ、スピーカ、およびプリンタなどの装置が含まれる。本発明の目的に対して、ディスプレイは主たる出力装置である。これら装置の各々は、当分野において周知であり、ここでは詳細には説明されない。
【００１４】
図３は本発明の一実施形態に従って形成され拡大された文字を示す。示されている特定の実施形態においては、左波括弧３００は、より小さなコンポーネントパーツすなわちグリフから構築される。ここで用いられる「グリフ」なる用語は、文字または文字の一部の図式表現である。より詳細には、グリフはフォント内に（つまり、フォントテーブル内に）格納され、本発明は、複数のグリフを選択および結合することで、拡大された文字の図式表現を生成することに関する。一実施形態においては、左波括弧３００は、少なくとも３つのコンポーネントグリフ、すなわち、上部湾曲グリフ３０２、下部湾曲グリフ３０４、および中央部分グリフ３０６から構成される。これら３つのグリフ３０２、３０４および３０６の各々は、一端（上部湾曲グリフ３０２および下部湾曲グリフ３０４の場合）または両端（中央部分３０６の場合）に直線のコネクタ部分を含み、これによって隣接するグリフとの接続が可能になる。つまり、各グリフは、全文字に対する構築ブロックとして機能し、これらグリフの直線端部は、これらグリフを互いに結合するための「コネクタ」として機能する。下部湾曲グリフ３０４に対する例示的コネクタが図３の拡大された部分内に矢印３３０で示されている。
【００１５】
一実施形態においては、各々の直線端部コネンクタは、その隣と、その文字がより低い解像度にて表示されたときの丸め誤差を考慮するために所定の最小量だけ重なる。図３の拡大された部分は矢印３３５を含むが、これはこの直線コネクタ３３０の端部の例示的な最小の重なりを示す。特定の一実施形態においては、後に詳細に説明されるように、所定の最小重なり量を指定する「ＭｉｎＣｏｎｎｅｃｔｏｒＯｖｅｒｌａｐ（コネクタ最小重なり）」値がＯｐｅｎＴｙｐｅフォントと関連するテーブル内に格納される。
【００１６】
コネクタ間の重なりは、文字の全体としてのサイズを縮小させるためにその最小値から増加させることができ、この最小の重なりにて、その文字の最大サイズが定義される。例えば、下部湾曲グリフ３０４は、隣接するグリフとコネンクタ３３０の全長と等しい量だけ重ねることができ、このときこの文字の全体サイズは最小となるが、この重なり量を減少させることは（すなわち、矢印３３５にて示される最小の重なりにすると）、組み立てられる文字の全体としてのサイズは最大となる。
【００１７】
コネクタの重なりが最小値にセットされており、それでも全体としての文字サイズが所望の目的に対しては小さすぎるような場合には、直線のエクステンダを、その文字に加えることで、その全体の長さあるいは高さを増加できる。図３に示される例においては、最初に上側エクステンダ３１０および下側エクステンダ３１２を中央部分３０６のいずれかの側に加えることで、左の波括弧３００の高さを増加させる。所定の対称性を有する文字、例えば、波括弧３００の場合は、これらエクステンダは、好ましくは、ペアで加えられ、文字の高さ（あるいは長さ）が等しく増加されることが確保され、文字の対称性が維持される。
【００１８】
いったんエクステンダ３１０および３１２が波括弧３００に加えられると、本発明の一実施形態においては、全ての隣接するコンポーネントグリフ間のコネクタの重なりを最大化することで、その文字に対する最小の拡大サイズが決定する。もし、新たに拡大された文字の全体サイズが所望の目的に対して十分でない場合は、好ましくは、コネクタの重なりをその最小値に低減させることで、組み立てられた文字の可能な最大のサイズが決定される。次に、この全体としての最大文字サイズを、所望の値と比較することで、追加のエクステンダ部が必要であるか否かが判定される。図３の場合において、括弧３００のサイズが、第１のセットのエクステンダ３１０および３１２を追加してもまだ小さすぎる（すなわち、この高さが図１に示す様々な等式を囲むのに不十分である）と判定された場合、図３に示されるように、追加のエクステンダ３２０および３２２が追加される。
【００１９】
いったん十分な数のエクステンダが拡大した文字の所望の高さあるいは長さを満たすように追加されると、様々な直線のセグメント間の重なりを調節して、文字サイズを微調整する。つまり、最小のコネクタの重なりでは、生成される文字サイズが大き過ぎるときは、重なりの程度が、各々の重なるセグメントの所で、所望のサイズが達成されるまで増加される。上述のように、各セグメントの所の重なり量は、拡大された文字の全体としての対称性が維持されるように、実質的に等しくなるべきである。さらに、図３においては、垂直方向の文字について示されているが、水平方向の文字（例えば、水平方向の括弧あるいは平方根の記号）も水平方向のエクステンダを用いることで拡大することができる。
【００２０】
適当なコネクタの重なり値の決定後、文字を異なるコンポーネントグリフを組み合わせて組み立てる。一実施形態においては、垂直の文字は下から上へと組み立て、水平な文字は左から右へと組み立てる。一実施形態においては、各々のコンポーネントグリフには、等式内の基準またはゼロ位置からの「オフセット（ｏｆｆｓｅｔ）」あるいは開始点が指定される。加えて、各々のコンポーネントグリフには、総「前進高／幅（ａｄｖａｎｃｅ  ｈｅｉｇｈｔ／ｗｉｄｔｈ）」が割り当てられ、コンポーネントの関連方向の総サイズ判定に用いられる。図３に示す例においては、組み立てられた波括弧３００の第１のグリフ３０４（下部湾曲）は基準レベル３４０に位置され、このアセンブリにおける次のグリフ（エクステンダ３１２）は、第１のグリフ３０４から、基準レベル３４０よりオフセット高３５０だけ垂直上に位置される。上述のように、このオフセット高３５０は、グリフ３０４と３１２の間の適切なコネクタの重なりを計算することで決定される。
【００２１】
同様にして、波括弧３００に対する追加のコンポーネントグリフ（３２２、３０６、３２０、３１０および３０２）を、図３に追加の点線にて示されているように（番号なし）、より大きなオフセット高の所で組み立てる。組み立てた文字３００の最後のコンポーネント（上部湾曲３０２）は基準レベル３４０よりオフセット高３６０だけ上方に置く。このグリフ３０２は、図３において矢印３７０で示す前進高を有する。こうして、組み立てた記号３００の全体高は、最後のコンポーネントグリフのオフセット３６０とこの同一グリフの前進高３７０とを加えることで簡単に決定できる。
【００２２】
図４は大きな数学記号（つまり、標準の文字を拡大したバリアント、例えば、図３に示される波括弧３００）をどのように組み立てるかに関する情報を含むセットであるテーブル４１０、４２０、および４３０を示す。「マスバリアントテーブル（Ｍａｔｈ  Ｖａｒｉａｎｔｓ  Ｔａｂｌｅ）」と呼ばれる第１のテーブル４１０は、複数のフィールドを含み、これらの幾つかは、「マスグリフ構成テーブル（Ｍａｔｈ  Ｇｌｙｐｈ  Ｃｏｎｓｔｒｕｃｔｉｏｎ  Ｔａｂｌｅ）」と呼ばれるテーブル４２０に連結する（すなわちテーブル４２０へのポインタを提供する）。後に説明されるように、このマスグリフ構成テーブル４２０は、今度は、「グリフアセンブリテーブル（Ｇｌｙｐｈ  Ａｓｓｅｍｂｌｙ  Ｔａｂｌｅ）」と呼ばれる第３のテーブル４３０へのポインタを提供する。一実施形態においては、テーブル４１０、４２０および４３０は、ある幅あるいは高さを有する文字の位置決めまたは構築のために用いられる。この目的のために、これらテーブルは、ある特定のフォント内に含まれる文字の様々な静的、すなわち「ストック（ｓｔｏｃｋ）」バージョンのサイズに関するデータ、並びに、もしこれらストックサイズのどれもが適当でない場合、その文字の拡大されたバージョンを構築するために用いる様々な構築ブロック、すなわちグリフに関するデータを含む。
【００２３】
一実施形態においては、テーブル４１０、４２０および４３０は、追加のテーブル、例えば、ＯｐｎｅｎＴｙｐｅまたはＴｒｕｅＴｙｐｅのフォント内に含まれる文字に対するグリフ情報並びに他のフォントパラメータを記述する周知のテーブルと共に含まれる。加えて、テーブル４１０、４２０および４３０は、数学記号に対する追加の位置決め情報を含むより大きなマステーブルの一部（図示せず）を構成すること、あるいはテーブル４１０、４２０および４３０内の情報は単一のテーブルあるいは配列内に統合することができる。しかし、ここで説明することを目的として、拡大された数学記号を選択あるいは組み立てるために用いられるこのデータは、図４に示され後に説明されるように、３つの別個のテーブル内に含まれるものと想定する。
【００２４】
一実施形態においては、マスバリアントテーブル４１０は第１のフィールド４１１を含み、このフィールド４１１は上述のＭｉｎＣｏｎｎｅｃｔｏｒＯｖｅｒｌａｐ値を含む。この値は、その文字を構築するために用いられるグリフの各々のコネクタあるいは直線端に対する所定の最小の重なり量を定義する（これはその文字がより低い解像度にて表示される場合の丸め誤差を考慮するために導入される）。ＭｉｎＣｏｎｎｅｃｔｏｒＯｖｅｒｌａｐ値は、典型的には、デザインすなわち「ｅｍ」単位で表現されるが、これらはフォントデザインにおける当業者においては周知である。
【００２５】
テーブル４１０内の２つの追加のフィールド４１２および４１３は、垂直方向に拡大できる様々な文字の総数およびカバレッジに関する情報を含む。例えば、フィールド４１２は、垂直方向に拡大することができる文字あるいはグリフに対する総数を提供し、他方、フィールド４１３はフィールド４１２内に識別される文字の位置決め情報およびカバレッジに関するデータを提供する。一実施形態においては、フィールド４１３は、単に、その特定の文字に対する垂直カバレッジデータを提供する別のマステーブル（図示せず）へのポインタを提供する。同様に、マスバリアントテーブル４１０内のフィールド４１４および４１５は、水平方向に拡大できる文字に対する同一タイプの総数およびカバレッジ情報を含む。
【００２６】
マスバリアントテーブル４１０内のフィールド４１６および４１７は、一実施形態においては、マスグリフ構成テーブル４２０へのポインタの一配列を提供する。より詳細には、フィールド４１６は、テーブル４２０に、垂直方向に拡大する文字あるいは形状に対するポインタの一配列を提供し、他方、フィールド４１７は、テーブル４２０に、水平方向に拡大する文字あるいは形状に対するポインタの一配列を提供する。図４には、フィールド４１６からテーブル４２０に向かう例示的ポインタが矢印４１８で示されている。
マスグリフ構成テーブル４２０は、ある特定の文字あるいはグリフに対する拡大されたバリアントを見つけるあるいは組み立てることに関する情報を提供する。この情報は、水平方向並びに垂直方向に拡大する形状の両方に対して用いることができる。一実施形態においては、マスグリフ構成テーブル４２０内の第１のフィールド４２１はグリフアセンブリテーブル４３０にポインタを提供するが、このテーブルは、その数学記号に対する形状をどのようにしたらそのフォントのグリフセット内で見つけられるパーツから組み立てることができるかを指定する。テーブル４３０に向かうポインタが図４において矢印４２４で示されており、テーブル４３０の詳細については後に述べられる。もしその特定の数学記号は組み立てできない場合は（すなわち、その記号に対するパーツのコレクションが存在しない場合は）、フィールド４２１内のポインタ４２１はＮＵＬＬにセットされる。
【００２７】
一実施形態においては、マスグリフ構成テーブル４２０は、さらに、指定された文字に対する所定のすなわち「ストック（ｓｔｏｃｋ）」バリアントの総数を提供するフィールド４２２、並びにそのストックグリフバリアントのレコードを提供するフィールド４２３を含む。一実施形態においては、フィールド４２３内に含まれるレコードは、その特定の文字バリアントに対するインデックスすなわちＩＤ、並びにその文字の、垂直（あるいは水平）方向における文字の高さ（あるいは幅）の「前進計量（ａｄｖａｎｃｅ  ｍｅａｓｕｒｅｍｅｎｔ）」を含む。
【００２８】
（グリフアセンブリテーブル４３０に向かうポインタを含む）フィールド４２１、並びに（その文字に対するストックバリアントに関する情報を含む）フィールド４２２および４２３の両方を含めることで、ある特定のフォントは、ある文字、例えば波括弧３００に対して幾つかの異なるサイズを提供することを理解している。しかし、より大きなあるいはカスタム記号サイズをグリフセット内で見つけられるコンポーネントピースを組み立てることによっても形成することができることを理解できる。こうして、クライアントタイプセッティングアプリケーション（例えば、ワードプロセッサあるいは表計算アプリケーション）は、最初に、そのフォント内で提供するバリアントをチェックし、ストックバリアントの１つを、もしそれが適当なサイズである場合は、選択することを求められる。その文字の要求される高さあるいは長さが、利用可能なグリフバリアントのどれよりも大きなときは、テーブル４２０および４３０内に含まれる追加データを利用して、グリフコンポーネントを組み立て、適切なサイズの文字（例えば、図３に示す拡大された波括弧）を生成する。
【００２９】
グリフアセンブリテーブル４３０は、特定の文字に対する形状がグリフセット内にみられるコンポーネントパーツの構成方法を指定する。例えば、テーブル４３０は、一体となって所望の文字を構成するパーツあるいはコンポーネントグリフのシーケンスに関する情報を含む。一実施形態においては、テーブル４３０は少なくとも３つのフィールドを含む。第１のフィールド４３１は、そのアセンブリに対するイタリック訂正を含む。すなわち、数式におけるイタリックの頻繁な使用のために、ある訂正値を用いることで、文字がイタリックフォント内に置かれた場合、結果としての右への傾斜が実現される。より詳細には、これらイタリック訂正は、そのグリフがどれだけ傾斜するか、およびその上部が右にどれだけはみ出すかの計量である。こうして、例えば、より背の高い文字はより大きなイタリック訂正を有する傾向があり、「Ｖ」は典型的には、「Ｌ」より大きなイタリック訂正を有する。一実施形態においては、イタリック訂正は、拡大された文字の全体としてのサイズには依存しない固定された値である。
【００３０】
グリフアセンブリテーブル４３０は、次に、ある特定の文字に対する複数のパーツまたはコンポーネントグリフの総数を提供するフィールド４３２、並びにアセンブリを形成する際に用いられるパーツレコードの配列を定義するフィールド４３３を含む。一実施形態においては、各コンポーネントグリフに対するパーツレコードは、グリフＩＤ、並びにそのグリフの端部の各「コネクタ」に対する長さを含む。上述のように、これらコネクタ（例えば、図３に示されるコネクタ３３０）は、グリフの一方あるいは両方の端の直線部分であり、これらはコンポーネントグリフをそのアセンブリ内の前のあるいは次のグリフと連結するために用いられる。隣接するパーツのコネクタは重なり合うことで、クライアントタイプセッティングアプリケーションに、グリフが組み立てられる際のある程度の柔軟性を与える。加えて、各々のコネクタペアは、文字がより低い解像度で表示されたときの丸め誤差を考慮できるように所定の最小量（上述のＭｉｎＣｏｎｎｅｃｔｏｒＯｖｅｒｌａｐ値）だけ重なる必要がある。あるコンポーネントパーツが一方の端（例えば、図３の下部湾曲３０４のコネクタ３３０の反対側の端）にコネクタを有さないときは、その端に対応するコネクタ長はグリフパーツレコード内においてゼロにセットされる。
【００３１】
各グリフコネクタの長さを詳細に記述することに加えて、グリフパーツレコードは、さらに、各コンポーネントグリフに対する「総前進（ｆｕｌｌ  ａｄｖａｎｃｅ）」値を含む。この総前進値は、そのコンポーネント拡大方向における総サイズ（例えば、高さあるいは長さ）を定義し、後に説明されるように、組み立てられた文字の総サイズを計測するために用いられる。より詳細には、アセンブリ内の各々の記号はアセンブリ内のその垂直／水平方向の位置を定義する開始値すなわち「オフセット」が与えられ、組み立てられた文字の全体サイズは、単に、最後のコンポーネントグリフの総前進値をその同一コンポーネントに対するオフセット値に加えることで計算される。この計算は図３との関連で上述されている。
【００３２】
一実施形態においては、各コンポーネントグリフに対するパーツレコードは、さらに、コンポーネントピースが「エクステンダ」、すなわち、そのアセンブリ内で複数回繰り返して用いることができるパーツとして、あるいはより小さなアセンブリであるときは完全に省略できるパーツとして用いられているか否かを示すフラグを含む。エクステンダは、典型的には、図３に示される垂直エクステンダ３１０、３１２、３２０および３２２のように、文字のコアコンポーネントグリフと継ぎ目なしで一体化できる適切な厚さを有する垂直あるいは水平方向のバーである。
【００３３】
グリフアセンブリテーブル４３０内に提供されるデータは、クライアントタイプセッティングアプリケーション（例えば、ワードプロセッサ）がカスタムサイズの文字を構築することを可能にするが、これは、上で説明され、図３に示されているように、最初に、所望のサイズの文字を構築するために要求される複数のコンポーネントグリフを決定し、次に、各々の別個のグリフを所定のオフセットの所に描くことで達成される。一実施形態においては、各グリフに対する上述のパーツレコードは一配列内に収まり、グリフがその文字を組み立てるときに用いられるのと同一の順番に並べられる。こうして、一実施形態においては、このコンポーネントグリフレコードの配列は、水平方向に拡大する文字に対しては左から右へと、そして垂直方向に拡大する文字に対しては下から上へと順に並べられる。
【００３４】
上述のように、所定のフォントは、複数の所定サイズの文字バリアントを含む。例えば、フォントは、複数のサイズの波括弧を指定するとともに、（図３に示すように）より大きな波括弧を、コンポーネントグリフを積み重ねることにより構築するためのデータを含むグリフアセンブリテーブル４３０を提供する。従って、一実施形態においては、クライアントタイプセッティングアプリケーション（例えば、表計算プログラムあるいはワードプロセッサ）は、最初に、提供されているバリアントの１つを、そのバリアントが所望の高さあるいは幅を有する場合は、選択することを期待される。しかし、これらストックのバリアントのいずもが適切なサイズではない場合は、上述のメカニズムを採用することで、大きな文字をグリフのアセンブリとしてタイプセットする。拡大された文字を構築するために用いられるアルゴリズムの一実施形態が以下に図５および図６と共に説明される。
【００３５】
図５は、動作フロー５００を示し、最初に、既存の文字を使用するか、あるいはより大きな文字（例えば、図３に示される波括弧３００）を構築するかが判断される。このフローは、開始動作５０２から開始され、取得動作５０４へと進み、所望の文字に対する最小サイズを決定する。フローは、その後、判定５０６へと進み、ここでその所望の文字サイズがフォントテーブル内に含まれる最大である所定のバリアントより大きいか否か判断される。大きくない場合は、フローは、「ＮＯ」に分岐し、選択動作５０８へと進み、その所望のサイズの適切な文字バリアントが選択される。他方、必要とされる文字のサイズが最大である所定の文字バリアントより大きな場合は、フローは、判定５０６から「ＹＥＳ」に分岐し、アセンブル動作５１０へと進み、ここで拡大された文字がグリフアセンブリテーブル４３０内に含まれるデータを用いて組み立てられる。文字が動作５０８において選択されるか、あるいは動作５１０において組み立てられた後、フローは、挿入動作５２０へ進み、ここで結果としての文字が式内にあるいは文書内の他の位置に挿入される。フローは次に動作５３０で終了する。
【００３６】
図６は、大きなあるいは拡大された文字を構築するためのアセンブリプロセス５１０の一実施形態の動作フローを示す。開始動作６００に続いて、初期アセンブリ動作６０２において、その文字の基本コンポーネントグリフがエクステンダなしに組み立てられる。従って、図３に示される例においては、この初期アセンブリプロセス６０２は、下部湾曲３０４、中央部分３０６、および上部湾曲３０２のみを組み立てる。次に、最大化動作６０４において、全ての隣接するコネクタが可能な限り最大の限度まで重ねられる（すなわち、１つのコネクタが隣接するコネクタと完全に重なる）。動作６０４の結果では、所望の文字の可能な最小バージョンが形成され、これが続く計算に対する基準として用いられる。
【００３７】
次に、計算動作６０６において、コネクタ間の重なりを可能最小量に低減することで達成できる追加のサイズ（すなわち、高さまたは幅）の量が決定される。一実施形態において、この重なりの最小の量は、マスバリアントテーブル４１０内にＭｉｎＣｏｎｎｅｃｔｏｒＯｖｅｒｌａｐ値として格納される。従って、計算動作６０６は、単にコンポーネントグリフ間の重なりを最小化することで、その文字を拡大することができる最大の量を決定できる。次に、判定動作６０８において、動作６０６において計算されたサイズが、クライアントタイプセッティングアプリケーションが求めているサイズを満たすか否か判定される。もし満たさない場合は、フローは、「ＮＯ」に分岐し、追加動作６１０へと進み、ここで各々のエクステンダの１つが文字に追加され、プロセスフローは、次に、最大化動作６０４から反復される。上述のように、対称的な文字、例えば、図３に示す波括弧３００に対しては、エクステンダは、好ましくは、ペアで追加され、その文字の全体としての高さあるいは長さを増加させても、その文字の対称性の維持が確保される。従って、図３に示す例においては、動作６１０の最初の事例においては、エクステンダ３１０と３１２が波括弧３００に追加される。勿論、非対称性の文字、例えば、平方根の根号の場合には、動作６１０において、単一のエクステンダ追加が単に要求される。
【００３８】
いったん、判定６０８において、所望のサイズを達成するための十分な数のエクステンダが追加されると、フローは、「ＹＥＳ」に分岐し、配分動作６１２へと進み、ここで、これらコネクタの重なりが所望のサイズが達成されるように、全てのグリフの間に均一に配分される。すなわち、所望のサイズは、コネクタの重なりの可能な最小値と最大値との間のレベルにて達成される。組み立てられた文字の対称性を維持するためには、この重なりは、全てのコネクタ間で均一に配分されなければならない。次に、計算動作６１４は、各々のコンポーネントグリフに対する位置オフセットを決定する（つまり、図３に示すように、ゼロ基準レベルからのオフセットを決定する）。次に、アセンブリ動作６１６は、動作６１４において計算されたオフセット情報を利用して、コンポーネントグリフが最後の拡大された文字に組み立てられる。フローは動作６１８で終了するが、ここで組み立てられた記号が図５の動作５２０において説明されたように文書内に挿入される。
【００３９】
図７は、本発明の一実施形態に従うフォントテーブル内に含まれるいくつかの情報の例を示す。様々なサイズの標準英数字セット７０２および７０４に加えて、本発明によるＯｐｅｎＴｙｐｅあるいはＴｒｕｅＴｙｐｅフォントは、所定のサイズを有する複数のセットの所定のバリアント文字を有する。例えば、図７はバリアントのセット７１０を示すが、これらには、一実施形態においては、左および右括弧（波括弧と山括弧の両方）のセット７２０、水平方向の波括弧（上括弧と下括弧の両方）セット７３０、および平方根の根号セット７４０が含まれる。加えて、本発明の幾つかの実施形態によると、様々な数学記号のコンポーネントパーツを表現するグリフのセット７５０がフォントに加えられる。一例として、これに限られるものではないが、これらグリフのセット７５０は、上部および下部の両方の波括弧のパーツを表現するセット７６０、並びに（図３に示されるコンポーネントパーツと類似する）左側の波括弧のコンポーネントパーツを含むセット７７０が含まれる。
【００４０】
従って、ＯｐｅｎＴｙｐｅあるいはＴｒｕｅＴｙｐｅフォントなどの特定のフォントにテーブル４１０、４２０および４３０を含めることで、クライアントタイプセッティングアプリケーションは、特定の文字の既存のバリアントを選択するか、またはその文字のより大きなバージョンをテーブル内で定義しているコンポーネントグリフから組み立てる機能を提供する。しかしながら、本発明は、図４に示され、上で説明されたテーブル４１０、４２０および４３０の実施形態に制限されるのもではなく、むしろ、本発明は、フォント自体の中に必要とする情報を入れ、組版アプリケーションが選択されたフォントに対する情報に簡単にアクセスできることも含まれる。
【００４１】
本発明が、構造論的特徴、方法論的動作、およびこれら動作を含むコンピュータ読み取り可能媒体に特有な表現にて説明されてきたが、特許請求の範囲にて規定される本発明は、必ずしも、これら説明された特定の構造、動作、あるいは媒体に制限されるものではない。むしろ、上述の特定の特徴および動作は、これら請求項を実施する例示的な形態として開示されたもので、当業者においては他の態様あるいは改善を本発明の範囲および精神から逸脱することなく考案することができよう。
【００４２】
例えば、本発明の一実施形態がＯｐｅｎＴｙｐｅあるいはＴｒｕｅＴｙｐｅフォントとの関連で説明されてきたが、本発明は他のフォントにも適用でき、これらを拡大された文字を生成するための情報、例えば、文字バリアントおよびコンポーネントグリフを含むように修正することもできる。加えて、上の説明および図面においては、本発明は幾つかの数学記号との関連で用いられるように示しているが、本発明は他のタイプの文字を少なくとも一方向に拡大するために利用することもできる。さらに、コンピューティングシステム２００は、適切な動作環境の単に一例であり、本発明の用途あるいは機能の範囲のいかなる制限を示唆することを意図するものでもない。本発明と共に使用するのに適する他の周知のコンピューティングシステム、環境、および／または構成には、これに限られるものではないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドもしくはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能な家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、これらの任意のシステムを含む分散コンピューティング環境、およびその他が含まれる。
【図面の簡単な説明】
【００４３】
【図１Ａ】本発明の必要性を示す例示的な方程式である。
【図１Ｂ】本発明の必要性を示す例示的な方程式である。
【図２】本発明の実施形態を実施するのに適するコンピューティングシステム環境の例を示す図である。
【図３】本発明の一実施形態に従う拡大された数学記号を記号パーツから組み立てる様子を、拡大された文字のコンポーネントグリフをより良く示すために拡大された部分と共に示す図である。
【図４】本発明の一実施形態に従うフォント内に組み込まれる３つのテーブルを示す図である。
【図５】本発明の一実施形態に従う拡大された数学記号を文書内に挿入するためのプロセスの動作上の特徴を示す流れ図である。
【図６】本発明の一実施形態に従う拡大された数学記号を組み立てるためのプロセスの動作上の特徴を示す流れ図である。
【図７】本発明の一実施形態に従うフォント内のテーブル内に含まれる幾つかの情報の例を示す図である。
【図１Ａ】
2009509197.tif 000003
【図１Ｂ】
2009509197.tif 000004
【図２】
2009509197.tif 000005
【図３】
2009509197.tif 000006
【図４】
2009509197.tif 000007
【図５】
2009509197.tif 000008
【図６】
2009509197.tif 000009
【図７】
2009509197.tif 000010
【国際調査報告】
2009509197.tif 000011
2009509197.tif 000012