Oliver Buerschaper schrieb:
The bounding box of the graphic is set on the base line. So you have to add some artificial depth to the graphic.
\starttext
\startreusableMPgraphic{tetrahedral} begingroup
save u;
u := 10pt; draw (0,0)--(2u,0)--(u,sqrt(3)*u)--cycle; draw boundingbox currentpicture withpen pensquare scaled .1; endgroup; \stopreusableMPgraphic
\def\Tetrahedral{\lower5pt\hbox{\reuseMPgraphic{tetrahedral}}}% needs some fiddling :)
\startformula \Phi(\Tetrahedral)=F_{kln}^{ijm}\,v_iv_jv_kv_l\, \delta_{j^*nk^*}\,\delta_{l^*n^*i^*}\,\Phi(\emptyset) \stopformula
\stoptext
That's exactly what I was looking for … thanks very much!
Out of curiosity just a few questions … why do you use grouping in the MetaPost code and why do you draw the bounding box explicitly? When I was experimenting with your suggestion a bit I tried leaving out those two commands at some point and surprisingly things still looked fine … And what's the difference between \startreusableMPgraphic and \startuseMPgraphic? Does caching play a role?
I do grouping just by habit (btw: a 'save u;' is missing). Without grouping your variables simply overwrite prior defined ones. With grouping all saved(!) variables are restored after endgroup (attention: don't ever forget the simicolon after endgroup). And you are right, grouping is not really needed in a simple context. Coming to the bounding box; it's just for debugging. My first try was to 'reduce' the height of the bounding box (all stuff beneath the base line is then drawn outside the final bounding box). But when I thought about subscript this was no longer an option. Anyhow, here is the code: \startreusableMPgraphic{tetrahedral} begingroup save bb,d,u; u := 10pt; draw ((0,0)--(2u,0)--(u,sqrt(3)*u)--cycle) ; d := 0.25u; % depth path bb; bb:= boundingbox currentpicture; setbounds currentpicture to unitsquare xyscaled(xpart point 2 of bb,ypart point 2 of bb -d) yshifted d; draw boundingbox currentpicture withpen pensquare scaled .1; endgroup; \stopreusableMPgraphic 3-------2 | | bounding box | | and it's points 0-------1 The extreme points of the complete graphic determine the size of the bounding box. The relative position of the complete graphic (where it is drawn) has no influence on that. This is why a single fullcircle gives you the same graphic as a single unitcircle. All your questions about the different graphic types are aswered in the 'Metafun' manual, 'Integrated graphics' on pages 111-114. Best wishes, Peter
Thanks again, Oliver ___________________________________________________________________________________ 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://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________