Re: [NTG-context] Passing the parameters of a frame in an environment \startMPcode ... \stopMPcode

2020-04-20 Thread Wolfgang Schuster

Fabrice Couvreur schrieb am 20.04.2020 um 11:00:

Hi Wolfgang,
Thank you very much ; as usual your explanations are always clear and 
your approach to the problem intelligent and original. I would however 
like to know the way in which we can use the command \frameletter except 
for the rounded corners with outlinetext. For example, this doesn't work.


\startMPcode

      draw outlinetext.f
          ("\frameletter{A}")
          (withcolor darkred withpen pencircle scaled 1/10)
           rotated 5 xsized 2cm ;

\stopMPcode


Take a look at the log-file and you should see a line like this:

 begin error message
tex error   > tex error on line 8 in file ./test.tex: ! Undefined 
control sequence


 \par draw outlinetext.f ("\frameletter
 end error message

As the error message tells you the command \frameletter doesn't exist, 
you can fix this with \defineframed[frameletter]


 begin example
\defineframed [frameletter]

\starttext

\startMPcode

draw outlinetext.f
("\frameletter{A}")
(withcolor darkred withpen pencircle scaled 1/10)
rotated 5 xsized 2cm ;

\stopMPcode

\stoptext
 end example

Wolfgang
___
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
___


Re: [NTG-context] Passing the parameters of a frame in an environment \startMPcode ... \stopMPcode

2020-04-20 Thread Fabrice Couvreur
Hi Wolfgang,
Thank you very much ; as usual your explanations are always clear and your
approach to the problem intelligent and original. I would however like to
know the way in which we can use the command \frameletter except for the
rounded corners with outlinetext. For example, this doesn't work.

\startMPcode

 draw outlinetext.f
 ("\frameletter{A}")
 (withcolor darkred withpen pencircle scaled 1/10)
  rotated 5 xsized 2cm ;

\stopMPcode

Fabrice

Le lun. 20 avr. 2020 à 10:36, Wolfgang Schuster <
wolfgang.schuster.li...@gmail.com> a écrit :

> Rudolf Bahr schrieb am 20.04.2020 um 10:23:
> > On Mon, Apr 20, 2020 at 09:21:41AM +0200, Wolfgang Schuster wrote:
> >> Fabrice Couvreur schrieb am 19.04.2020 um 22:55:
> >>> Hi,
> >>> I try to reproduce the figure as faithfully as possible. I tried for
> the
> >>> rounded corners to put the key corner = round, but it does not work.
> >>
> >> 1. To create a new framed-instance you need \defineframe, \setupframed
> isn't
> >> enough to set the values.
> >>
> >> I guess you assumed this works similar to xtables but this
> mechanism sets
> >> a few values to assure \setupxtable is enough in certain cases but even
> here
> >> you need \definextable in certain cases.
> >>
> >> When you create a new instance you have to use the name of the new
> >> instance as command name, e.g. \frameletter or use the \placeframed
> command
> >> which takes the name as argument, e.g. \placeframed[frameletter].
> >>
> >> 2. You can't pass the name of a framed-instance to \framed (backwards
> >> compatibility, performance ...), this is only possible with
> \startframed.
> >>
> >> 3. ConTeXt uses different mechanism to draw rectangular (unless you
> draw a
> >> closed frame) and rounded frame and the mechanism for rounded frames
> doesn't
> >> work with outlinetext.
> >>
> >> 4. To achieve the desired result you can now a) use MetaPost to draw the
> >> complete card (letter plus frame) or b) use only TeX to put the letter
> in a
> >> frame and rotate it.
> >>
> >>  begin tex example
> >> \usecolors[svg]
> >>
> >> \defineframed
> >>[frameletter]
> >>[width=1.25em,
> >> height=1.75em,
> >> foregroundstyle=\ssbfc,
> >> corner=round,
> >> radius=0.1\bodyfontsize,
> >> rulethickness=1pt]
> >>
> >> \starttext
> >>
> >> \startTEXpage[offset=\linewidth]
> >> \dontleavehmode
> >> \rotate [rotation=5] {\color[darkred]   {\frameletter{A}}}
> >> \rotate [rotation=-5]{\color[green] {\frameletter{L}}}
> >> \rotate [rotation=5] {\color[mediumblue]{\frameletter{E}}}
> >> \rotate [rotation=-5]{\color[darkviolet]{\frameletter{A}}}
> >> \stopTEXpage
> >>
> >> \stoptext
> >>  end tex example
> >>
> >> Wolfgang
> >
> > Nice Example and good explanation, Wolfgang. But why did you use the
> command
> > "dontleavehmode"? It doesn't seem to be necessary in this example.
>
> I wrote the example without TeXpage where I needed \doneleavehmode to
> keep all cards on the same line. At the end I just added TeXpage to
> create a cropped image with with a small border and forgot to remove it.
>
> Wolfgang
>
>
> ___
> 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
>
> ___
>
___
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
___


Re: [NTG-context] Passing the parameters of a frame in an environment \startMPcode ... \stopMPcode

2020-04-20 Thread Wolfgang Schuster

Rudolf Bahr schrieb am 20.04.2020 um 10:23:

On Mon, Apr 20, 2020 at 09:21:41AM +0200, Wolfgang Schuster wrote:

Fabrice Couvreur schrieb am 19.04.2020 um 22:55:

Hi,
I try to reproduce the figure as faithfully as possible. I tried for the
rounded corners to put the key corner = round, but it does not work.


1. To create a new framed-instance you need \defineframe, \setupframed isn't
enough to set the values.

I guess you assumed this works similar to xtables but this mechanism sets
a few values to assure \setupxtable is enough in certain cases but even here
you need \definextable in certain cases.

When you create a new instance you have to use the name of the new
instance as command name, e.g. \frameletter or use the \placeframed command
which takes the name as argument, e.g. \placeframed[frameletter].

2. You can't pass the name of a framed-instance to \framed (backwards
compatibility, performance ...), this is only possible with \startframed.

3. ConTeXt uses different mechanism to draw rectangular (unless you draw a
closed frame) and rounded frame and the mechanism for rounded frames doesn't
work with outlinetext.

4. To achieve the desired result you can now a) use MetaPost to draw the
complete card (letter plus frame) or b) use only TeX to put the letter in a
frame and rotate it.

 begin tex example
\usecolors[svg]

\defineframed
   [frameletter]
   [width=1.25em,
height=1.75em,
foregroundstyle=\ssbfc,
corner=round,
radius=0.1\bodyfontsize,
rulethickness=1pt]

\starttext

\startTEXpage[offset=\linewidth]
\dontleavehmode
\rotate [rotation=5] {\color[darkred]   {\frameletter{A}}}
\rotate [rotation=-5]{\color[green] {\frameletter{L}}}
\rotate [rotation=5] {\color[mediumblue]{\frameletter{E}}}
\rotate [rotation=-5]{\color[darkviolet]{\frameletter{A}}}
\stopTEXpage

\stoptext
 end tex example

Wolfgang


Nice Example and good explanation, Wolfgang. But why did you use the command
"dontleavehmode"? It doesn't seem to be necessary in this example.


I wrote the example without TeXpage where I needed \doneleavehmode to 
keep all cards on the same line. At the end I just added TeXpage to 
create a cropped image with with a small border and forgot to remove it.


Wolfgang

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


Re: [NTG-context] Passing the parameters of a frame in an environment \startMPcode ... \stopMPcode

2020-04-20 Thread Rudolf Bahr
On Mon, Apr 20, 2020 at 09:21:41AM +0200, Wolfgang Schuster wrote:
> Fabrice Couvreur schrieb am 19.04.2020 um 22:55:
> > Hi,
> > I try to reproduce the figure as faithfully as possible. I tried for the
> > rounded corners to put the key corner = round, but it does not work.
> 
> 1. To create a new framed-instance you need \defineframe, \setupframed isn't
> enough to set the values.
> 
>I guess you assumed this works similar to xtables but this mechanism sets
> a few values to assure \setupxtable is enough in certain cases but even here
> you need \definextable in certain cases.
> 
>When you create a new instance you have to use the name of the new
> instance as command name, e.g. \frameletter or use the \placeframed command
> which takes the name as argument, e.g. \placeframed[frameletter].
> 
> 2. You can't pass the name of a framed-instance to \framed (backwards
> compatibility, performance ...), this is only possible with \startframed.
> 
> 3. ConTeXt uses different mechanism to draw rectangular (unless you draw a
> closed frame) and rounded frame and the mechanism for rounded frames doesn't
> work with outlinetext.
> 
> 4. To achieve the desired result you can now a) use MetaPost to draw the
> complete card (letter plus frame) or b) use only TeX to put the letter in a
> frame and rotate it.
> 
>  begin tex example
> \usecolors[svg]
> 
> \defineframed
>   [frameletter]
>   [width=1.25em,
>height=1.75em,
>foregroundstyle=\ssbfc,
>corner=round,
>radius=0.1\bodyfontsize,
>rulethickness=1pt]
> 
> \starttext
> 
> \startTEXpage[offset=\linewidth]
> \dontleavehmode
> \rotate [rotation=5] {\color[darkred]   {\frameletter{A}}}
> \rotate [rotation=-5]{\color[green] {\frameletter{L}}}
> \rotate [rotation=5] {\color[mediumblue]{\frameletter{E}}}
> \rotate [rotation=-5]{\color[darkviolet]{\frameletter{A}}}
> \stopTEXpage
> 
> \stoptext
>  end tex example
> 
> Wolfgang


Nice Example and good explanation, Wolfgang. But why did you use the command
"dontleavehmode"? It doesn't seem to be necessary in this example.

Rudolf
___
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
___


Re: [NTG-context] Passing the parameters of a frame in an environment \startMPcode ... \stopMPcode

2020-04-20 Thread Wolfgang Schuster

Fabrice Couvreur schrieb am 19.04.2020 um 22:55:

Hi,
I try to reproduce the figure as faithfully as possible. I tried for the 
rounded corners to put the key corner = round, but it does not work.


1. To create a new framed-instance you need \defineframe, \setupframed 
isn't enough to set the values.


   I guess you assumed this works similar to xtables but this mechanism 
sets a few values to assure \setupxtable is enough in certain cases but 
even here you need \definextable in certain cases.


   When you create a new instance you have to use the name of the new 
instance as command name, e.g. \frameletter or use the \placeframed 
command which takes the name as argument, e.g. \placeframed[frameletter].


2. You can't pass the name of a framed-instance to \framed (backwards 
compatibility, performance ...), this is only possible with \startframed.


3. ConTeXt uses different mechanism to draw rectangular (unless you draw 
a closed frame) and rounded frame and the mechanism for rounded frames 
doesn't work with outlinetext.


4. To achieve the desired result you can now a) use MetaPost to draw the 
complete card (letter plus frame) or b) use only TeX to put the letter 
in a frame and rotate it.


 begin tex example
\usecolors[svg]

\defineframed
  [frameletter]
  [width=1.25em,
   height=1.75em,
   foregroundstyle=\ssbfc,
   corner=round,
   radius=0.1\bodyfontsize,
   rulethickness=1pt]

\starttext

\startTEXpage[offset=\linewidth]
\dontleavehmode
\rotate [rotation=5] {\color[darkred]   {\frameletter{A}}}
\rotate [rotation=-5]{\color[green] {\frameletter{L}}}
\rotate [rotation=5] {\color[mediumblue]{\frameletter{E}}}
\rotate [rotation=-5]{\color[darkviolet]{\frameletter{A}}}
\stopTEXpage

\stoptext
 end tex example

Wolfgang
___
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
___


[NTG-context] Passing the parameters of a frame in an environment \startMPcode ... \stopMPcode

2020-04-19 Thread Fabrice Couvreur
Hi,
I try to reproduce the figure as faithfully as possible. I tried for the
rounded corners to put the key corner = round, but it does not work.
Thanks for your help.
Fabrice

\usecolors[xwi]
\definecolor [prune] [r=1.29,g=.20,b=.83]
\starttext
\setupframed[frameletter][corner=round,align=normal]

\startMPcode

 draw outlinetext.f
 ("\framed[frameletter]{A}")
 (withcolor darkred withpen pencircle scaled 1/10)
  rotated 5 xsized 2cm ;

 draw outlinetext.f
 ("\framed[frameletter]{L}")
 (withcolor green withpen pencircle scaled 1/10)
  rotated -5 xsized 2cm shifted (2cm,0);

 draw outlinetext.f
 ("\framed[frameletter]{E}")
 (withcolor \MPcolor{blueviolet} withpen pencircle scaled 1/10)
  rotated 5 xsized 2cm shifted (4.5cm,0);

 draw outlinetext.f
 ("\framed[frameletter]{A}")
 (withcolor \MPcolor{prune} withpen pencircle scaled 1/10)
  rotated -5 xsized 2cm shifted (6.5cm,0);

\stopMPcode

\stoptext
___
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
___