![](https://secure.gravatar.com/avatar/44ca9eda7aaa681c0e3b3e90125c56b0.jpg?s=120&d=mm&r=g)
Hi, there are some problems in combination with the 'withshade' operator in mlib. this must be patched in mp-mlib.mp (':=' instead of '='; too much lua ;) vardef define_circular_shade (expr a, b, ra, rb, ca, cb) = _defined_cs_ := _defined_cs_ + 1 ; _defined_cs_pre_ [_defined_cs_] := "cs" ; _defined_cs_post_[_defined_cs_] := "0 1 " & decimal shadefactor & " " & colordecimals ca & " " & ddecimal (a shifted shadeoffset) & " " & decimal ra & " " & colordecimals cb & " " & ddecimal (b shifted shadeoffset) & " " & decimal rb ; _defined_cs_ enddef ; vardef define_linear_shade (expr a, b, ca, cb) = _defined_cs_ := _defined_cs_ + 1 ; _defined_cs_pre_ [_defined_cs_] := "ls" ; _defined_cs_post_[_defined_cs_] := "0 1 " & decimal shadefactor & " " & colordecimals ca & " " & ddecimal (a shifted shadeoffset) & " " colordecimals cb & " " & ddecimal (b shifted shadeoffset) ; _defined_cs_ enddef ; i still get an error after this patch, because '_defined_cs_' is not increased somehow (donno why, not my day; cleared mem, remade formats). _defined_cs_pre_0 is of course undefined. [..] report >> mp terminal: ! Missing argument to withshade. <to be read again> define_linear_shade <*> ...,1cm); fill p withshade define_linear_shade (p,1,red,blue); ;
unknown string _defined_cs_pre_0 ! Improper type. <to be read again> withpostscript withshade->...fined_cs_pre_[(EXPR0)]withpostscript
._defined_cs_post_[(EXPR0)] <to be read again> define_linear_shade <*> ...,1cm); fill p withshade define_linear_shade (p,1,red,blue); ;
_defined_cs_post_0define_linear_shade ! Improper type. <to be read again> ( <*> ...1cm); fill p withshade define_linear_shade( p,1,red,blue); ; ! Extra tokens will be flushed. <to be read again> ( <*> ...1cm); fill p withshade define_linear_shade( p,1,red,blue); ;
report >> mp error: unknown, no error, terminal or log messages [..] here the test code: \setupcolors[state=start] \starttext \null \startMPcode path p; p:= unitsquare xyscaled(10cm,1cm); fill p withshade define_linear_shade(p,1,red,blue); \stopMPcode \stoptext