(57)【要約】【課題】  新しいフォントの作成が時間をかけずにできる装置及び方法を提供する。【解決手段】  本発明によるフォントの生成方法は、プロセッサが含まれた装置において実行されるメタフォントによるフォントを生成する方法であって、ＸＭＬで記述されたアウトラインフォントのコードに前記メタフォントのための属性を追加して、中間コードを生成する段階（ａ）と、前記中間コードをパーシングして得た点の情報を利用して前記メタフォントによるフォントを生成する段階（ｂ）と、を含む。【選択図】図６
2019528485.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサが含まれた装置において遂行されるメタフォントによるフォントを生成する方法であって、
ＸＭＬで記述されたアウトラインフォントのコードに前記メタフォントのための属性を追加して、中間コードを生成する段階（ａ）と、
前記中間コードをパーシングして得た点の情報を利用して前記メタフォントによるフォントを生成する段階（ｂ）と、
を含むことを特徴とするフォントの生成方法。
【請求項２】
前記メタフォントは、属性に、アウトラインを構成するための前記パーシングして得た点のうち２つの点をペアに指定するための第１の属性と、アウトラインの内部領域を満たすか否かを指定するための第２の属性と、を含むことを特徴とする請求項１に記載のフォントの生成方法。
【請求項３】
前記メタフォントの属性は、予め位置座標が設定された点Ａの位置座標に依存して点Ｂの位置座標を変化させるための第３の属性、及び点のセリフを設定するための第４の属性のうち少なくとも一つをさらに含むことを特徴とする請求項２に記載のフォントの生成方法。
【請求項４】
前記アウトラインフォントは、ＵＦＯ（Ｕｎｉｆｉｅｄ  Ｆｏｎｔ  Ｏｂｊｅｃｔ）であり、
前記メタフォントのための属性は、前記ＵＦＯのコード内の「ｐｏｉｎｔ」タグ内に含まれることを特徴とする請求項３に記載のフォントの生成方法。
【請求項５】
前記アウトラインフォントのコード及び前記中間コードは、４つの点で構成されるキュービック（Ｃｕｂｉｃ）曲線、及び３つの点で構成されているカドラティック（Ｑｕａｄｒａｔｉｃ）曲線を表現することができ、前記メタフォントのコードは、前記キュービック曲線のみを表現することができ、前記段階（ｂ）は、下記の数式を利用して前記中間コードでのカドラティック曲線を前記メタフォントでのキュービック曲線に変換することを特徴とする請求項１に記載のフォントの生成方法。
【数１】
2019528485.tif 000006
ここで、ＣＰ０及びＣＰ３は、前記４つの点のうち２つの基準点であり、ＣＰ１及びＣＰ２は、前記４つの点のうち２つの調節点である。
ＱＰ０及びＱＰ２は、前記３つの点のうち２つの基準点であり、ＱＰ１は、前記３つの点のうち１つの調節点である。
【請求項６】
請求項１乃至５のいずれか一項に記載の方法を遂行するプログラムをコンピュータで読み取り可能に記録したことを特徴とする記録媒体。
【請求項７】
メタフォントによるフォントを生成する装置であって、
ＸＭＬで記述されたアウトラインフォントのコードに前記メタフォントのための属性を追加して、中間コードを生成する中間コード生成部と、
前記中間コードをパーシングして得た点の情報を利用して前記メタフォントによるフォントを生成する出力フォント生成部と、
を含むことを特徴とするフォントの生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フォントの生成方法及びその方法を記録した記録媒体並びにフォントの生成装置に係わり、より詳細には、アウトラインフォントの編集方式を利用することによって、新しいフォントをリアルタイムに生成でき、フォントを作成する時間とコストを減らすことができ、メタフォントを学習しなくてもフォントを生成することができるフォントの生成方法及びその方法を記録した記録媒体並びにフォントの生成装置に関する。
【背景技術】
【０００２】
情報を記録して伝達するには、テキスト（ｔｅｘｔ）を使用するのが効果的である。その場合、スマート機器の普及に従いユーザーは、ハンドライティング（ｈａｎｄｗｒｉｔｉｎｇ）のアナログフォントより、デジタル機器が使用する文字であるデジタルフォントを多く使用する。このような環境の中で、多様なスタイルのデジタルフォントが製作されている。
【０００３】
一般にデジタルフォントには、ビットマップフォントタイプとアウトラインフォントタイプがある。ビットマップフォントは、それぞれの文字をすべてビットマップイメージで作成し、文字の大きさをサポートするために各大きさに対する別々のファイルが用意される。アウトラインフォントは、文字の形を描く方法を関数で作成したフォントタイプであり、直線と曲線を使用してフォントのアウトラインを描いた後、内部領域を満たす方式で動作する。アウトラインフォントは、アウトライン情報を計算して文字の大きさの調節が自由で、文字の大きさに関係なくフォントを使用することができ、高品質の出力が可能である。しかしながら、ビットマップフォント及びアウトラインフォントのいずれの場合も、既存の完成されたフォントの画の太さ、形状などのスタイルの変化を与えるためには、いちいち修正しなければならないとの欠点がある。
【０００４】
より詳細には、ビットマップフォントは、固定されたイメージのフォントであるため、フォントの大きさに応じて新しいフォントを制作しなければならない。したがって、要求される文字の大きさに応じてフォントを製作するのにかかる時間がかかり、また、フォントデータの保存容量が非常に大きくなるとの欠点がある。
【０００５】
一方、アウトラインフォントは、文字の大きさの調節が自由であるためすべての大きさの文字を生成でき、保存容量の大きいビットマップフォントに比べ、単一のフォントデータを保存するので、保存容量が小さくできるとの利点がある。しかし、複雑な数学的処理プロセスであるラスタライゼーションを経るので、システムの負荷が大きく、点（ｐｏｉｎｔ）と線（ｌｉｎｅ）の数が多ければ多いほど負荷が大きくなる。また、アウトラインフォントは文字を表現するために文字の基準点と調節点情報のみを有しているだけで、画に関する情報は有していない。したがって、フォントデザイナーが既に完成されているフォントの画の太さ、形状などのスタイルの変化を与えるためには、基準点と調節点をいちいち変更しなければならない。
【０００６】
ビットマップフォントやアウトラインフォントとは異なり、文字の画とペンの形状を使用するメタフォント（ＭＥＴＡＦＯＮＴ）が研究されている。メタフォントは、フォントを表現するプログラミング言語であって、コードに明示された値に基づいて様々な文字を表現することができる。したがって、コードを作成するときに変化が可能なスタイルをパラメータに作成し、パラメータの値を変化させることによって、様々なスタイルのフォントを簡単に生成することができる。
【０００７】
メタフォントは出力のためのイメージではなく、テキスト形式のプログラミング言語であるため、プログラミングに慣れていないフォントデザイナーが直接使用することは難しい。また、デザインに慣れていないメタフォント開発者がフォントを製作する場合には、グラフィックツールではなく、メタフォントプログラミング開発ツールで作成しなければならないため、メタフォントを利用したフォントの開発は多くの費用と時間がかかる。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記のような問題点を解決するためになされたもので、本発明の目的は、新しいフォントをリアルタイムに生成し、新しいフォント作成時の時間とコストを減らすことができ、メタフォントを学習しなくてもフォントを生成することができる装置及び方法を提供することにある。
【０００９】
本発明の装置と方法は、以下の実施例から、当業者によって導き出すことができる。
【課題を解決するための手段】
【００１０】
本発明によるフォントの生成方法は、プロセッサが含まれる装置において遂行されるメタフォントによるフォントを生成する方法であって、ＸＭＬで記述されたアウトラインフォントのコードに前記メタフォントのための属性を追加して、中間コードを生成する段階（ａ）と、前記中間コードをパーシングして得た点の情報を利用して前記メタフォントによるフォントを生成する段階（ｂ）と、を含むことを特徴とする。
【００１１】
前記メタフォントは、属性に、アウトラインを構成するための前記パーシングして得た点のうち２つの点をペアに指定するための第１の属性と、アウトラインの内部領域を満たすか否かを指定するための第２の属性と、を含むことを特徴とする。
【００１２】
前記メタフォントの属性は、予め位置座標が設定された点Ａの位置座標に依存して点Ｂの位置座標を変化させるための第３の属性、及び点のセリフを設定するための第４の属性のうち少なくとも一つをさらに含むことを特徴とする。
【００１３】
前記アウトラインフォントは、ＵＦＯ（Ｕｎｉｆｉｅｄ  Ｆｏｎｔ  Ｏｂｊｅｃｔ）形式であり、前記メタフォントのための属性は、前記ＵＦＯのコード内の「ｐｏｉｎｔ」タグ内に含まれることを特徴とする。
【００１４】
前記アウトラインフォントのコード及び前記中間コードは、４つの点で構成されるキュービック（Ｃｕｂｉｃ）曲線、及び３つの点で構成されているカドラティック（Ｑｕａｄｒａｔｉｃ）曲線を表現することができ、前記メタフォントのコードは、前記キュービック曲線のみを表現することができ、前記段階（ｂ）は、下記の数式を利用して前記中間コードでのカドラティック曲線を前記メタフォントでのキュービック曲線に変換することを特徴とする。
【００１５】
【数１】
2019528485.tif 000003
【００１６】
ここで、ＣＰ０及びＣＰ３は、前記４つの点のうち２つの基準点であり、ＣＰ１及びＣＰ２は、前記４つの点のうち２つの調節点である。
ＱＰ０及びＱＰ２は、前記３つの点のうち２つの基準点であり、ＱＰ１は、前記３つの点のうち１つの調節点である。
【００１７】
また、本発明によるメタフォントの生成装置は、メタフォントによるフォントを生成する装置であって、ＸＭＬで記述されたアウトラインフォントのコードに前記メタフォントのための属性を追加して、中間コードを生成する中間コード生成部と、前記中間コードをパーシングして得た点の情報を利用して前記メタフォントによるフォントを生成する出力フォント生成部と、を含むことを特徴とする。
【発明の効果】
【００１８】
本発明によれば、新しいフォントをリアルタイムに生成できる。アウトライン編集方法で新しくフォントを作成する場合に比較して、時間とコストを減らすことができる。メタフォントを学習しなくてもフォントを生成することができる。
【００１９】
本発明の効果は、このような効果に限定されるものではなく、本発明に記載された構成から推察可能なすべての効果を含む。
【図面の簡単な説明】
【００２０】
【図１】メタフォントにおいて、４つの点を利用して曲線を表現する一例を示す図面である。
【図２】アルファベット文字「Ｂ」をメタフォントでプログラミングしたコードの一例を示す図面である。
【図３】変数の変更を通じて文字のスタイルが変形されるメタフォントの一例を示す図面である。
【図４】本発明の一実施例で、フォント生成装置の概略的な構成を示す図面である。
【図５】本発明の一実施例で、フォントの作成方法を示すフローチャートである。
【図６】本発明のシステムの詳細な構造を図式化した代表図である。
【図７】従来のＵＦＯのコードを示す図面である。
【図８】本発明の一実施例で、中間コードの一例を示す図面である。
【図９】本発明の一実施例で、曲線表現の方式を説明する図面である。
【発明を実施するための形態】
【００２１】
本明細書において使用される単数の表現は、明白に異なる意味でない限り、複数の表現を含む。「構成される」または「含む」の用語は、明細書上に記載された様々な構成要素、または段階を必ず全て含むものではなく、その一部の構成要素または一部の段階を含まないこともあり、あるいは追加の構成要素または段階をさらに含むこともある。また、「〜部」、「モジュール」は、少なくとも一つの機能や動作を処理する単位で、ハードウェアまたはソフトウェアで具現される。
【００２２】
以下では、本発明の実施例を添付の図面を参照して説明する。
【００２３】
まず、本明細書では、本発明の基礎となるメタフォント（ＭＥＴＡＦＯＮＴ）の概念について説明する。
【００２４】
メタフォントはＴｅＸで使用されるフォント供給システムであって、すべての文字ごとに描く方法を表現した「文字描画関数」と、文字を飾る「スタイルパラメータ」で構成される。即ち、文字を描く方法は決まっているが、スタイルを決定するパラメータ（スタイル値）が分離されているため、メタフォントは、スタイルパラメータを変更して、好みのスタイルのフォントに変形することができる。
【００２５】
また、メタフォントでは、Ｃｕｂｉｃベジェ曲線を利用して文字の曲線を表現し、これは図１に図示すとおりである。図１を参照すると、曲線は４つの点（ｐｏｉｎｔ、点）から定義される。この時、Ｐ０とＰ３は、曲線の基準点であり、Ｐ１とＰ２は、方向を提供する調節点である。曲線は、Ｐ０からＰ１方向に始まりＰ３にＰ２方向に到着して描かれ、調節点の移動によって様々な自由曲線を得る。ここで、調節点Ｐ１とＰ２は、曲線の上を通過せず、単に方向情報のみを提供する。
【００２６】
また、メタフォントは、プログラミング言語であるため、コードを作成する時に変化が可能なスタイルをパラメータに作成することができ、このパラメータの値を変化させることによって、文字の大きさ、太さ、そしてペンの形状などを自由に変更して様々なフォントを作成することができる。
【００２７】
一例として、図２では、アルファベット文字「Ｂ」を表現するためのメタフォントのソースコードを図示しており、図３の（ａ）は、図２のソースコードを実行して生成された結果物を図示している。ソースコード２行目で定義されているｓｔｅｍ変数は、文字の太さに影響を与える変数であり、ｓｔｅｍ値を変化させると文字の太さが全体的に変化するようになり、これは、図３の（ｂ）で確認することができる。
【００２８】
図４は、本発明の一実施例で、フォント生成装置の概略的な構成を図示した図面である。
【００２９】
図４を参照すると、本発明のフォント生成装置（４００）は、メタフォントによるフォントを生成する装置であって、入力部（４１０）、中間コード生成部（４２０）と出力フォント生成部（４３０）を含む。
【００３０】
図５は、本発明のフォントの作成方法のフローチャートである。このとき、フォントの作成方法は、プロセッサが含まれた装置であるフォント生成装置（４００）で遂行されることができる。
【００３１】
図６は、本発明のシステムの詳細な構造を示す代表図である。
【００３２】
以下では、図４〜図６を参照して、各構成要素別機能及び各段階で実行されるプロセスを説明する。
【００３３】
まず、段階（５１０）において、入力部（４１０）は、完成されたアウトラインフォント乃至完成されたアウトラインフォントのコードの入力を受ける。この時、完成されたアウトラインフォントは、ＸＭＬで記述されたフォントであって、フォントデザイナーが生成したフォントである。
【００３４】
次に、段階（５２０）において、中間コード生成部（４２０）は、ＸＭＬで記述されたアウトラインフォントのコードにメタフォントの属性を追加して中間コードを生成する。
【００３５】
続いて、段階（５３０）において、出力フォント生成部（４３０）は、中間コードをパーシングし、得た点の情報を利用してメタフォントによるフォントを生成する。
【００３６】
即ち、本発明は、フォントデザイナーが慣れているアウトラインフォント方式（ＸＭＬで記述される）に、メタフォントに必要な属性とメタフォントで使用する特殊な機能をサポートするための属性を追加して、中間コード生成部（４２０）で中間コードを生成し、出力フォント生成部（４３０）は、中間コードを入力ファイルとして受けてパーシングして得たデータを計算してメタフォントコードを生成し、フォントのユーザーは、生成されたメタフォントコードにおいてスタイルを変更することができるパラメータの値を変更して様々なスタイルのフォントを生成することができる。
【００３７】
本発明の詳細な構成は、以下の通りである。
【００３８】
本発明の一実施例によれば、アウトラインフォントは、ＵＦＯ（Ｕｎｉｆｉｅｄ  Ｆｏｎｔ  Ｏｂｊｅｃｔ）によるフォントである。
【００３９】
ＵＦＯは、一つのファイルで構成された一般的なアウトラインフォントとは異なり、ディレクトリ構造になっている。また、バイナリ形式で構成された他のアウトラインフォントとは異なり、ＵＦＯは、フォントデータをＸＭＬで記述して、人と機械の両方が読み取り可能な形式を有する。
【００４０】
図７は、従来のＵＦＯのコードを図示した図面である。図７を参照すると、「ｐｏｉｎｔ」のタグは、直線または曲線を表現するために「ｘ」と「ｙ」の属性を利用して、点の位置を定義する。また、「ｔｙｐｅ」属性に「ｌｉｎｅ」、「ｃｕｒｖｅ」と「ｑｃｕｒｖｅ」などを利用して、線の種類を選択する。「ｌｉｎｅ」である場合には、以前の「ｐｏｉｎｔ」タグと現在の「ｐｏｉｎｔ」タグの点を結んで直線を表現する。そして、「ｃｕｒｖｅ」と「ｑｃｕｒｖｅ」は、曲線の種類のうち、Ｃｕｂｉｃベジェ曲線とＱｕａｄｒａｔｉｃベジェ曲線を示す。曲線は、基準点と調節点が必要であるため、二つの基準点の間に「ｔｙｐｅ」属性のない「ｐｏｉｎｔ」タグを追加して、調節点を定義する。
【００４１】
ＵＦＯの最大の特徴は、定義されていないＸＭＬのタグや属性をユーザーが定義することができることである。これを利用して、上記の段階（５２０）と段階（５３０）でシステムに必要なデータをＵＦＯのコードに追加しパーシングして使用することができる。
【００４２】
以下では、説明の便宜のため、アウトラインフォントをＵＦＯと仮定して説明する。しかし、本発明がこれに限定されるものではない。
【００４３】
そして、本発明の一実施例によれば、段階（５２０）で追加されるメタフォントのための属性は以下の表１のように表現でき、これは、図７に示されるＵＦＯコードの「ｐｏｉｎｔ」タグ内に含まれる。
【００４４】
【表１】
2019528485.tif 000004
【００４５】
具体的にメタフォントは、アウトラインフォントとは異なり、手で文字を書くように文字の骨組みを描いた後、ペンを骨組みの流れに沿って移動しながら文字を描く方式である。したがって、アウトラインフォントで修正するのが難しい文字の太さを、メタフォントでは、骨組みを満たすペンの太さを調節する関数を利用して容易に変形することができる。この時、ペンの太さを調節する関数を使用するために、ペンの両端を定義しなければならない。即ち、ＵＦＯに存在する点をペンの両端に合わせてペアで結ぶ作業が必要であり、このために、第１の属性（ｐｅｎＰａｉｒ）が使用される。第１の属性（ｐｅｎＰａｉｒ）は、アウトラインを構成するための点のうち２つの点をペアで指定するための属性であり、必須的に追加される属性である。ここで、既にＵＦＯに存在するタグである「ｐｏｉｎｔ」に「ｐｅｎＰａｉｒ」という属性を追加し、２つの点がペアであるとの情報を得て太さを調節することができる。
【００４６】
そして、メタフォントは、アウトラインを結んで生じた内部領域を満たす時や空ける時に使用する関数が異なり、このために、第２の属性（ｉｎｎｅｒＴｙｐｅ）が使用される。即ち、第２の属性（ｉｎｎｅｒＴｙｐｅ）は、アウトラインの開始点に明示され、アウトラインの内部領域を満たすか否かを指定するための属性であり、これは必須的に含まれる属性である。
【００４７】
また、第３の属性（ｄｅｐｅｎｄＸ（Ｙ））は、予め位置座標が設定された点Ａの位置座標に依存して点Ｂの位置座標を変化させるための属性であり、第４の属性（ｓｅｒｉｆ）は、点のセリフを設定するための属性であって、これは選択的に含まれる属性である。
【００４８】
この他にも本発明は、ユーザーが特定の点の位置を共通に変化させることができるようにするカスタムパラメータ属性を提供し、これを利用してユーザーは、自分が必要とする部分をパラメータ化することができる。
【００４９】
以下では、図８及び図９を参照して、メタフォントのための属性を詳細に説明する。
【００５０】
図８は、本発明の一実施例で、中間コード（ＭｅｔａＵＦＯ）の一例を示す図面である。即ち、図８の（ａ）では、書記素「ト」を表現するためにＵＦＯにメタフォントのための属性が追加された中間コードを示しており、図８の（ｂ）では、図８の（ａ）に示された中間コードを絵で示している。そして、図８の（ｃ）では、図８の（ａ）及び（ｂ）を通じて生成されたメタフォントの書記素「ト」（セリフを含む）を示している。
【００５１】
図８を参照すると、ＵＦＯコード内の「ｐｏｉｎｔ」タグに「ｐｅｎＰａｉｒ」（第１の属性）が追加される。ここで、「ｚＮｌ」と「ｚＮｒ」を通じて２つの点がペアで結ばれることを確認することができる。この時、「ｌ」は左側の点を、「ｒ」は右側の点を表現する記号であり、「ｚＮ」でＮの数値を利用して２つの点をペアに結ぶ。つまり、「ｚ１ｌ」と「ｚ１ｒ」が一つのペアに結ばれ、「ｚ２ｌ」と「ｚ２ｒ」が一つのペアに結ばれ、「ｚ３ｌ」と「ｚ３ｒ」が一つのペアに結ばれ、「ｚ４ｌ」と「ｚ４ｒ」が一つの相に結ばれる。
【００５２】
また、ＵＦＯコード内の「ｐｏｉｎｔ」タグに「ｉｎｎｅｒＴｙｐｅ」（第２の属性）が追加される。この時、書記素「ト」のアウトラインの内部領域を満たすものであるため、最初の「ｐｏｉｎｔ」タグ内に「ｉｎｎｅｒＴｙｐｅ」が「ｆｉｌｌ」に設定される。
【００５３】
そして、ＵＦＯコード内の「ｐｏｉｎｔ」タグに「ｄｅｐｅｎｄＸ」（第３の属性）が追加される。一例として、４番目の「ｐｏｉｎｔ」のタグでは「ｚ３ｒ」が定義されるが、「ｚ３ｒ」は、予め位置座標が設定された点である「ｚ２ｒ」のｘ軸座標である「ｘ２ｒ」に依存して、その点の太さの変化量だけ自分の位置を移す。
他の一例として、７番目の「ｐｏｉｎｔ」のタグでは「ｚ３ｌ」が定義されるが、「ｚ３ｌ」は、予め位置座標が設定された点である「ｚ１ｒ」のｘ軸座標である「ｘ１ｒ」に依存して、その点の太さの変化量だけ自分の位置を移す。即ち、「ｚ３ｌ」と「ｚ３ｒ」は、それぞれ「ｚ１ｒ」と「ｚ２ｒ」のｘ軸座標に依存して、「ｚ１ｒ」と「ｚ２ｒ」のｘ座標の変化量だけ共に動いて、直線が一の形状を維持するように設定する。
【００５４】
また、ＵＦＯコード内の「ｐｏｉｎｔ」タグに「ｓｅｒｉｆ」（第４の属性）が追加される。即ち、縦画の両端（ｚ１ｌ、ｚ２ｌ）にセリフを追加する。この時、セリフは出力フォント生成部（４３０）に生成されるメタフォントによるフォントの該当する位置でセリフが表現される。
【００５５】
一方、本発明の一実施例によると、出力フォント生成部（４３０）は、上述したように中間コード（ＭｅｔａＵＦＯ）をパーシングして得た点の情報を利用して、メタフォントによるフォントを生成する。この時、出力フォント生成部（４３０）は、パイソンで具現されることができ、パイソンで提供するライブラリであるＸＭＬ  パーサー（Ｐａｒｓｅｒ）を利用して、中間コード（ＭｅｔａＵＦＯ）をパーシングすることができる。また、出力フォント生成部（４３０）は、パーシングを通じて得たデータをメタフォントにおいて必要なデータに計算し、メタフォントコードを作成する。また、ユーザーが追加したメタフォントの属性に該当する関数を呼び出して追加処理する。そして、ユーザーに文字のスタイルの変化のために提供する１４個のパラメータを適用してメタフォントコードを生成する。このパラメータは、必要に応じて追加または削除されることができる。
【００５６】
また、ハングルはローマ字とは異なり、音節の構成によって分けられる初声、中声、そして終声を組み合わせて表現される。したがって、出力フォント生成部（４３０）は、ファイルで保存された初声、中声、終声に必要な書記素を呼び出して文字を生成することができる。このため、出力フォント生成部（４３０）は、パーシングを通じて得たデータを利用して、現在処理するファイルが書記素または書記素を呼び出す文字であるかを判別し、それに応じて対応するルーチンを実行することができる。
【００５７】
この時、現在処理するファイルが書記素を呼び出す組合せ型文字である場合、出力フォント生成部（４３０）は、参照する書記素を判別し、該当する書記素を呼び出すメタフォント関数と共に、それぞれの書記素のみに適用されるパラメータを共に生成する。また、出力フォント生成部（４３０）は、文字の全体のスタイルに影響を与える文字の幅、高さ、そして傾きのパラメータを適用してコードを生成する。
【００５８】
また、現在処理するファイルが書記素である場合、出力フォント生成部（４３０）は、パーシングによって得た点の情報を利用して、文字をメタフォントに表現する。メタフォントで文字を表現するために、出力フォント生成部（４３０）は、まず基準点を定義し、二つの点を結んでいる一対に対して太さを定義した後、調節点を定義した後、曲線を描く関数を使用して文字を表現する。したがって、このような方法でパーシングして得たデータを利用して、出力フォント生成部（４３０）は、コードを作成し、文字に影響を与える様々なパラメータを適用する。
【００５９】
そして、上述したように、ＵＦＯは、文字のアウトラインを３つの方式、即ち、直線、４つの点で構成されるキュービック（Ｃｕｂｉｃ）曲線及び３つの点で構成されるカドラティック（Ｑｕａｄｒａｔｉｃ）曲線で表現する。この時、ＵＦＯのコード及び中間コード（ＭｅｔａＵＦＯ）は、Ｃｕｂｉｃ曲線とＱｕａｄｒａｔｉｃ曲線の両方を表現することができるが、メタフォントのコードは、Ｃｕｂｉｃ曲線のみ表現することができる。したがって、本発明の出力フォント生成部（４３０）は、以下の数式１を利用して、中間コード（ＭｅｔａＵＦＯ）でのＱｕａｄｒａｔｉｃ曲線をメタフォントでのＣｕｂｉｃ曲線に変換するコードを生成することができる。
【００６０】
【数１】
2019528485.tif 000005
【００６１】
ここで、ＣＰ０及びＣＰ３は、Ｃｕｂｉｃ曲線のための４つの点のうち２つの基準点、ＣＰ１及びＣＰ２は、Ｃｕｂｉｃ曲線のための４つの点のうち２つの調節点、ＱＰ０及びＱＰ２は、Ｑｕａｄｒａｔｉｃ曲線のための３つの点のうち２つの基準点、ＱＰ１は、Ｑｕａｄｒａｔｉｃ曲線のための３つの点のうち１つの調節点をそれぞれ意味する。
【００６２】
そして、Ｑｕａｄｒａｔｉｃベジェ曲線は、２次式であるため、図９の（ａ）に図示されたように始点Ｐ０と終点Ｐ２、そして１つの調節点であるＰ１が必要である。より複雑な曲線は、図９の（ｂ）のようにＱｕａｄｒａｔｉｃベジェ曲線（Ｐ０、Ｐ１、Ｐ２）と（Ｐ２、Ｐ３、Ｐ４）を連結するように複数の曲線を連結して表現する。また、ほとんどのフォント形式では、連結された複数のＱｕａｄｒａｔｉｃベジェ曲線を一つの曲線のように表現する。即ち、図９の（ｃ）のように連続した曲線の二つの調節点の間にある基準点は省略し、始点、終点、そして二つの調節点で表現することができる。連結された曲線は、一つの基準点を共有するため、基準点に対して同じ接線の傾き値を有しており、二つの曲線を微分して生成された式にＰ２の値を代入すると、同じ値を有する。この式を計算するとＰ２はＰ１とＰ３の中間点であることを知ることができる。したがって、図８の（ｃ）のように連続した曲線の二つの調節点の間にある基準点は省略しても曲線を表現することができる。
【００６３】
本発明では、Ｑｕａｄｒａｔｉｃ曲線方式とＣｕｂｉｃ曲線方式で表現されたアウトラインフォントの曲線表現をメタフォントにすべて表現できるようにＣｕｂｉｃ曲線に変換する機能を含む。これらの動作は、出力フォントの生成部（４３０）によって行われる（段階（５３０））。
【００６４】
要するに、本発明は、アウトラインフォントの一つの形式であるＵＦＯのメタフォント属性を適用してメタフォントコードを生成することによって、新しいフォントを生成する。既存のアウトラインフォントは、文字の太さやスタイルの変化が自由ではなかったが、メタフォントは、パラメータを利用して、スタイルを自由に変形させることができる。したがって、太さのようなスタイルの変化に応じて複数で製作されて提供される必要があったアウトラインフォントの「フォントファミリ」がなくても、基本的なアウトラインフォント一つでメタフォントコードを生成して、ユーザーが調節するパラメータに合わせて自由に太さを調節することができる。また、ハングルの特性に合わせて提供するパラメータを利用して、様々な形状の文字を生成することができる。
【００６５】
また、本発明の実施例は、多様なコンピュータ手段を通じて行われることができるプログラム命令形態に具現され、コンピュータで読み取り可能媒体に記録されることができる。コンピュータで読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独にまたは組み合わせて含むことができる。この媒体に記録されるプログラム命令は本発明のために特別に設計され、構成されたものであるか、コンピュータソフトウェア分野の当業者に公知されて使用可能なものであることもできる。コンピュータで読み取り可能記録媒体の例としては、ハードディスク、フロッピーディスク、及び磁気テープのような磁気媒体（ｍａｇｎｅｔｉｃ  ｍｅｄｉａ）、ＣＤ−ＲＯＭ、ＤＶＤのような光記録媒体（ｏｐｔｉｃａｌ  ｍｅｄｉａ）、フロプティカルディスク（ｆｌｏｐｔｉｃａｌ  ｄｉｓｋ）のような磁気−光媒体（ｍｅｇｎｅｔｏ−ｏｐｔｉｃａｌ  ｍｅｄｉａ）、及びロム（ＲＯＭ）、ラム（ＲＡＭ）、フラッシュメモリなどのような、プログラム命令を格納して遂行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例としては、コンパイラにより作成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータにより実行可能な高級言語コードを含む。ハードウェア装置は本発明の一実施例の動作を行うために一つ以上のソフトウェアモジュールとして動作するように構成されてもよく、その逆も同様である。
【００６６】
上述したように、本発明の具体的な構成要素を、実施例及び図面によって説明した。これは全般的な理解を容易にするために提供されたもので、本発明はこの実施例に限定されるものではない。通常的な知識を有するなら、このような記載から多様な修正及び変形が可能である。
【符号の説明】
【００６７】
４００    フォント生成装置
４１０    入力部
４２０    中間コード生成部
４３０    出力フォントの生成部
【図１】
2019528485.tif 000007
【図２】
2019528485.tif 000008
【図３】
2019528485.tif 000009
【図４】
2019528485.tif 000010
【図５】
2019528485.tif 000011
【図６】
2019528485.tif 000012
【図７】
2019528485.tif 000013
【図８】
2019528485.tif 000014
【図９】
2019528485.tif 000015
【国際調査報告】
2019528485.tif 000016
2019528485.tif 000017
2019528485.tif 000018
2019528485.tif 000019