(57)【特許請求の範囲】
【請求項１】
複数の字体を記憶するメモリ及びデータ処理を行うＣＰＵを有するコンピュータシステム内において入手不能な要求された字体に視覚的に類似する置換字体を出力装置に供給する方法であって、
前記要求された字体の文字の全幅と所定の許容差内の文字の全幅を有し、且つ、前側余白、文字部分及び後側余白を含む全幅をもった文字の集合を有する基礎字体の情報を、前記メモリからＣＰＵが読み出す段階と、
読み出された前記基礎字体の前記文字部分の幅を調整することなく前記前側余白及び前記後側余白の少なくとも１つを前記ＣＰＵにより調整することによって、前記基礎字体の各文字の見掛けが変化しないようにしつつ、前記基礎字体の全幅を前記要求された字体の対応する文字の全幅に整合させる段階と、
出力される文字が前記要求された字体を使用して表示されたかのようにするために、前記ＣＰＵが、前記要求された字体の前記全幅に整合された全幅を持つ前記基礎字体を置換字体として使用して文字を出力装置に供給する段階と、
を具備することを特徴とする方法。
【請求項２】
前記ＣＰＵが、上記メモリに記憶された各字体の文字と前記要求された字体の文字とを比較し、前記要求された字体と視覚的に類似した字体を前記置換字体として選択する段階をさらに含む、請求項１に記載の方法。
【請求項３】
前記メモリに記憶された前記複数の字体が、それぞれ、その視覚的な見掛けの評価を符号化した複数のディジット値からなるコードを含む数値的記述を含み、
前記の選択する段階が、前記要求された字体の数値的記述と前記基礎字体の数値的記述との間の距離を計算する段階と、前記距離が最も小さい前記基礎字体を選択する段階とを含む、請求項２に記載の方法。
【請求項４】
前記の計算する段階が、前記要求された字体の前記ディジット値と前記基礎字体の前記ディジット値とのディジット毎の差を自乗して加算することによって前記距離を計算する段階を含む、請求項３に記載の方法。
【請求項５】
前記メモリに記憶された前記複数の字体が、それぞれ、相対的な類似性評価値を含み、
前記の選択する段階が、
前記要求された字体に対して最高の前記類似性評価値を持つ複数の字体を識別する段階と、
前記識別された複数の字体のうち、前記要求された字体の文字幅の所定の許容差内にある字体を選択する段階と、
含む、請求項２に記載の方法。
【請求項６】
複数の字体を記憶するメモリ及びデータ処理を行うＣＰＵを有するコンピュータシステムであって、該システム内で入手不能な要求された字体に視覚的に類似する置換字体を出力装置に供給するコンピュータシステムにおいて、ＣＰＵが、
前記要求された字体の文字の全幅と所定の許容差内の文字の全幅を有し、且つ、前側余白、文字部分及び後側余白を含む全幅をもった文字の集合を有する基礎字体の情報を、前記メモリから読み出す手段、
読み出された前記基礎字体の前記文字部分の幅を調整することなく前記前側余白及び前記後側余白の少なくとも１つを調整することによって、前記基礎字体の各文字の見掛けが変化しないようにしつつ、前記基礎字体の全幅を前記要求された字体の対応する文字の全幅に整合させる手段、及び
出力される文字が前記要求された字体を使用して表示されたかのようにするために、前記要求された字体の前記全幅に整合された全幅を持つ前記基礎字体を置換字体として使用して文字を出力装置に供給する手段、
として動作することを特徴とするコンピュータシステム。
【請求項７】
前記ＣＰＵが、さらに上記メモリに記憶された各字体の文字と前記要求された字体の文字とを比較し、前記要求された字体と視覚的に類似した字体を前記置換字体として選択する手段として動作する、請求項６に記載のコンピュータシステム。
【請求項８】
前記メモリに記憶された前記複数の字体が、それぞれ、その視覚的な見掛けの評価を符号化した複数のディジット値からなるコードを含む数値的記述を含み、
前記の選択する手段が、前記要求された字体の数値的記述と前記基礎字体の数値的記述との間の距離を計算する手段と、前記距離が最も小さい前記基礎字体を選択する手段とを含む、請求項７に記載のコンピュータシステム。
【請求項９】
前記の計算する手段が、前記要求された字体の前記ディジット値と前記基礎字体の前記ディジット値とのディジット毎の差を自乗して加算することによって前記距離を計算する手段を含む、請求項８に記載のコンピュータシステム。
【請求項１０】
前記メモリに記憶された前記複数の字体が、それぞれ、相対的な類似性評価値を含み、
前記の選択する手段が、
前記要求された字体に対して最高の前記類似性評価値を持つ複数の字体を識別する手段と、
前記識別された複数の字体のうち、前記要求された字体の文字幅の所定の許容差内にある字体を選択する手段と、
含む、請求項６に記載のコンピュータシステム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、一般的にはコンピュータ字体（もしくはフォント）を供給する方法及び装置に関し、より特定的にはあるコンピュータシステム内では入手不能な字体のための置換コンピュータ字体を供給する方法及び装置に関する。
【０００２】
【従来の技術】
殆どの汎用コンピュータシステム（以下コンピュータと略称）は、モニタ及びプリンタのような付加表示装置上の文字（欧字、数字、及び他の記号）からなる文章を表示することができる。モニタは複数の点、もしくは画素の格子からなり、各画素は個々に発光させることができる。コンピュータプリンタ及び他のコンピュータ表示装置も画像を表示するために画素を使用している。
表示装置上に文章を表示させるために、コンピュータは１もしくはそれ以上のラスタ字体を使用する。各文字のビット写像は、特定の文字を形成させるためには表示格子の部分集合内のどの画素を発光させなければならないかを表すデータを含んでいる。コンピュータがある表示位置に特定の文字を表示することを必要とする場合には、コンピュータはその文字のためのビット写像にアクセスする。次いでコンピュータは、文字ビット写像内に記憶されているデータに従って、表示位置付近の画素を発光もしくは消光させる。図１は、欧字Ａの１つの考え得るビット写像がどのようにして表示装置上に表示されるかを示す図である。
ある時期には、各コンピュータは単一のラスタ字体だけを使用し読出し専用メモリ内に恒久的に記憶していた。その後、コンピュータは幾つかの異なるラスタ字体を同時に使用するようになった。これにより、利用者は１よりも多い書体及びポイントサイズで文章を表示できるようになった。（書体は、文字の集合のための特定の設計である。ポイントサイズは、字体の文字の高さの尺度である。）現在では、これらのラスタ字体は書込み可能なランダムアクセスメモリ内に記憶され、既存のラスタ字体を変更し、新しいラスタ字体を付加することができるようになっている。
【０００３】
現在のコンピュータは、輪郭字体と呼ばれる別の、より頑強な型の字体をも使用する。輪郭字体は各文字毎の輪郭を含み、文字の輪郭の形状を形成する直線及び曲線からなる。図２は、欧字Ａの１つの考え得る輪郭を示す図である。輪郭字体は任意の座標系を使用することによって、これらの直線及び曲線を記述する。コンピュータはこれらの文字輪郭の大きさを如何なるポイントサイズにも決め直し、次いでそれらをラスタ字体に変換することができる。輪郭字体は複数のヒントをも含み、これらのヒントは実行された時に輪郭の形状を種々のポイントサイズに調整してそれらの見掛けを改善するルーチンである。
コンピュータは輪郭字体を使用して種々の大きさのラスタ字体を作成する。またコンピュータは輪郭字体をスマート表示装置へ伝送することもでき、スマート表示装置はそれら自体が輪郭字体からラスタ字体を作成する。現在では多くのコンピュータが、それぞれが異なる書体に対応する幾つかの輪郭字体を記憶している。
現在のコンピュータは利用者の要望に応じて、輪郭字体を使用して、異なる書体のラスタ字体を動的に作成することができる。「ラスタ供給」プログラムのようなコンピュータプログラムがこのサービスを提供する。図３は「ラスタ供給」プログラムの流れ図である。このプログラムは、ワードプロセッサもしくはスプレッドシートのような応用プログラムによって（それらがラスタ字体を要求した時に）呼出される字体管理者プログラムの例である。このプログラムには要求した書体名、ポイントサイズ、及び意図している表示装置の水平及び垂直密度が渡される。プログラムは使用する表示装置のために要求した書体及びポイントサイズのラスタ字体を戻す。
【０００４】
段階２０１において、もし正確なポイントサイズのラスタ字体、及び水平及び垂直画素密度をコンピュータ内で入手可能であればプログラムは段階２０２へ進み、そうでなければプログラムは段階２０３へ進む。次いでプログラムは検索されたラスタ字体を応用プログラムへ戻す。
段階２０３において、もし要求された書体のための輪郭字体がコンピュータ内で入手可能であればプログラムは段階２０４へ進み、そうでなければプログラムは段階２０５へ進み、入手不能な輪郭字体のための置換字体を作成する。段階２０４において、プログラムは要求された書体のための輪郭字体を検索する。この輪郭字体は文字輪郭及びヒントの両者を含む。次いでプログラムは段階２０６へ進む。
段階２０５において、プログラムは「置換字体作成」プログラム（以下置換字体作成と略称）を呼出し、入手不能な輪郭字体に視覚的に近似する置換輪郭字体を発生する。プログラムは、「置換字体作成」に入手不能な輪郭字体名を渡す。「置換字体作成」は、入手不能な字体のための置換輪郭字体を戻す。この置換輪郭字体は文字輪郭及びヒントの両者を含む。「置換字体作成」の詳細に関しては後述する。「置換字体作成」が戻ると、プログラムは段階２０６へ進む。
【０００５】
段階２０６において、プログラムは「ラスタへの変換」プログラム（以下ラスタへの変換と略称）を呼出し、検索されたもしくは作成した輪郭字体、要求されたポイントサイズ、及び要求された水平及び垂直密度をそれに渡す。次いでプログラムは「ラスタへの変換」によって作成されたラスタ字体を応用プログラムへ戻す。
図４は、「ラスタへの変換」の流れ図である。このプログラムは、パラメタとして輪郭字体、要求されたポイントサイズ、及び要求された水平及び垂直密度を受ける。輪郭字体は文字輪郭及びヒントを含む。
段階３０１においてプログラムは、輪郭の直線及び曲線を限定する座標に要求されたポイントサイズを乗ずることによって、輪郭字体の文字輪郭の大きさを要求されたポイントサイズに決め直す。これは各文字の高さ及び幅を変更する。段階３０２において、プログラムは、輪郭字体のヒントを拡大された輪郭に適用する。
図５及び６は、ラスタ化された輪郭の見掛けを改善するためにヒント処理する必要があることを示すための画面画像である。図５は、始めにヒント処理されずにラスタ化された欧字“ｎ”を示す画面画像である。ヒント処理されてない欧字の左側のベースセリフ４０１は、右側のベースセリフ４０２と合っていない。また左側の縦棒４０３の幅は右側の縦棒４０４の幅よりも広い。最後にその円頂４０５は画素の頂列に向かって歪んでいる。図６はヒント処理された後にラスタ化された欧字“ｎ”を示す画面画像である。ヒントされた欧字のベースセリフ４１１及び４１２は、それらのそれぞれの縦棒４１３及び４１４に関して同一の幅である。この場合のこれらの縦棒は共に２画素幅である。その円頂４１５の高さは、縦棒がやや離れるように移動したことによって平衡している。図６に示したヒントは、字体の文字の対称性及び規則正しさを保証している。他の伝統的なヒントは、文字の対応する特色同士が垂直に整列することを保証する。さらなる伝統的なヒントは、良好なカラーを、即ち、ある字体の文字の中に一貫した重み付けを保証する。文字にヒントを適用することを、その文字を規則化すると言う。
【０００６】
図４の段階３０３において、プログラムは、使用する表示装置の水平及び垂直密度に対応する格子をヒント処理された輪郭上に重畳することによって、輪郭字体のヒント処理された輪郭をラスタ化し、次いでヒント処理された輪郭内に中心を有する格子の画素をターンオンさせる。この技術はディジタル技術の分野においては公知である。プログラムは得られたラスタ字体を応用プログラムへ戻し、応用プログラムはそれを使用して文章を表示する。また、将来受信するであろう同一の要求を満足させるために、このラスタ字体をバッファ内に記憶することもできる。
「置換字体作成」によって供される機能は極めて重要である。どの輪郭字体を必要とするかを予測することは困難である。以下に輪郭字体を単に字体と呼ぶ。個々の字体のライセンスを入手するのは高価であり、また自主開発するには更に高価であるので、入手不能な字体のための置換字体をコンピュータが構成できるようにすることが極めて一般的になっている。
「置換字体作成」によって作成される置換字体は、（１）もし可能ならば、入手不能な字体に対して見掛けが類似しているべきであり、（２）入手不能な字体と同一の全文字幅を有しているべきである。これらの要求は、書類中の文書の特定区分を表示する際に、入手不能な字体の代わりに置換字体を使用する上での規範を指図している。第１の要求はその区分に対して意図された何等かの美的センスを維持することを保証するものであり、第２の要求は正しい点において改行及び改頁がなされることを保証するものである。
【０００７】
「置換字体作成」の既存のプロセスは、置換字体の基になる入手可能な字体（基礎字体）を選択し、次いでその置換字体を変更して置換字体を作成するように動作する。基礎字体の選択時に入手不能な字体に類似する見掛けと共にそれらの有効性が変化するので、基礎字体選択プロセスは変化する。
既存変更プロセスは、典型的には、入手不能な字体の対応する文字よりも小さい幅を有する基礎字体の各文字の前もしくは後に空間を付加するだけからなる。これらのプロセスは、基礎字体の文字の全幅が、入手不能な字体の対応する文字の全幅よりも小さいか、もしくは等しい場合には、同一の全文字幅を有する字体を発生する。しかしながら、これらのプロセスは、それらの全幅が、入手不能な字体の対応する文字の全幅よりも大きい場合には、同一の全文字幅を有する字体を発生することはできない。これらの「置換字体作成」プロセスは、置換字体に関する第１の要求に対しては程度を変化させることによって満足させ、より重要な要求である第２の要求に対しては散発的にしか満足させない。
【０００８】
【発明の概要】
本発明の目的は、置換字体の文字の全幅を調整して、入手不能な字体の対応する文字の全幅に合わせる方法及び装置を提供することである。
本発明の別の目的は、各文字を水平方向に調整することによって、置換字体の文字の全幅を調整する方法及び装置を提供することである。
本発明の更に別の目的は、各文字の前の前側余白（幅）と、各文字の後の後側余白とを調整することによって、置換字体の文字の全幅を調整する方法及び装置を提供することである。
以下の本発明の説明から明白になるであろうこれらの、及びさらなる目的は、あるコンピュータシステム内では入手不能な選択された字体に視覚的に近似する置換字体を供給する改良された方法及び装置によって達成される。本発明の好ましい実施例では、本方法及び装置は、先ずそのコンピュータシステム内で入手可能な１つの字体を置換字体として選択する。次に本方法及び装置は、置換字体の文字の全幅を調整して、選択された字体の対応する文字の全幅に合わせる。これにより、置換字体の文字と選択された字体の文字との同一の組合わせに、実質的に同一の大きさ及び見掛けを持たせる。次いで本方法及び装置は、選択された字体を要求したプログラムに置換字体を使用可能ならしめる。
【０００９】
【実施例】
本発明は、あるコンピュータシステム内では入手不能な輪郭字体のための置換輪郭字体を供給する方法及び装置に関する。以下の説明では、輪郭字体を単に字体と呼ぶことにする。本発明の好ましい実施例では、「ラスタ供給」が、「置換字体作成」の代わりに「最良字体作成」プログラム（以下に最良字体作成と略称）を呼出して、入手不能な字体のための置換字体を発生させる。
「最良字体作成」には、入手不能な字体名が渡される。プログラムは先ず「写像」プログラム（以下に写像と略称）によって選択された視覚的に類似する基礎字体（その文字幅は全て、入手不能な字体の文字幅の所定の許容差内にある）を識別することを試みる。もしこのような基礎字体が存在すれば、プログラムはその基礎字体の全文字の前及び後の空間を調整して、その各文字の全幅を、入手不能な字体の対応する文字の全幅に等しくする。得られた置換字体は、入手不能な字体の見掛けに類似する見掛けを有し、入手不能な字体と同一の全文字幅を有し、そして基礎字体と同一のカラーを有していて、良好であると仮定することができる。
もしこのような基礎字体が存在しなければ、プログラムは、その文字を正しい幅に変更することができる字体を選択する。次に、実際の変更を行う「拡大縮小」プログラム（以下に拡大縮小と略称）を呼出す。得られた置換字体は、入手不能な字体の見掛けにやや類似する見掛けを有し、入手不能な字体の全幅と同一の全文字幅を有し、そして良好なカラーを有している。変更可能な字体は、変更された時に、変更可能な字体が一貫した棒幅を有することを保証する特別ヒントを含んでいる。
【００１０】
図７は、「最良字体作成」、「写像」、及び「拡大縮小」プログラムを好ましく実行する汎用コンピュータシステムの高レベル図である。コンピュータ５０１は、中央処理ユニット（ＣＰＵ）５０２、コンピュータメモリ５０３、及び入力／出力装置５０４を含む。コンピュータメモリ５０３は、「最良字体作成」プログラム５０６、「拡大縮小」プログラム５０７、「写像」プログラム５０８、字体一覧表（以下に表と略称）５０９、及び字体５１０−５１３を含む。入力／出力装置は、表示装置５１４、プリンタ５１５、及びハードディスク駆動機構のような記憶装置５１６を含む。字体一覧表は、多数の人気字体に関する一覧情報を含む。テーブルの各行は単一の字体に対応し、その字体名、その字体の各文字の全幅、その字体がセリフ字体であるのか、もしくはサンセリフ字体であるのかの指示、及びその字体の視覚的な見掛けの符号化された評価を含む。
「ラスタ供給」のようなプログラムが「最良字体作成」を呼出し、入手不能な字体のための置換字体を発生し、それに入手不能な字体名を渡す。「最良字体作成」は、その文字幅が全て、入手不能な字体の文字幅の所定の許容差内にある視覚的に類似する字体を識別することを試みる。もしこのような基礎字体が存在すれば、プログラムはその基礎字体の全文字の前及び後の空間を調整して、その各文字の幅を、入手不能な字体の対応する文字の幅に等しくする。このような基礎字体が存在しなければ、プログラムは、その文字を正しい幅に変更できる変更可能な字体を選択する。次いでプログラムは、実際の変更を実行する「拡大縮小」を呼出す。変更可能な字体は、得られた字体が良好なカラーを有することを保証する特別ヒントを含む。
【００１１】
図８は「最良字体作成」の流れ図である。段階６０１においてプログラムは、そのコンピュータ内で入手可能な視覚的に類似する字体を識別する「写像」を呼出す。プログラムは「写像」に、入手不能な字体名及び候補字体の所定数を与えて戻る。「写像」は、字体一覧表内に記憶されている汎用の殆どの人気字体の視覚的な見掛けの符号化された評価（以下にコードと略称）を使用する。字体及びそれらのコードは、たとえこれらの字体がコンピュータ内では入手不能であっても、表内に含ませることができる。好ましい実施例では、コードは、 ElseWare PANOSE（商標）字体整合システムに従って決定されている。 PANOSE システムに従って決定されたコードは、ファミリーの種類、セリフのスタイル、重み、割合、コントラスト、ストロークの変化、アームのスタイル、欧字の形状、中線、及びＸ高さに関する情報を含む。さらなる好ましい実施例では、少なくとも 100字体のためのコードが表内に含まれている。
図９は、「写像」の公知の実施例の流れ図である。段階７０１においてプログラムは、字体一覧表から入手不能な字体のコードを検索する。段階７０２−７０５において「写像」は、入手可能な字体毎に、入手不能な字体からの距離を計算する。段階７０２においてプログラムは入手可能な字体を選択する。段階７０３においてプログラムは、選択された字体のコードを表から検索する。段階７０４においてプログラムは、入手不能な字体のコードと選択された字体のコードとの距離を計算する。この計算は、コードの各ディジット毎に、入手不能な字体のディジット値と選択された字体のディジット値との間の差を自乗することを含む。段階７０５において、もし入手可能な字体が未だ残されていればプログラムは段階７０２へ戻り、残っていなければプログラムは段階７０６へ進む。段階７０６においてプログラムは、入手不能な字体から最小の距離にある要求された数の字体を選択する。次いでプログラムは選択された字体を「最良字体作成」へ戻す。
【００１２】
以下の表１は字体一覧表の一部を簡略化して示す図である。この表は幾つかの字体毎の字体名及び関連コードを示している。以下の説明は、もしこの字体一覧表がシステム内の存在し、また「写像」がパラメタ（入手不能な字体名＝タイムズニューローマン、要求された類似字体の数＝２）を用いて呼出された場合に、「写像」がどのように挙動するかを詳細に記述している。
0004124494.tif 000002
「写像」は先ず、入手不能な字体であるタイムズニューローマンのためのコード 0123456789 を表から検索する。次いで「写像」は第１の入手可能な字体、アリアルを選択し、そのコード 2222222222 を検索する。次に「写像」は、タイムズニューローマンのコードとアリアルのコードとの距離を計算する。この計算はコードの桁毎に、入手不能な字体のコードの桁と選択された字体のコードの桁との差を自乗することを含む。これらの自乗値が加算されて距離が求められる。アリアルとタイムズニューローマンとの差は、
( 2 −0 )2＋( 2 −1 )2＋( 2 −2 )2＋( 2 −3 )2＋( 2 −4 )2＋( 2 −5 )2＋( 2 −6 )2＋( 2 −7 )2＋( 2 −8 )2＋( 2 −9 )2＝ 4＋ 1＋ 0＋ 1＋ 4＋  9 ＋ 16 ＋ 25 ＋ 36 ＋ 49 ＝ 145
である。このタイムズニューローマンからの距離を計算するプロセスは、表内の他の残りの入手可能な字体毎に繰り返される。次いで「写像」は、タイムズニューローマンから最小の距離を有する２つの字体を選択する。これらは、距離３を有するクーリアと、距離 10 を有するスクールブックである。次に「写像」は、これら２つの字体を戻す。
【００１３】
代替実施例では、システム上で入手可能な各字体が、視覚的に類似している字体のリストと共に記憶される。各字体は相対的な類似性評価値と共にリストされている。この実施例では、「写像」は各入手可能な字体に関連するリストを読み、入手不能な字体に類似する字体を識別し、類似性評価値が最高である要求された数の字体を戻すことによって、入手不能な字体に視覚的に類似する字体を識別する。
段階６０２−６０５においてプログラムは、各視覚的に類似する候補字体を順番に選択し、その文字幅が要求された字体の文字幅の所定の許容差内にあるか否かを調べる。段階６０２においてプログラムは、「写像」によって戻された候補の中から視覚的に類似する字体を選択する。段階６０３においてプログラムは、選択された字体の各文字の全幅と、入手不能な字体の対応する文字の全幅とを比較する。
図１０は、サンプル文字の全幅と、文字の他の水平尺度に対するその関係とを示す図である。文字８０１−８０６は、タイムズニューローマン字体で語“Ｓａｍｐｌｅ”を表示させる応用プログラムによって表示されている。文字“ｐ”８０４はある全幅８１０を有し、この全幅８１０は前側余白（幅）８１３と、水平方向の文字部分（もしくは広がり）８１４と、後側余白８１５とからなっている。図示してある他の文字も、これらの尺度を有している。
【００１４】
人気字体の文字の全幅は字体一覧表内に記憶されている。段階６０３においてプログラムは、入手不能な字体及び選択された字体に対応する表の行から全幅にアクセスしてそれらの比較を遂行する。
段階６０４において、もし選択された字体の文字の全幅が全て入手不能な字体の対応する文字の全幅のしきい値割合内にあれば、プログラムは段階６０６へ進んで選択された字体を使用し、そうでなければプログラムは段階６０５へ進む。段階６０５において、もし視覚的に類似する候補字体が残されていれば、プログラムは段階６０２へ戻ってそれらの１つを選択し、残っていなければプログラムは段階６０８へ進む。
代替実施例では、比較的多数の視覚的に類似する字体を要求するために「写像」を呼出すのではなく、プログラムは少数の視覚的に類似する字体を要求するために「写像」を呼出す。この実施例では、プログラムは、もし第１群内の字体の全文字幅が、入手可能な字体の対応する文字の全幅のしきい値割合内になければ、視覚的に類似するさらなる字体を求めて「写像」を再度呼出す。
段階６０６−６０７は、視覚的に類似する字体が容認できる文字幅を有している場合に置換字体を生成する経路である。段階６０６においてプログラムは、選択された字体に対応する字体をメモリから検索する。この字体は、記憶装置上に記憶されているファイルから、字体名を使用して検索することが好ましい。これが基礎字体になる。段階６０７においてプログラムは、基礎字体の各文字の前側余白及び後側余白を調整して、その全幅を入手不能な字体内の対応する文字の全幅に等しくする。次いでプログラムはこの基礎字体を戻し、この基礎字体が置換字体にされる。
【００１５】
段階６０８−６０９は、視覚的に類似する字体が容認できる文字幅を有していない場合に置換字体を生成する経路である。段階６０８においてプログラムは、特別にその文字の全幅の水平方向への拡大及び縮小を支援するようになっている字体をメモリから選択し、検索する。この字体は記憶装置上に記憶されているファイルから、字体名を使用して検索することが好ましい。これらの変更可能な字体は、拡大及び／または縮小後の字体の外見が、文字の中の縦棒の幅を正則化することによって良好になることを保証する特別なヒントが付加されるようになっている。特別なヒントに関しては「拡大縮小」に関して後述する。選択された変更可能な字体が基礎字体にされる。
好ましい実施例では、特別ヒントを有する２つの変更可能な字体だけが存在すれば十分である。即ち、一方はセリフ字体のための字体であり、一方はサンセリフ字体のための字体である。（セリフ字体の文字はそれらの棒の端に短い線もしくは装飾を有しており、一方サンセリフは有していない。）この実施例では、選択プロセスは単にセリフ字体をセリフ使用不能字体のための基礎字体として、またサンセリフ字体をサンセリフ使用不能字体のための基礎字体として選択するだけである。一般的な各字体がセリフ字体であるのか、もしくはサンセリフ字体であるのかの指示は、表内に記憶されている。この実施例では、プログラムは、入手不能な字体に対応する表の行にアクセスして入手不能な字体がセリフ字体であるのか、もしくはサンセリフ字体であるのかを決定する。
【００１６】
段階６０９においてプログラムは「拡大縮小」を呼出し、選択された基礎字体の各文字を水平方向に拡大縮小して正しい幅にする。プログラムは、基礎字体の輪郭、基礎字体の全文字幅、及び入手不能な字体の全文字幅を「拡大縮小」に渡す。「拡大縮小」が戻ると、プログラムは拡大縮小された基礎字体を戻す。これが置換字体にされる。
図１１は「拡大縮小」の流れ図である。プログラムは、１組の文字輪郭、開始全文字幅、及び終了全文字幅をパラメタとして受ける。プログラムは各文字輪郭を指定された終了幅に拡大縮小する。段階９０１−９０３においてプログラムは、全ての文字輪郭を循環させて各文字輪郭を拡大縮小する。段階９０１においてプログラムは、各輪郭座標にその開始全文字幅を乗じ、それを終了全文字幅で除すことによって、選択された文字輪郭を正しい幅に拡大縮小する。段階９０３において、もしさらなる文字輪郭が残されていればプログラムは段階９０１へ戻ってそれらの１つを選択し、残っていなければプログラムは拡大縮小された輪郭を戻す。
図１２は、クーリア字体のサンプル文字の全幅を示す図である。語“Ｓａｍｐｌｅ”は、それぞれ全幅１００７−１０１２を有する文字１００１−１００６によって形成されている。表示された文字の全幅８０７−８１２（図１０のタイムズニューローマン）及び１００７−１０１２（クーリア）は、大文字を最初にして文字をアルファベット順にリストしてある以下の表２の列２及び３内に数値的に表されている。
0004124494.tif 000003
タイムズニューローマンが入手不能な字体であり、「最良字体作成」がクーリアを変更可能な字体として選択し、そしてクーリアの文字幅をタイムズニューローマンの文字幅に拡大縮小するために「拡大縮小」を呼出すものとすれば、「拡大縮小」は以下のように進行する。「拡大縮小」の輪郭パラメタは、クーリア字体からの文字輪郭を含む。開始幅パラメタはクーリア字体の文字の全幅を含む。終了幅パラメタは、タイムズニューローマン字体の全幅を含む。「拡大縮小」はその文字の輪郭座標に、その終了幅をその開始幅で除した比を乗ずる。文字“Ｓ”の場合には、「拡大縮小」は輪郭座標に 100/100＝１を乗ずる。他の選択された文字のための乗数を、表２の第４列に示す。全ての輪郭を拡大縮小した後に「拡大縮小」はそれらを「最良字体作成」へ戻す。
【００１７】
適合された字体内に含まれる特別ヒントは、水平方向の拡大縮小プロセスによってもたらされた不整を修正しなければならない。特別ヒント並びに変更可能な基礎字体の伝統的なヒントは、図４の「ラスタへの変換」の段階３０２において置換字体の拡大縮小された輪郭に適用される。好ましい実施例では、特別ヒントは、「拡大縮小」による水平方向の拡大縮小が最小であった選択された字体の文字を識別する。次いで特別ヒントは拡大縮小が最小であった文字の縦棒の幅を抽出し、それを選択された字体内の他の全文字に適用する。これは、各文字の縦棒を識別し、次いでそれらの縦棒の縁をまとめて、もしくは別個に移動させ、各縦棒の幅が拡大縮小が最小であった文字の縦棒の幅に合わせるようにすることを含む。
さらなる好ましい実施例では、「拡大縮小」は、どの文字が水平方向の拡大縮小が最小であったかの識別と、ヒントによって検索するためにその文字に適用される倍率とを記憶する。「ラスタへの変換」は、拡大縮小が最小である文字に関するヒントを最初に実行することが好ましい。実行されると、拡大縮小が最小である文字に関するヒントはそれを指定する字体に対応付けられたフラグをセットし、他の文字に関するヒントが実行された後にそれらの特別ヒント区分が実行される。拡大縮小が最小である文字に関するヒントは倍率にもアクセスし、字体単位で表される標準縦棒幅値をセットする。他の文字毎にヒントが実行された後にそれらの文字の特別ヒント区分が実行される。特別ヒント区分は、各文字の縦棒の左側と右側の文字制御点間の字体単位で表された距離を、拡大縮小が最小である文字の記憶されている縦棒幅を用いて無効にする命令かららる。このように無効にされたこの文字の縦棒は、ラスタ化されると、拡大縮小が最小である文字の画素幅と同数の画素幅になり、各縦棒が均等なカラーを有する字体が得られる。
【００１８】
以上に本発明を好ましい実施例に関して説明したが、本発明の思想及び範囲から逸脱することなく形状及び細部に種々の変更を施し得ることは明白である。例えば、基礎字体の文字を水平方向に拡大縮小して入手不能な字体に合わせる代わりに、基礎字体の文字を垂直方向に拡大縮小して入手不能な字体に合わせるようにすることができる。この場合、特別ヒントは、縦棒幅の代わりに横棒を規則化する。また「最良字体作成」は、視覚的に類似する字体を識別するように記載したが、それ以外の方法を使用することもできる。更に、本発明は汎用コンピュータの代わりにスマート表示装置内に実現することができる。また更に、含まれる字体はローマンアルファベットである必要はない。同一の技術を、ロシア字体、ヘブライ字体、日本字体、もしくは朝鮮字体のような種々のアルファベット、または非アルファベット記号字体にも適用することが可能である。
【図面の簡単な説明】
【図１】欧字Ａの１つの考え得るビット写像を表示装置上にどのように表示できるかを示す図である。
【図２】欧字Ａの１つの考え得る輪郭を示す図である。
【図３】「ラスタ供給」プログラムの流れ図である。
【図４】「ラスタへの変換」プログラムの流れ図である。
【図５】始めにヒント処理せずにラスタ化された欧字“ｎ”の画面画像である。
【図６】ヒント処理を施した後にラスタ化された欧字“ｎ”の画面画像である。
【図７】「最良字体作成」、「写像」、及び「拡大縮小」プログラムを好ましく実行する汎用コンピュータシステムの高レベル図である。
【図８】「最良字体作成」プログラムの流れ図である。
【図９】公知の「写像」プログラムの流れ図である。
【図１０】サンプル文字の全幅と、その文字の他の水平方向の尺度に対するその関係とを示す図である。
【図１１】「拡大縮小」プログラムの流れ図である。
【図１２】クーリア字体のサンプル文字の全幅を示す図である。
【符号の説明】
５０１  コンピュータ
５０２  ＣＰＵ
５０３  コンピュータメモリ
５０４  入力／出力装置
５０６  「最良字体作成」プログラム
５０７  「拡大縮小」プログラム
５０８  「写像」プログラム
５０９  字体一覧表
５１０−５１３  字体
５１４  表示装置
５１５  プリンタ
５１６  記憶装置
８１０  全幅
８１３  前側余白
８１４  水平方向の文字部分
８１５  後側余白
【図１】
0004124494.tif 000004
【図２】
0004124494.tif 000005
【図３】
0004124494.tif 000006
【図４】
0004124494.tif 000007
【図５】
0004124494.tif 000008
【図６】
0004124494.tif 000009
【図７】
0004124494.tif 000010
【図８】
0004124494.tif 000011
【図９】
0004124494.tif 000012
【図１０】
0004124494.tif 000013
【図１１】
0004124494.tif 000014
【図１２】
0004124494.tif 000015