The problem with vertical spacing in \frac and \over is fixed. Many thanks, Hans!
Alan On Wed, Jun 10, 2020 at 4:03 AM Hans Hagen <j.ha...@xs4all.nl> wrote: > Hi, > > I uploaded a new version. There have been no changes to the typesetting > machinery although we're still in the process of finetuning some updated > low level macros. There was a fix in the font machinery (thanks to Kai) > but that will probably go unnoticed as the issue has been there for years. > > Now, that doesn't mean that nothing has been changed. First of all there > is a new data related mechanism. After Wolfgang had updated the > definition files it became official. It was on the agenda for a while > but finally a nice solution surfaced. > > The new thing is luatables that obey grouping. Normally what you do at > the lua end is kind of global, but there can be cases where you really > want it to behave like tex: obeying \bgroup/\egroup, { } etc. The > examples given below show that you can create them at the tex end and > access them in tex as well as lua. > > \starttext > > \dorecurse {100} { > \setdatavalue{#1}{#1} > } > > \start \tttf \darkred \raggedright \dorecurse {100} { > #1=\scratchcounter\getdatavalue{#1}\the\scratchcounter > } \par \stop \blank > > \start \tttf \darkgreen \raggedright \dorecurse {100} { > #1=\thedatavalue{#1}% > } \par \stop \blank > > \bgroup \tttf > \newluatable\testtable > \setluatable\testtable{ foo = 123, bar = "456", oof = "rab" } > % \inspectluatable\testtable > \darkblue > foo = \getfromluatable\testtable{foo}\par > bar = \getfromluatable\testtable{bar}\par > oof = \getfromluatable\testtable{oof}\blank > \bgroup > \useluatable\testtable > \setluatable\testtable{ foo = 123123, bar = "456456" } > % \inspectluatable\testtable > \darkmagenta > foo = \getfromluatable\testtable{foo}\par > bar = \getfromluatable\testtable{bar}\par > oof = \getfromluatable\testtable{oof}\blank > \startluacode > local t = context.luatables.get("testtable") > print(t.foo,t.bar,t.oof) > \stopluacode > \egroup > \darkyellow > foo = \getfromluatable\testtable{foo}\par > bar = \getfromluatable\testtable{bar}\par > oof = \getfromluatable\testtable{oof}\blank > \startluacode > local t = context.luatables.get("testtable") > print(t.foo,t.bar,t.oof) > \stopluacode > % \inspectluatable\testtable > \egroup > > \bgroup \tttf > \newluatable\moretable > \setluatable\moretable{ 1, "foo" } > \darkblue > [1] = \getfromluatable\moretable{1}\par > [2] = \idxfromluatable\moretable 2 \blank > \bgroup > \useluatable\moretable > \setluatable\moretable{ foo = 123123, bar = "456456" } > \darkmagenta > [1] = \getfromluatable\moretable{1}\par > [2] = \idxfromluatable\moretable 2 \blank > \startluacode > local t = context.luatables.get("moretable") > print(t[1],t[2]) > \stopluacode > \egroup > \darkyellow > [1] = \getfromluatable\moretable{1}\par > [2] = \idxfromluatable\moretable 2 \blank > \startluacode > local t = context.luatables.get("moretable") > print(t[1],t[2]) > \stopluacode > \egroup > > \stoptext > > This is only available in lmtx (until i see a real reason to cook up an > alternative for mkiv, which is unlikely as no context code depends on > this being available, at least not now). The datavalue macro you see > there can be used to create massive amounts of numeric variable > independent of counters, not that we really need it, but it was very > cheap to implement. > > At the engine level there also have been some changes but these should > not be visible for users. We just mention: > > - extensions to the macro definition and expansion mechanisms (for > instance optional arguments, optional delimiters, and silent error > recovery; there will be some explanation in the evenmore document and at > some point - when stable - in the manual) .. this permits some cleaner > low level code; only things were done that had no impact on performance > (as macro definition and expansion is used a lot) and didn't make the > code messy (it actually became cleaner) > > - some additional substring (ok, tex has no string, just tokens) parsing > capabilities with optional tokens, which again permits a bit cleaner low > level code > > - a slightly reorganized handling of tokens (one of tex's basic data > structures) in the lua token interface so that we get a more meaningful > and robust subsystem (basically getting rid of funny numbers) ... this > also will be discussed in an evenmore chapter .. not that users need it > (i think) > > - as a side effect (or necessity) some low level recoding (and > abstraction) had to happen but as far as we can see it works ok (i admit > it was a slow, tedious job with lots of intermediate testing on the > suite to make sure nothign was broken) .. in the end it was all doable > because most of the preparation was already done over the last years > > - in the process we got rid of a traditional tex data structure that was > left over from the 32 bit times but no longer needed in our 64 bit > luatex/luametatex universe (i might backport that simplification to > luatex some day) ... it discards some checking and saves the same amount > of memory that we had on the early day pc's (where we ran whole tex jobs > in that amount) > > Of course ... all kind of small improvenments ... hopefully for the best, > > Hans > > > ----------------------------------------------------------------- > Hans Hagen | PRAGMA ADE > Ridderstraat 27 | 8061 GH Hasselt | The Netherlands > tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl > ----------------------------------------------------------------- > > ___________________________________________________________________________________ > If your question is of interest to others as well, please add an entry to > the Wiki! > > maillist : ntg-context@ntg.nl / > http://www.ntg.nl/mailman/listinfo/ntg-context > webpage : http://www.pragma-ade.nl / http://context.aanhet.net > archive : https://bitbucket.org/phg/context-mirror/commits/ > wiki : http://contextgarden.net > > ___________________________________________________________________________________ >
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________