Unicode フォントは、 Unicode 標準で定義されたコード ポイントにグリフをマッピングするコンピュータ フォントです。[ 1 ]この用語は、現代のコンピュータ フォントの大部分が Unicode マッピングを使用しているため、古風なものになっています。単一の文字体系のグリフのみを含むフォントや、基本的なラテン アルファベットのみをサポートするフォントでさえも Unicode マッピングを使用しています。この区別は歴史的なものです。Unicode 以前、ほとんどのコンピュータ システムが 8 ビットバイトのみを使用していたときは、256 文字 (または制御コード) を超える文字をエンコードできませんでした。これは、各文字レパートリーに独自のコードポイント割り当てが必要であり、したがって、特定のコード ポイントが複数の意味を持つ可能性があることを意味します。Unicode は一意の割り当てを保証することでこの問題を解決しました。
幅広いUnicodeスクリプトとUnicodeシンボルをサポートするフォントは、「パンUnicodeフォント」と呼ばれることがありますが、TrueTypeフォントで定義できるグリフの最大数は65,535に制限されているため、単一のTrueTypeフォントで定義済みのすべてのUnicode文字( Unicode 17.0では159,801文字)に対応する個別のグリフを提供することは不可能です。この記事では、比較的多くのUnicode文字と幅広い範囲をサポートする、広く使用されているUnicodeフォント(オペレーティングシステムに付属しているもの、または有名な商用フォント会社が作成したもの)をいくつか紹介します。
Unicode規格は 、グリフと呼ばれる図形の集合であるフォント(書体)自体を規定したり作成したりしません。むしろ、抽象文字を特定の番号(コードポイントと呼ばれる)として定義し、グリフが使用されるコンテキスト(結合文字、合成文字、文字と発音記号の組み合わせなど)に応じて必要な形状変更も定義します。Universal Coded Character Set(UCS)の抽象文字をビットマップまたはベクター出力に変換して画面に表示したり印刷したりする方法を決定するフォントの選択は、ユーザーに委ねられています。文書で使用されているコードポイントに対応するグリフが含まれていないフォントを選択した場合、通常は疑問符、四角、またはその他の代替文字が表示されます。
コンピュータフォントは、文字やグリフを表示するためにさまざまな技術を使用します。ビットマップフォントは、ピクセルと呼ばれるドットのグリッドで構成され、各フォントとサイズで各グリフの画像を形成します。アウトラインフォント(ベクターフォントとも呼ばれます)は、描画命令または数式を使用して各グリフを記述します。ストロークフォントは、指定された一連の線(グリフの境界線用)と、特定のフォントとサイズにおける線のサイズと形状(プロファイル)を定義する追加情報を使用して、グリフの外観を定義します。
フォントには、特定の文字の組み合わせ(および同じ文字の代替記号)を組み合わせて特別な合字(複合文字)を出力するための、埋め込み型の特殊な正書法規則も含まれています。オペレーティングシステム、Webブラウザ(ユーザーエージェント)、およびタイポグラフィを多用するその他のソフトウェアは、フォントを使用して画面や印刷媒体にテキストを表示し、これらの埋め込み規則を使用するようにプログラムできます。あるいは、外部のスクリプト整形技術(レンダリング技術または「スマートフォント」エンジン)を使用することもできます。また、大きなUnicodeフォントを使用するか、異なる文字や言語に対して複数の異なるフォントを使用するようにプログラムすることもできます。
ISO 10646 (Unicode)規格の現行版で定義されているすべての文字を網羅した単一の「Unicodeフォント」は存在しません。これは、Unicode規格には言語や文字が継続的に追加されており、一般的なフォント形式には65,535グリフ(Unicodeでエンコードされている文字数の約半分)を超える文字を収録できないためです。そのため、フォント開発者やフォントメーカーは、新しい文字をフォントの新しいバージョンや改訂版、あるいは特定の言語専用の補助フォントに組み込んでいます。
UCSには110万以上のコードポイントがあるが、2000年以前に一般的に使用されるようになったのは最初の65,536(プレーン0:基本多言語プレーン、またはBMP)のみだった。
最初のUnicodeフォント(非常に大きな文字セットを持ち、多くのUnicodeブロックをサポートする)は、 Lucida Sans Unicode(1993年3月リリース)、Unihanフォント(1993年)、およびEverson Mono(1995年)でした。
Unicodeには活字上の曖昧さがあるため、統一漢字(中国語、日本語、韓国語で見られる)の一部は、地域によって活字が異なります。たとえば、UnicodeポイントU+9AA8骨CJK UNIFIED IDEOGRAPH-9AA8は、簡体字中国語と繁体字中国語で活字が異なります。これは、単一の書体ですべての地域のニーズを満たすことができるという考えに影響を与えます。[ 2 ] Unicodeの設計では、このような違いが意味上の曖昧さを生じさせないようにしていますが、誤った形式の使用は、東アジア言語のネイティブの読者にとって、視覚的に不自然であったり、美的に不適切であると見なされることがよくあります。
Unicodeは現在、多くの新しい規格やプロトコルの標準エンコーディングとなっており、オペレーティングシステム(Microsoft Windows、Apple Mac OS、UnixおよびLinuxの多くのバージョン)、プログラミング言語(Ada、Perl、Python、Java、Common LISP、APL)、ライブラリ(IBM International Components for Unicode(ICU)、Pango、Graphite、Scribe、Uniscribe、ATSUIレンダリングエンジン)、フォント形式(TrueTypeおよびOpenType)などのアーキテクチャに組み込まれています。また、他の多くの規格もUnicode準拠にアップグレードされています。
フォントファイルに含まれる文字を識別できるユーティリティソフトウェアの例をいくつかご紹介します。
利用可能な多数のUnicodeフォントのうち、以下に挙げるものは、世界中の主要なコンピューティングプラットフォームで最も一般的に使用されているものです。
上記バージョンのフォントに含まれる文字数( Unicodeブロック別)を以下に示します。基本ラテン文字(128: 0000–007F)とは、「基本ラテン文字」と呼ばれる範囲に、0から7Fまでの番号が付けられた128個のコードが割り当てられていることを意味します。各セルには、それぞれのフォントでカバーされているコードの数が表示されます。記載されているUnicodeブロックは、 Unicodeバージョン8.0で有効です。