Why isn't there a font that contains all Unicode glyphs?

前端 未结 3 1282
执念已碎
执念已碎 2021-01-30 06:48

Pretty much as the title says. Rendering all of the unicode format correctly what with composite characters and characters that affect other characters and ligatures is really h

相关标签:
3条回答
  • 2021-01-30 06:59

    There is GNU Unifont. It aims to contain all Unicode, except Apple Emoji.

    0 讨论(0)
  • 2021-01-30 07:02

    "Why would you even want that?" questions aside, from a programming perspective there's a very simple reason: the OpenType spec only affords an addressable glyph index space of one USHORT, so one font can only support 16 bits worth of glyphs identifiers, or 65536 glyphs max.

    The current version of Unicode, v8 as of this answer, contains 120737 assigned code points, or almost twice as many as fit in a modern font. In fact, Unicode hasn't been able to fit in a modern OpenType font since 2001, with the release of Unicode 3.1, which upped the number of code points from 49259 to 94205.

    "So what about font collections?" I hear you ask. Why not use multiple fonts and support all unicode that way? Well now, you've just described Adobe's Source Sans Pro, and Google's Noto (which are the same font).

    As for the "how hard can it be": a uniform style for all glyphs in Unicode, across 129 established written scripts on this planet, each with their own typesetting rules? Incredibly hard. You may think fonts are just files with pictures for letters, and someone types a letter, that picture shows up: that is not how fonts work, and isn't how fonts have worked since the late 1980's.

    Modern fonts are the typographic equivalent of a game ROM: sure, it's not much use without the hardware or software to run that ROM on, but all the things that actually matter are in the ROM. Similarly, modern fonts contain all the information for typesetting. Not just pictures, they contain the metadata, the metrics, the positioning and substitutions rules for arbitrary sequences, with separate rule sets for each written script that OpenType supports, possible bitmap fallbacks for small-point rendering, hinting instructions on how to properly rasterize vector graphics that are inherently not aligned to any particular pixel grid, and more. A modern font is a ridiculously complex application that a font engine consults to figure out how to typeset sequences of code points, and making a (set of) Unicode-encompassing font(s) is a vast team effort.

    So: "Why isn't there a font that contains all Unicode glyphs?", because that's been technically impossible since 2001. We can, and do, make font families that cover all of Unicode, but with 129 different scripts all with their own typesetting rules, it's a large team effort.

    And as for this:

    Such a font would be a great help to humanity and I can't see a good technical reason why it doesn't exist or at least an open-source effort to create it, so I presume an invisible-to-me reason why it can't be done.

    Just because you didn't know about them, doesn't mean they don't exist, with millions of people who are familiar with them. They exist =)

    they're even open source, go out and thank the people who made them!

    0 讨论(0)
  • 2021-01-30 07:09

    You will probably find what you are looking for at the following links.

    Unicode Character Table

    HTML Character Entity References

    Huge List of Unicode Symbols

    List of Unicode Characters of Category “Other Symbol

    This other is funny for particular character since you can draw what you search:

    Unicode Character Recognition

    Can't enter unicode character with Alt+ even with EnableHexNumpad

    Basic Questions

    Q: How many characters are in Unicode? A: The short answer is that as of Version 13.0, the Unicode Standard contains 143,859 characters. The long answer is rather more complicated, because of all the different kinds of characters that people might be interested in counting.

    Unicode font A Unicode font is a computer font that maps glyphs to code points defined in the Unicode Standard. The vast majority of modern computer fonts use Unicode mappings, even those fonts which only include glyphs for a single writing system, or even only support the basic Latin alphabet.

    Fonts which support a wide range of Unicode scripts and Unicode symbols are sometimes referred to as "pan-Unicode fonts", although as the maximum number of glyphs that can be defined in a TrueType font is restricted to 65,535, it is not possible for a single font to provide individual glyphs for all defined Unicode characters (143,859 characters, with Unicode 13.0).

    ...

    No single "Unicode font" includes all the characters defined in the present revision of ISO 10646 (Unicode) standard, as more and more languages and characters are continually added to it, and common font formats cannot contain more than 65,535 glyphs (about half the number of characters encoded in Unicode).

    As a result, font developers and foundries incorporate new characters in newer versions or revisions of a font, or in separate auxiliary fonts intended specifically for particular languages.

    Enjoy!

    0 讨论(0)
提交回复
热议问题