
コンピュータフォント、またはデジタルフォントとは、グラフィック的に関連付けられた一連のグリフを含むデジタルデータファイルであり、通常はフォントエディタを使用して設計および作成されます。また、印刷用ではなくコンピュータ画面用に特別に設計されたフォントは、スクリーンフォントと呼ばれます。
活版印刷の用語では、書体とは、スタイルやサイズを問わず共通のデザイン特性を持つ文字の集合(例えば、Gill Sansのすべてのバリエーション)であり、フォントとは、特定の書体、サイズ、幅、太さ、傾斜などの活字の集合(例えば、Gill Sans 太字 12 ポイント)です。HTML 、CSS 、および関連技術では、フォント ファミリー属性は書体のデジタル版を指します。1990 年代以降、印刷業界以外の多くの人々がフォントという言葉を書体の同義語として使用しています。
コンピュータフォントのファイルデータ形式には、大きく分けて3種類あります。
ビットマップフォントは、他のフォントタイプよりもコンピュータコードで作成するのが速くて簡単ですが、スケーラブルではありません。ビットマップ書体は、サイズごとに個別のフォントデザインが必要です。[ 1 ]アウトライン書体とストローク書体は、各グリフのコンポーネントに異なる寸法を置き換えることで、単一のフォントでサイズ変更できますが、画面や印刷で表示するビットマップをレンダリングするための追加のコンピュータコードが必要なため、ビットマップフォントよりも画面や印刷でレンダリングするのが複雑です。すべてのフォントタイプがまだ使用されていますが、今日コンピュータで使用されているフォントのほとんどはアウトラインフォントです。
フォントには、等幅フォント(描画時に各文字が隣接する文字から一定の距離で配置される)と比例フォント(各文字の幅がそれぞれ異なる)があります。ただし、フォントを扱うアプリケーションによっては、特にテキストを均等割り付けする場合に、間隔が影響を受けることがあります。


ビットマップフォントとは、各グリフをピクセルの配列(つまりビットマップ)として格納するフォントのことです。あまり一般的ではありませんが、ラスタフォント、または特に小さなサイズで使用することを想定している場合はピクセルフォントが使用されます。ビットマップフォントはラスタ画像。フォントの各バリアントごとに、グリフ画像の完全なセットがあり、各セットには各文字に対応する画像が含まれています。たとえば、フォントに3つのサイズがあり、太字と斜体の任意の組み合わせがある場合、12個の完全な画像セットが必要になります。
ビットマップフォントの利点は以下のとおりです。
ビットマップフォントの主な欠点は、アウトラインフォントやストロークフォントと比較して、拡大縮小などの変換を行うと視覚的な品質が低下する傾向があること、そして同じフォントの最適化された専用サイズを多数用意するとメモリ使用量が劇的に増加することです。初期のビットマップフォントは、8、9、10、12、14、18、24、36、48、72、96ポイント(解像度96 DPIを想定)などの特定の最適化されたサイズでのみ利用可能で、カスタムフォントは、見出しフォントのように72ポイントのみなど、特定の1つのサイズでのみ利用可能な場合がよくありました。
初期のコンピュータシステムは処理能力とメモリ容量が限られていたため、ビットマップフォントが専ら使用されていました。ハードウェアの改良により、任意の拡大縮小が可能な場合にはアウトラインフォントやストロークフォントに置き換えることが可能になりましたが、ビットマップフォントは組み込みシステムなど、速度と簡便性が重視される場面では依然として広く使用されています。
ビットマップフォントは、 Linuxコンソール、Windows回復コンソール、および組み込みシステムで使用されます。古いドットマトリックスプリンタはビットマップフォントを使用しており、多くの場合プリンタのメモリに格納され、コンピュータのプリントドライバによってアクセスされます。ビットマップフォントはクロスステッチにも使用されることがあります。
ビットマップフォントを使用して文字列を描画するとは、文字列を構成する各文字のビットマップを順次出力し、文字ごとにインデントを行うことを意味します。

デジタルビットマップフォント(およびベクターフォントの最終レンダリング)は、モノクロまたはグレーの濃淡を使用する場合があります。後者はアンチエイリアス処理が施されています。テキストを表示する際、通常、オペレーティングシステムは「グレーの濃淡」をフォントの色と背景色の中間色として適切に表現します。ただし、テキストが透明な背景を持つ画像として表現される場合、「グレーの濃淡」を表現するには、部分的な透明度を許容する画像フォーマットが必要です。
ビットマップフォントは、ネイティブのピクセルサイズで最も美しく表示されます。ビットマップフォントを使用するシステムの中には、アルゴリズムによってフォントのバリエーションを作成できるものもあります。例えば、初代Apple Macintoshコンピュータは、垂直ストロークを太くすることで太字を、画像をせん断することで斜体を生成できました。ネイティブサイズ以外の場合、多くのテキストレンダリングシステムは最近傍リサンプリングを実行しますが、その結果、ギザギザした粗いエッジが発生します。より高度なシステムでは、アプリケーションが要求するサイズと一致しないビットマップフォントに対してアンチエイリアシングを実行します。この手法はフォントを小さくするには効果的ですが、サイズを大きくするにはあまり効果的ではありません。エッジがぼやけてしまう傾向があるためです。ビットマップフォントを使用するグラフィックスシステム、特にエミュレータのシステムの中には、フォントやその他のビットマップに対して2xSaIやhq3xなどの曲線に敏感な非線形リサンプリングアルゴリズムを適用するものがあります。これにより、フォントのぼやけを防ぎながら、適度なサイズ増加時に目立つ歪みをほとんど発生させません。
ビットマップフォントとアウトラインフォントの違いは、ビットマップ画像ファイル形式とベクター画像ファイル形式の違いに似ています。ビットマップフォントは、 Windowsビットマップ(.bmp)、Portable Network Graphics(.png)、Tagged Image Format(.tifまたは.tiff)などの画像形式に似ており、画像データをピクセルのグリッドとして保存します(場合によっては圧縮されます)。一方、Windowsメタファイル形式(.wmf)やScalable Vector Graphics形式(.svg)などのアウトラインまたはストローク画像形式は、画像自体を保存するのではなく、線や曲線の形で画像の描画方法の指示を保存します。
「トレース」プログラムは、高解像度のビットマップフォントの輪郭をたどり、フォントデザイナーがPostScriptやTrueTypeなどのシステムで有用なアウトラインフォントを作成する際に使用する初期アウトラインを作成します。アウトラインフォントは、ギザギザしたエッジやぼやけがなく、簡単に拡大縮小できます。
アウトラインフォントまたはベクターフォントは、グリフの境界を定義する線と曲線で構成されるベクター画像の集合です。初期のベクターフォントは、ベクターモニターやベクタープロッターが独自の内部フォントを使用して使用しており、通常は太いアウトラインのグリフではなく、細い単一のストロークを使用していました。デスクトップパブリッシングの登場により、最初のMacintoshとレーザープリンタのグラフィカルユーザーインターフェイスを統合するための共通規格が必要になりました。この統合技術を表す用語はWYSIWYG(What You See Is What You Get)でした。アウトラインフォントの例としては、PostScript Type 1およびType 3フォント、TrueType、OpenType、Compugraphicなどがあります。
アウトラインフォントの主な利点は、ビットマップフォントとは異なり、ピクセルではなく線と曲線の集合であるため、ピクセル化を起こすことなく拡大縮小できることです。したがって、アウトラインフォントの文字は、ビットマップフォントよりも魅力的な結果で任意のサイズに拡大縮小したり、その他の変換を行うことができますが、フォント、レンダリングソフトウェア、出力サイズによっては、処理量が大幅に増加し、望ましくないレンダリング結果になる場合があります。それでも、必要に応じてアウトラインフォントを事前にビットマップフォントに変換することも可能です。逆の変換は、ビットマップフォントではピクセルが直線にならない場合に、対応する曲線を推測して近似するためのヒューリスティックアルゴリズムが必要となるため、はるかに困難です。
アウトラインフォントには大きな問題がありました。それは、使用されているベジェ曲線が低解像度のラスターディスプレイ(ほとんどの古いコンピューターモニターやプリンターなど)に小さなサイズで正確にレンダリングできず、レンダリングが目的のサイズと位置に応じて形状が変わる可能性があるという問題です。[2] これはエイリアシングとして知られる現象で、フォントの詳細の空間周波数がディスプレイの空間ナイキスト周波数に近づくか超えると悪化します。この問題の視覚的な影響を軽減するために、フォントヒンティングなどの対策を使用する必要がありましたが、これには正しく実装するのが難しい高度なソフトウェアが必要でした。多くの最新のデスクトップコンピューターシステムにはこれを行うソフトウェアが含まれていますが、ビットマップフォントよりもはるかに多くの処理能力を必要とし、特に小さなフォントサイズではわずかなレンダリングの欠陥が発生する可能性があります。それにもかかわらず、ピクセル化を起こさずにフォントを自由に拡大縮小できる機能は、欠陥や計算の複雑さの増加を正当化するほど重要であると人々が考えることが多いため、アウトラインフォントは頻繁に使用されています。しかし、これらの問題は、アンチエイリアシング(フォントのラスタライズで説明されているように)と、今日一般的に使用されている高解像度ディスプレイによって、ほぼ解決されています。

グリフのアウトラインは、個々のストロークパスの頂点と、それに対応するストロークプロファイルによって定義されます。ストロークパスは、グリフのトポロジー的な骨格のようなものです。アウトラインフォントに比べてストロークベースフォントの利点としては、グリフを定義するために必要な頂点の数を減らすことができること、同じ頂点を使用して異なるストロークルールで異なるウェイト、グリフ幅、またはセリフを持つフォントを生成できること、およびそれに伴うサイズの節約が挙げられます。フォント開発者にとって、アウトラインを編集するよりも、ストロークでグリフを編集する方が簡単で、エラーも少なくなります。ストロークベースシステムでは、ベースグリフのストロークの太さを変更せずに、グリフの高さや幅を拡大縮小することもできます。ストロークベースフォントは、組み込みデバイスで使用するために東アジア市場向けに盛んに販売されていますが、この技術は表意文字に限定されるものではありません。
商業開発企業としては、Agfa Monotype(iType )やType Solutions, Inc.( Bitstream Inc.傘下)などが挙げられ、それぞれ独自にストロークベースのフォントタイプやフォントエンジンを開発している。
Monotype社とBitstream社は、東アジア文字セットにおいてストロークベースのフォントを使用することで大幅なスペース削減が可能になると主張しているが、スペース削減の大部分は複合グリフの構築によるものであり、これはTrueType仕様の一部であり、ストロークベースのアプローチを必要としない。
ファイルの種類ごとに、複数のファイル形式が存在します。
Type 1 および Type 3 フォントは、Adobeがプロフェッショナルなデジタル組版用に開発したものです。PostScriptを使用するこれらのフォントのグリフは、3 次ベジェ曲線で記述されたアウトライン フォントです。Type 1 フォントは PostScript 言語のサブセットに制限されており、かつては非常に高価だった Adobe のヒンティング システムを使用していました。Type 3 フォントは PostScript 言語を制限なく使用できましたが、ヒンティング 情報は含まれていなかったため、低解像度のデバイス (コンピュータ画面やドットマトリックス プリンタなど) ではレンダリングのアーティファクトが目に見える可能性がありました。
TrueTypeは、もともとApple社が開発したフォントシステムです。多くの人が高価すぎると感じていたType 1フォントに取って代わることを目的としていました。Type 1フォントとは異なり、TrueTypeのグリフは二次ベジェ曲線で記述されます。現在では非常に人気が高く、主要なすべてのオペレーティングシステムで実装されています。
OpenTypeは、 AdobeとMicrosoftが開発したスマートフォントシステムです。OpenTypeフォントには、TrueTypeまたはCFF形式のアウトラインと、幅広いメタデータが含まれています。
Metafontは、異なる種類のグリフ記述を使用します。TrueTypeと同様に、ベクトルフォント記述システムです。多角形または楕円形のペンを、3次複合ベジェ曲線と直線セグメントで構成されたパスに沿って移動させることによって生成されるストローク、またはそのようなパスを塗りつぶすことによってグリフを描画します。パスをストロークする場合、ストロークのエンベロープは実際には生成されませんが、この方法では精度や解像度が損なわれることはありません。Metafontが使用する方法は、ベジェ曲線の平行曲線が10次代数曲線になる可能性があるため、数学的に複雑です。[ 5 ]
2004年、DynaComwareはストロークベースのフォント形式であるDigiTypeを開発しました。2006年、Saffron Type Systemの開発者は、従来のアウトラインベースのフォントの表現力と均一幅のストロークベースのフォント(USF)の小さなメモリフットプリントを提供することを目的として、ストロークベースのフォントの表現であるStylized Stroke Fonts(SSF)を発表しました。[ 6 ]
一般的なフォントには、数百、あるいは数千ものグリフが含まれており、多くの場合、さまざまな言語の文字を表しています。しかし、ユーザーが必要とするのは、利用可能なグリフのごく一部だけという場合が少なくありません。サブセット化とは、フォントファイルから不要なグリフを削除するプロセスで、通常はファイルサイズを小さくすることを目的としています。これは、Webフォントにとって特に重要です。ファイルサイズを小さくすることで、ページの読み込み時間とサーバー負荷を軽減できるからです。また、フォントは地域ごとに異なるファイルで提供される場合もありますが、OpenTypeフォーマットの普及に伴い、現在ではこうしたケースはますます少なくなっています。