etc., with additional tools for optimizing all the OpenType features that a font needs (there are incredibly many). This is kind of an obvious answer: good fonts are made with software that lets you do all the things you need to do in order for your intended language support to work. The text render engine simply goes "hey font, I have this byte sequence as input, please instruct me on how to turn that into outline vectors" and the font contains all the information on what needs to happen. Modern fonts are a bit like game ROMs in that you need an engine to execute them, but they call all the shots and contain all the logic. Yes, but it's not a "program" so much as the font.The GSUB table can contain hundreds of different rulesets to make sure the languages it's intended for all render correctly. Similarly, if you're writing Arabic, where letters have different shapes depending on where in a word they are, that's also covered by GSUB. If I type "f" + "i", for instance, there's a good chance that in a well designed font you see the single ligature fi. When you type multiple hindi formants and they form a single "letter", that's GSUB's doing. There are quite a few different kinds of ligatures possible (one-for-one, many-for-one, contextual, position-based, etc), and they're all controlled by the GSUB table, ("GSUB" for "G"lyph "SUB"stitution). OpenType has full ligature control, so just because code X yields glyph GX and code Y yields glyph GY, in no way means that X + Y will yield GX + GY.While mapping binary codes to other binary codes is trivially simple, the real power of modern fonts, particularly OpenType, is what happens next. etc.) don't use the same codes for the same letters/symbols. There can be thousands more glyphs that are used for compositing, or multi-codepoint substitution, etc that cannot be resolved through the character map).Īlso, one font can, and usually does, contain more than one mapping, because different historical and current character sets (ASCII, EUC-KR, ISO2022-JP, Unicode, etc. (Note that this does not define "which glyphs exist" for the font, it only says which glyphs are directly matched to individual character codes such as individual ASCII bytes or Unicode codepoints. OpenType fonts have a "Character Map" that provides (all) the simple one-to-one mapping(s) from input byte code to some glyph ("shape") somewhere in the list of available glyphs. Yes, those are the same font, they only differ in their glyph outline encoding, which is kind of the least notable part about a modern font), because that's the kind you're most likely using, in which case: the font pretty much controls everything, and the text engine you're relying on is simply following its instructions. I'm going to explain this in terms of OpenType fonts (what most people call "ttf" and "otf" fonts. The days of "one codepoint maps to one letter" are kind of 20 years ago, modern fonts have -for the last few decades- been doing way more than that. Welcome to modern fonts: they're not what you think.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |