コンピュータシステムにおいて、複数のフォントからグリフを取得するコンピュータにより実施する方法であって、前記複数のフォントのうち第1のフォントを使用するための論理的条件を定義しおよび前記複数のフォントのうち第2のフォントを使用するための論理的条件を定義する、拡張可能なマークアップ言語ドキュメントを参照すること、前記複数のフォントのうち第1のフォントを使用するための論理的条件が満足されているかどうかを決定し、もし、前記複数のフォントのうち第1のフォントを使用するための論理的条件が満足されている場合、前記第1のフォントから1つまたは複数のグリフを取り出すこと、および前記複数のフォントのうち第2のフォントを使用するための論理的条件が満足されているかどうかを決定し、もし、前記複数のフォントのうち第2のフォントを使用するための論理的条件が満足されている場合、前記第2のフォントから1つまたは複数のグリフを取り出すこと、もし、第1のフォントを使用するための論理的条件も第2のフォントを使用するための論理的条件も満足されていない場合、前記拡張可能なマークアップ言語ドキュメントにより指定されているデフォルトフォントを使用すること、を備え、前記第1のフォントは第1の書記言語のグリフを備え、前記第2のフォントが第2の書記言語のグリフを備え、前記第1のフォントおよび前記第2のフォントの前記グリフのそれぞれは、前記第1の書記言語および前記第2の書記言語が互いに横に並んで表示できるように適合されることを特徴とする方法。請求項1の方法を実施するためのコンピュータ実行可能命令を格納していることを特徴とするコンピュータ可読記録媒体。前記マークアップ言語ドキュメントに収容されているスケーリング情報に基づいて、前記第1および第2のフォントの少なくとも一方から前記1つまたは複数のグリフのサイズを変更することをさらに備えることを特徴とする請求項1に記載の方法。コンピュータシステムにおいて、拡張可能なマークアップ言語テキストのフォントを処理するため、コンピュータにより実施する方法であって、前記拡張可能なマークアップ言語テキスト内の第1のフォントを参照し、前記第1のフォントを使用する条件を表すデータと一致するかを判定し、前記データは第1のフォントから取り出され、もし、前記第1のフォントを使用される条件が満足される場合、前記第1のフォントのサイズをどのように変更するかを示す倍率因子を使用して倍率を変更し、前記拡張可能なマークアップ言語テキスト内の第2のフォントを参照し、前記第2のフォントを使用する条件を表すデータと一致するかを判定し、前記データは第2のフォントから取り出されること、前記第1のフォントの前記使用についての前記条件は、コンピュータに入力される文字のUnicode値が収まる範囲に関係することを特徴とするコンピュータ実施方法。前記第1のフォントを使用すべき前記条件は、少なくとも一部、コンピュータのユーザが選好する言語に基づくことを特徴とする請求項4に記載のコンピュータ実施方法。前記第1のフォントを使用すべき前記条件は、少なくとも一部、コンピュータのキーボードがそれ用に設定されている言語に基づくことを特徴とする請求項4に記載のコンピュータ実施方法。前記第1のフォントの前記使用についての前記条件は、コンピュータに入力される文字のUnicode値が収まる範囲、およびコンピュータのユーザが選好する言語、に関係することを特徴とする請求項4に記載のコンピュータ実施方法。前記第1のフォントを使用すべき前記条件は、少なくとも一部、ドキュメントがそれ用に設定されている言語に基づき、前記ドキュメントは、前記第1または第2のフォントが使用されるべき前記媒体に存在することを特徴とする請求項4に記載のコンピュータ実施方法。要約すると、国際フォントの開発者は、現在のフォント開発手法を使用するときに様々な問題に直面している。1つの問題は、同じグリフセットを複数のフォント用に作成し、テストし、メンテナンスするのに時間がかかることである。別の問題は、サイズを適切にマッチさせるには、いくつかのグリフセットのサイズを変更することが必要であり、これは通常、費用のかかるプロセスである。さらにもう1つの問題は、グリフの数が、現在のフォント技術で許容されている最大数TrueType/OpenTypeの場合65536をしばしば超えることである。最後に、上述したように、同じグリフを複数のフォントで表すことによってメモリを浪費する。メモリの浪費は、プリンタのフォントのコンテクストでは特に重要な問題である。今日のプリンタのほとんどは、内蔵フォントを含んでいる。したがって、プリンタのフォントを使用するとき、コンピュータプログラムは、グリフ全体を送信するのではなく、文字コードをプリンタに送信しさえすればよい。しかし、プリンタに含まれていないフォントを使用する場合、コンピュータプログラムは、プリンタにフォントをダウンロードする必要がある。これによって、印刷プロセス中に作成されるテンポラリファイルのサイズが増大し、クライアントワークステーションでドキュメントを印刷するのに必要な時間、およびプリントサーバを経由してプリンタにドキュメントを送信するのに必要な時間が増加する。また、プリンタ内の貴重なメモリも浪費する。本明細書では、上記に従ってフォントを選択するための方法を提供する。本発明の様々な実施形態によれば、マークアップ言語ドキュメントは、複数のフォントのどれを、所与の1組の状況下で使用すべきかを決定するルールを含む。また、このマークアップ言語ドキュメントは、選択したフォントから取得したグリフを拡大すべきかそれとも縮小すべきか、あるいはどの程度拡大/縮小すべきかについても定義することができる。使用すべきフォントの決定は、言語、フォントを使用するドキュメントに関連する地域の情報などの要因によって影響を受ける。本発明の別の側面は、添付図を引用しながら進められる、例として示した実施形態の詳細な説明から明らかになろう。頭記の特許請求の範囲は、独自性を備えた本発明の特徴を記述するが、本発明は、以下の詳細な説明を添付の図面と併せ読めば、最もよく理解することができよう。本発明は、一般に、マークアップ言語ドキュメントを使用して、複数の既存のフォントを単一のフォントファミリ、または仮想フォントにまとめる、フォントを選択するための方法を対象としている。マークアップ言語ドキュメントは、ファミリ内の個々のフォントのいずれが使用されるべきかについての条件に関するルールを含む。これによって、例えば、フォント開発者が、効率的なやり方で、既存のいくつかのフォントを使用して国際フォントを作成することができる。本発明の様々な実施形態の説明を進める前に、本発明の様々な実施形態を実施できるコンピュータおよびネットワ-ク環境について説明する。必須ではないが、本発明は、コンピュータによって実行されるプログラムで実装することができる。一般に、プログラムは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、オブジェクト、コンポーネント、データ構造を含む。本明細書で使用するプログラムという用語は、単一プログラムモジュール、または協動する複数のプログラムモジュールを暗に意味する。本明細書で使用するコンピュータという用語には、パーソナルコンピュータPC、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースのプログラム可能な家庭用電化製品、ネットワ-クPC、ミニコンピュータ、メインフレームコンピュータ、マイクロプロセッサまたはマイクロコントローラを有する家電、ルータ、ゲートウェイ、ハブなど、1つまたは複数のプログラムを電子的に実行する任意の装置が含まれる。また本発明は、通信ネットワ-クを介してリンクされているリモート処理装置でタスクを実行する分散コンピュータ環境でも使用することができる。分散コンピュータ環境では、プログラムを、ローカルおよびリモートのメモリ記憶装置に配置することができる。次に、本発明を使用できるネットワ-ク化された環境の例を、図1を参照して説明する。ネットワ-クの例は、雲形で表されたネットワ-ク11を介して互いに通信する複数のコンピュータ10を含む。ネットワ-ク11は、ルータ、ゲートウェイ、ハブなどのよく知られている多くのコンポーネントを含んでいてもよく、ネットワ-ク11によってコンピュータ10が有線および/または無線の媒体を介して通信することができる。ネットワ-ク11の中で相互に対話するとき、1つまたは複数のコンピュータが、他のコンピュータに対してクライアント、サーバ、またはピアとして働くことができる。したがって、本明細書に含まれる特定の例がこうしたすべてのタイプのコンピュータに言及していないとしても、本発明の様々な実施形態は、クライアント、サーバ、ピア、またはそれらの組合せで実施することができる。図2を参照すると、本明細書に記載した本発明のすべてまたは一部を実装できるコンピュータの基本的な構成の例が示されている。その最も基本的な構成では、コンピュータ10は一般に、少なくとも1つの処理装置14およびメモリ16を含む。処理装置14は、本発明の様々な実施形態に従ってタスクを行うための命令を実行する。こうしたタスクを行う際に、処理装置14は、コンピュータ10の他の部分、およびコンピュータ10の外部の装置に電気信号を送信して何らかの結果をもたらすことができる。これらの命令の少なくとも一部はオペレーティングシステム22によって生成される。オペレーティングシステム22は、いくつかのユーザモードおよびカーネルモードのプログラムを含むことができる。コンピュータ10の厳密な構成およびタイプに応じて、メモリ16を、揮発性RAMなど、不揮発性ROM、フラッシュメモリなど、またはこの両方の何らかの組合せとすることができる。この最も基本的な構成を、図2に破線18で示す。さらに、コンピュータは、他の特徴/機能を有することもできる。例えば、コンピュータ10は、それだけには限定されないが、磁気または光学式のディスク、テープなど、追加の記憶装置取外し可能記憶装置21/取外し不能記憶装置23などを含むこともできる。コンピュータ記憶媒体は、コンピュータ実行可能命令、データ構造、プログラムモジュール、他のデータなど、情報を記憶するための任意の方法または技術で実装される揮発性/不揮発性の取外し可能/取外し不能媒体を含む。コンピュータ記憶媒体には、それだけには限定されないが、RAM、ROM、EEPROM、フラッシュメモリ、CD-ROM、DVDデジタル多用途ディスクまたは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、所望の情報の格納に使用でき、コンピュータ10からアクセスできる他の任意の媒体、などがある。こうした任意のコンピュータ記憶媒体をコンピュータ10の一部とすることができる。また、コンピュータ10は、装置が他の装置と通信できるようにする通信接続も収容することができる。通信接続は、通信媒体の一例である。通信媒体は、一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを搬送波、他の搬送機構などの変調されたデータ信号内に包含し、任意の情報配信媒体informationdeliverymediaを含む。通信媒体には、それだけには限定されないが、一例として、有線ネットワ-ク、直接配線接続directwiredconnectionなどの有線媒体、音響、RF、赤外線、その他の無線媒体などの無線媒体などがある。本明細書で使用するコンピュータ可読媒体という用語は、コンピュータ記憶媒体および通信媒体を含む。コンピュータ10は、キーボード25、マウス、ペン、音声入力装置、タッチ入力装置などの入力装置を有することもできる。また、ディスプレイ20、スピーカ、プリンタ27などの出力装置を含むこともできる。こうしたすべての装置は、当技術分野ではよく知られており、ここで詳しく説明する必要はない。次に、本発明の実施形態に従って、複数のフォントを単一の仮想フォントにまとめることができる方法の一例を、図3を参照して説明する。この例では、計算機支援設計CADプログラム26が、図2のコンピュータ10上でアプリケーションプログラムとして実行され、一方グリフ生成モジュール28は、オペレーティングシステム22の一部として実行される。実行中、CADプログラム26は、CADドキュメントをそのドキュメントに関するプロパティ情報propertyinformationとともに含む、CADファイル27に対して操作を行う。オペレーティングシステム22は、コンピュータ10のユーザが使用している言語に関するデータを取得し、この情報をグリフ生成モジュール28に提供する。オペレーティングシステム22は、様々なソースからユーザ言語情報を取得することができるが、この例では、オペレーティングシステム22は、CADファイル27に含まれるプロパティ情報に基づいてユーザの言語を決定したと仮定する。他の実施形態では、オペレーティングシステム22は、キーボード25図2の地域設定から情報を取得することができる。さらに、ユーザが入力するときに、オペレーティングシステム22は、キーストロークごとにUnicode値を示す入力をキーボード25から受け取る。グリフ生成モジュール28は、ディスプレイ20に表示すべきグリフを生成する。グリフ生成モジュール28は、1つまたは複数のフォントファイルからこれらのグリフを取得する。図3に示すフォントファイル32、34、36、38などのフォントファイルは、コンピュータ10図2のメモリ、および/またはプリンタ27のメモリに格納されている。グリフを取得するべき、1つのフォントファイル、あるいは複数のフォントファイルを決定するために、グリフ生成モジュー28は、仮想フォントファイル30を構文解析parseする。グリフ生成モジュール28は、オペレーティングシステム22から受け取った表示すべき言語に関するデータを使用して、仮想フォントファイル30から適切なフォントファイルを選択する。次いでグリフ生成モジュール28は、選択したフォントファイルから適切なグリフを取得し、ディスプレイ20にそれらを表示する。ドキュメントをプリンタ27で印刷するとき、グリフ生成モジュール28は、多少異なる挙動を示す。印刷の場合、グリフ生成モジュール28は、使用すべきフォントを選択するが、実際にはプリンタのグリフを生成しない。代わりに、グリフ生成モジュール28は、使用すべきフォントの名前を、印刷すべきグリフのUnicode値、および、必要とされるスケーリングデータなどの測定基準metricsとともに、プリンタ27に送信する。プリンタ27は、選択したフォントのフォントファイルをメモリに格納している場合、そのグリフを印刷する。一方、適切なフォントを有していない場合、プリンタ27は、このことをグリフ生成モジュール28に知らせる。次いでグリフ生成モジュール28は、仮想フォントファイル30から別のフォントを選択し、新しく選択したフォントの名前を、印刷すべきグリフのUnicode値、および必要な任意のスケーリングデータとともにプリンタ27に送信する。グリフ生成モジュール28は、プリンタ27が所有するフォントを見つけるまでこの手順を繰り返すことができる。グリフ生成モジュール28が、プリンタ27が所有するフォントを見つけられなかった場合、グリフ生成モジュール28は、仮想フォントファイル30で指定され、コンピュータ10のメモリに格納されているフォールバックフォントfallbackfontを選択する。次いでグリフ生成モジュール28は、フォールバックフォントの適切なグリフを取り出し、それらをプリンタ27に送信する。本発明の様々な実施形態では、フォールバックフォントは、プリンタ27で印刷するのに合うようにサイズ変更されるグリフを有する。図3の説明を続けると、MicrosoftSanSerifフォントファイル32、Chinesetraditional2フォントファイル34、MathSymbol5フォントファイル36、およびJapanese10フォントファイル38がメモリ16、取外し可能記憶装置21、および/または取外し不能記憶装置23図2に格納されている。仮想フォントファイル30は、この例では、CADプログラム26のユーザインターフェース上にラテン文字、中国語繁体字、日本語文字、および算術記号mathsymbolを表示するために作成されている。したがって、CADプログラム26の作成者は、この目的で使用すべき最も適切なフォント群として、MicrosoftSanSerif、Chinesetraditional2、MathSymbol5、およびJapanese10の4つのフォントを選択している。フォントファイル32、34、36、および38はそれぞれ、グリフ群の集合を収容している。仮想フォントファイル30は、どのように、いつ、どのような条件で4つのフォントファイルのそれぞれをCADプログラム26で表示すべきかを、グリフ生成モジュール28に伝える命令を有するマークアップ言語テキストを収容する。この例では、仮想フォントファイル30が、以下の拡張可能なマークアップ言語XMLテキストを含む、と仮定する。nameMSInternational國際インターナシヨナルXMLテキストのブロックの開始タグおよび終了タグが示すように、仮想フォントファイル30では、事実上、MicrosoftSanSerif、Chinesetraditional2、MathSymbol5、およびJapanese10のフォントを含む複数のフォントからなるファミリを記述している。Nameタグの付いたXMLテキストの最初の3行は、仮想フォントファイル30で表されるフォントファミリにどんな名前を与えるかについての条件付き命令conditionalinstructionsを含む。例えば、行<Namexml:lang=en-US>name=MSInternational</Name>は、ユーザの言語がEnglish-USen-USの場合、グリフ生成モジュール28は、フォントファミリにMSinternationalと名付けるよう指示する。次の行<Namexml:lang=zh-TW>國際</Name>は、ユーザが中国語繁体字を使っている場合、仮想フォントファミリに与えられる名前は、國際中国語でinternationalの意味に近いとするよう指示する。次の行<Namexml:lang=ja>インターナシヨナル</Name>は、ユーザが日本語を使っている場合、仮想フォントファミリに与えられる名前は、インターナシヨナル英単語internationalの日本語の発音とするよう指示する。フォントファミリの名前は、必ずしもCADプログラム26のユーザに対して表示されるとは限らないが、例えば、どのフォントが使用されているかを調べるためにユーザが意図的に設定を選択した場合は表示することができる。次の行は、<RangeUnicodeRange=2200-22FFTargetFontFamily=MathSymbol5/>と書かれており、グリフ生成モジュール28に、2200から22FFの範囲に収まるUnicodeを有する文字をキーボードから受け取った場合、グリフを描くのに使用すべきフォントはMathSymbol5フォントであるということを示す。次の3行は、ユーザの言語に基づいて使用すべきフォントを決定する。例えば、ユーザの書記言語writtenlanguageが中国語繁体字の場合、使用すべきフォントはChinesetraditional2フォントである。一方、ユーザの書記言語が日本語である場合、使用すべきフォントはJapanese10フォントである。上記のXMLテキストのブロックおよび図3を再度参照すると、次の行は、<Rangexml:lang=en-USUnicodeRange=4E00-9FAFTargetFontFamily=Chinesetraditional2size=1.1/>と書かれており、ユーザの言語に基づく条件、およびキーストロークのUnicode値に基づく条件という2つの条件を設定する。この場合、ユーザの言語がEnglish-USで、キーストロークで生成されたUnicode値が4E00から9FAF中国語、日本語、韓国語の表意文字のほとんどを有するCJK統合のUnicode範囲UnicodeRangeを表す間である場合、グリフ生成モジュール28で使用すべきフォントは、Chinesetraditional2フォントである。さらに、グリフのサイズを、元のサイズの110まで拡大すべきである。この例では、フォントファミリMSInternationalの開発者は、中国語、日本語、韓国語の表意文字のグリフをMicrosoftSanSerifローマン文字の横に並べて表示する場合、Chinesetraditional2フォントが、そのグリフが元のサイズの110に拡大された状態で、最適な視覚効果を生み出すということを確認している。次の行は、<Rangexml:lang=en-USfamily=MicrosoftSanSerif/>と書かれており、ユーザがEnglish-USを使用している場合、MicrosoftSanSerifを使用すべきであることを示している。命令のこの行は、使用すべき適切な言語はEnglish-USである場合で、それまでの行で指定されている条件が満たされていない場合に、デフォルトとして働く。最後に、</FontFamily>タグの前の最後の行は、<RangeTargetFontFainily=Arial/>となっており、それまでの行の明示的な条件のうちいずれも該当しない場合に使用すべき、最終的なデフォルトのフォントを指定している。再度図3を参照して、次に本発明の実施形態に従ってグリフ生成モジュール28がグリフを生成する一連のシナリオを説明する。第1のシナリオでは、オペレーティングシステム22は、キーボード25で0068のUnicode値が生成されたことを検出し、この値をグリフ生成モジュール28に渡す。また、オペレーティングシステム22は、グリフ生成モジュール28に、CADファイル27がEnglish-USで表示する予定のドキュメントを収容していることを知らせる。グリフ生成モジュール28は、表示すべきグリフのキャッシュとして働くリスト40を作成する。グリフ生成モジュール28は、仮想フォントファイル30を参照して、0068のUnicode値をどのように扱うかを決定する。行<RangeXML:Lang=en-USfamily=MicrosoftSanSerif/>に基づいて、グリフ生成モジュール28は、使用に適したフォントが、MicrosoftSanSerifフォントファイル32に収容されているMicrosoftSanSerifフォントであることを決定する。グリフ生成モジュール28は、フォントファイル32を参照して、0068のUnicode値に対応するグリフの所在位置を突き止める。この場合、このグリフは-h-である。次いで、グリフ生成モジュール28は、グリフ-h-をリスト40にコピーし、そのグリフを値0068に関連付ける。次いでグリフ生成モジュール28は、そのグリフをオペレーティングシステム22に渡し、それが表示される。第2のシナリオでは、オペレーティングシステム22は、キーボード25で2264のUnicode値が生成されたことを検出し、この値をグリフ生成モジュール28に渡す。また、オペレーティングシステム22は、グリフ生成モジュール28に、CADファイル27がEnglish-USで表示する予定のドキュメントを収容していることを知らせる。グリフ生成モジュール28は、仮想フォントファイル30を参照して、2264のUnicode値をどのように扱うかを決定する。行<RangeUnicodeRange=2200-22FFfamily=MathSymbol5/>に基づいて、グリフ生成モジュール28は、使用に適切したフォントが、MathSymbol5フォントファイル36に収容されているMathSymbol5フォントであることを決定する。グリフ生成モジュール28は、フォントファイル36を参照して、2264のUnicode値に対応するグリフの所在位置を突き止める。この場合、このグリフは-=-である。次いでグリフ生成モジュール28は、グリフ-=-をリスト40にコピーし、そのグリフを値2264に関連付ける。次いでグリフ生成モジュール28は、そのグリフをオペレーティングシステム22に渡し、それが表示される。第3のシナリオでは、オペレーティングシステム22は、キーボード25で76F4のUnicode値が生成されたことを検出し、この値をグリフ生成モジュール28に渡す。また、オペレーティングシステム22は、グリフ生成モジュール28に、CADファイル27が中国語繁体字で表示する予定のドキュメントを収容していることを知らせる。グリフ生成モジュール28は、仮想フォントファイル30を参照して、76F4のUnicode値をどのように扱うかを決定する。行<RangeXML:Lang=ch-TWfamily=Chinesetraditional2/>に基づいて、グリフ生成モジュール28は、使用に適したフォントが、Chinesetraditional2フォントファイル34に収容されているChinesetraditional2フォントであることを決定する。グリフ生成モジュール28は、フォントファイル34を参照して、76F4のUnicode値に対応するグリフをの所在位置を突き止める。この場合、このグリフはである。この特殊なグリフは、直接directまたは正直honestのようにまっすぐstraightの概念の表意文字を表す。次いでグリフ生成モジュール28は、グリフをリスト42にコピーし、このグリフを値76F4に関連付ける。次いでグリフ生成モジュール28は、このグリフをオペレーティングシステム22に渡し、それが表示される。第4のシナリオでは、オペレーティングシステム22は、キーボード25で76F4のUnicode値が生成されたことを検出し、この値をグリフ生成モジュール28に渡す。また、オペレーティングシステム22は、グリフ生成モジュール28に、CADファイル27が日本語で表示する予定のドキュメントを収容していることを知らせる。グリフ生成モジュール28は、仮想フォントファイル30を参照して、76F4のUnicode値をどのように扱うかを決定する。行<RangeXML:Lang=jpfamily=Japanese10/>に基づいて、グリフ生成モジュール28は、使用に適したフォントが、Japanese10フォントファイル38に収容されているJapanese10フォントであることを決定する。グリフ生成モジュール28は、フォントファイル38を参照して、76F4のUnicode値に対応するグリフの所在位置を突き止める。この場合、このグリフは、直である。このグリフもまたまっすぐの概念の表意文字を表すが、日本語のバリエーションで表される。次いでグリフ生成モジュール28は、そのグリフをリスト44にコピーし、そのグリフを値76F4に関連付ける。次いでグリフ生成モジュール28は、このグリフをオペレーティングシステム22に渡し、それが表示される。したがって、フォントを選択するための新しく役立つ方法が提供されていることがわかる。本発明の原理を適用できる多くのあり得る実施形態を考えると、図面に関して本明細書に記載した実施形態は、例として示したものにすぎず、本発明の範囲を限定するものとみなすべきではないことを理解されたい。例えば、ソフトウェアについて例として示した実施形態の要素をハードウェアで、またはその逆で実装できること、あるいは実施形態の例を、本発明の趣旨から逸脱することなく、構成および詳細に関して変更できることが、当分野の技術者には理解されよう。したがって、本明細書に記載した本発明は、頭記の特許請求の範囲およびその均等物の範囲内に含まれ得るすべての実施形態を企図したものである。