1
2
3\usemodule[presentboring,abbreviationslogos]
4
5\definecolor[maincolor] [r=.4]
6\definecolor[extracolor][s=.1]
7
8\startdocument
9 [title={MATH},
10 banner={complete control},
11 location={context\enspace {\bf 2021}\enspace meeting}]
12
13\starttitle[title=The benchmark]
14
15\startitemize
16
17\startitem
18 Traditional \TEX\ has set the benchmark for typesetting math.
19\stopitem
20
21\startitem
22 It uses three categories of fonts: alphabet, symbol, extensible.
23\stopitem
24
25\startitem
26 Limitations in fonts have lead to some curious handling of dimensions.
27\stopitem
28
29\startitem
30 The fact that there is \type {\over} makes for multipass scanning and
31 processing.
32\stopitem
33
34\startitem
35 The last family counts (when entering the second pass) so one has to use very
36 controlled font switching.
37\stopitem
38
39\startitem
40 Some features (limits, integrals, primes) rely on special macros and parsing.
41\stopitem
42
43\startitem
44 One can end up in tricky font switching. Also, quite some fonts are loaded in
45 order to set up the machinery.
46\stopitem
47
48\stopitemize
49
50\stoptitle
51
52\starttitle[title=Todays reality]
53
54\startitemize
55
56\startitem
57 We now use \OPENTYPE\ math fonts. In fact, in \MKIV\ we always used only one
58 font instance (unless we mix font families).
59\stopitem
60
61\startitem
62 We operate in the \UNICODE\ domain, so in the end there was no need to bump the
63 number of families in \LUATEX.
64\stopitem
65
66\startitem
67 In \CONTEXT\ we use only a few font families: regular, regular r2l, bold, bold r2l.
68\stopitem
69
70\startitem
71 All the tricky stuff is done with the help of \LUA. This already started very
72 early in the \LUATEX\ project and has not changed.
73\stopitem
74
75\startitem
76 But we still run into issues because the available fonts are inconsistent,
77 incompatible, have issues and that is unlikely to change.
78\stopitem
79
80\startitem
81 We have a virtual font system in place that was used during the transition (when no
82 fonts were available).
83\stopitem
84
85\startitem
86 In \CONTEXT\ there are various ways to deal with shortcomings in or extensions to fonts.
87\stopitem
88
89\startitem
90 At some point we need to make up our minds, accept the issues with fonts, and
91 just fix things runtime.
92\stopitem
93
94\stopitemize
95
96\stoptitle
97
98\starttitle[title=The engine]
99
100\startitemize
101
102\startitem
103 In \LUATEX\ we started with a hybrid approach but eventually ended up with
104 more split code paths.
105\stopitem
106
107\startitem
108 In \LUAMETATEX\ nearly all aspects of the engine had made configurable and are under
109 user control.
110\stopitem
111
112\startitem
113 This permits experiments where we can apply old methods onto new fonts.
114\stopitem
115
116\stopitemize
117
118\stoptitle
119
120\starttitle[title=The tricky things]
121
122\startitemize
123
124\startitem
125 Spacing in traditional math is a combination of widths and italic correction:
126 we need to add them and sometimes afterwards subtract the italic correction.
127 In \OPENTYPE\ math we dont lie about dimensions and apply italic correction
128 selectively (as we have staircase kerns).
129\stopitem
130
131\startitem
132 Special symbols like primes are quite inconsistent wrt dimensions and positioning
133 and we need to catch that. We also need robust ways to collapse them to the proper
134 \UNICODE\ symbol.
135\stopitem
136
137\startitem
138 Larger variants (these \type {\bigg} things) needs some attention too.
139\stopitem
140
141\startitem
142 We need to map characters onto the right shaped (alphabets) because hardly
143 anyone will enter the \UNICODE\ math characters directly.
144\stopitem
145
146\startitem
147 We might want to fix scripts, italics, kern pairs etc.
148\stopitem
149
150\stopitemize
151
152\stoptitle
153
154\starttitle[title=Implementation]
155
156Among the new features (introduced over a period of time) are:
157
158\startitemize
159
160\startitem
161 All kind of interclass spacing parameters (in addition to what \LUATEX\
162 already provides).
163\stopitem
164
165\startitem
166 Dozens of \OPENTYPE\ font related spacing parameters (more that traditional
167 \TEX).
168\stopitem
169
170\startitem
171 Opened up additional font (and taste) related parameters (hard coded in
172 traditional \TEX).
173\stopitem
174
175\startitem
176 Opened up style related parameters (hard coded in traditional \TEX).
177\stopitem
178
179\startitem
180 Control codes that make the engine follow a different (the traditional) code
181 path (which can come in handy when testing or writing manuals).
182\stopitem
183
184\startitem
185 The ability to simplify the result a bit wrt characters (the engine loves to
186 box a lot).
187\stopitem
188
189\startitem
190 Efficient font, style and parameter scaling by reusing fonts and thereby
191 limiting the number of instances.
192\stopitem
193
194\startitem
195 More options to special (constructed) symbols.
196\stopitem
197
198\startitem
199 Let math related nodes carry around more control properties and states.
200\stopitem
201
202\startitem
203 Support of local changes to math parameters.
204\stopitem
205
206\stopitemize
207
208\stoptitle
209
210\stopdocument
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237 |