context-2013-math.tex /size: 10 Kb    last modification: 2020-07-01 14:35
1% \enablemode[print]
2
3\usemodule[present-stepwise,present-tiles,abr-02]
4
5\definecolor[maincolor] [darkgray]
6\definecolor[othercolor][b=.3]
7
8\setupinteractionscreen
9  [option=max]
10
11% \setupalign
12%   [flushleft,tolerant]
13
14\defineframed
15  [conclusion]
16  [location=low,
17   width=max,
18   align=flushleft,
19   background=color,
20   backgroundcolor=white,
21   foregroundcolor=othercolor]
22
23\setupbodyfont[15pt]
24
25\startdocument
26  [title={Math:\\\\progress or standing still},
27  %subtitle={Hans Hagen\\TUG Conference\\October 2013}]
28   subtitle={Hans Hagen\\\ConTeXt\ Meeting\\September 2013}]
29
30\StartSteps \starttopic [title={Math as script}]
31
32    \startitem math can be input using the \TEX\ syntax, \MATHML, calculator like sequences, \unknown \FlushStep \stopitem
33    \startitem but apart from content \MATHML\ all stay close to good old \TEX \FlushStep \stopitem
34    \startitem although not officially a script, \OPENTYPE\ treats it as such, but without control \FlushStep \stopitem
35
36    \blank[2*big]
37
38    \starttyping
39    $ ( (x + 1) / a + 1 )^2  = (x - 1) / b $
40    \stoptyping
41
42    \FlushStep
43
44    \starttyping
45    $ \left( \frac{x + 1}{a}  + 1 \right)^2  = \frac{x - 1}{b} $
46    \stoptyping
47
48    \FlushStep
49
50    \starttyping
51    <mfenced open="(" close = ")">
52      <mfrac>...</mfrac> <mo>+</mo> <mn>1</mn>
53    </mfenced>
54    \stoptyping
55
56    \FlushStep
57
58    \starttyping
59    <mrow>
60      <mo>(</mo> <mfrac>...</mfrac> <mo>+</mo> <mn>1</mn> <mo>)</mo>
61    </mrow>
62    \stoptyping
63
64    \FlushStep
65
66    \vfilll \conclusion{There is recognition of math as a proper (but not standardized) script.} \FlushStep
67
68\stoptopic \StopSteps
69
70\StartSteps \starttopic [title={Alphabets}]
71
72    \startitem the shape (style) of a character determines its meaning \FlushStep \stopitem
73    \startitem but in most cases an type {a} is entered as \ASCII\ character \FlushStep \stopitem
74    \startitem and tagged with some rendering directive, often indicating a font style \FlushStep \stopitem
75    \startitem in traditional \TEX\ we have alphabets in different fonts, so we're talking switches \FlushStep \stopitem
76    \startitem in \UNICODE\ and \OPENTYPE\ we have alphabets with standardized code points (but gaps too) \FlushStep \stopitem
77    \startitem this has big advantages for communicating, transferring data etc \FlushStep \stopitem
78    \startitem but a math engine still has to deal with \ASCII\ input as well \FlushStep \stopitem
79    \startitem multiple axis: types, alphabets, styles, variants, shapes, modifiers \FlushStep \stopitem
80
81    \vfilll \conclusion{We're off better but the gaps are an anomality.} \FlushStep
82
83\stoptopic \StopSteps
84
85\StartSteps \starttopic [title={Heavy bold}]
86
87    \startitem for titles and captions we might need bolder math \FlushStep \stopitem
88    \startitem bold symbols in math have special meaning \FlushStep \stopitem
89    \startitem so when going full bold they should become heavy \FlushStep \stopitem
90    \startitem heavy math involves boldening everything, including extensibles \FlushStep \stopitem
91    \startitem there are currently no fonts that have such complete heavy companions \FlushStep \stopitem
92
93    \vfilll \conclusion{We need proper bold fonts, but they need to be relatively complete.} \FlushStep
94
95\stoptopic \StopSteps
96
97\StartSteps \starttopic [title={Radicals}]
98
99    \startitem this always has been (and still is) a combination of vertical extensibles and horizontal rules \FlushStep \stopitem
100    \startitem it is the only two dimensional extensible so always a bit of an exception \FlushStep \stopitem
101    \startitem in the wide engines we now have more direct support primitive for that (no macro needed) \FlushStep \stopitem
102    \startitem in practice (at least in \MKIV) we still use macros because we want control \FlushStep \stopitem
103
104    \vfilll \conclusion{Native support for radicals is nice to have and makes coding cleaner.} \FlushStep
105
106\stoptopic \StopSteps
107
108\StartSteps \starttopic [title={Primes}]
109
110    \startitem this is a special case as we (sort of) have upto two superscripts  \FlushStep \stopitem
111    \startitem and also need to handle an optional subscript of the base symbol \FlushStep \stopitem
112    \startitem and in order to be visually okay, we need to collect multiple primes \FlushStep \stopitem
113    \startitem some fonts have primes raised, some have them flying high \FlushStep \stopitem
114    \startitem maybe at some point the upcoming math pre- and postscripts will help \FlushStep \stopitem
115
116    \vfilll \conclusion{Supporting primes will always be a bit of a pain but I stay on top of it.} \FlushStep
117
118\stoptopic \StopSteps
119
120\StartSteps \starttopic [title={Accents}]
121
122    \startitem they can go on top or below one or more characters (also in combination) \FlushStep \stopitem
123    \startitem accents have some hard codes positional properties \FlushStep \stopitem
124    \startitem the wide engines have more direct support for this \FlushStep \stopitem
125    \startitem fonts provide a limited set of sizes, such accents cannot extend (by design) \FlushStep \stopitem
126
127    \vfilll \conclusion{Engine support for accents is better now but maybe fonts need to have more sizes.} \FlushStep
128
129\stoptopic \StopSteps
130
131\StartSteps \starttopic [title={Stackers}]
132
133    \startitem arrows (and other horizontal extensibles) traditionally were made from snippets \FlushStep \stopitem
134    \startitem we need them also for chemistry, in rather flexible ways \FlushStep \stopitem
135    \startitem in upcoming math fonts they are become real extensibles \FlushStep \stopitem
136    \startitem but then we still need to deal with existing fonts that lack them (one font in the end) \FlushStep \stopitem
137    \startitem there will be native support for so called character leaders \FlushStep \stopitem
138
139    \vfilll \conclusion{Stackers are more easily implemented although fonts pose some challenges.} \FlushStep
140
141\stoptopic \StopSteps
142
143\StartSteps \starttopic [title={Fences}]
144
145    \startitem these go left and right (or in the middle) of things \FlushStep \stopitem
146    \startitem there need to be a matching pair else we get an error \FlushStep \stopitem
147    \startitem they have to adapt their size to what they wrap \FlushStep \stopitem
148    \startitem \TEX ies can take care of that in their input \FlushStep \stopitem
149    \startitem but in for instance \MATHML\ checking all this is a bit of a pain \FlushStep \stopitem
150    \startitem this is still the domain of macros \FlushStep \stopitem
151    \startitem but we could make the engines a bit more tolerant (hard to do) \FlushStep \stopitem
152
153    \vfilll \conclusion{Matching fences will always be a bit of a problem.} \FlushStep
154
155\stoptopic \StopSteps
156
157\StartSteps \starttopic [title={Directions}]
158
159    \startitem bidirectional math is mostly a matter of the availability of fonts \FlushStep \stopitem
160    \startitem there need to be some agreement (at the macro package level) of control \FlushStep \stopitem
161    \startitem it's (for me) a visually interesting challenge \FlushStep \stopitem
162    \startitem there are some \TEX ies working on these matters (quite some research is done already) \FlushStep \stopitem
163
164    \vfilll \conclusion{Right to left math will show up thanks to pioneers.} \FlushStep
165
166\stoptopic \StopSteps
167
168\StartSteps \starttopic [title={Structure}]
169
170    \startitem demand for tagging also means that we need to carry a bit more info around \FlushStep \stopitem
171    \startitem this puts a little more burden on the user \FlushStep \stopitem
172    \startitem in the end it largely is a macro package issue \FlushStep \stopitem
173    \startitem better tagging of input can also help rendering \FlushStep \stopitem
174    \startitem detailed control at the \TEX\ level makes that users can spoil the game \FlushStep \stopitem
175
176    \vfilll \conclusion{In these times structure gets more important so minimal coding is less an option.} \FlushStep
177
178\stoptopic \StopSteps
179
180\StartSteps \starttopic [title={Italic correction}]
181
182    \startitem in traditional \TEX\ fonts this was used for spacing as well as special purposed \FlushStep \stopitem
183    \startitem across fonts there was never much correction \FlushStep \stopitem
184    \startitem \OPENTYPE\ doesn't have this concept \FlushStep \stopitem
185    \startitem \OPENTYPE\ math has some of if but also more powerful kerning \FlushStep \stopitem
186    \startitem generally speaking: we can ignore italic corrections \FlushStep \stopitem
187
188    \vfilll \conclusion{We need to accept that old concepts die and new onces show up.} \FlushStep
189
190\stoptopic \StopSteps
191
192\StartSteps \starttopic [title={Big}]
193
194    \startitem normally extensible fences are chosen automatically \FlushStep \stopitem
195    \startitem but macro packages provide tricks to choose a size \FlushStep \stopitem
196    \startitem extensible steps are unpredictable but still several mechanisms can be provided \FlushStep \stopitem
197
198    \vfilll \conclusion{Users will always want control and no engine can provide that but macros can.} \FlushStep
199
200\stoptopic \StopSteps
201
202\StartSteps \starttopic [title={Macros}]
203
204    \startitem some special symbols were constructed by macros (and using special font properties) \FlushStep \stopitem
205    \startitem these are mostly gone (the diagonal dots) \FlushStep \stopitem
206    \startitem if it is ever needed again, we should extend the fonts \FlushStep \stopitem
207
208    \vfilll \conclusion{Thanks to new font technologies and wide engines need less dirty tricks.} \FlushStep
209
210\stoptopic \StopSteps
211
212\StartSteps \starttopic [title={Unscripting}]
213
214    \startitem you can bet on those funny \UNICODE\ super and subscripts showing up in input \FlushStep \stopitem
215    \startitem it's a somewhat limited and unuseable lot for math (a modifier would have made more sense) \FlushStep \stopitem
216    \startitem it's one of these legacies that we need to deal with \FlushStep \stopitem
217    \startitem so the macro package needs to intercept them and map them onto proper math \FlushStep \stopitem
218
219    \vfilll \conclusion{We always need to deal with weird input, if only because standards lack.} \FlushStep
220
221\stoptopic \StopSteps
222
223\StartSteps \starttopic [title={Combining fonts}]
224
225    \startitem we can expect math fonts to be rather complete and if not, one should choose another one \FlushStep \stopitem
226    \startitem but sometimes (for simple math) you want to swap in alphabets and digits that match the text font \FlushStep \stopitem
227    \startitem given that we talk of ranges this is easy to support at the macro package level \FlushStep \stopitem
228
229    \vfilll \conclusion{Although fonts are more complete, occasional combinations should remain possible.} \FlushStep
230
231\stoptopic \StopSteps
232
233\StartSteps \starttopic [title={Tracing}]
234
235    \startitem there are lots of symbols involved \FlushStep \stopitem
236    \startitem and we have those extensibles too \FlushStep \stopitem
237    \startitem the larger the fonts get the more checking we need to do \FlushStep \stopitem
238    \startitem so macro packages need to provide some tracing options (or tables in print) \FlushStep \stopitem
239
240    \vfilll \conclusion{We keep an eye on things.} \FlushStep
241
242\stoptopic \StopSteps
243
244\stopdocument
245