[NTG-context] Changing font and font size inside textex
Stefan Nedeljkovic
tsar.srb at gmail.com
Tue May 31 15:18:28 CEST 2022
Thank you, I'll try that later.
On Tue, May 31, 2022 at 9:42 AM Max Chernoff <mseven at telus.net> wrote:
> > 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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ntg.nl/pipermail/ntg-context/attachments/20220531/30dbed0b/attachment-0001.htm>
More information about the ntg-context
mailing list