diff options
Diffstat (limited to 'Master/texmf-dist/doc/fonts/gnu-freefont/notes/features.txt')
-rw-r--r-- | Master/texmf-dist/doc/fonts/gnu-freefont/notes/features.txt | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/fonts/gnu-freefont/notes/features.txt b/Master/texmf-dist/doc/fonts/gnu-freefont/notes/features.txt new file mode 100644 index 00000000000..d08e7ba024e --- /dev/null +++ b/Master/texmf-dist/doc/fonts/gnu-freefont/notes/features.txt @@ -0,0 +1,119 @@ + OpenType features in GNU FreeFont + +The OpenType font standard specifies numerous "features", which describe +how glyphs should be rendered under certain circumstances. + +Some features, such as ligatures, substitute one glyph (or glyphs) with +others. Other features such as kerning adjust the positioning of glyphs. + +A feature may be activated for text of a certain script (such as Cyrillic +or Arabic) in a certain language or region (as can be specified in HTML +elements with the "lang" attribute), and some are activated only in case +other features are not activated. + +The actual rendering of these features is not by the font itself but rather +by font rendering software in the operating system or application or printer. +As of this writing, feature support is far from perfect in many environments. + +The features are encoded in the font's "lookup tables". Each table has +a four-byte name. + +The feature lookup tables used in FreeFont include: + +Substitution (GSUB) +============ + +rlig required ligature +liga standard ligature +hlig historic ligature +dlig discretionary ligature + +hist historic form +locl localized form + +smcp lowercase to small capitals +c2sc captials to small capitals + +frac diagonal fractions +zero slashed zero +onum oldstyle figures + +ccmp glyph decomposition (multiple replacement) + contextual chained substitution + +aalt access all alternates +calt contextual alternates + + Arabic + ------ +init initial forms +medi medial forms +fina final formes + + Indic scripts + ------------- + (these are always applied in exactly the following order) +nukt nukta forms +akhn akhand +rphf reph form +blwf below base forms +half half form +vatu vattu variants +pres pre base substitutions +abvs above base substitutions +blws below base substitutions +psts post base substitutions +haln halant forms + +Positioning (GPOS) +=========== + +kern kerning +mark mark-to-base +mkmk mark-to-mark + + Indic scripts + ------------- +dist distance (similar to kern) +abvm above mark +blwm below mark + +Use and Policies +================ + +kerning +------- + +Kerning is viewed as a delicate adjustment of horizontal positioning of +letters based on the relative shapes of adjacent letters. + +The first goal of kerning is to enhance the appearance of coherence in +words, by reducing apparent spaces beteen adjacent letters. +The second is to make the spacing appear somehow "smooth". + +A few pairs of letters are strongly kerned, for example 'AV'. With very few +exceptions, one letter should not visually intrude on the horizontal space of +another. (Exceptions might include the hooks on f and y.) +For instance, in serifed fonts, the serifs of most letters should have a +visible space between them, and should not visually intrude on one another +horizontally. + +For most others, the policy is "err on the conservative side". +A common mistake is to try to minimize the area between the letters +-- this has a poor effect on the appearance of the text. + +After kerning, bulk text should be carefully inspected both in print and on +the screen in different resolutions, that the letters appear evenly-spaced, +and never crash into one another. + +mark positioning +---------------- +It is conceptually more direct, and in principle easier, to position marks +relative to letters using the various mark positioning lookups. +Unfortunately, the implementation of these features has been rather spotty. + +Especially in cases where multiple marks appear on the same base, it can +get just too messy to be practical. Unfortunately, often pre-composed +components are a necessary fallback. + +$Id: features.txt,v 1.1 2011-07-16 11:24:10 Stevan_White Exp $ |