> Meer, Hans van der > 14. Mai 2016 um 21:13 > I think I did not state the problem clear enough. > The solution given here supposes that the fontsize is known beforehand. > However, what I am doing is calculating a font size based on the > current one and than switch to that size. > It is part of a fontsize changing mechanism inside an xmlsetup. In > short what I am doing is: > > \scratchdimen=\the\dimexpr\bodyfontsize\relax > \advance\scratchdimen 'somevalue' \relax > %\definebodyfontenvironment[\the\scratchdimen] > \begingroup > % must keep the change local > \switchtobodyfont[\the\scratchdimen] > ... > \endgroup > > The commented out \definebodyfontenvironment kills a lot of the font > messages but I fear that each the time the same work is done as > without it. The only benefit being the suppression of the font > messages in the log ;-) > > It might be impossible to accomplish this efficiently -- that is > execute the font calculations once only for the given size. But at > least I would like to give it a try. > You can save time with the \definebodyfontenvironment command. In the following example context has to create a new bodyfont environment for each iteration (because the values are local to the group) to calculate the a, b, c etc. sizes which takes time but in the same loop context only has to load the predefined size. \starttext \testfeatureonce{1000} {\begingroup \switchtobodyfont[18pt] \endgroup} \definebodyfontenvironment[18pt] \testfeatureonce{1000} {\begingroup \switchtobodyfont[18pt] \endgroup} \stoptext Wolfgang