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
On 12/15/2022 4:20 AM, Gavin via ntg-context wrote:
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? see attached ... the 'cross pages' feature is in the upcoming
----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
Hi Hans and List,
2) Can I tell \connectboxanchors to use my MetaPost code and pass key=value pairs like I do with \setMPpositiongraphic? see attached ... the 'cross pages' feature is in the upcoming
This indeed passes key=value pairs, but I cannot get it to pass mine. Is there some intermediate step? Your example has a key=value pair in \connectboxanchors and which is accessed in the MetaPost code. The pair, and MetaPost code are: rulethickness=1pt mpvard “rulethickness" However, if I change the pair and MPcode to (see attached example for full code) myrulethickness=1pt mpvard “myrulethickness" it doesn’t work. Similarly, you have a pair and MPcode that don’t match. rulecolor=darkgreen mpvars "linecolor" This may be a historical fluke, but it suggests that there is some intermediate translation that I am missing. Any way I can name and pass by own key=value pairs? Thanks! Gavin
On 12/15/2022 5:15 PM, Gavin wrote:
Hi Hans and List,
2) Can I tell \connectboxanchors to use my MetaPost code and pass key=value pairs like I do with \setMPpositiongraphic? see attached ... the 'cross pages' feature is in the upcoming
This indeed passes key=value pairs, but I cannot get it to pass mine. Is there some intermediate step? Your example has a key=value pair in \connectboxanchors and which is accessed in the MetaPost code. The pair, and MetaPost code are:
rulethickness=1pt mpvard “rulethickness"
However, if I change the pair and MPcode to (see attached example for full code)
myrulethickness=1pt mpvard “myrulethickness"
it doesn’t work. Similarly, you have a pair and MPcode that don’t match.
rulecolor=darkgreen mpvars "linecolor"
This may be a historical fluke, but it suggests that there is some intermediate translation that I am missing. Any way I can name and pass by own key=value pairs? I updated lmtx so you can test it again.
Hans ps. For the adventurous some bonus experiment in the engine: \def\ccc#1#2#3#4#5#6#7#8#9#A#B#C#D#E#F% {\def\ddd{#A-#D-#E/#F-#4-#1}% #A-#D-#E/#F-#4-#1+\ddd} so, upto 15 arguments: [[\ccc123456789abcdef]] (not that we need it in the context core, so more a gimmick for users and it fits the much is already hex approach) 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 -----------------------------------------------------------------
Hi Hans, Thanks for the new release and the nice anchoring features. I played a little bit with these, and noticed some issues: in the following example, linking the bottom bounds of the integral signs is fine (as long as numbers are put there), but for the upper bounds, the \infty and \pi/2 are not accepted (nor is any letter or greek symbol), but if one replaces \infty and \pi/2 with numbers, then the link between the upper bounds is shown. (In this example the links are invading the text, but probably this is due to the fact that I just copied the Metapost snippet you sent to Gavin). Best regards: Otared % begin anchoring-integrals.tex \starttext \startMPpositiongraphic{mypos:boxanchor:top} begingroup ; save f, t, p ; pair f, t ; path p ; f := positionxy(mpvars("from")) ; t := positionxy(mpvars("to")) ; p := f { up } .. t ; drawarrow p withpen pencircle scaled mpvard "rulethickness" withcolor mpvars "linecolor" ; % historically different names positioninregion ; endgroup ; \stopMPpositiongraphic \startMPpositiongraphic{mypos:boxanchor:bottom} begingroup ; save f, t, p ; pair f, t ; path p ; f := positionxy(mpvars("from")) ; t := positionxy(mpvars("to")) ; p := f { down } .. t ; drawarrow p withpen pencircle scaled mpvard "myrulethickness" withcolor mpvars "linecolor" ; % historically different names positioninregion ; endgroup ; \stopMPpositiongraphic \input thuan.tex \startboxanchoring[+] \connectboxanchors[top][top] [distance=1ex, rulethickness=1pt, rulecolor=darkgreen, mp=mypos:boxanchor:top]{b1}{b3} \connectboxanchors[bottom][bottom] [distance=1ex, myrulethickness=1pt, rulecolor=darkred, mp=mypos:boxanchor:bottom]{b2}{b4} \startformula \int_{\mathboxanchored[nucleus]{b2}0}^{\mathboxanchored[nucleus]{b1}\infty} \frac{\dd x}{1 + x^2} = \int_{\mathboxanchored[nucleus]{b4}0}^{\mathboxanchored[nucleus]{b3}\pi/2}(1 + \tan(\theta)^2)\frac{\dd \theta}{1 + \tan(\theta)^2} = \frac{\pi}{2} \stopformula \input thuan.tex \stopboxanchoring \stoptext % end anchoring-integrals
On 15 Dec 2022, at 18:21, Hans Hagen via ntg-context
wrote: On 12/15/2022 5:15 PM, Gavin wrote:
Hi Hans and List,
2) Can I tell \connectboxanchors to use my MetaPost code and pass key=value pairs like I do with \setMPpositiongraphic? see attached ... the 'cross pages' feature is in the upcoming This indeed passes key=value pairs, but I cannot get it to pass mine. Is there some intermediate step? Your example has a key=value pair in \connectboxanchors and which is accessed in the MetaPost code. The pair, and MetaPost code are: rulethickness=1pt mpvard “rulethickness" However, if I change the pair and MPcode to (see attached example for full code) myrulethickness=1pt mpvard “myrulethickness" it doesn’t work. Similarly, you have a pair and MPcode that don’t match. rulecolor=darkgreen mpvars "linecolor" This may be a historical fluke, but it suggests that there is some intermediate translation that I am missing. Any way I can name and pass by own key=value pairs? I updated lmtx so you can test it again.
Hans
ps. For the adventurous some bonus experiment in the engine:
\def\ccc#1#2#3#4#5#6#7#8#9#A#B#C#D#E#F% {\def\ddd{#A-#D-#E/#F-#4-#1}% #A-#D-#E/#F-#4-#1+\ddd}
so, upto 15 arguments:
[[\ccc123456789abcdef]]
(not that we need it in the context core, so more a gimmick for users and it fits the much is already hex approach)
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 / https://www.ntg.nl/mailman/listinfo/ntg-context webpage : https://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : https://contextgarden.net ___________________________________________________________________________________
Otared Kavian e-mail: otared@gmail.com Phone: +33 6 88 26 70 95
On 12/15/2022 10:54 PM, Otared Kavian via ntg-context wrote:
Hi Hans,
Thanks for the new release and the nice anchoring features.
I played a little bit with these, and noticed some issues: in the following example, linking the bottom bounds of the integral signs is fine (as long as numbers are put there), but for the upper bounds, the \infty and \pi/2 are not accepted (nor is any letter or greek symbol), but if one replaces \infty and \pi/2 with numbers, then the link between the upper bounds is shown. (In this example the links are invading the text, but probably this is due to the fact that I just copied the Metapost snippet you sent to Gavin). temp solution:
\setmathoptions\mathordinarycode\numexpr \noitaliccorrectionclassoptioncode +\checkkernpairclassoptioncode % +\flattenclassoptioncode \relax something MS and i need to discuss probably (read: if this old school tex math feature is still needed in context) 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 -----------------------------------------------------------------
On 12/15/2022 10:54 PM, Otared Kavian via ntg-context wrote:
Hi Hans,
Thanks for the new release and the nice anchoring features.
I played a little bit with these, and noticed some issues: in the following example, linking the bottom bounds of the integral signs is fine (as long as numbers are put there), but for the upper bounds, the \infty and \pi/2 are not accepted (nor is any letter or greek symbol), but if one replaces \infty and \pi/2 with numbers, then the link between the upper bounds is shown. (In this example the links are invading the text, but probably this is due to the fact that I just copied the Metapost snippet you sent to Gavin). you can pick up a binary with a safeguard from
https://build.contextgarden.net/#/waterfall?tags=c.luametatex (or compile one yourself from work) 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 -----------------------------------------------------------------
Hi Hans,
On osx-64 I'm not getting a single connector printed when compiling
anchor-002.tex. I've attached the log in case. Am I doing something wrong
on my end?
Le ven. 16 déc. 2022 à 17:56, Hans Hagen via ntg-context
Hi Hans,
Thanks for the new release and the nice anchoring features.
I played a little bit with these, and noticed some issues: in the following example, linking the bottom bounds of the integral signs is fine (as long as numbers are put there), but for the upper bounds, the \infty and \pi/2 are not accepted (nor is any letter or greek symbol), but if one replaces \infty and \pi/2 with numbers, then the link between the upper bounds is shown. (In this example the links are invading the text, but
On 12/15/2022 10:54 PM, Otared Kavian via ntg-context wrote: probably this is due to the fact that I just copied the Metapost snippet you sent to Gavin). you can pick up a binary with a safeguard from
https://build.contextgarden.net/#/waterfall?tags=c.luametatex
(or compile one yourself from work)
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 / https://www.ntg.nl/mailman/listinfo/ntg-context webpage : https://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : https://contextgarden.net
___________________________________________________________________________________
Hi Alexandre and Hans, I also get no connectors drawn when I typeset Hans’s example file, anchors-002, using, ConTeXt ver: 2022.12.15 18:12 LMTX fmt: 2022.12.21, on my M1 Mac. Same error regarding anch_box_arrows_draw. The file works fine with ConTeXt ver: 2022.12.07 20:24 LMTX fmt: 2022.12.7, except for the new cross page feature. Gavin
On Dec 18, 2022, at 4:03 AM, Alexandre Christe via ntg-context
wrote: Hi Hans,
On osx-64 I'm not getting a single connector printed when compiling anchor-002.tex. I've attached the log in case. Am I doing something wrong on my end?
Le ven. 16 déc. 2022 à 17:56, Hans Hagen via ntg-context
a écrit : On 12/15/2022 10:54 PM, Otared Kavian via ntg-context wrote: Hi Hans,
Thanks for the new release and the nice anchoring features.
I played a little bit with these, and noticed some issues: in the following example, linking the bottom bounds of the integral signs is fine (as long as numbers are put there), but for the upper bounds, the \infty and \pi/2 are not accepted (nor is any letter or greek symbol), but if one replaces \infty and \pi/2 with numbers, then the link between the upper bounds is shown. (In this example the links are invading the text, but probably this is due to the fact that I just copied the Metapost snippet you sent to Gavin). you can pick up a binary with a safeguard from
https://build.contextgarden.net/#/waterfall?tags=c.luametatex
(or compile one yourself from work)
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 / https://www.ntg.nl/mailman/listinfo/ntg-context webpage : https://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : https://contextgarden.net ___________________________________________________________________________________
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context webpage : https://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : https://contextgarden.net ___________________________________________________________________________________
Hi there I am particularly looking for a sans serif font for math and text. I am asking, since I spent a lot of time on this subject. I used Fira Math, but it is extremely buggy and in my opinion to bold and the different font weights are definitely in beta status. Is it possible to use the Computer Modern Bright font from LaTex? Best regards Oli
Hi,
Not by the computer, but you can try
\setupbodyfont[kpfonts-sans,ss]
I do not think we have tested it so much, so don't hesitate to come with
suggestions on how to improve.
Best, Mikael
Den ons 21 dec. 2022 15:38Oliver Sieber via ntg-context
Hi there
I am particularly looking for a sans serif font for math and text. I am asking, since I spent a lot of time on this subject. I used Fira Math, but it is extremely buggy and in my opinion to bold and the different font weights are definitely in beta status.
Is it possible to use the Computer Modern Bright font from LaTex?
Best regards
Oli
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context webpage : https://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : https://contextgarden.net
___________________________________________________________________________________
On 12/21/2022 3:05 PM, Gavin via ntg-context wrote:
Hi Alexandre and Hans,
I also get no connectors drawn when I typeset Hans’s example file, anchors-002, using, ConTeXt ver: 2022.12.15 18:12 LMTX fmt: 2022.12.21, on my M1 Mac. Same error regarding anch_box_arrows_draw.
The file works fine with ConTeXt ver: 2022.12.07 20:24 LMTX fmt: 2022.12.7, except for the new cross page feature.
fixed in next upload ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
participants (6)
-
Alexandre Christe
-
Gavin
-
Hans Hagen
-
Mikael Sundqvist
-
Oliver Sieber
-
Otared Kavian