# [NTG-context] Mathematical MetaFun Mania

Gavin gavinpublic at comcast.net
Thu Dec 15 04:20:39 CET 2022

```Hello MetaFun Math Lovers,

I am using MetaFun to attach diagrams to formulas. Both the physics and the typesetting are going great! I attached a sample below, to give a taste of what I am trying to do. This page of actual calculations has examples of almost everything I need. It’s a lot, but it is all working. Right now the interface is terrible, but effective. Thanks to Hans and Mikael for many helpful hints!

I am still using \hpos and \setMPpositiongraphic, because I haven't figured out how to pass information from \mathboxanchored and \connectboxanchors to my MetaPost code. Here is the code for the connectors:

\startMPpositiongraphic{mypos:contract}
path pa, pb, pab ; numeric na, nb ; string ta, tb, hand, product ;
ta := mpvars("from") ;
tb := mpvars("to") ;
stemshiftfrom := (EmWidth/8)*mpvarn("startstem") ;
stemshiftto   := (EmWidth/8)*mpvarn("stopstem") ;
hand := mpvars("hand") ;
product := mpvars("product") ;
delta := mpvard("distance") ;
na := positionpage(ta) ; % page number of a
nb := positionpage(tb) ; % page number of b
pa := positionbox(ta) ;  % box of a
pb := positionbox(tb) ;  % box of b
if hand = "right" :
z1 = 0.5[llcorner pa,lrcorner pa] shifted (stemshiftfrom, -ExHeight/4) ;
z2 = 0.5[llcorner pb,lrcorner pb] shifted (stemshiftto,   -ExHeight/4) ;
y3 = min(y1,y2) - ExHeight/2 -delta;
else :
z1 = 0.5[ulcorner pa,urcorner pa] shifted (stemshiftfrom,  ExHeight/4) ;
z2 = 0.5[ulcorner pb,urcorner pb] shifted (stemshiftto,    ExHeight/4) ;
y3 = max(y1,y2) + ExHeight/2 +delta;
fi ;
if na = nb : % Check that positions are on the same page
pickup pencircle scaled 0.6pt ;
if product = "sym" :
draw z1 -- (x1,y3+ExHeight/2) ;
draw z2 -- (x2,y3+ExHeight/2) ;
pickup pencircle scaled 1.2pt ;
draw (x1-EmWidth/8,y3) -- (x2+EmWidth/8,y3) ;
else :
pab := z1 -- (x1,y3) -- (x2,y3) -- z2{down} ;
draw pab ;
fi ;
positioninregion ;
fi ;
\stopMPpositiongraphic

A connector command might look something like this:

\setMPpositiongraphic{X-1}{mypos:contract}{to=X-2,product=sym,startstem=-2,stopstem=2,distance=0.5ex}

All of the key=value pairs in the last argument of \setMPpositiongraphic pop right up in my MetaPost code with mpvar(“key”). I haven’t been able to follow this with \mathboxanchored and \connectboxanchors. My two questions are:

1) Can I use \setMPpositiongraphic with \mathboxanchored? That would allow me to go straight to my MetaPost code without the \connectboxanchors interface

2) Can I tell \connectboxanchors to use my MetaPost code and pass key=value pairs like I do with \setMPpositiongraphic?

Thanks for any hints!
Gavin

-------------- next part --------------
A non-text attachment was scrubbed...
Name: hposQuestion.pdf
Type: application/pdf
Size: 23616 bytes
Desc: not available
URL: <http://mailman.ntg.nl/pipermail/ntg-context/attachments/20221214/c51a2311/attachment-0001.pdf>
-------------- next part --------------

```