ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* Changing font and font size inside textex
@ 2022-05-30 18:46 Stefan Nedeljkovic via ntg-context
  2022-05-30 23:31 ` Max Chernoff via ntg-context
  0 siblings, 1 reply; 5+ messages in thread
From: Stefan Nedeljkovic via ntg-context @ 2022-05-30 18:46 UTC (permalink / raw)
  To: mailing list for ConTeXt users; +Cc: Stefan Nedeljkovic


[-- Attachment #1.1: Type: text/plain, Size: 562 bytes --]

Dear list,

I want to be able to change the font and the font size inside a MPpage. But
if I try to prepend \switchtobodyfont to the text inside textext it doesn't
work. I'm using the following macro to set the font size via h-height:

\starttexdefinition setxheight [#1][#2]
    \switchtobodyfont[#1, 12pt]
    \scratchdimen=\dimexpr#2\relax
    \switchtobodyfont[#1, \cldcontext{tex.dimen.scratchdimen / tex.sp"1ex"
* tex.sp"1em" .. "sp"}]
\stoptexdefinition

But I can't figure out how to use that in MPpage.
Any help would be appreciated.

Sincerely,
Stefan

[-- Attachment #1.2: Type: text/html, Size: 765 bytes --]

[-- Attachment #2: Type: text/plain, Size: 493 bytes --]

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Changing font and font size inside textex
  2022-05-30 18:46 Changing font and font size inside textex Stefan Nedeljkovic via ntg-context
@ 2022-05-30 23:31 ` Max Chernoff via ntg-context
  2022-05-31  5:10   ` Stefan Nedeljkovic via ntg-context
  0 siblings, 1 reply; 5+ messages in thread
From: Max Chernoff via ntg-context @ 2022-05-30 23:31 UTC (permalink / raw)
  To: ntg-context; +Cc: Max Chernoff

> I'm using the following macro to set the font size via h-height:
> 
> \starttexdefinition setxheight [#1][#2]
>     \switchtobodyfont[#1, 12pt]
>     \scratchdimen=\dimexpr#2\relax
>     \switchtobodyfont[#1, \cldcontext{tex.dimen.scratchdimen / tex.sp"1ex"
> * tex.sp"1em" .. "sp"}]
> \stoptexdefinition
> 
> But I can't figure out how to use that in MPpage.

So it looks like the "\cldcontext" command doesn't work quite right
inside "textext", and it also looks like "\switchtobodyfont" doesn't
take effect until text is actually typeset when we're inside "textext".

This seems to work:

     \starttexdefinition setxheight [#1]
         \switchtobodyfont[\the\dimexpr #1 * \number\dimexpr1em\relax / \number\dimexpr1ex\relax \relax]
     \stoptexdefinition


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

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

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

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

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

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

The catch here is that you need to set the font family *before* you
start the MPpage.

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Changing font and font size inside textex
  2022-05-30 23:31 ` Max Chernoff via ntg-context
@ 2022-05-31  5:10   ` Stefan Nedeljkovic via ntg-context
  2022-05-31  7:42     ` Max Chernoff via ntg-context
  0 siblings, 1 reply; 5+ messages in thread
From: Stefan Nedeljkovic via ntg-context @ 2022-05-31  5:10 UTC (permalink / raw)
  To: Max Chernoff; +Cc: Stefan Nedeljkovic, mailing list for ConTeXt users


[-- Attachment #1.1: Type: text/plain, Size: 1817 bytes --]

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

On Tue, May 31, 2022 at 1:31 AM Max Chernoff <mseven@telus.net> wrote:

> > I'm using the following macro to set the font size via h-height:
> >
> > \starttexdefinition setxheight [#1][#2]
> >     \switchtobodyfont[#1, 12pt]
> >     \scratchdimen=\dimexpr#2\relax
> >     \switchtobodyfont[#1, \cldcontext{tex.dimen.scratchdimen /
> tex.sp"1ex"
> > * tex.sp"1em" .. "sp"}]
> > \stoptexdefinition
> >
> > But I can't figure out how to use that in MPpage.
>
> So it looks like the "\cldcontext" command doesn't work quite right
> inside "textext", and it also looks like "\switchtobodyfont" doesn't
> take effect until text is actually typeset when we're inside "textext".
>
> This seems to work:
>
>      \starttexdefinition setxheight [#1]
>          \switchtobodyfont[\the\dimexpr #1 * \number\dimexpr1em\relax /
> \number\dimexpr1ex\relax \relax]
>      \stoptexdefinition
>
>
>      \starttext
>          \switchtobodyfont[adventor]
>          \startMPpage
>              draw textext.origin("\setxheight[1cm]Hello!");
>
>              draw (0, 1cm) -- (6cm, 1cm);
>          \stopMPpage
>
>          \switchtobodyfont[pagella]
>          \startMPpage
>              draw textext.origin("\setxheight[1cm]Hello!");
>
>              draw (0, 1cm) -- (6cm, 1cm);
>          \stopMPpage
>
>          \switchtobodyfont[heros]
>          \startMPpage
>              draw textext.origin("\setxheight[6pt]Hello!");
>              draw textext.origin("\setxheight[24pt]Hello!");
>
>              draw (0, 6pt) -- (6cm, 6pt);
>              draw (0, 24pt) -- (6cm, 24pt);
>          \stopMPpage
>      \stoptext
>
> The catch here is that you need to set the font family *before* you
> start the MPpage.
>
> -- Max
>

[-- Attachment #1.2: Type: text/html, Size: 2541 bytes --]

[-- Attachment #2: Type: text/plain, Size: 493 bytes --]

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Changing font and font size inside textex
  2022-05-31  5:10   ` Stefan Nedeljkovic via ntg-context
@ 2022-05-31  7:42     ` Max Chernoff via ntg-context
  2022-05-31 13:18       ` Stefan Nedeljkovic via ntg-context
  0 siblings, 1 reply; 5+ messages in thread
From: Max Chernoff via ntg-context @ 2022-05-31  7:42 UTC (permalink / raw)
  To: Stefan Nedeljkovic; +Cc: Max Chernoff, mailing list for ConTeXt users

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Changing font and font size inside textex
  2022-05-31  7:42     ` Max Chernoff via ntg-context
@ 2022-05-31 13:18       ` Stefan Nedeljkovic via ntg-context
  0 siblings, 0 replies; 5+ messages in thread
From: Stefan Nedeljkovic via ntg-context @ 2022-05-31 13:18 UTC (permalink / raw)
  To: Max Chernoff; +Cc: Stefan Nedeljkovic, mailing list for ConTeXt users


[-- Attachment #1.1: Type: text/plain, Size: 1904 bytes --]

Thank you, I'll try that later.

On Tue, May 31, 2022 at 9:42 AM Max Chernoff <mseven@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
>
>

[-- Attachment #1.2: Type: text/html, Size: 2568 bytes --]

[-- Attachment #2: Type: text/plain, Size: 493 bytes --]

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-05-31 13:18 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-30 18:46 Changing font and font size inside textex Stefan Nedeljkovic via ntg-context
2022-05-30 23:31 ` Max Chernoff via ntg-context
2022-05-31  5:10   ` Stefan Nedeljkovic via ntg-context
2022-05-31  7:42     ` Max Chernoff via ntg-context
2022-05-31 13:18       ` Stefan Nedeljkovic via ntg-context

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).