![](https://secure.gravatar.com/avatar/c5ae4f9aa0d3a9bd5376e92b322c3e50.jpg?s=120&d=mm&r=g)
I am writing a module which uses metapost in the background for drawing. I wanted to create an interface for setting the style and color of metapost labels but using \doset...attributes is not working. Here is an example: \definenamespace [test] [style=yes, name=test, command=yes, setup=yes] \definetest [blue] [color=blue, text=Blue] \definetest [two] [blue] [style=\bold, text=Two] \starttext \edef\currenttest{two} \startMPdrawing label.lft(\sometxt{\dosettestattributes{style}{color} \testparameter{text}}, (0,0)) ; \stopMPdrawing \edef\currenttest{blue} \startMPdrawing label.lft(\sometxt{\dosettestattributes{color}{style} \testparameter{text}}, (2cm,0)) ; \stopMPdrawing \MPdrawingdonetrue\getMPdrawing \stoptext Notice that the first label has the same style as the last label. This is happening because \doset..attributes is defined as an unexpandable macro. I can get around this by setting the value of \currenttest inside the \sometxt{...} argument. Something like: \def\dosometxt#1#2% {\normaldosometxt{#1}% {\def\noexpand\letterbackslash currenttest{\currenttest #2}}} Surely, there should be a more direct way of achieving this? Aditya