(57)【要約】【課題】フォントについてのプリンタ側のメモリの浪費を減少させる。【解決手段】CADプログラム２６で使用するフォントのための使用条件をXMLテキストに記載しておく。CADプログラムで使用する書記言語に対応した使用条件に合致するグリフをグリフ生成モジュール２８が生成する。フォントファミリの中に該当するグリフがない場合にはXMLテキストで指定されるデフォルトのグリフがCADプログラムで使用される。また、異なる書記言語のグリフは並べて表示することができる。【選択図】図３
2012088719.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ・システムにおいて、複数のフォントからグリフを取得するコンピュータにより実施する方法であって、
前記複数のフォントのうち第１のフォントを使用するための論理的条件を定義しおよび前記複数のフォントのうち第２のフォントを使用するための論理的条件を定義する、拡張可能なマークアップ言語ドキュメントを参照すること、
前記複数のフォントのうち第１のフォントを使用するための論理的条件が満足されているかどうかを決定し、もし、前記複数のフォントのうち第１のフォントを使用するための論理的条件が満足されている場合、前記第１のフォントから１つまたは複数のグリフを取り出すこと、および
前記複数のフォントのうち第２のフォントを使用するための論理的条件が満足されているかどうかを決定し、もし、前記複数のフォントのうち第２のフォントを使用するための論理的条件が満足されている場合、前記第２のフォントから１つまたは複数のグリフを取り出すこと、
もし、第１のフォントを使用するための論理的条件も第２のフォントを使用するための論理的条件も満足されていない場合、前記拡張可能なマークアップ言語ドキュメントにより指定されているデフォルト・フォントを使用すること、を備え、
前記第１のフォントは第１の書記言語のグリフを備え、前記第２のフォントが第２の書記言語のグリフを備え、
前記第１のフォントおよび前記第２のフォントの前記グリフのそれぞれは、前記第１の書記言語および前記第２の書記言語が互いに横に並んで表示できるように適合される
ことを特徴とする方法。
【請求項２】
請求項１の方法を実施するためのコンピュータ実行可能命令を格納していることを特徴とするコンピュータ可読記録媒体。
【請求項３】
前記マークアップ言語ドキュメントに収容されているスケーリング情報に基づいて、前記第１および第２のフォントの少なくとも一方から前記１つまたは複数のグリフのサイズを変更すること
をさらに備えることを特徴とする請求項１に記載の方法。
【請求項４】
コンピュータ・システムにおいて、拡張可能なマークアップ言語テキストのフォントを処理するため、コンピュータにより実施する方法であって、
前記拡張可能なマークアップ言語テキスト内の第１のフォントを参照し、
前記第１のフォントを使用する条件を表すデータと一致するかを判定し、前記データは第１のフォントから取り出され、
もし、前記第１のフォントを使用される条件が満足される場合、前記第１のフォントのサイズをどのように変更するかを示す倍率因子を使用して倍率を変更し、
前記拡張可能なマークアップ言語テキスト内の第２のフォントを参照し、
前記第２のフォントを使用する条件を表すデータと一致するかを判定し、前記データは第２のフォントから取り出されること、
前記第１のフォントの前記使用についての前記条件は、コンピュータに入力される文字のＵｎｉｃｏｄｅ値が収まる範囲に関係すること
を特徴とするコンピュータ実施方法。
【請求項５】
前記第１のフォントを使用すべき前記条件は、少なくとも一部、コンピュータのユーザが選好する言語に基づくことを特徴とする請求項４に記載のコンピュータ実施方法。
【請求項６】
前記第１のフォントを使用すべき前記条件は、少なくとも一部、コンピュータのキーボードがそれ用に設定されている言語に基づくことを特徴とする請求項４に記載のコンピュータ実施方法。
【請求項７】
前記第１のフォントの前記使用についての前記条件は、コンピュータに入力される文字のＵｎｉｃｏｄｅ値が収まる範囲、およびコンピュータのユーザが選好する言語、に関係することを特徴とする請求項４に記載のコンピュータ実施方法。
【請求項８】
前記第１のフォントを使用すべき前記条件は、少なくとも一部、ドキュメントがそれ用に設定されている言語に基づき、前記ドキュメントは、前記第１または第２のフォントが使用されるべき前記媒体に存在することを特徴とする請求項４に記載のコンピュータ実施方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にフォント選択手法に関し、より詳細には、マークアップ言語ドキュメント（mark-up language document）を使用して１つまたは複数の選択基準を定義するフォント選択手法に関する。
【背景技術】
【０００２】
フォントとは、表示可能な１組のイメージまたは「グリフ群（glyphs）」であり、それぞれは、レター（letter）、キャラクタ（character）、またはシンボル（symbol）を、細かく描画する。各グリフは、コンピュータ時代における、印刷機で使用する活字ブロックの同等物であると考えることができる。フォントの開発は、熟練を要する、労働集約型の仕事（labor intensive task）である。印刷技術者(typographer)は、フォントの各グリフを作り上げるのに多くの時間を費やし、グリフ自体の形状だけではなく、他のグリフとのあり得る任意の組合せでグリフがどのように見えるかについても考慮に入れる。単一の言語用のフォントを開発することは困難であるが、複数の言語をカバーすることが予想される単一のフォントを開発することは、さらに難しい。例えば、ただの英語（米語または英語）用のフォントでは、必要なグリフは１００に満たないかもしれないが、ラテン語ベースのアルファベットで書かれたすべてのスクリプト（script）をサポートするためのフォントは、何千ものグリフを必要とする。同様に、アラビア語の基本的な活字組み（typesetting）は、約１００のグリフで実現することができるが、アラビア語の文字(書体)体系（writing system）に基づくすべての言語の活字組みには、何千ものグリフが必要である。また、キリル語、ギリシア語、ヘブライ語、タイ語などの他の多くの文字体系も、拡張されたグリフのレパートリから成るベースにしたがって使用されており、したがって規模において同じような困難さをもたらす。最後に、バリエーションには限りがあるが、中国語、日本語、韓国語などの東アジア言語のスクリプトは、何万というグリフを含む。したがって、真に国際的なフォントでは、約５０，０００から１００，０００のグリフが必要となる。
【０００３】
メモリを節約するために、たとえそのグリフが１つの言語にしか適さないとしても、例えば、複数の書記言語（書き言葉）（multiple written languages）に単一のグリフを使用することによって、多くの国際フォントは、余分なものを省略している。例えば、東アジア表意文字（ideographic characters）の中には、中国語を話す人と、日本語を話す人とでは異なる書き方をするものがある。しかし、多くの国際フォントの基礎を成すＵｎｉｃｏｄｅシステムは、こうした文字にしばしば１つのコードのみを使用する。したがって、国際フォントを開発する印刷技術者は、ある文字の中国語バージョンを作るか、その日本語バージョンを作るかの選択を迫られることがあり得る。さらに、日本語と中国語の表意文字の間にはＵｎｉｃｏｄｅではカバーされないスタイル上の違いがあることがしばしばである。このことは、印刷技術者に同様の問題を提起する。というのは、ある特定の漢字の中国語バージョンと日本語バージョンがストロークの数および配列の点で同じであるとしても、日本語のドキュメントで中国語のフォントのグリフを提示することは必ずしも適当とは限らず、逆も同様だからである。
【０００４】
フォントの開発者は、国際フォントの目的にマッチさせること、およびウェイトおよびサイズについてグリフのバランスを保つことに注意して、いくつかの単一の文字体系のフォント（複数）からグリフを総合的に集めることによって国際フォントを作成すること、を選択することができる。この目的のためにフォント（複数）をマッチさせるときに、フォント開発者は、一部の文字体系のグループには差異よりも類似性があることに気づくことがある。例えば、ラテン語、ギリシア語、およびキリル語のスクリプトは、大文字および小文字（upper and lower case letters）、セリフ体およびサンセリフ体の使用方法など、多くの特徴を共有している。それに対して、アラビア語などの文字体系も、非常に多様な印刷上のスタイルを有するが、例えばラテン語、キリル語ほど直接には他のスクリプトに対応していない。したがって、様々な目的のために多様な国際フォント（複数）を作るとき、フォント開発者は、既存のフォント（複数）を様々な方法で混合し、マッチさせ、単一の文字体系用のフォントを複数の異なる国際フォント（複数）に組み込むことすらできる。例えば、ＭＩＣＲＯＳＯＦＴ（登録商標）製品で使用されている「Ａｒｉａｌ」および「Ｔｉｍｅｓ  Ｎｅｗ  Ｒｏｍａｎ」のフォントは、異なるラテン語のグリフ・セットを含んでいるが、同じアラビア語のグリフ・セットを使用している。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
要約すると、国際フォントの開発者は、現在のフォント開発手法を使用するときに様々な問題に直面している。１つの問題は、同じグリフ・セットを複数のフォント用に作成し、テストし、メンテナンスするのに時間がかかることである。別の問題は、サイズを適切にマッチさせるには、いくつかのグリフ・セットのサイズを変更することが必要であり、これは通常、費用のかかるプロセスである。さらにもう１つの問題は、グリフの数が、現在のフォント技術で許容されている最大数（ＴｒｕｅＴｙｐｅ／ＯｐｅｎＴｙｐｅの場合６５５３６）をしばしば超えることである。最後に、上述したように、同じグリフを複数のフォントで表すことによってメモリを浪費する。
【０００６】
メモリの浪費は、プリンタのフォントのコンテクストでは特に重要な問題である。今日のプリンタのほとんどは、内蔵フォントを含んでいる。したがって、プリンタのフォントを使用するとき、コンピュータ・プログラムは、グリフ全体を送信するのではなく、文字コードをプリンタに送信しさえすればよい。しかし、プリンタに含まれていないフォントを使用する場合、コンピュータ・プログラムは、プリンタにフォントをダウンロードする必要がある。これによって、印刷プロセス中に作成されるテンポラリ・ファイルのサイズが増大し、クライアント・ワークステーションでドキュメントを印刷するのに必要な時間、およびプリントサーバを経由してプリンタにドキュメントを送信するのに必要な時間が増加する。また、プリンタ内の貴重なメモリも浪費する。
【課題を解決するための手段】
【０００７】
本明細書では、上記に従ってフォントを選択するための方法を提供する。本発明の様々な実施形態によれば、マークアップ言語ドキュメントは、複数のフォントのどれを、所与の１組の状況下で使用すべきかを決定するルールを含む。また、このマークアップ言語ドキュメントは、選択したフォントから取得したグリフを拡大すべきかそれとも縮小すべきか、あるいはどの程度拡大／縮小すべきかについても定義することができる。使用すべきフォントの決定は、言語、フォントを使用するドキュメントに関連する地域の情報などの要因によって影響を受ける。
【０００８】
本発明の別の側面は、添付図を引用しながら進められる、例として示した実施形態の詳細な説明から明らかになろう。
【０００９】
頭記の特許請求の範囲は、独自性を備えた本発明の特徴を記述するが、本発明は、以下の詳細な説明を添付の図面と併せ読めば、最もよく理解することができよう。
【図面の簡単な説明】
【００１０】
【図１】本発明を実施できるコンピュータ・ネットワ−クの例を示す図である。
【図２】本発明の少なくとも一部を実装できるコンピュータの例を示す図である。
【図３】本発明の実施形態を示す図である。
【発明を実施するための形態】
【００１１】
本発明は、一般に、マークアップ言語ドキュメントを使用して、複数の既存のフォントを単一のフォント・ファミリ、または「仮想フォント」にまとめる、フォントを選択するための方法を対象としている。マークアップ言語ドキュメントは、ファミリ内の個々のフォントのいずれが使用されるべきかについての条件に関するルールを含む。これによって、例えば、フォント開発者が、効率的なやり方で、既存のいくつかのフォントを使用して国際フォントを作成することができる。
【００１２】
本発明の様々な実施形態の説明を進める前に、本発明の様々な実施形態を実施できるコンピュータおよびネットワ−ク環境について説明する。必須ではないが、本発明は、コンピュータによって実行されるプログラムで実装することができる。一般に、プログラムは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、オブジェクト、コンポーネント、データ構造を含む。本明細書で使用する「プログラム」という用語は、単一プログラムモジュール、または協動する複数のプログラムモジュールを暗に意味する。本明細書で使用する「コンピュータ」という用語には、パーソナル・コンピュータ（ＰＣ）、ハンドヘルド装置、マルチ・プロセッサ・システム、マイクロ・プロセッサ・ベースのプログラム可能な家庭用電化製品、ネットワ−クＰＣ、ミニ・コンピュータ、メインフレーム・コンピュータ、マイクロ・プロセッサまたはマイクロ・コントローラを有する家電、ルータ、ゲートウェイ、ハブなど、１つまたは複数のプログラムを電子的に実行する任意の装置が含まれる。また本発明は、通信ネットワ−クを介してリンクされているリモート処理装置でタスクを実行する分散コンピュータ環境でも使用することができる。分散コンピュータ環境では、プログラムを、ローカルおよびリモートのメモリ記憶装置に配置することができる。
【００１３】
次に、本発明を使用できるネットワ−ク化された環境の例を、図１を参照して説明する。ネットワ−クの例は、雲形で表されたネットワ−ク１１を介して互いに通信する複数のコンピュータ１０を含む。ネットワ−ク１１は、ルータ、ゲートウェイ、ハブなどのよく知られている多くのコンポーネントを含んでいてもよく、ネットワ−ク１１によってコンピュータ１０が有線および／または無線の媒体を介して通信することができる。ネットワ−ク１１の中で相互に対話するとき、１つまたは複数のコンピュータが、他のコンピュータに対してクライアント、サーバ、またはピアとして働くことができる。したがって、本明細書に含まれる特定の例がこうしたすべてのタイプのコンピュータに言及していないとしても、本発明の様々な実施形態は、クライアント、サーバ、ピア、またはそれらの組合せで実施することができる。
【００１４】
図２を参照すると、本明細書に記載した本発明のすべてまたは一部を実装できるコンピュータの基本的な構成の例が示されている。その最も基本的な構成では、コンピュータ１０は一般に、少なくとも１つの処理装置１４およびメモリ１６を含む。処理装置１４は、本発明の様々な実施形態に従ってタスクを行うための命令を実行する。こうしたタスクを行う際に、処理装置１４は、コンピュータ１０の他の部分、およびコンピュータ１０の外部の装置に電気信号を送信して何らかの結果をもたらすことができる。これらの命令の少なくとも一部はオペレーティング・システム２２によって生成される。オペレーティング・システム２２は、いくつかのユーザ・モードおよびカーネル・モードのプログラムを含むことができる。コンピュータ１０の厳密な構成およびタイプに応じて、メモリ１６を、揮発性（ＲＡＭなど）、不揮発性（ＲＯＭ、フラッシュ・メモリなど）、またはこの両方の何らかの組合せとすることができる。この最も基本的な構成を、図２に破線１８で示す。さらに、コンピュータは、他の特徴／機能を有することもできる。例えば、コンピュータ１０は、それだけには限定されないが、磁気または光学式のディスク、テープなど、追加の記憶装置（取外し可能記憶装置２１／取外し不能記憶装置２３など）を含むこともできる。コンピュータ記憶媒体は、コンピュータ実行可能命令、データ構造、プログラムモジュール、他のデータなど、情報を記憶するための任意の方法または技術で実装される揮発性／不揮発性の取外し可能／取外し不能媒体を含む。コンピュータ記憶媒体には、それだけには限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリ、ＣＤ−ＲＯＭ、ＤＶＤ（デジタル多用途ディスク）または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、所望の情報の格納に使用でき、コンピュータ１０からアクセスできる他の任意の媒体、などがある。こうした任意のコンピュータ記憶媒体をコンピュータ１０の一部とすることができる。
【００１５】
また、コンピュータ１０は、装置が他の装置と通信できるようにする通信接続も収容することができる。通信接続は、通信媒体の一例である。通信媒体は、一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを搬送波、他の搬送機構などの変調されたデータ信号内に包含し、任意の情報配信媒体（information delivery media）を含む。通信媒体には、それだけには限定されないが、一例として、有線ネットワ−ク、直接配線接続（direct-wired connection）などの有線媒体、音響、ＲＦ、赤外線、その他の無線媒体などの無線媒体などがある。本明細書で使用する「コンピュータ可読媒体」という用語は、コンピュータ記憶媒体および通信媒体を含む。
【００１６】
コンピュータ１０は、キーボード２５、マウス、ペン、音声入力装置、タッチ入力装置などの入力装置を有することもできる。また、ディスプレイ２０、スピーカ、プリンタ２７などの出力装置を含むこともできる。こうしたすべての装置は、当技術分野ではよく知られており、ここで詳しく説明する必要はない。
【００１７】
次に、本発明の実施形態に従って、複数のフォントを単一の仮想フォントにまとめることができる方法の一例を、図３を参照して説明する。この例では、計算機支援設計（ＣＡＤ）プログラム２６が、（図２の）コンピュータ１０上でアプリケーション・プログラムとして実行され、一方グリフ生成モジュール２８は、オペレーティング・システム２２の一部として実行される。実行中、ＣＡＤプログラム２６は、ＣＡＤドキュメントをそのドキュメントに関するプロパティ情報（property information）とともに含む、ＣＡＤファイル２７に対して操作を行う。オペレーティング・システム２２は、コンピュータ１０のユーザが使用している言語に関するデータを取得し、この情報をグリフ生成モジュール２８に提供する。オペレーティング・システム２２は、様々なソースからユーザ言語情報を取得することができるが、この例では、オペレーティング・システム２２は、ＣＡＤファイル２７に含まれるプロパティ情報に基づいてユーザの言語を決定したと仮定する。他の実施形態では、オペレーティング・システム２２は、キーボード２５（図２）の地域設定から情報を取得することができる。さらに、ユーザが入力するときに、オペレーティング・システム２２は、キー・ストロークごとにＵｎｉｃｏｄｅ値を示す入力をキーボード２５から受け取る。
【００１８】
グリフ生成モジュール２８は、ディスプレイ２０に表示すべきグリフを生成する。グリフ生成モジュール２８は、１つまたは複数のフォント・ファイルからこれらのグリフを取得する。図３に示すフォント・ファイル３２、３４、３６、３８などのフォント・ファイルは、コンピュータ１０（図２）のメモリ、および／またはプリンタ２７のメモリに格納されている。グリフを取得するべき、１つのフォント・ファイル、あるいは複数のフォント・ファイルを決定するために、グリフ生成モジュー２８は、仮想フォント・ファイル３０を構文解析（parse）する。グリフ生成モジュール２８は、オペレーティング・システム２２から受け取った（表示すべき言語に関する）データを使用して、仮想フォント・ファイル３０から適切なフォント・ファイルを選択する。次いでグリフ生成モジュール２８は、選択したフォント・ファイルから適切なグリフを取得し、ディスプレイ２０にそれらを表示する。
【００１９】
ドキュメントをプリンタ２７で印刷するとき、グリフ生成モジュール２８は、多少異なる挙動を示す。印刷の場合、グリフ生成モジュール２８は、使用すべきフォントを選択するが、実際にはプリンタのグリフを生成しない。代わりに、グリフ生成モジュール２８は、使用すべきフォントの名前を、印刷すべきグリフのＵｎｉｃｏｄｅ値、および、必要とされるスケーリング・データなどの測定基準（metrics）とともに、プリンタ２７に送信する。プリンタ２７は、選択したフォントのフォント・ファイルをメモリに格納している場合、そのグリフを印刷する。一方、適切なフォントを有していない場合、プリンタ２７は、このことをグリフ生成モジュール２８に知らせる。次いでグリフ生成モジュール２８は、仮想フォント・ファイル３０から別のフォントを選択し、新しく選択したフォントの名前を、印刷すべきグリフのＵｎｉｃｏｄｅ値、および必要な任意のスケーリング・データとともにプリンタ２７に送信する。グリフ生成モジュール２８は、プリンタ２７が所有するフォントを見つけるまでこの手順を繰り返すことができる。グリフ生成モジュール２８が、プリンタ２７が所有するフォントを見つけられなかった場合、グリフ生成モジュール２８は、仮想フォント・ファイル３０で指定され、コンピュータ１０のメモリに格納されているフォールバック・フォント（fallback font）を選択する。次いでグリフ生成モジュール２８は、フォールバック・フォントの適切なグリフを取り出し、それらをプリンタ２７に送信する。本発明の様々な実施形態では、フォールバック・フォントは、プリンタ２７で印刷するのに合うようにサイズ変更されるグリフを有する。
【００２０】
図３の説明を続けると、Ｍｉｃｒｏｓｏｆｔ  Ｓａｎ  Ｓｅｒｉｆフォント・ファイル３２、Ｃｈｉｎｅｓｅ（ｔｒａｄｉｔｉｏｎａｌ）＃２フォントファイル３４、Ｍａｔｈ  Ｓｙｍｂｏｌ  ＃５フォントファイル３６、およびＪａｐａｎｅｓｅ  ＃１０フォントファイル３８がメモリ１６、取外し可能記憶装置２１、および／または取外し不能記憶装置２３（図２）に格納されている。仮想フォント・ファイル３０は、この例では、ＣＡＤプログラム２６のユーザ・インターフェース上にラテン文字、中国語繁体字、日本語文字、および算術記号（math symbol）を表示するために作成されている。したがって、ＣＡＤプログラム２６の作成者は、この目的で使用すべき最も適切なフォント群として、Ｍｉｃｒｏｓｏｆｔ  Ｓａｎ  Ｓｅｒｉｆ、Ｃｈｉｎｅｓｅ（ｔｒａｄｉｔｉｏｎａｌ）＃２、Ｍａｔｈ  Ｓｙｍｂｏｌ  ＃５、およびＪａｐａｎｅｓｅ  ＃１０の４つのフォントを選択している。フォント・ファイル３２、３４、３６、および３８はそれぞれ、グリフ群の集合を収容している。仮想フォント・ファイル３０は、どのように、いつ、どのような条件で４つのフォント・ファイルのそれぞれをＣＡＤプログラム２６で表示すべきかを、グリフ生成モジュール２８に伝える命令を有するマークアップ言語テキストを収容する。この例では、仮想フォント・ファイル３０が、以下の拡張可能なマークアップ言語（ＸＭＬ）テキストを含む、と仮定する。
【００２１】
<Font Family>  
<Name xml:lang = "en-US"> name = "MS International"</Name>  
<Name xml:lang = "zh-TW"> 國際 </Name>  
<Name xml:lang = "ja"> インターナシヨナル </Name>  
<Range UnicodeRange = "2200 - 22FF" TargetFontFamily = "Math Symbol #5"/>  
<Range xml:lang = "zh-TW" TargetFontFamily = "Chinese(traditional)#2"/>  
<Range xml:lang = "ja" TargetFontFamily = "Japanese #10"/>  
<Range xml:lang = "en-US" UnicodeRange = "4E00 - 9FAF" TargetFontFamily = "Chinese(traditional)#2" size = 1.1"/>  
<Range xml:lang = "en-US" family = "Microsoft San Serif"/>  
<Range TargetFontFainily ="Arial"/>  
</ Font Family>
【００２２】
ＸＭＬテキストのブロックの開始タグおよび終了タグが示すように、仮想フォント・ファイル３０では、事実上、Ｍｉｃｒｏｓｏｆｔ  Ｓａｎ  Ｓｅｒｉｆ、Ｃｈｉｎｅｓｅ（ｔｒａｄｉｔｉｏｎａｌ）＃２、Ｍａｔｈ  Ｓｙｍｂｏｌ  ＃５、およびＪａｐａｎｅｓｅ  ＃１０のフォントを含む複数のフォントからなるファミリを記述している。「Ｎａｍｅ」タグの付いたＸＭＬテキストの最初の３行は、仮想フォント・ファイル３０で表されるフォント・ファミリにどんな名前を与えるかについての条件付き命令（conditional instructions）を含む。例えば、行＜Ｎａｍｅ  ｘｍｌ：ｌａｎｇ＝“ｅｎ−ＵＳ”＞ｎａｍｅ＝“ＭＳ  Ｉｎｔｅｒｎａｔｉｏｎａｌ”＜／Ｎａｍｅ＞は、ユーザの言語がＥｎｇｌｉｓｈ−ＵＳ（「ｅｎ−ＵＳ」）の場合、グリフ生成モジュール２８は、フォント・ファミリに「ＭＳ  ｉｎｔｅｒｎａｔｉｏｎａｌ」と名付けるよう指示する。次の行＜Ｎａｍｅ  ｘｍｌ：ｌａｎｇ＝“ｚｈ−ＴＷ”＞國際＜／Ｎａｍｅ＞は、ユーザが中国語繁体字を使っている場合、仮想フォント・ファミリに与えられる名前は、「國際」（中国語で「ｉｎｔｅｒｎａｔｉｏｎａｌ」の意味に近い）とするよう指示する。次の行＜Ｎａｍｅ  ｘｍｌ：ｌａｎｇ＝“ｊａ”＞インターナシヨナル＜／Ｎａｍｅ＞は、ユーザが日本語を使っている場合、仮想フォント・ファミリに与えられる名前は、「インターナシヨナル」（英単語「ｉｎｔｅｒｎａｔｉｏｎａｌ」の日本語の発音）とするよう指示する。フォント・ファミリの名前は、必ずしもＣＡＤプログラム２６のユーザに対して表示されるとは限らないが、例えば、どのフォントが使用されているかを調べるためにユーザが意図的に「設定」を選択した場合は表示することができる。
【００２３】
次の行は、＜Ｒａｎｇｅ  ＵｎｉｃｏｄｅＲａｎｇｅ＝“２２００−２２ＦＦ”ＴａｒｇｅｔＦｏｎｔＦａｍｉｌｙ＝“Ｍａｔｈ  Ｓｙｍｂｏｌ  ＃５”／＞と書かれており、グリフ生成モジュール２８に、２２００から２２ＦＦの範囲に収まるＵｎｉｃｏｄｅを有する文字をキーボードから受け取った場合、グリフを描くのに使用すべきフォントはＭａｔｈ  Ｓｙｍｂｏｌ  ＃５フォントであるということを示す。次の３行は、ユーザの言語に基づいて使用すべきフォントを決定する。例えば、ユーザの書記言語（written language）が中国語繁体字の場合、使用すべきフォントはＣｈｉｎｅｓｅ（ｔｒａｄｉｔｉｏｎａｌ）＃２フォントである。一方、ユーザの書記言語が日本語である場合、使用すべきフォントはＪａｐａｎｅｓｅ  ＃１０フォントである。上記のＸＭＬテキストのブロックおよび図３を再度参照すると、次の行は、＜Ｒａｎｇｅ  ｘｍｌ：ｌａｎｇ＝“ｅｎ−ＵＳ”ＵｎｉｃｏｄｅＲａｎｇｅ＝“４Ｅ００−９ＦＡＦ”ＴａｒｇｅｔＦｏｎｔＦａｍｉｌｙ＝“Ｃｈｉｎｅｓｅ（ｔｒａｄｉｔｉｏｎａｌ）＃２”ｓｉｚｅ＝“１．１”／＞と書かれており、ユーザの言語に基づく条件、およびキー・ストロークのＵｎｉｃｏｄｅ値に基づく条件という２つの条件を設定する。この場合、ユーザの言語がＥｎｇｌｉｓｈ−ＵＳで、キー・ストロークで生成されたＵｎｉｃｏｄｅ値が４Ｅ００から９ＦＡＦ（中国語、日本語、韓国語の表意文字のほとんどを有するＣＪＫ統合のＵｎｉｃｏｄｅ範囲（UnicodeRange）を表す）間である場合、グリフ生成モジュール２８で使用すべきフォントは、Ｃｈｉｎｅｓｅ（ｔｒａｄｉｔｉｏｎａｌ）＃２フォントである。さらに、グリフのサイズを、元のサイズの１１０％まで拡大すべきである。この例では、フォント・ファミリ「ＭＳ  Ｉｎｔｅｒｎａｔｉｏｎａｌ」の開発者は、中国語、日本語、韓国語の表意文字のグリフをＭｉｃｒｏｓｏｆｔ  Ｓａｎ  Ｓｅｒｉｆローマン文字の横に並べて表示する場合、Ｃｈｉｎｅｓｅ（ｔｒａｄｉｔｉｏｎａｌ）＃２フォントが、そのグリフが元のサイズの１１０％に拡大された状態で、最適な視覚効果を生み出すということを確認している。
【００２４】
次の行は、＜Ｒａｎｇｅ  ｘｍｌ：ｌａｎｇ＝“ｅｎ−ＵＳ”ｆａｍｉｌｙ＝“Ｍｉｃｒｏｓｏｆｔ  Ｓａｎ  Ｓｅｒｉｆ”／＞と書かれており、ユーザがＥｎｇｌｉｓｈ−ＵＳを使用している場合、Ｍｉｃｒｏｓｏｆｔ  Ｓａｎ  Ｓｅｒｉｆを使用すべきであることを示している。命令のこの行は、使用すべき適切な言語はＥｎｇｌｉｓｈ−ＵＳである場合で、それまでの行で指定されている条件が満たされていない場合に、デフォルトとして働く。最後に、＜／ＦｏｎｔＦａｍｉｌｙ＞タグの前の最後の行は、＜Ｒａｎｇｅ  ＴａｒｇｅｔＦｏｎｔＦａｉｎｉｌｙ＝“Ａｒｉａｌ”／＞となっており、それまでの行の明示的な条件のうちいずれも該当しない場合に使用すべき、最終的なデフォルトのフォントを指定している。
【００２５】
再度図３を参照して、次に本発明の実施形態に従ってグリフ生成モジュール２８がグリフを生成する一連のシナリオを説明する。第１のシナリオでは、オペレーティング・システム２２は、キーボード２５で００６８のＵｎｉｃｏｄｅ値が生成されたことを検出し、この値をグリフ生成モジュール２８に渡す。また、オペレーティング・システム２２は、グリフ生成モジュール２８に、ＣＡＤファイル２７がＥｎｇｌｉｓｈ−ＵＳで表示する予定のドキュメントを収容していることを知らせる。グリフ生成モジュール２８は、表示すべきグリフのキャッシュとして働くリスト４０を作成する。グリフ生成モジュール２８は、仮想フォント・ファイル３０を参照して、００６８のＵｎｉｃｏｄｅ値をどのように扱うかを決定する。行「＜Ｒａｎｇｅ  ＸＭＬ：Ｌａｎｇ＝“ｅｎ−ＵＳ”ｆａｍｉｌｙ＝“Ｍｉｃｒｏｓｏｆｔ  Ｓａｎ  Ｓｅｒｉｆ”／＞」に基づいて、グリフ生成モジュール２８は、使用に適したフォントが、Ｍｉｃｒｏｓｏｆｔ  Ｓａｎ  Ｓｅｒｉｆフォント・ファイル３２に収容されているＭｉｃｒｏｓｏｆｔ  Ｓａｎ  Ｓｅｒｉｆフォントであることを決定する。グリフ生成モジュール２８は、フォント・ファイル３２を参照して、００６８のＵｎｉｃｏｄｅ値に対応するグリフの所在位置を突き止める。この場合、このグリフは−ｈ−である。次いで、グリフ生成モジュール２８は、グリフ−ｈ−をリスト４０にコピーし、そのグリフを値００６８に関連付ける。次いでグリフ生成モジュール２８は、そのグリフをオペレーティング・システム２２に渡し、それが表示される。
【００２６】
第２のシナリオでは、オペレーティング・システム２２は、キーボード２５で２２６４のＵｎｉｃｏｄｅ値が生成されたことを検出し、この値をグリフ生成モジュール２８に渡す。また、オペレーティング・システム２２は、グリフ生成モジュール２８に、ＣＡＤファイル２７がＥｎｇｌｉｓｈ−ＵＳで表示する予定のドキュメントを収容していることを知らせる。グリフ生成モジュール２８は、仮想フォント・ファイル３０を参照して、２２６４のＵｎｉｃｏｄｅ値をどのように扱うかを決定する。行「＜Ｒａｎｇｅ  ＵｎｉｃｏｄｅＲａｎｇｅ＝“２２００−２２ＦＦ”ｆａｍｉｌｙ＝“Ｍａｔｈ  Ｓｙｍｂｏｌ  ＃５”／＞」に基づいて、グリフ生成モジュール２８は、使用に適切したフォントが、Ｍａｔｈ  Ｓｙｍｂｏｌ  ＃５フォントファイル３６に収容されているＭａｔｈ  Ｓｙｍｂｏｌ  ＃５フォントであることを決定する。グリフ生成モジュール２８は、フォント・ファイル３６を参照して、２２６４のＵｎｉｃｏｄｅ値に対応するグリフの所在位置を突き止める。この場合、このグリフは−＝−である。次いでグリフ生成モジュール２８は、グリフ−＝−をリスト４０にコピーし、そのグリフを値２２６４に関連付ける。次いでグリフ生成モジュール２８は、そのグリフをオペレーティング・システム２２に渡し、それが表示される。
【００２７】
第３のシナリオでは、オペレーティング・システム２２は、キーボード２５で７６Ｆ４のＵｎｉｃｏｄｅ値が生成されたことを検出し、この値をグリフ生成モジュール２８に渡す。また、オペレーティング・システム２２は、グリフ生成モジュール２８に、ＣＡＤファイル２７が中国語繁体字で表示する予定のドキュメントを収容していることを知らせる。グリフ生成モジュール２８は、仮想フォント・ファイル３０を参照して、７６Ｆ４のＵｎｉｃｏｄｅ値をどのように扱うかを決定する。行「＜Ｒａｎｇｅ  ＸＭＬ：Ｌａｎｇ＝“ｃｈ−ＴＷ”ｆａｍｉｌｙ＝“Ｃｈｉｎｅｓｅ（ｔｒａｄｉｔｉｏｎａｌ）＃２”／＞」に基づいて、グリフ生成モジュール２８は、使用に適したフォントが、Ｃｈｉｎｅｓｅ（ｔｒａｄｉｔｉｏｎａｌ）＃２フォントファイル３４に収容されているＣｈｉｎｅｓｅ（ｔｒａｄｉｔｉｏｎａｌ）＃２フォントであることを決定する。グリフ生成モジュール２８は、フォント・ファイル３４を参照して、７６Ｆ４のＵｎｉｃｏｄｅ値に対応するグリフをの所在位置を突き止める。この場合、このグリフは
【００２８】
2012088719.tif 000003
【００２９】
である。この特殊なグリフは、「直接（direct）」または「正直（honest）」のように「まっすぐ（straight）」の概念の表意文字を表す。次いでグリフ生成モジュール２８は、グリフをリスト４２にコピーし、このグリフを値７６Ｆ４に関連付ける。次いでグリフ生成モジュール２８は、このグリフをオペレーティング・システム２２に渡し、それが表示される。
【００３０】
第４のシナリオでは、オペレーティング・システム２２は、キーボード２５で７６Ｆ４のＵｎｉｃｏｄｅ値が生成されたことを検出し、この値をグリフ生成モジュール２８に渡す。また、オペレーティング・システム２２は、グリフ生成モジュール２８に、ＣＡＤファイル２７が日本語で表示する予定のドキュメントを収容していることを知らせる。グリフ生成モジュール２８は、仮想フォント・ファイル３０を参照して、７６Ｆ４のＵｎｉｃｏｄｅ値をどのように扱うかを決定する。行「＜Ｒａｎｇｅ  ＸＭＬ：Ｌａｎｇ＝“ｊｐ”ｆａｍｉｌｙ＝“Ｊａｐａｎｅｓｅ  ＃１０”／＞」に基づいて、グリフ生成モジュール２８は、使用に適したフォントが、Ｊａｐａｎｅｓｅ  ＃１０フォントファイル３８に収容されているＪａｐａｎｅｓｅ  ＃１０フォントであることを決定する。グリフ生成モジュール２８は、フォント・ファイル３８を参照して、７６Ｆ４のＵｎｉｃｏｄｅ値に対応するグリフの所在位置を突き止める。この場合、このグリフは、直  である。このグリフもまた「まっすぐ」の概念の表意文字を表すが、日本語のバリエーションで表される。次いでグリフ生成モジュール２８は、そのグリフをリスト４４にコピーし、そのグリフを値７６Ｆ４に関連付ける。次いでグリフ生成モジュール２８は、このグリフをオペレーティング・システム２２に渡し、それが表示される。
【００３１】
したがって、フォントを選択するための新しく役立つ方法が提供されていることがわかる。本発明の原理を適用できる多くのあり得る実施形態を考えると、図面に関して本明細書に記載した実施形態は、例として示したものにすぎず、本発明の範囲を限定するものとみなすべきではないことを理解されたい。例えば、ソフトウェアについて例として示した実施形態の要素をハードウェアで、またはその逆で実装できること、あるいは実施形態の例を、本発明の趣旨から逸脱することなく、構成および詳細に関して変更できることが、当分野の技術者には理解されよう。したがって、本明細書に記載した本発明は、頭記の特許請求の範囲およびその均等物の範囲内に含まれ得るすべての実施形態を企図したものである。
【符号の説明】
【００３２】
１４  処理装置
１６  メモリ
２０  ディスプレイ
２１  取外し可能記憶装置
２２  オペレーティング・システム
２３  取外し不能記憶装置
２５  キーボード
２６  計算機支援設計（ＣＡＤ）プログラム
２７  プリンタ
２７  ＣＡＤファイル
２８  グリフ生成モジュール
３０  仮想フォント・ファイル
３２  Ｍｉｃｒｏｓｏｆｔ  Ｓａｎ  Ｓｅｒｉｆフォント・ファイル
３４  Ｃｈｉｎｅｓｅ（ｔｒａｄｉｔｉｏｎａｌ）＃２フォントファイル
３６  Ｍａｔｈ  Ｓｙｍｂｏｌ  ＃５フォントファイル
３８  Ｊａｐａｎｅｓｅ  ＃１０フォントファイル
４０  リスト
４２  リスト
４４  リスト
【図１】
2012088719.tif 000004
【図２】
2012088719.tif 000005
【図３】
2012088719.tif 000006