![]() ![]() You can trigger automatic generation with the circled arrow button. Why? Because, if you stick to the naming convention mentioned before, Glyphs can create ligature features automatically. ![]() Automatic codeĪnd now, to your great disappointment, I have to admit that we did all this for nothing. You do need a working internet connection for this, of course. In case you are unsure what the OpenType feature in question is intended for, click the Spec button in the top right, and you are taken to the official definition of the feature on the Microsoft page. If there is too much to fix, and errors are preventing you from exporting the font, but you need a quick test export, you can disable a broken feature with the active checkbox at the top. Other fixes include corrections for mistyped keywords or suggestions for glyph names. If you click on the Fix button in this case, Glyphs will insert the missing semicolon for you. When we type our rule into our liga feature, Glyphs will offer us autocompletion: So in case your features don’t work, chances are you forgot the semicolon. Easy, you may say, but this actually is the number one source of errors. And now, very super-important: each rule takes a semicolon at its end.In our case, we have the three letters f, f and k molded into one, so it’s called f_f_k. Remember the naming convention for ligatures: the names of the individual letters connected by underscores. After by, we tell the font what comes instead.Imagine our code line was sub f f k f_f_k, then it might as well be that f f was to be replaced by the sequence k f_f_k. If we didn’t put the keyword by after the sequence, it wouldn’t be clear what is to be replaced by what.Please note that these are the actual glyph names, so ä would be spelled out as adieresis, ñ as ntilde etc. In this case, we have three glyphs: f, followed by another f, followed by k. Secondly, since we have a substitution, we need the sequence of glyphs that are to be replaced.And sub clearly denotes a substitution rule. As mentioned above, this can either be a substitution or a positioning rule. First, we have the keyword sub, which defines the kind of rule we are dealing with.Here is what such a rule looks like: sub f f k by f_f_k Rules define what gets substituted with what. When you build a feature, you actually put together a set of rules. In the dialog that appears, you type the glyph name for our ligature, f_f_k: ![]() There are many ways to add glyphs to your font, but we can create a ligature glyph quickly with Glyph > Add Glyphs… (Cmd-Shift-G). But for the purpose of this tutorial, let’s assume that the sequence of two f’s followed by a k could use a better representation with a ligature in our font. Don’t make your font worse with a bad or illegible ligature. Of course, you will only add a ligature if that single ligature glyph actually looks or works better than the individual glyphs. ![]() If those glyphs match a certain predefined sequence, the ligature feature will swap them for the ligature glyph. When the user types the characters, glyphs with the corresponding Unicode values will appear on their screen. Font geeks call this a ‘many-to-one’ or ‘ligature substitution’. They replace a sequence of two or more glyphs with one glyph. But what features can do, is change how that text is displayed, i.e., choose from the glyphs you have in your font. And sure enough, OpenType features cannot magically change the text the user had entered, i.e., the characters. Type designers are type designers because they create new glyphs when they draw letters, they rarely create characters by adding new keys to keyboards and submitting new encodings to the Unicode consortium. What is the difference, you ask? In short, characters are what you type, glyphs are what you see. Please note that I said glyphs, not characters. In this tutorial, we’ll focus on substitution. OpenType features can do two things: substitute glyphs and reposition glyphs. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |