説明

フォントの選択方法

【課題】フォントについてのプリンタ側のメモリの浪費を減少させる。
【解決手段】CADプログラム26で使用するフォントのための使用条件をXMLテキストに記載しておく。CADプログラムで使用する書記言語に対応した使用条件に合致するグリフをグリフ生成モジュール28が生成する。フォントファミリの中に該当するグリフがない場合にはXMLテキストで指定されるデフォルトのグリフがCADプログラムで使用される。また、異なる書記言語のグリフは並べて表示することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は一般にフォント選択手法に関し、より詳細には、マークアップ言語ドキュメント(mark-up language document)を使用して1つまたは複数の選択基準を定義するフォント選択手法に関する。
【背景技術】
【0002】
フォントとは、表示可能な1組のイメージまたは「グリフ群(glyphs)」であり、それぞれは、レター(letter)、キャラクタ(character)、またはシンボル(symbol)を、細かく描画する。各グリフは、コンピュータ時代における、印刷機で使用する活字ブロックの同等物であると考えることができる。フォントの開発は、熟練を要する、労働集約型の仕事(labor intensive task)である。印刷技術者(typographer)は、フォントの各グリフを作り上げるのに多くの時間を費やし、グリフ自体の形状だけではなく、他のグリフとのあり得る任意の組合せでグリフがどのように見えるかについても考慮に入れる。単一の言語用のフォントを開発することは困難であるが、複数の言語をカバーすることが予想される単一のフォントを開発することは、さらに難しい。例えば、ただの英語(米語または英語)用のフォントでは、必要なグリフは100に満たないかもしれないが、ラテン語ベースのアルファベットで書かれたすべてのスクリプト(script)をサポートするためのフォントは、何千ものグリフを必要とする。同様に、アラビア語の基本的な活字組み(typesetting)は、約100のグリフで実現することができるが、アラビア語の文字(書体)体系(writing system)に基づくすべての言語の活字組みには、何千ものグリフが必要である。また、キリル語、ギリシア語、ヘブライ語、タイ語などの他の多くの文字体系も、拡張されたグリフのレパートリから成るベースにしたがって使用されており、したがって規模において同じような困難さをもたらす。最後に、バリエーションには限りがあるが、中国語、日本語、韓国語などの東アジア言語のスクリプトは、何万というグリフを含む。したがって、真に国際的なフォントでは、約50,000から100,000のグリフが必要となる。
【0003】
メモリを節約するために、たとえそのグリフが1つの言語にしか適さないとしても、例えば、複数の書記言語(書き言葉)(multiple written languages)に単一のグリフを使用することによって、多くの国際フォントは、余分なものを省略している。例えば、東アジア表意文字(ideographic characters)の中には、中国語を話す人と、日本語を話す人とでは異なる書き方をするものがある。しかし、多くの国際フォントの基礎を成すUnicodeシステムは、こうした文字にしばしば1つのコードのみを使用する。したがって、国際フォントを開発する印刷技術者は、ある文字の中国語バージョンを作るか、その日本語バージョンを作るかの選択を迫られることがあり得る。さらに、日本語と中国語の表意文字の間にはUnicodeではカバーされないスタイル上の違いがあることがしばしばである。このことは、印刷技術者に同様の問題を提起する。というのは、ある特定の漢字の中国語バージョンと日本語バージョンがストロークの数および配列の点で同じであるとしても、日本語のドキュメントで中国語のフォントのグリフを提示することは必ずしも適当とは限らず、逆も同様だからである。
【0004】
フォントの開発者は、国際フォントの目的にマッチさせること、およびウェイトおよびサイズについてグリフのバランスを保つことに注意して、いくつかの単一の文字体系のフォント(複数)からグリフを総合的に集めることによって国際フォントを作成すること、を選択することができる。この目的のためにフォント(複数)をマッチさせるときに、フォント開発者は、一部の文字体系のグループには差異よりも類似性があることに気づくことがある。例えば、ラテン語、ギリシア語、およびキリル語のスクリプトは、大文字および小文字(upper and lower case letters)、セリフ体およびサンセリフ体の使用方法など、多くの特徴を共有している。それに対して、アラビア語などの文字体系も、非常に多様な印刷上のスタイルを有するが、例えばラテン語、キリル語ほど直接には他のスクリプトに対応していない。したがって、様々な目的のために多様な国際フォント(複数)を作るとき、フォント開発者は、既存のフォント(複数)を様々な方法で混合し、マッチさせ、単一の文字体系用のフォントを複数の異なる国際フォント(複数)に組み込むことすらできる。例えば、MICROSOFT(登録商標)製品で使用されている「Arial」および「Times New Roman」のフォントは、異なるラテン語のグリフ・セットを含んでいるが、同じアラビア語のグリフ・セットを使用している。
【発明の概要】
【発明が解決しようとする課題】
【0005】
要約すると、国際フォントの開発者は、現在のフォント開発手法を使用するときに様々な問題に直面している。1つの問題は、同じグリフ・セットを複数のフォント用に作成し、テストし、メンテナンスするのに時間がかかることである。別の問題は、サイズを適切にマッチさせるには、いくつかのグリフ・セットのサイズを変更することが必要であり、これは通常、費用のかかるプロセスである。さらにもう1つの問題は、グリフの数が、現在のフォント技術で許容されている最大数(TrueType/OpenTypeの場合65536)をしばしば超えることである。最後に、上述したように、同じグリフを複数のフォントで表すことによってメモリを浪費する。
【0006】
メモリの浪費は、プリンタのフォントのコンテクストでは特に重要な問題である。今日のプリンタのほとんどは、内蔵フォントを含んでいる。したがって、プリンタのフォントを使用するとき、コンピュータ・プログラムは、グリフ全体を送信するのではなく、文字コードをプリンタに送信しさえすればよい。しかし、プリンタに含まれていないフォントを使用する場合、コンピュータ・プログラムは、プリンタにフォントをダウンロードする必要がある。これによって、印刷プロセス中に作成されるテンポラリ・ファイルのサイズが増大し、クライアント・ワークステーションでドキュメントを印刷するのに必要な時間、およびプリントサーバを経由してプリンタにドキュメントを送信するのに必要な時間が増加する。また、プリンタ内の貴重なメモリも浪費する。
【課題を解決するための手段】
【0007】
本明細書では、上記に従ってフォントを選択するための方法を提供する。本発明の様々な実施形態によれば、マークアップ言語ドキュメントは、複数のフォントのどれを、所与の1組の状況下で使用すべきかを決定するルールを含む。また、このマークアップ言語ドキュメントは、選択したフォントから取得したグリフを拡大すべきかそれとも縮小すべきか、あるいはどの程度拡大/縮小すべきかについても定義することができる。使用すべきフォントの決定は、言語、フォントを使用するドキュメントに関連する地域の情報などの要因によって影響を受ける。
【0008】
本発明の別の側面は、添付図を引用しながら進められる、例として示した実施形態の詳細な説明から明らかになろう。
【0009】
頭記の特許請求の範囲は、独自性を備えた本発明の特徴を記述するが、本発明は、以下の詳細な説明を添付の図面と併せ読めば、最もよく理解することができよう。
【図面の簡単な説明】
【0010】
【図1】本発明を実施できるコンピュータ・ネットワ−クの例を示す図である。
【図2】本発明の少なくとも一部を実装できるコンピュータの例を示す図である。
【図3】本発明の実施形態を示す図である。
【発明を実施するための形態】
【0011】
本発明は、一般に、マークアップ言語ドキュメントを使用して、複数の既存のフォントを単一のフォント・ファミリ、または「仮想フォント」にまとめる、フォントを選択するための方法を対象としている。マークアップ言語ドキュメントは、ファミリ内の個々のフォントのいずれが使用されるべきかについての条件に関するルールを含む。これによって、例えば、フォント開発者が、効率的なやり方で、既存のいくつかのフォントを使用して国際フォントを作成することができる。
【0012】
本発明の様々な実施形態の説明を進める前に、本発明の様々な実施形態を実施できるコンピュータおよびネットワ−ク環境について説明する。必須ではないが、本発明は、コンピュータによって実行されるプログラムで実装することができる。一般に、プログラムは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、オブジェクト、コンポーネント、データ構造を含む。本明細書で使用する「プログラム」という用語は、単一プログラムモジュール、または協動する複数のプログラムモジュールを暗に意味する。本明細書で使用する「コンピュータ」という用語には、パーソナル・コンピュータ(PC)、ハンドヘルド装置、マルチ・プロセッサ・システム、マイクロ・プロセッサ・ベースのプログラム可能な家庭用電化製品、ネットワ−クPC、ミニ・コンピュータ、メインフレーム・コンピュータ、マイクロ・プロセッサまたはマイクロ・コントローラを有する家電、ルータ、ゲートウェイ、ハブなど、1つまたは複数のプログラムを電子的に実行する任意の装置が含まれる。また本発明は、通信ネットワ−クを介してリンクされているリモート処理装置でタスクを実行する分散コンピュータ環境でも使用することができる。分散コンピュータ環境では、プログラムを、ローカルおよびリモートのメモリ記憶装置に配置することができる。
【0013】
次に、本発明を使用できるネットワ−ク化された環境の例を、図1を参照して説明する。ネットワ−クの例は、雲形で表されたネットワ−ク11を介して互いに通信する複数のコンピュータ10を含む。ネットワ−ク11は、ルータ、ゲートウェイ、ハブなどのよく知られている多くのコンポーネントを含んでいてもよく、ネットワ−ク11によってコンピュータ10が有線および/または無線の媒体を介して通信することができる。ネットワ−ク11の中で相互に対話するとき、1つまたは複数のコンピュータが、他のコンピュータに対してクライアント、サーバ、またはピアとして働くことができる。したがって、本明細書に含まれる特定の例がこうしたすべてのタイプのコンピュータに言及していないとしても、本発明の様々な実施形態は、クライアント、サーバ、ピア、またはそれらの組合せで実施することができる。
【0014】
図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の一部とすることができる。
【0015】
また、コンピュータ10は、装置が他の装置と通信できるようにする通信接続も収容することができる。通信接続は、通信媒体の一例である。通信媒体は、一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを搬送波、他の搬送機構などの変調されたデータ信号内に包含し、任意の情報配信媒体(information delivery media)を含む。通信媒体には、それだけには限定されないが、一例として、有線ネットワ−ク、直接配線接続(direct-wired connection)などの有線媒体、音響、RF、赤外線、その他の無線媒体などの無線媒体などがある。本明細書で使用する「コンピュータ可読媒体」という用語は、コンピュータ記憶媒体および通信媒体を含む。
【0016】
コンピュータ10は、キーボード25、マウス、ペン、音声入力装置、タッチ入力装置などの入力装置を有することもできる。また、ディスプレイ20、スピーカ、プリンタ27などの出力装置を含むこともできる。こうしたすべての装置は、当技術分野ではよく知られており、ここで詳しく説明する必要はない。
【0017】
次に、本発明の実施形態に従って、複数のフォントを単一の仮想フォントにまとめることができる方法の一例を、図3を参照して説明する。この例では、計算機支援設計(CAD)プログラム26が、(図2の)コンピュータ10上でアプリケーション・プログラムとして実行され、一方グリフ生成モジュール28は、オペレーティング・システム22の一部として実行される。実行中、CADプログラム26は、CADドキュメントをそのドキュメントに関するプロパティ情報(property information)とともに含む、CADファイル27に対して操作を行う。オペレーティング・システム22は、コンピュータ10のユーザが使用している言語に関するデータを取得し、この情報をグリフ生成モジュール28に提供する。オペレーティング・システム22は、様々なソースからユーザ言語情報を取得することができるが、この例では、オペレーティング・システム22は、CADファイル27に含まれるプロパティ情報に基づいてユーザの言語を決定したと仮定する。他の実施形態では、オペレーティング・システム22は、キーボード25(図2)の地域設定から情報を取得することができる。さらに、ユーザが入力するときに、オペレーティング・システム22は、キー・ストロークごとにUnicode値を示す入力をキーボード25から受け取る。
【0018】
グリフ生成モジュール28は、ディスプレイ20に表示すべきグリフを生成する。グリフ生成モジュール28は、1つまたは複数のフォント・ファイルからこれらのグリフを取得する。図3に示すフォント・ファイル32、34、36、38などのフォント・ファイルは、コンピュータ10(図2)のメモリ、および/またはプリンタ27のメモリに格納されている。グリフを取得するべき、1つのフォント・ファイル、あるいは複数のフォント・ファイルを決定するために、グリフ生成モジュー28は、仮想フォント・ファイル30を構文解析(parse)する。グリフ生成モジュール28は、オペレーティング・システム22から受け取った(表示すべき言語に関する)データを使用して、仮想フォント・ファイル30から適切なフォント・ファイルを選択する。次いでグリフ生成モジュール28は、選択したフォント・ファイルから適切なグリフを取得し、ディスプレイ20にそれらを表示する。
【0019】
ドキュメントをプリンタ27で印刷するとき、グリフ生成モジュール28は、多少異なる挙動を示す。印刷の場合、グリフ生成モジュール28は、使用すべきフォントを選択するが、実際にはプリンタのグリフを生成しない。代わりに、グリフ生成モジュール28は、使用すべきフォントの名前を、印刷すべきグリフのUnicode値、および、必要とされるスケーリング・データなどの測定基準(metrics)とともに、プリンタ27に送信する。プリンタ27は、選択したフォントのフォント・ファイルをメモリに格納している場合、そのグリフを印刷する。一方、適切なフォントを有していない場合、プリンタ27は、このことをグリフ生成モジュール28に知らせる。次いでグリフ生成モジュール28は、仮想フォント・ファイル30から別のフォントを選択し、新しく選択したフォントの名前を、印刷すべきグリフのUnicode値、および必要な任意のスケーリング・データとともにプリンタ27に送信する。グリフ生成モジュール28は、プリンタ27が所有するフォントを見つけるまでこの手順を繰り返すことができる。グリフ生成モジュール28が、プリンタ27が所有するフォントを見つけられなかった場合、グリフ生成モジュール28は、仮想フォント・ファイル30で指定され、コンピュータ10のメモリに格納されているフォールバック・フォント(fallback font)を選択する。次いでグリフ生成モジュール28は、フォールバック・フォントの適切なグリフを取り出し、それらをプリンタ27に送信する。本発明の様々な実施形態では、フォールバック・フォントは、プリンタ27で印刷するのに合うようにサイズ変更されるグリフを有する。
【0020】
図3の説明を続けると、Microsoft San Serifフォント・ファイル32、Chinese(traditional)#2フォントファイル34、Math Symbol #5フォントファイル36、およびJapanese #10フォントファイル38がメモリ16、取外し可能記憶装置21、および/または取外し不能記憶装置23(図2)に格納されている。仮想フォント・ファイル30は、この例では、CADプログラム26のユーザ・インターフェース上にラテン文字、中国語繁体字、日本語文字、および算術記号(math symbol)を表示するために作成されている。したがって、CADプログラム26の作成者は、この目的で使用すべき最も適切なフォント群として、Microsoft San Serif、Chinese(traditional)#2、Math Symbol #5、およびJapanese #10の4つのフォントを選択している。フォント・ファイル32、34、36、および38はそれぞれ、グリフ群の集合を収容している。仮想フォント・ファイル30は、どのように、いつ、どのような条件で4つのフォント・ファイルのそれぞれをCADプログラム26で表示すべきかを、グリフ生成モジュール28に伝える命令を有するマークアップ言語テキストを収容する。この例では、仮想フォント・ファイル30が、以下の拡張可能なマークアップ言語(XML)テキストを含む、と仮定する。
【0021】
<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>
【0022】
XMLテキストのブロックの開始タグおよび終了タグが示すように、仮想フォント・ファイル30では、事実上、Microsoft San Serif、Chinese(traditional)#2、Math Symbol #5、およびJapanese #10のフォントを含む複数のフォントからなるファミリを記述している。「Name」タグの付いたXMLテキストの最初の3行は、仮想フォント・ファイル30で表されるフォント・ファミリにどんな名前を与えるかについての条件付き命令(conditional instructions)を含む。例えば、行<Name xml:lang=“en−US”>name=“MS International”</Name>は、ユーザの言語がEnglish−US(「en−US」)の場合、グリフ生成モジュール28は、フォント・ファミリに「MS international」と名付けるよう指示する。次の行<Name xml:lang=“zh−TW”>國際</Name>は、ユーザが中国語繁体字を使っている場合、仮想フォント・ファミリに与えられる名前は、「國際」(中国語で「international」の意味に近い)とするよう指示する。次の行<Name xml:lang=“ja”>インターナシヨナル</Name>は、ユーザが日本語を使っている場合、仮想フォント・ファミリに与えられる名前は、「インターナシヨナル」(英単語「international」の日本語の発音)とするよう指示する。フォント・ファミリの名前は、必ずしもCADプログラム26のユーザに対して表示されるとは限らないが、例えば、どのフォントが使用されているかを調べるためにユーザが意図的に「設定」を選択した場合は表示することができる。
【0023】
次の行は、<Range UnicodeRange=“2200−22FF”TargetFontFamily=“Math Symbol #5”/>と書かれており、グリフ生成モジュール28に、2200から22FFの範囲に収まるUnicodeを有する文字をキーボードから受け取った場合、グリフを描くのに使用すべきフォントはMath Symbol #5フォントであるということを示す。次の3行は、ユーザの言語に基づいて使用すべきフォントを決定する。例えば、ユーザの書記言語(written language)が中国語繁体字の場合、使用すべきフォントはChinese(traditional)#2フォントである。一方、ユーザの書記言語が日本語である場合、使用すべきフォントはJapanese #10フォントである。上記のXMLテキストのブロックおよび図3を再度参照すると、次の行は、<Range xml:lang=“en−US”UnicodeRange=“4E00−9FAF”TargetFontFamily=“Chinese(traditional)#2”size=“1.1”/>と書かれており、ユーザの言語に基づく条件、およびキー・ストロークのUnicode値に基づく条件という2つの条件を設定する。この場合、ユーザの言語がEnglish−USで、キー・ストロークで生成されたUnicode値が4E00から9FAF(中国語、日本語、韓国語の表意文字のほとんどを有するCJK統合のUnicode範囲(UnicodeRange)を表す)間である場合、グリフ生成モジュール28で使用すべきフォントは、Chinese(traditional)#2フォントである。さらに、グリフのサイズを、元のサイズの110%まで拡大すべきである。この例では、フォント・ファミリ「MS International」の開発者は、中国語、日本語、韓国語の表意文字のグリフをMicrosoft San Serifローマン文字の横に並べて表示する場合、Chinese(traditional)#2フォントが、そのグリフが元のサイズの110%に拡大された状態で、最適な視覚効果を生み出すということを確認している。
【0024】
次の行は、<Range xml:lang=“en−US”family=“Microsoft San Serif”/>と書かれており、ユーザがEnglish−USを使用している場合、Microsoft San Serifを使用すべきであることを示している。命令のこの行は、使用すべき適切な言語はEnglish−USである場合で、それまでの行で指定されている条件が満たされていない場合に、デフォルトとして働く。最後に、</FontFamily>タグの前の最後の行は、<Range TargetFontFainily=“Arial”/>となっており、それまでの行の明示的な条件のうちいずれも該当しない場合に使用すべき、最終的なデフォルトのフォントを指定している。
【0025】
再度図3を参照して、次に本発明の実施形態に従ってグリフ生成モジュール28がグリフを生成する一連のシナリオを説明する。第1のシナリオでは、オペレーティング・システム22は、キーボード25で0068のUnicode値が生成されたことを検出し、この値をグリフ生成モジュール28に渡す。また、オペレーティング・システム22は、グリフ生成モジュール28に、CADファイル27がEnglish−USで表示する予定のドキュメントを収容していることを知らせる。グリフ生成モジュール28は、表示すべきグリフのキャッシュとして働くリスト40を作成する。グリフ生成モジュール28は、仮想フォント・ファイル30を参照して、0068のUnicode値をどのように扱うかを決定する。行「<Range XML:Lang=“en−US”family=“Microsoft San Serif”/>」に基づいて、グリフ生成モジュール28は、使用に適したフォントが、Microsoft San Serifフォント・ファイル32に収容されているMicrosoft San Serifフォントであることを決定する。グリフ生成モジュール28は、フォント・ファイル32を参照して、0068のUnicode値に対応するグリフの所在位置を突き止める。この場合、このグリフは−h−である。次いで、グリフ生成モジュール28は、グリフ−h−をリスト40にコピーし、そのグリフを値0068に関連付ける。次いでグリフ生成モジュール28は、そのグリフをオペレーティング・システム22に渡し、それが表示される。
【0026】
第2のシナリオでは、オペレーティング・システム22は、キーボード25で2264のUnicode値が生成されたことを検出し、この値をグリフ生成モジュール28に渡す。また、オペレーティング・システム22は、グリフ生成モジュール28に、CADファイル27がEnglish−USで表示する予定のドキュメントを収容していることを知らせる。グリフ生成モジュール28は、仮想フォント・ファイル30を参照して、2264のUnicode値をどのように扱うかを決定する。行「<Range UnicodeRange=“2200−22FF”family=“Math Symbol #5”/>」に基づいて、グリフ生成モジュール28は、使用に適切したフォントが、Math Symbol #5フォントファイル36に収容されているMath Symbol #5フォントであることを決定する。グリフ生成モジュール28は、フォント・ファイル36を参照して、2264のUnicode値に対応するグリフの所在位置を突き止める。この場合、このグリフは−=−である。次いでグリフ生成モジュール28は、グリフ−=−をリスト40にコピーし、そのグリフを値2264に関連付ける。次いでグリフ生成モジュール28は、そのグリフをオペレーティング・システム22に渡し、それが表示される。
【0027】
第3のシナリオでは、オペレーティング・システム22は、キーボード25で76F4のUnicode値が生成されたことを検出し、この値をグリフ生成モジュール28に渡す。また、オペレーティング・システム22は、グリフ生成モジュール28に、CADファイル27が中国語繁体字で表示する予定のドキュメントを収容していることを知らせる。グリフ生成モジュール28は、仮想フォント・ファイル30を参照して、76F4のUnicode値をどのように扱うかを決定する。行「<Range XML:Lang=“ch−TW”family=“Chinese(traditional)#2”/>」に基づいて、グリフ生成モジュール28は、使用に適したフォントが、Chinese(traditional)#2フォントファイル34に収容されているChinese(traditional)#2フォントであることを決定する。グリフ生成モジュール28は、フォント・ファイル34を参照して、76F4のUnicode値に対応するグリフをの所在位置を突き止める。この場合、このグリフは
【0028】

【0029】
である。この特殊なグリフは、「直接(direct)」または「正直(honest)」のように「まっすぐ(straight)」の概念の表意文字を表す。次いでグリフ生成モジュール28は、グリフをリスト42にコピーし、このグリフを値76F4に関連付ける。次いでグリフ生成モジュール28は、このグリフをオペレーティング・システム22に渡し、それが表示される。
【0030】
第4のシナリオでは、オペレーティング・システム22は、キーボード25で76F4のUnicode値が生成されたことを検出し、この値をグリフ生成モジュール28に渡す。また、オペレーティング・システム22は、グリフ生成モジュール28に、CADファイル27が日本語で表示する予定のドキュメントを収容していることを知らせる。グリフ生成モジュール28は、仮想フォント・ファイル30を参照して、76F4のUnicode値をどのように扱うかを決定する。行「<Range XML:Lang=“jp”family=“Japanese #10”/>」に基づいて、グリフ生成モジュール28は、使用に適したフォントが、Japanese #10フォントファイル38に収容されているJapanese #10フォントであることを決定する。グリフ生成モジュール28は、フォント・ファイル38を参照して、76F4のUnicode値に対応するグリフの所在位置を突き止める。この場合、このグリフは、直 である。このグリフもまた「まっすぐ」の概念の表意文字を表すが、日本語のバリエーションで表される。次いでグリフ生成モジュール28は、そのグリフをリスト44にコピーし、そのグリフを値76F4に関連付ける。次いでグリフ生成モジュール28は、このグリフをオペレーティング・システム22に渡し、それが表示される。
【0031】
したがって、フォントを選択するための新しく役立つ方法が提供されていることがわかる。本発明の原理を適用できる多くのあり得る実施形態を考えると、図面に関して本明細書に記載した実施形態は、例として示したものにすぎず、本発明の範囲を限定するものとみなすべきではないことを理解されたい。例えば、ソフトウェアについて例として示した実施形態の要素をハードウェアで、またはその逆で実装できること、あるいは実施形態の例を、本発明の趣旨から逸脱することなく、構成および詳細に関して変更できることが、当分野の技術者には理解されよう。したがって、本明細書に記載した本発明は、頭記の特許請求の範囲およびその均等物の範囲内に含まれ得るすべての実施形態を企図したものである。
【符号の説明】
【0032】
14 処理装置
16 メモリ
20 ディスプレイ
21 取外し可能記憶装置
22 オペレーティング・システム
23 取外し不能記憶装置
25 キーボード
26 計算機支援設計(CAD)プログラム
27 プリンタ
27 CADファイル
28 グリフ生成モジュール
30 仮想フォント・ファイル
32 Microsoft San Serifフォント・ファイル
34 Chinese(traditional)#2フォントファイル
36 Math Symbol #5フォントファイル
38 Japanese #10フォントファイル
40 リスト
42 リスト
44 リスト

【特許請求の範囲】
【請求項1】
コンピュータ・システムにおいて、複数のフォントからグリフを取得するコンピュータにより実施する方法であって、
前記複数のフォントのうち第1のフォントを使用するための論理的条件を定義しおよび前記複数のフォントのうち第2のフォントを使用するための論理的条件を定義する、拡張可能なマークアップ言語ドキュメントを参照すること、
前記複数のフォントのうち第1のフォントを使用するための論理的条件が満足されているかどうかを決定し、もし、前記複数のフォントのうち第1のフォントを使用するための論理的条件が満足されている場合、前記第1のフォントから1つまたは複数のグリフを取り出すこと、および
前記複数のフォントのうち第2のフォントを使用するための論理的条件が満足されているかどうかを決定し、もし、前記複数のフォントのうち第2のフォントを使用するための論理的条件が満足されている場合、前記第2のフォントから1つまたは複数のグリフを取り出すこと、
もし、第1のフォントを使用するための論理的条件も第2のフォントを使用するための論理的条件も満足されていない場合、前記拡張可能なマークアップ言語ドキュメントにより指定されているデフォルト・フォントを使用すること、を備え、
前記第1のフォントは第1の書記言語のグリフを備え、前記第2のフォントが第2の書記言語のグリフを備え、
前記第1のフォントおよび前記第2のフォントの前記グリフのそれぞれは、前記第1の書記言語および前記第2の書記言語が互いに横に並んで表示できるように適合される
ことを特徴とする方法。
【請求項2】
請求項1の方法を実施するためのコンピュータ実行可能命令を格納していることを特徴とするコンピュータ可読記録媒体。
【請求項3】
前記マークアップ言語ドキュメントに収容されているスケーリング情報に基づいて、前記第1および第2のフォントの少なくとも一方から前記1つまたは複数のグリフのサイズを変更すること
をさらに備えることを特徴とする請求項1に記載の方法。
【請求項4】
コンピュータ・システムにおいて、拡張可能なマークアップ言語テキストのフォントを処理するため、コンピュータにより実施する方法であって、
前記拡張可能なマークアップ言語テキスト内の第1のフォントを参照し、
前記第1のフォントを使用する条件を表すデータと一致するかを判定し、前記データは第1のフォントから取り出され、
もし、前記第1のフォントを使用される条件が満足される場合、前記第1のフォントのサイズをどのように変更するかを示す倍率因子を使用して倍率を変更し、
前記拡張可能なマークアップ言語テキスト内の第2のフォントを参照し、
前記第2のフォントを使用する条件を表すデータと一致するかを判定し、前記データは第2のフォントから取り出されること、
前記第1のフォントの前記使用についての前記条件は、コンピュータに入力される文字のUnicode値が収まる範囲に関係すること
を特徴とするコンピュータ実施方法。
【請求項5】
前記第1のフォントを使用すべき前記条件は、少なくとも一部、コンピュータのユーザが選好する言語に基づくことを特徴とする請求項4に記載のコンピュータ実施方法。
【請求項6】
前記第1のフォントを使用すべき前記条件は、少なくとも一部、コンピュータのキーボードがそれ用に設定されている言語に基づくことを特徴とする請求項4に記載のコンピュータ実施方法。
【請求項7】
前記第1のフォントの前記使用についての前記条件は、コンピュータに入力される文字のUnicode値が収まる範囲、およびコンピュータのユーザが選好する言語、に関係することを特徴とする請求項4に記載のコンピュータ実施方法。
【請求項8】
前記第1のフォントを使用すべき前記条件は、少なくとも一部、ドキュメントがそれ用に設定されている言語に基づき、前記ドキュメントは、前記第1または第2のフォントが使用されるべき前記媒体に存在することを特徴とする請求項4に記載のコンピュータ実施方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2012−88719(P2012−88719A)
【公開日】平成24年5月10日(2012.5.10)
【国際特許分類】
【出願番号】特願2011−259421(P2011−259421)
【出願日】平成23年11月28日(2011.11.28)
【分割の表示】特願2003−118476(P2003−118476)の分割
【原出願日】平成15年4月23日(2003.4.23)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】