web-dev-qa-db-ja.com

すべてのUnicodeグリフを含むフォントがないのはなぜですか?

タイトルが示すように。すべてのユニコード形式を正しくレンダリングすることは、複合文字や他の文字や合字に影響を与える文字で何が本当に難しいかということを理解しています。 Unicodeシンボルを最大限にサポートするように設計されていると思われるフォント(Symbola、Code2001、その他)と、特定のプレーンまたは文字範囲(BabelStone Han、その他)に特化したフォントがあります。

フォントの基本的な技術詳細についてはあまり知りません。最大サイズはありますか?著作権の問題ですか?基本的に〜110,000個の既存のすべてのグリフを再描画するのは難しいですか?私はスタイルの問題を理解していますが、なぜeverythingのグリフを持つ「デフォルト」フォントにフォールバックしないのですか?それらはunicode.orgにあり、それらをすべて再描画するのはかなり大変な作業ですが、すべてのフォールバックフォントが保証されます。いくつかの既存のフォントに対する権利を取得した場合、それらを合成することができ、それは大いに役立つはずです。このようなフォントは人類にとって大きな助けになります。また、存在しない技術的な理由や、少なくともそれを作成するためのオープンソースの努力が見当たらないので、私には見えない理由が推測されますできません。

その理由は何ですか?

43
Jeremy Kemball

「なんでそんなことしたいの?」質問はさておき、プログラミングの観点からは非常に単純な理由があります: OpenType spec は1つのUSHORTのアドレス可能なグリフインデックススペースのみを提供するため、1つのフォントは16ビット相当のグリフしかサポートできません識別子、または最大65536個のグリフ.

この回答の時点でのv8のUnicodeの現在のバージョンには、120737が割り当てられたコードポイント、または現代のフォントに収まるほぼ2倍のコードポイントが含まれています。実際、Unicodeは、コードポイントの数を49259から94205に増やしたUnicode 3.1のリリースにより、2001年以降、最新のOpenTypeフォントに適合していません。

「では、フォントコレクションはどうですか?」聞いてますね複数のフォントを使用し、そのようにすべてのユニコードをサポートしてみませんか?さて、AdobeのSource ProとGoogleの Noto (これらは同じフォントです)について説明したばかりです。

「どれだけ難しいか」に関しては、ユニコーンのすべてのグリフのための統一されたスタイルで、この惑星で129の確立された書かれたスクリプトで、それぞれ独自の組版規則がありますか?信じられないほど難しい。フォントは文字用の画像を含む単なるファイルであり、誰かが文字を入力すると、その画像が表示されます。それはフォントの仕組みではなく、1980年代後半以降のフォントの動作ではありません。

最新のフォントはゲームROMの活版印刷に相当します。確かに、ハードウェアまたはソフトウェアなしでROM onを実行することはあまりありませんが、実際に重要なことはすべてROMにあります。 、現代のフォントには、組版の情報がall含まれています。写真だけでなく、メタデータ、メトリック、任意のシーケンスの位置付けおよび置換ルール、および書かれたスクリプトごとに個別のルールセットが含まれます。 OpenTypeは、小点レンダリング用のビットマップフォールバックの可能性、特定のピクセルグリッドに本質的に位置合わせされていないベクターグラフィックスを適切にラスタライズする方法のヒントなどをサポートします。コードポイントのシーケンスをタイプセットする方法を学び、ユニコードを包含するフォント(のセット)を作成することはチームの多大な努力です。

したがって、「すべてのUnicodeグリフを含むフォントがないのはなぜですか?」というのは、2001年以来技術的に不可能だったからです。すべてのUnicodeをカバーするfont familyを作成できます。 129種類のスクリプトにすべて独自の組版ルールがあり、チームの大きな努力です。

そしてこれについては:

このようなフォントは人類にとって大きな助けになります。また、存在しない技術的な理由や、少なくともそれを作成するためのオープンソースの努力が見当たらないので、私には見えない理由が推測されますできません。

あなたがそれらについて知らなかったからといって、彼らが存在しないわけではなく、何百万人もの人々がそれらに精通している。彼らは存在します、 彼らはオープンソースです 、出て行って、それらを作った人々に感謝します=)

GNU Unifont があります。 Apple Emoji。

1
user11003026