[NTG-context] \hpos in math - Half solved

Hans Hagen j.hagen at freedom.nl
Thu Dec 8 22:47:03 CET 2022

On 12/8/2022 8:54 PM, Otared Kavian via ntg-context wrote:
> Hi Hans, Mikael,
> These features are amazing! Many many thanks!
> Thanks also to Gavin for having stated so precisely these kinds of needs, so that Hans and Mikael could come up with this solution.
> Gavin, good luck with your project, and plaese share what you get at the end.
For the record: this features is already there for a while, we also have 
some matrix specific trickery as well as for instance annotated fences 
and so. However, the interfaces will evolve and eventually get 
documented in the upcoming (big) math manual. It's mostly a matter of 
consistent interfacing i.e. it has to fit into the way we do things in 
context (it's of course easy to come up with a quick and dirty ugly non 
extensible and non standard interface).

What is new in the latest greatest is (1) namespaces, so that one can 
reuse the references, which Gavin needs, and (2) sourcing a nucleus 
and/or the whole atom including scripts, which Gavin also needs. Some 
more granularity might show up depending on needs. As some depends on 
the tex engine there are limitations (performance, memory and complexity 
constraints: adding features like these might definitely not impact 

Source and target properties were added in order to avoid interference 
with math spacing but can also be used in text, where they are part of 
the larger package of box properties that was already around.


     \setbox 0 \ruledhbox
         source  123
         anchors 1 2
     \setbox 2 \ruledhbox
         target 123
         {test 1}

     \dontleavehmode \box2 \box0

     \setbox 0 \ruledhbox
         target      124
         orientation 2
         anchors     1 4
         xoffset    -10pt
     \setbox 2 \ruledhbox
         source 124
         {test 2}

     \dontleavehmode \box2 \box0


With sources and targets one has to keep in mind that they don't 
participate in the box dimensions! Although excessive usage puts some 
strain on the backend in practice it probably goes unnoticed.  Also, be 
careful with the source and target id's! There is currently no low level 
allocation mechanism so stick to positive numbers.

So, lots to play with, if you're in the mood,


(There is quite some experimental code around but to what extend it ends 
up in the core depends on demand, time, motivation etc. As you can 
guess, Mikael and I having a lot of math fun is motivating.)

                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl

More information about the ntg-context mailing list