context-2017-features.tex /size: 3962 b    last modification: 2020-07-01 14:35
1\usemodule[present-lines]
2
3\definecolor[maincolor][r=.4,g=.4]
4
5\startdocument[title=Font features,subtitle={\CONTEXT\ 2017 Maibach}]
6
7\startchapter[title=What are they]
8
9\startitemize
10    \startitem
11        built in substitution that is often optional like ligatures but for some
12        languages mandate
13    \stopitem
14    \startitem
15        built in positioning that is assumed to be applied like kerning, mark
16        anchoring cursive
17    \stopitem
18    \startitem
19        external properties like coloring, spacing, fallback combinations
20    \stopitem
21    \startitem
22        engine related tricks like expansion and protrusion
23    \stopitem
24    \startitem
25        tracing options
26    \stopitem
27    \startitem
28        whatever you like \unknown\ so let me know
29    \stopitem
30    \blank[2*big]
31    \startitem
32        so in \CONTEXT\ we have font features (driven by font) and pseudo
33        features (driven by additional needs)
34    \stopitem
35\stopitemize
36
37\stopchapter
38
39\startchapter[title=Substitution]
40
41\startitemize
42    \startitem
43        single: replace one by another
44    \stopitem
45    \startitem
46        alternate: replace one by one of a set
47    \stopitem
48    \startitem
49        multiple: replace one by multiple others
50    \stopitem
51    \startitem
52        ligature: replace multiple by one shape
53    \stopitem
54    \blank[2*big]
55    \startitem
56        contextual lookups and replacements with look back and look ahead
57    \stopitem
58\stopitemize
59
60\stopchapter
61
62\startchapter[title=Positioning]
63
64\startitemize
65    \startitem
66        single: repositioning a glyph (with optional marks), this includes
67        traditional kerning
68    \stopitem
69    \startitem
70        pairwise: repositioning two adjacent glyphs (with optional marks)
71    \stopitem
72    \startitem
73        anchoring: often used for marks to base glyphs, ligatures and other marks
74    \stopitem
75    \startitem
76        attachment: often used for cursive scripts, pasting glyphs in a word together
77    \stopitem
78    \blank[2*big]
79    \startitem
80        contextual lookups and positioning with look back and look ahead
81    \stopitem
82\stopitemize
83
84\stopchapter
85
86\startchapter[title=Related]
87
88\startitemize
89    \startitem
90        analyze: needed for dealing with features that need information about
91        initial, medial, final and isolated properties
92    \stopitem
93    \startitem
94        reordering: needed for script like devanagari
95    \stopitem
96    \startitem
97        spacing: deals with for positioning glyphs and spaces
98    \stopitem
99\stopitemize
100
101\stopchapter
102
103\startchapter[title=Pitfalls]
104
105\startitemize
106    \startitem
107        solutions for similar tasks can be quite different which makes tracing
108        or checking sometimes hard (many ways to make ligatures)
109    \stopitem
110    \startitem
111        order matters and demands careful font design but it is hard to predict
112        all cases
113    \stopitem
114    \startitem
115        a sloppy font design can result in a performance hit or huge fonts
116    \stopitem
117    \startitem
118        features can be bugged and fonts vendors seldom have an update policy
119    \stopitem
120    \startitem
121        shapers can differ due to assumptions, heuristics, interpreting
122        specifications, bugs, \unknown
123    \stopitem
124\stopitemize
125
126\stopchapter
127
128\startchapter[title=Examples]
129    \startitem
130        all kind of substitutions: \type {2017-features-substitutiontest.tex}
131    \stopitem
132    \startitem
133        simple inter character kerns: \type {2017-features-kerntest.tex}
134    \stopitem
135    \startitem
136        single character positioning: \type {2017-features-singletest.tex}
137    \stopitem
138    \startitem
139        pairwise character positioning: \type {2017-features-pairtest.tex}
140    \stopitem
141    \startitem
142        contextual positioning: \type {2017-features-contexttest.tex}
143    \stopitem
144    \startitem
145        kerning with space (glue): \type {2017-features-spacetest.tex}
146    \stopitem
147\startitemize
148
149\stopitemize
150
151\stopchapter
152
153\stopdocument
154