Thanks Max that works perfectly! But It would still be useful if I could change families inside a MPpage.

Sure, but you'll need to store the x-heights first:

    \starttexdefinition storexheight [#1]
        % Placing the first use of \switchtobodyfont inside a group messes
        % with the definitions, so we need to reset the font family manually.
        \edef\oldfontclass{\fontclass}

        \switchtobodyfont[#1]
        \expandafter\newcount\csname #1_xheight\endcsname
        \global\csname #1_xheight\endcsname=\numexpr 100 * 
\number\dimexpr1em\relax / \number\dimexpr1ex\relax \relax

        \switchtobodyfont[\oldfontclass]
    \stoptexdefinition

    \starttexdefinition setxheight [#1][#2]
        % Combining these two lines into one sometimes fails. No idea why.
        \switchtobodyfont[#1]
        \switchtobodyfont[\the\dimexpr#2 * \csname #1_xheight\endcsname / 100 
\relax]
    \stoptexdefinition

    \storexheight[adventor]
    \storexheight[pagella]
    \storexheight[heros]

    \starttext
        \startMPpage
            draw textext.origin("\setxheight[adventor][1cm]Hello!");

            draw (0, 1cm) -- (6cm, 1cm);
        \stopMPpage

        \startMPpage
            draw textext.origin("\setxheight[pagella][1cm]Hello!");

            draw (0, 1cm) -- (6cm, 1cm);
        \stopMPpage

        \startMPpage
            draw textext.origin("\setxheight[heros][6pt]Hello!");
            draw textext.origin("\setxheight[heros][24pt]Hello!");

            draw (0, 6pt) -- (6cm, 6pt);
            draw (0, 24pt) -- (6cm, 24pt);
        \stopMPpage
    \stoptext

It's pretty ugly code, but it seems to work alright.

-- Max

___________________________________________________________________________________
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
___________________________________________________________________________________

Reply via email to