1\usemodule[presentlines]
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 {2017featuressubstitutiontest.tex}
131 \stopitem
132 \startitem
133 simple inter character kerns: \type {2017featureskerntest.tex}
134 \stopitem
135 \startitem
136 single character positioning: \type {2017featuressingletest.tex}
137 \stopitem
138 \startitem
139 pairwise character positioning: \type {2017featurespairtest.tex}
140 \stopitem
141 \startitem
142 contextual positioning: \type {2017featurescontexttest.tex}
143 \stopitem
144 \startitem
145 kerning with space (glue): \type {2017featuresspacetest.tex}
146 \stopitem
147\startitemize
148
149\stopitemize
150
151\stopchapter
152
153\stopdocument
154 |