[NTG-context] clipping in metafun has weird side effects

Tobias Columbus tobias.columbus at gmail.com
Fri Oct 31 09:58:16 CET 2014


Hi again,

I tried my example from yesterday in context with metapost format, but
the output still differs from what mptopdf produces.

While doing that, I noticed that the mpost format is currently not usable out of
the box: 

\startMPcode{metapost}
  draw (0,0) -- (1cm,0) ;
\stopMPcode

produces the error message

>> mfun_first_run
>> true
! Equation cannot be performed (numeric=boolean).

and the same for 'mfun_trial_run'. Simply adding 

boolean mfun_trial_run, mfun_first_run ;

to texmf/metapost/base/mpost.mp resolved the issue for me. However, that may
introduce other complications that I have no idea of.

Tobias



On Thu, Oct 30, 2014 at 08:56:34PM +0100, Tobias Columbus wrote:
> Dear all,
> 
> I stumbled upon some very weird behaviour of clipping in metafun/context. When I
> add some clipped pictures to currentpicture and draw something dashed, some
> subsequent lines will also be drawn dashed.
> 
> This behaviour only shows up with context but not with mptopdf or mpost. I
> attached a minimal example and the corresponding output of context and mptopdf.
> 
> I tried context versions 2014.05.21 22:04 and 2014.10.29 17:47, but the result
> is the same in both.
> 
> Tobias
> 
> 
> 
> 
> -- 

> 
> vardef mycircle =
>   save c ; picture c ; c := nullpicture ;
>   addto c contour fullcircle scaled 2mm ;
>   c
> enddef ;
> 
> def a expr p =
>   path _p_ ; _p_ := p ;
>   a_impl
> enddef ;
> 
> def a_impl text t =
>   begingroup
>     save c ; picture c ; c := mycircle ;
>     clip c to bbox c scaled 0.5 ;
>     addto currentpicture also c t ;
>     addto currentpicture doublepath _p_ t ;
>   endgroup
> enddef ;
> 
> def b expr p =
>   path _p_ ; _p_ := p ;
>   b_impl
> enddef ;
> 
> def b_impl text t =
>   begingroup
>     save c; picture c ; c := mycircle ;
>     addto currentpicture also c t ;
>     addto currentpicture doublepath _p_ t ;
>   endgroup
> enddef ;
> beginfig(1)
> 
>   a (0,0) -- (1cm,0) dashed evenly ;
>   currentpicture := currentpicture shifted (2cm,0) ;
>   a (0,0) -- (1cm,0) ;
> 
>   currentpicture := currentpicture shifted (-2cm, 0.5cm );
> 
>   b (0,0) -- (1cm,0) dashed evenly ;
>   currentpicture := currentpicture shifted (2cm,0) ;
>   b (0,0) -- (1cm,0) ;
> 
> endfig ;
> end




-- 


More information about the ntg-context mailing list