
コンピュータフォントは、グラフィック的に関連するグリフの集合を含むデジタルデータファイルとして実装されます。コンピュータフォントは、フォントエディタを用いて設計・作成されます。印刷用ではなく、コンピュータ画面用に特別に設計されたコンピュータフォントは、スクリーンフォントと呼ばれます。
活版印刷の用語では、書体とは、スタイルやサイズを超えて共通のデザイン特徴を持つ文字の集合(例えば、Gill Sansの全種類)を指します。一方、フォントとは、特定の書体、サイズ、幅、太さ、傾斜などを持つ活版印刷の集合(例えば、Gill Sansの太字12ポイント)を指します。HTML 、CSS 、および関連技術において、フォントファミリー属性は、書体のデジタル版を指します。1990年代以降、印刷業界以外の多くの人々が、フォントを書体の同義語として使用してきました。
コンピュータ フォント ファイルのデータ形式には、基本的に次の 3 種類があります。
ビットマップフォントは、他のフォントタイプよりもコンピュータコードで作成するのが速く簡単ですが、スケーラブルではありません。ビットマップフォントは、サイズごとに別々のフォントが必要です。[ 1 ]アウトラインフォントとストロークフォントは、各グリフの構成要素に異なる測定値を代入することで、単一のフォント内でサイズを変更できますが、画面や印刷でビットマップを表示するためのレンダリングには追加のコンピュータコードが必要になるため、画面上や印刷でのレンダリングはビットマップフォントよりも複雑です。すべてのフォントタイプが現在も使用されていますが、今日のコンピュータで使用されているフォントのほとんどはアウトラインフォントです。
フォントには、等幅フォント(描画時に各文字が隣接する文字から一定の間隔で描画されるフォント)とプロポーショナルフォント(各文字の幅がそれぞれ異なるフォント)があります。ただし、フォント処理アプリケーションによっては、特にテキストを両端揃えにする場合に、間隔が影響を受けることがあります。


ビットマップフォントは、各グリフをピクセルの配列(つまりビットマップ)として保存するフォントです。あまり一般的には、ラスターフォントまたはピクセルフォント。ビットマップフォントは、ラスター画像。フォントの各バリアントには、文字ごとに画像を含むグリフ画像の完全なセットがあります。例えば、フォントに3つのサイズがあり、太字と斜体の組み合わせがある場合、12個の画像セットが必要になります。
ビットマップ フォントの利点は次のとおりです。
ビットマップフォントの主な欠点は、アウトラインフォントやストロークフォントに比べて、拡大縮小などの変形を行った際に画質が劣化しやすいこと、そして同じフォントを最適化された専用サイズで多数用意するとメモリ使用量が大幅に増加することです。初期のビットマップフォントは、8、9、10、12、14、18、24、36、48、72、96ポイント(解像度96DPIを想定)といった特定の最適化サイズのみで提供されており 、カスタムフォントは見出しフォントが72ポイントなど、特定のサイズのみで提供される場合が多くありました。
初期のコンピュータシステムは、処理能力とメモリの限界により、ビットマップフォントのみの使用を余儀なくされました。ハードウェアの改良により、任意のサイズで表示したい場合にはアウトラインフォントやストロークフォントに置き換えることが可能になりましたが、組み込みシステムなど、速度とシンプルさが重視される分野では、ビットマップフォントは依然として広く使用されています。
ビットマップフォントは、 Linuxコンソール、Windows回復コンソール、組み込みシステムで使用されます。古いドットマトリックスプリンタではビットマップフォントが使用されていました。多くの場合、ビットマップフォントはプリンタのメモリに保存され、コンピュータのプリンタドライバによってアドレス指定されていました。ビットマップフォントはクロスステッチで使用されることがあります。
ビットマップ フォントを使用して文字列を描画するということは、文字ごとにインデントしながら、文字列を構成する各文字のビットマップを連続して出力することを意味します。

デジタルビットマップフォント(およびベクターフォントの最終レンダリング)では、モノクロまたはグレースケールが使用される場合があります。後者はアンチエイリアス処理されます。テキストを表示する際、通常、オペレーティングシステムはフォントの色と背景色の中間色として「グレースケール」を適切に表現します。ただし、テキストが透明な背景を持つ画像として表現されている場合、「グレースケール」には部分的な透明化を可能にする画像形式が必要です。
ビットマップ フォントは、ネイティブのピクセルサイズで最も美しく表示されます。ビットマップ フォントを使用するシステムの中には、アルゴリズムによってフォントのバリエーションを作成できるものもあります。たとえば、初代Apple Macintoshコンピュータでは、縦のストロークを広げて太字にしたり、イメージを傾斜させて斜体を作成したりできました。ネイティブ サイズ以外では、多くのテキスト レンダリング システムで近傍再サンプリングが実行され、エッジが粗くギザギザになります。より高度なシステムでは、アプリケーションが要求するサイズと一致しないビットマップ フォントに対してアンチエイリアシングを実行します。この手法は、フォントを小さくするには有効ですが、エッジがぼやける傾向があるため、サイズを大きくするのにはあまり有効ではありません。ビットマップ フォントを使用する一部のグラフィック システム (特にエミュレータ)では、フォントやその他のビットマップに2xSaIやhq3xなどの曲線に影響される非線形再サンプリングアルゴリズムを適用します。これにより、フォントがぼやけるのを防ぎながら、サイズが中程度に大きくなったときに不快な歪みをほとんど生じさせません。
ビットマップフォントとアウトラインフォントの違いは、ビットマップ画像ファイル形式とベクター画像ファイル形式の違いに似ています。ビットマップフォントは、 Windows ビットマップ(.bmp)、ポータブルネットワークグラフィックス(.png)、タグ付き画像形式(.tif または .tiff) などの画像形式に似ています。これらの形式は、画像データをピクセルのグリッドとして保存し、場合によっては圧縮されます。Windowsメタファイル形式 (.wmf) やスケーラブルベクターグラフィックス形式 (.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社によって開発されたフォントシステムです。多くの人が高価すぎると感じていたType1フォントの代替として開発されました。Type1フォントとは異なり、TrueTypeグリフは二次ベジェ曲線で記述されます。現在非常に人気があり、主要なオペレーティングシステムすべてに実装されています。
OpenTypeは、 AdobeとMicrosoftが開発したスマートフォントシステムです。OpenType フォントには、TrueType またはCFF形式のアウトラインと、幅広いメタデータが含まれています。
Metafontは、異なる種類のグリフ記述法を採用しています。TrueTypeと同様に、Metafontはベクターフォント記述システムです。Metafontは、多角形または楕円形のペンを多角形で近似し、三次複合ベジェ曲線と直線セグメントで構成されるパスに沿って動かすことで生成されるストローク、あるいはそのようなパスを塗りつぶすことでグリフを描画します。パスをストロークする際にストロークのエンベロープが実際に生成されることはありませんが、この方法では精度や解像度が低下することはありません。Metafontが採用する手法は、ベジェ曲線の平行曲線が10次代数曲線になる可能性があるため、数学的に複雑です。[ 5 ]
2004年、DynaComwareはストロークベースのフォントフォーマットであるDigiTypeを開発しました。2006年には、Saffron Type Systemの開発者たちが、従来のアウトラインベースフォントの表現力と均一幅ストロークベースフォント(USF)の省メモリ化を両立させることを目的とした、Stylized Stroke Fonts (SSF)と呼ばれるストロークベースフォントの表現を発表しました。[ 6 ]
典型的なフォントには、数百、あるいは数千ものグリフが含まれており、多くの異なる言語の文字を表すことがよくあります。多くの場合、ユーザーが必要とするのは利用可能なグリフのごく一部だけです。サブセット化とは、フォントファイルから不要なグリフを削除するプロセスであり、通常はファイルサイズの削減を目的としています。これはWebフォントにとって特に重要です。ファイルサイズの削減は、多くの場合、ページの読み込み時間とサーバーの負荷を軽減することを意味するからです。また、フォントは世界の地域ごとに異なるファイルで提供されることもありますが、OpenType形式の普及により、これは現在ではますます一般的ではなくなりました。