ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* Re: Bug: \textext inside \*MPinclusions causes error
@ 2017-01-16 19:31 Sergey Slyusarev
  2017-01-17  8:35 ` Hans Hagen
  0 siblings, 1 reply; 11+ messages in thread
From: Sergey Slyusarev @ 2017-01-16 19:31 UTC (permalink / raw)
  To: ntg-context


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

> the (subtle) difference between the two [*MPinclusions and **MPinitializations*] is not a bug but a feature

If I understood correctly, *MPinitializations affects everything and
can't be assigned to a specific instance (or can it?),
in some cases (like mine) this difference is not so subtle.

Look at the following example (not so minimal):

\startMPinitializations

picture p;

p := image(

draw fullsquare scaled 1cm;

draw textext("1");

);

\stopMPinitializations

\startMPinitializations

picture s;

s := image(

draw (fullsquare rotated 45) scaled 1cm;

draw textext("2");

);

\stopMPinitializations

\defineMPinstance[foo][initializations=yes]

\startMPcode{foo}

picture q;

q := image(

draw fullcircle scaled 1cm;

draw textext("3");

);

draw q;

\stopMPcode

\startMPcode{foo}

draw p;

draw q shifted (2cm, 0);

draw s shifted (4cm, 0);

\stopMPcode

\defineMPinstance[bar][initializations=yes]

\startMPcode{bar}

picture r;

r := image(

draw fullcircle scaled 1cm;

draw textext("4");

);

draw r;

\stopMPcode

\startMPcode{bar}

draw p;

draw r shifted (2cm, 0);

draw s shifted (4cm, 0);

\stopMPcode


First, it shows why *MPinitializations can't replace *MPinclusions for me
(it affects all instances),

and second, it silently produces produces some really unexpected results:

It looks like it should produce (by line)

A circle with "3" inside (yes)

A square with "1" inside (yes); A circle with "3" inside again (no, instead
it produces circle with "2" inside); A rhombus with "2" inside (no, instead
it produces a rhombus with "1")

and so on.

(tested on http://live.contextgarden.net/)

In fact, I failed to declare picture variable inside with text inside one
*MPcode environment and pass it to another safely

(text either disappears or changes to other text, and this time ConTeXt
returns no error), that surely is a bug?


Sergey

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

[-- Attachment #2: Type: text/plain, Size: 492 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] 11+ messages in thread

* Re: Bug: \textext inside \*MPinclusions causes error
  2017-01-16 19:31 Bug: \textext inside \*MPinclusions causes error Sergey Slyusarev
@ 2017-01-17  8:35 ` Hans Hagen
  2017-01-21 21:13   ` Sergey Slyusarev
  0 siblings, 1 reply; 11+ messages in thread
From: Hans Hagen @ 2017-01-17  8:35 UTC (permalink / raw)
  To: mailing list for ConTeXt users, cph.lmy

On 1/16/2017 8:31 PM, Sergey Slyusarev wrote:
>> the (subtle) difference between the two [*MPinclusions and */MPinitializations/] is not a bug but a feature
>
> If I understood correctly, *MPinitializations affects everything and can't be assigned to a specific instance (or can it?),
> in some cases (like mine) this difference is not so subtle.
>
> Look at the following example (not so minimal):
>
> \startMPinitializations
>
> picture p;
>
> p := image(
>
> draw fullsquare scaled 1cm;
>
> draw textext("1");
>
> );
>
> \stopMPinitializations
>
> \startMPinitializations
>
> picture s;
>
> s := image(
>
> draw (fullsquare rotated 45) scaled 1cm;
>
> draw textext("2");
>
> );
>
> \stopMPinitializations
>
> \defineMPinstance[foo][initializations=yes]
>
> \startMPcode{foo}
>
> picture q;
>
> q := image(
>
> draw fullcircle scaled 1cm;
>
> draw textext("3");
>
> );
>
> draw q;
>
> \stopMPcode
>
> \startMPcode{foo}
>
> draw p;
>
> draw q shifted (2cm, 0);
>
> draw s shifted (4cm, 0);
>
> \stopMPcode
>
> \defineMPinstance[bar][initializations=yes]
>
> \startMPcode{bar}
>
> picture r;
>
> r := image(
>
> draw fullcircle scaled 1cm;
>
> draw textext("4");
>
> );
>
> draw r;
>
> \stopMPcode
>
> \startMPcode{bar}
>
> draw p;
>
> draw r shifted (2cm, 0);
>
> draw s shifted (4cm, 0);
>
> \stopMPcode
>
>
> First, it shows why *MPinitializations can't replace *MPinclusions for
> me (it affects all instances),
>
> and second, it silently produces produces some really unexpected results:
>
> It looks like it should produce (by line)
>
> A circle with "3" inside (yes)
>
> A square with "1" inside (yes); A circle with "3" inside again (no,
> instead it produces circle with "2" inside); A rhombus with "2" inside
> (no, instead it produces a rhombus with "1")
>
> and so on.
>
> (tested on http://live.contextgarden.net/)
>
> In fact, I failed to declare picture variable inside with text inside
> one *MPcode environment and pass it to another safely
>
> (text either disappears or changes to other text, and this time ConTeXt
> returns no error), that surely is a bug?

no, it's the way it works ... but keep in mind that textexts are 
something bound to a specific code snippet so you can bets do something 
like this:

\starttext

\defineMPinstance[foo][definitions=yes]
\defineMPinstance[bar][definitions=yes]

\startMPdefinitions{foo}
     vardef p =
         image(
             draw fullsquare scaled 1cm;
             draw textext("1");
         )
     enddef ;
\stopMPdefinitions

\startMPdefinitions{bar}
     vardef p =
         image(
             draw (fullsquare rotated 45) scaled 1cm;
             draw textext("2");
         )
     enddef;
\stopMPdefinitions

\startMPcode{foo}
     draw p;
     draw image(
         draw fullcircle scaled 1cm;
         draw textext("3");
     );
     draw p;
\stopMPcode

\startMPcode{bar}
     draw p;
     draw image(
         draw fullcircle scaled 1cm;
         draw textext("4");
     );
\stopMPcode

\stoptext



-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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] 11+ messages in thread

* Re: Bug: \textext inside \*MPinclusions causes error
  2017-01-17  8:35 ` Hans Hagen
@ 2017-01-21 21:13   ` Sergey Slyusarev
  2017-01-22 12:23     ` Hans Hagen
  0 siblings, 1 reply; 11+ messages in thread
From: Sergey Slyusarev @ 2017-01-21 21:13 UTC (permalink / raw)
  To: Hans Hagen; +Cc: mailing list for ConTeXt users


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

On Tue, Jan 17, 2017 at 11:35 AM, Hans Hagen <pragma@wxs.nl> wrote:

> On 1/16/2017 8:31 PM, Sergey Slyusarev wrote:
>
>> the (subtle) difference between the two [*MPinclusions and
>>> */MPinitializations/] is not a bug but a feature
>>>
>>
>> If I understood correctly, *MPinitializations affects everything and
>> can't be assigned to a specific instance (or can it?),
>> in some cases (like mine) this difference is not so subtle.
>>
>> Look at the following example (not so minimal):
>>
>> \startMPinitializations
>>
>> picture p;
>>
>> p := image(
>>
>> draw fullsquare scaled 1cm;
>>
>> draw textext("1");
>>
>> );
>>
>> \stopMPinitializations
>>
>> \startMPinitializations
>>
>> picture s;
>>
>> s := image(
>>
>> draw (fullsquare rotated 45) scaled 1cm;
>>
>> draw textext("2");
>>
>> );
>>
>> \stopMPinitializations
>>
>> \defineMPinstance[foo][initializations=yes]
>>
>> \startMPcode{foo}
>>
>> picture q;
>>
>> q := image(
>>
>> draw fullcircle scaled 1cm;
>>
>> draw textext("3");
>>
>> );
>>
>> draw q;
>>
>> \stopMPcode
>>
>> \startMPcode{foo}
>>
>> draw p;
>>
>> draw q shifted (2cm, 0);
>>
>> draw s shifted (4cm, 0);
>>
>> \stopMPcode
>>
>> \defineMPinstance[bar][initializations=yes]
>>
>> \startMPcode{bar}
>>
>> picture r;
>>
>> r := image(
>>
>> draw fullcircle scaled 1cm;
>>
>> draw textext("4");
>>
>> );
>>
>> draw r;
>>
>> \stopMPcode
>>
>> \startMPcode{bar}
>>
>> draw p;
>>
>> draw r shifted (2cm, 0);
>>
>> draw s shifted (4cm, 0);
>>
>> \stopMPcode
>>
>>
>> First, it shows why *MPinitializations can't replace *MPinclusions for
>> me (it affects all instances),
>>
>> and second, it silently produces produces some really unexpected results:
>>
>> It looks like it should produce (by line)
>>
>> A circle with "3" inside (yes)
>>
>> A square with "1" inside (yes); A circle with "3" inside again (no,
>> instead it produces circle with "2" inside); A rhombus with "2" inside
>> (no, instead it produces a rhombus with "1")
>>
>> and so on.
>>
>> (tested on http://live.contextgarden.net/)
>>
>> In fact, I failed to declare picture variable inside with text inside
>> one *MPcode environment and pass it to another safely
>>
>> (text either disappears or changes to other text, and this time ConTeXt
>> returns no error), that surely is a bug?
>>
>
> no, it's the way it works ... but keep in mind that textexts are something
> bound to a specific code snippet so you can bets do something like this:
>
> \starttext
>
> \defineMPinstance[foo][definitions=yes]
> \defineMPinstance[bar][definitions=yes]
>
> \startMPdefinitions{foo}
>     vardef p =
>         image(
>             draw fullsquare scaled 1cm;
>             draw textext("1");
>         )
>     enddef ;
> \stopMPdefinitions
>
> \startMPdefinitions{bar}
>     vardef p =
>         image(
>             draw (fullsquare rotated 45) scaled 1cm;
>             draw textext("2");
>         )
>     enddef;
> \stopMPdefinitions
>
> \startMPcode{foo}
>     draw p;
>     draw image(
>         draw fullcircle scaled 1cm;
>         draw textext("3");
>     );
>     draw p;
> \stopMPcode
>
> \startMPcode{bar}
>     draw p;
>     draw image(
>         draw fullcircle scaled 1cm;
>         draw textext("4");
>     );
> \stopMPcode
>
> \stoptext
>
>
>
> -----------------------------------------------------------------
>                                           Hans Hagen | PRAGMA ADE
>               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
>        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
> -----------------------------------------------------------------
>

Thank you, Hans!
I thought of this solution too ( http://tex.stackexchange.com/
questions/347908/metapost-text-labels-inside-mpinclusions/348066#348066 ),
but in my particular case it didn't work, because the code inside vardef is
only executed when macro is called (while image(...) is processed
immediately). It would help if the macro could be called within
*MPdefinitions, like this:

\starttext
\startMPdefinitions
picture tmp;
vardef p =
image(
draw fullcircle scaled 5cm;
draw textext("test");
)
enddef;
tmp := image(draw p;);
\stopMPdefinitions
\startMPcode
draw p;
\stopMPcode
\stoptext

but that predictably generates the same error ("! Equation cannot be
performed (color=vacuous).").

Anyway, I solved my problem somehow (by running the code inside
*reusableMPgraphic and reusing it for the first time inside \setbox that is
never shown
https://github.com/jemmybutton/byrne-euclid/commit/8c05cc96405f0ee33e6901a7fa66b2dffcda45ad#diff-6a58985423a46a2bb439cfdf26904e5fL30
, at the cost of being unable to modify the image).
Now I see that the fact that it's almost impossible to use images with text
inside, outside of their environment of origin is not a bug, but a natural
limitation of the system, and the first message should have been not about
"bug", but more about something like "feature request". Sorry for being
hasty.

Sergey.

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

[-- Attachment #2: Type: text/plain, Size: 492 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] 11+ messages in thread

* Re: Bug: \textext inside \*MPinclusions causes error
  2017-01-21 21:13   ` Sergey Slyusarev
@ 2017-01-22 12:23     ` Hans Hagen
  2017-02-13 22:36       ` Sergey Slyusarev
  0 siblings, 1 reply; 11+ messages in thread
From: Hans Hagen @ 2017-01-22 12:23 UTC (permalink / raw)
  To: Sergey Slyusarev; +Cc: mailing list for ConTeXt users

On 1/21/2017 10:13 PM, Sergey Slyusarev wrote:
 >
 > see below

It's a single tex run so you can do:

\starttext

\newbox\MyMpBox \setbox\MyMpBox\hbox{foo}

\startMPcode
     draw textext("\copy\MyMpBox") ;
\stopMPcode

\startMPcode
     draw textext("\copy\MyMpBox") rotated 45;
\stopMPcode

\stoptext

> On Tue, Jan 17, 2017 at 11:35 AM, Hans Hagen <pragma@wxs.nl
> <mailto:pragma@wxs.nl>> wrote:
>
>     On 1/16/2017 8:31 PM, Sergey Slyusarev wrote:
>
>             the (subtle) difference between the two [*MPinclusions and
>             */MPinitializations/] is not a bug but a feature
>
>
>         If I understood correctly, *MPinitializations affects everything
>         and can't be assigned to a specific instance (or can it?),
>         in some cases (like mine) this difference is not so subtle.
>
>         Look at the following example (not so minimal):
>
>         \startMPinitializations
>
>         picture p;
>
>         p := image(
>
>         draw fullsquare scaled 1cm;
>
>         draw textext("1");
>
>         );
>
>         \stopMPinitializations
>
>         \startMPinitializations
>
>         picture s;
>
>         s := image(
>
>         draw (fullsquare rotated 45) scaled 1cm;
>
>         draw textext("2");
>
>         );
>
>         \stopMPinitializations
>
>         \defineMPinstance[foo][initializations=yes]
>
>         \startMPcode{foo}
>
>         picture q;
>
>         q := image(
>
>         draw fullcircle scaled 1cm;
>
>         draw textext("3");
>
>         );
>
>         draw q;
>
>         \stopMPcode
>
>         \startMPcode{foo}
>
>         draw p;
>
>         draw q shifted (2cm, 0);
>
>         draw s shifted (4cm, 0);
>
>         \stopMPcode
>
>         \defineMPinstance[bar][initializations=yes]
>
>         \startMPcode{bar}
>
>         picture r;
>
>         r := image(
>
>         draw fullcircle scaled 1cm;
>
>         draw textext("4");
>
>         );
>
>         draw r;
>
>         \stopMPcode
>
>         \startMPcode{bar}
>
>         draw p;
>
>         draw r shifted (2cm, 0);
>
>         draw s shifted (4cm, 0);
>
>         \stopMPcode
>
>
>         First, it shows why *MPinitializations can't replace
>         *MPinclusions for
>         me (it affects all instances),
>
>         and second, it silently produces produces some really unexpected
>         results:
>
>         It looks like it should produce (by line)
>
>         A circle with "3" inside (yes)
>
>         A square with "1" inside (yes); A circle with "3" inside again (no,
>         instead it produces circle with "2" inside); A rhombus with "2"
>         inside
>         (no, instead it produces a rhombus with "1")
>
>         and so on.
>
>         (tested on http://live.contextgarden.net/)
>
>         In fact, I failed to declare picture variable inside with text
>         inside
>         one *MPcode environment and pass it to another safely
>
>         (text either disappears or changes to other text, and this time
>         ConTeXt
>         returns no error), that surely is a bug?
>
>
>     no, it's the way it works ... but keep in mind that textexts are
>     something bound to a specific code snippet so you can bets do
>     something like this:
>
>     \starttext
>
>     \defineMPinstance[foo][definitions=yes]
>     \defineMPinstance[bar][definitions=yes]
>
>     \startMPdefinitions{foo}
>         vardef p =
>             image(
>                 draw fullsquare scaled 1cm;
>                 draw textext("1");
>             )
>         enddef ;
>     \stopMPdefinitions
>
>     \startMPdefinitions{bar}
>         vardef p =
>             image(
>                 draw (fullsquare rotated 45) scaled 1cm;
>                 draw textext("2");
>             )
>         enddef;
>     \stopMPdefinitions
>
>     \startMPcode{foo}
>         draw p;
>         draw image(
>             draw fullcircle scaled 1cm;
>             draw textext("3");
>         );
>         draw p;
>     \stopMPcode
>
>     \startMPcode{bar}
>         draw p;
>         draw image(
>             draw fullcircle scaled 1cm;
>             draw textext("4");
>         );
>     \stopMPcode
>
>     \stoptext
>
>
>
>     -----------------------------------------------------------------
>                                               Hans Hagen | PRAGMA ADE
>                   Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
>            tel: 038 477 53 69 | www.pragma-ade.nl
>     <http://www.pragma-ade.nl> | www.pragma-pod.nl
>     <http://www.pragma-pod.nl>
>     -----------------------------------------------------------------
>
>
> Thank you, Hans!
> I thought of this solution too (
> http://tex.stackexchange.com/questions/347908/metapost-text-labels-inside-mpinclusions/348066#348066
> <http://tex.stackexchange.com/questions/347908/metapost-text-labels-inside-mpinclusions/348066#348066>
> ), but in my particular case it didn't work, because the code inside
> vardef is only executed when macro is called (while image(...) is
> processed immediately). It would help if the macro could be called
> within *MPdefinitions, like this:
>
> \starttext
> \startMPdefinitions
> picture tmp;
> vardef p =
> image(
> draw fullcircle scaled 5cm;
> draw textext("test");
> )
> enddef;
> tmp := image(draw p;);
> \stopMPdefinitions
> \startMPcode
> draw p;
> \stopMPcode
> \stoptext
>
> but that predictably generates the same error ("! Equation cannot be
> performed (color=vacuous).").
>
> Anyway, I solved my problem somehow (by running the code inside
> *reusableMPgraphic and reusing it for the first time inside \setbox that
> is never shown
> https://github.com/jemmybutton/byrne-euclid/commit/8c05cc96405f0ee33e6901a7fa66b2dffcda45ad#diff-6a58985423a46a2bb439cfdf26904e5fL30
> , at the cost of being unable to modify the image).
> Now I see that the fact that it's almost impossible to use images with
> text inside, outside of their environment of origin is not a bug, but a
> natural limitation of the system, and the first message should have been
> not about "bug", but more about something like "feature request". Sorry
> for being hasty.
>
> Sergey.


-- 

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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] 11+ messages in thread

* Re: Bug: \textext inside \*MPinclusions causes error
  2017-01-22 12:23     ` Hans Hagen
@ 2017-02-13 22:36       ` Sergey Slyusarev
  2017-02-14 12:13         ` Hans Hagen
  0 siblings, 1 reply; 11+ messages in thread
From: Sergey Slyusarev @ 2017-02-13 22:36 UTC (permalink / raw)
  To: Hans Hagen; +Cc: mailing list for ConTeXt users


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

> It's a single tex run so you can do:
> \starttext
> \newbox\MyMpBox \setbox\MyMpBox\hbox{foo}
> \startMPcode
>    draw textext("\copy\MyMpBox") ;
> \stopMPcode
> \startMPcode
>    draw textext("\copy\MyMpBox") rotated 45;
> \stopMPcode
> \stoptext

This is not much different from:

\starttext

\startMPinclusions

    string t;

    t := "foo";

\stopMPinclusions

\startMPcode

    draw textext(t);

\stopMPcode

\startMPcode

    draw textext(t) rotated 45;

\stopMPcode

\stoptext


but the problem was not with passing just text, but with more complex
images that may or may not contain text, without specifically addressing
text after image is defined.

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

[-- Attachment #2: Type: text/plain, Size: 492 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] 11+ messages in thread

* Re: Bug: \textext inside \*MPinclusions causes error
  2017-02-13 22:36       ` Sergey Slyusarev
@ 2017-02-14 12:13         ` Hans Hagen
  0 siblings, 0 replies; 11+ messages in thread
From: Hans Hagen @ 2017-02-14 12:13 UTC (permalink / raw)
  To: Sergey Slyusarev; +Cc: mailing list for ConTeXt users

On 2/13/2017 11:36 PM, Sergey Slyusarev wrote:
>> It's a single tex run so you can do:
>> \starttext
>> \newbox\MyMpBox \setbox\MyMpBox\hbox{foo}
>> \startMPcode
>>    draw textext("\copy\MyMpBox") ;
>> \stopMPcode
>> \startMPcode
>>    draw textext("\copy\MyMpBox") rotated 45;
>> \stopMPcode
>> \stoptext
>
> This is not much different from:
>
> \starttext
>
> \startMPinclusions
>
>     string t;
>
>     t := "foo";
>
> \stopMPinclusions
>
> \startMPcode
>
>     draw textext(t);
>
> \stopMPcode
>
> \startMPcode
>
>     draw textext(t) rotated 45;
>
> \stopMPcode
>
> \stoptext
>
>
> but the problem was not with passing just text, but with more complex
> images that may or may not contain text, without specifically addressing
> text after image is defined.

\starttext

\startMPinclusions
     vardef my_text_t =
         textext("foo")
     enddef ;
\stopMPinclusions

\startMPcode
     draw textext(my_text_t);
\stopMPcode

\startMPcode
     draw textext(my_text_t) rotated 45;
\stopMPcode

\stoptext


-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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] 11+ messages in thread

* Re: Bug: \textext inside \*MPinclusions causes error
  2017-01-12 11:23 Sergey Slyusarev
@ 2017-01-15 17:55 ` Hans Hagen
  0 siblings, 0 replies; 11+ messages in thread
From: Hans Hagen @ 2017-01-15 17:55 UTC (permalink / raw)
  To: ntg-context

On 1/12/2017 12:23 PM, Sergey Slyusarev wrote:
>> you can use
>> \startMPinitializations
>> \stopMPinitializations
>> as these are expanded each graphic run
>
>
> Thank you! This works fine with minimal example (in which the behaviour in question appears).
> But in specific context in which this problem affects me, this solution breaks many things:
>
> There are many *MPinclusions with as many MPinstances (so variables from one instance don't contaminate another).
> (here's that place: https://github.com/jemmybutton/byrne-euclid/blob/master/preamble.tex#L30)
>
> If this is indeed a bug and it's going to be fixed one day, I'll go with some less invasive hack to overcome it,
> but if this behaviour is correct, I'll try to rewrite everything accordingly.

the (subtle) difference between the two is not a bug but a feature

> Or I got it wrong and *MPinitializations can substitute for *MPinclusions in this case?

yes

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


-- 

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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] 11+ messages in thread

* Re: Bug: \textext inside \*MPinclusions causes error
  2017-01-12  9:06 ` Hans Hagen
@ 2017-01-12 16:53   ` Alan Braslau
  0 siblings, 0 replies; 11+ messages in thread
From: Alan Braslau @ 2017-01-12 16:53 UTC (permalink / raw)
  To: mailing list for ConTeXt users

On Thu, 12 Jan 2017 10:06:09 +0100
Hans Hagen <pragma@wxs.nl> wrote:

> you can use
> 
> \startMPinitializations
> \stopMPinitializations
> 
> as these are expanded each graphic run
> 
> action           pass 1  pass 2
> 
> definitions      yes
> extensions       yes
> inclus figure     yes
> initializations  yes     yes
> metapost code    yes     yes
> end figure       yes     yes

One needs to remember that MPlib goes through several runs, and many
standard MP code examples are written for a single, mpost run. This
means that code can fail if variables, for example, are not properly
initialized (or re-initialized). Another example is reading from files
in MP, as the file descriptors are kept open by default, reading on from
where one stopped in a previous run.

Alan
___________________________________________________________________________________
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] 11+ messages in thread

* Re: Bug: \textext inside \*MPinclusions causes error
@ 2017-01-12 11:23 Sergey Slyusarev
  2017-01-15 17:55 ` Hans Hagen
  0 siblings, 1 reply; 11+ messages in thread
From: Sergey Slyusarev @ 2017-01-12 11:23 UTC (permalink / raw)
  To: ntg-context


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

> you can use
> \startMPinitializations
> \stopMPinitializations
> as these are expanded each graphic run


Thank you! This works fine with minimal example (in which the
behaviour in question appears).
But in specific context in which this problem affects me, this
solution breaks many things:

There are many *MPinclusions with as many MPinstances (so variables
from one instance don't contaminate another).
(here's that place:
https://github.com/jemmybutton/byrne-euclid/blob/master/preamble.tex#L30)

If this is indeed a bug and it's going to be fixed one day, I'll go
with some less invasive hack to overcome it,
but if this behaviour is correct, I'll try to rewrite everything accordingly.

Or I got it wrong and *MPinitializations can substitute for
*MPinclusions in this case?

Sergey

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

[-- Attachment #2: Type: text/plain, Size: 492 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] 11+ messages in thread

* Re: Bug: \textext inside \*MPinclusions causes error
  2017-01-11 22:08 Sergey Slyusarev
@ 2017-01-12  9:06 ` Hans Hagen
  2017-01-12 16:53   ` Alan Braslau
  0 siblings, 1 reply; 11+ messages in thread
From: Hans Hagen @ 2017-01-12  9:06 UTC (permalink / raw)
  To: ntg-context

On 1/11/2017 11:08 PM, Sergey Slyusarev wrote:
> Hi, i found the following bug (likely) some time ago:
>
> When \textext (or any other text generating thing like btex etex etc.)
> is present inside \*MPinclusions and \*MPinclusions are followed by
> \*MPcode ConTeXt returns error:
> Equation cannot be performed (color=vacuous).
>
> Minimal example would be:
>
> \startMPinclusions
> picture p;
> p := image(
> draw textext("Foo");
> );
> \stopMPinclusions
> \startMPcode
> \stopMPcode
>
> tested on http://live.contextgarden.net/

you can use

\startMPinitializations
\stopMPinitializations

as these are expanded each graphic run

action           pass 1  pass 2

definitions      yes
extensions       yes
inclusions       yes
begin figure     yes
initializations  yes     yes
metapost code    yes     yes
end figure       yes     yes

Hans


-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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] 11+ messages in thread

* Bug: \textext inside \*MPinclusions causes error
@ 2017-01-11 22:08 Sergey Slyusarev
  2017-01-12  9:06 ` Hans Hagen
  0 siblings, 1 reply; 11+ messages in thread
From: Sergey Slyusarev @ 2017-01-11 22:08 UTC (permalink / raw)
  To: ntg-context


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

Hi, i found the following bug (likely) some time ago:

When \textext (or any other text generating thing like btex etex etc.) is
present inside \*MPinclusions and \*MPinclusions are followed by \*MPcode
ConTeXt returns error:
Equation cannot be performed (color=vacuous).

Minimal example would be:

\startMPinclusions
picture p;
p := image(
draw textext("Foo");
);
\stopMPinclusions
\startMPcode
\stopMPcode

tested on http://live.contextgarden.net/

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

[-- Attachment #2: Type: text/plain, Size: 492 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] 11+ messages in thread

end of thread, other threads:[~2017-02-14 12:13 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-16 19:31 Bug: \textext inside \*MPinclusions causes error Sergey Slyusarev
2017-01-17  8:35 ` Hans Hagen
2017-01-21 21:13   ` Sergey Slyusarev
2017-01-22 12:23     ` Hans Hagen
2017-02-13 22:36       ` Sergey Slyusarev
2017-02-14 12:13         ` Hans Hagen
  -- strict thread matches above, loose matches on Subject: below --
2017-01-12 11:23 Sergey Slyusarev
2017-01-15 17:55 ` Hans Hagen
2017-01-11 22:08 Sergey Slyusarev
2017-01-12  9:06 ` Hans Hagen
2017-01-12 16:53   ` Alan Braslau

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).