2007/4/11, Aditya Mahajan <adityam@umich.edu>:
On Thu, 22 Mar 2007, Taco Hoekwater wrote:

> Wolfgang Werners-Lucchini wrote:
>> Hallo!
>>
>> The following simple example doesn't compile
>> (ConTeXt ver. 2007.01.02 and Live ConTeXt).
>>
>> What am I doing wrong?
>
> Diagnostics:
>
> The problem is not caused by the \framed, but by the (lack of)
> parsing done by the buffering routines.
> Because the \startformula is not expanded, TeX does not realise
> you are in math mode, so it objects to the ^ character.
>
>
> This is 'not right' but I suspect it is not all that simple
> to fix the context core to do this properly (I would love to be
> proved wrong).

This is a serious bug. Even a simple example fails with the same
error.

\starttext
\framed{
\startformula
x^2 = x\cdot x
\stopformula}
\stoptext

A quick workaround is to use frametext instead of framed, but I am
pretty sure that the above example used to work at some stage.

Aditya

Hi Aditya,

it is more a problem related to horizontal and vertical modes/boxes, you can
test it by placing \startformula .. \startformula into a hbox/vbox and only the
vbox solution works.

This is working

\vbox
  {\startformula
   x^2 = x\cdot x
   \stopformula}

This fails

\hbox
  {\startformula
  x^2 = x\cdot x
  \stopformula}

You can use disply math in a frame by setting explivied values for width
and height of the frame.

\framed
  [width=5cm,height=4cm]
  {\startformula
   x^2 = x\cdot x
   \stopformula}

This solution works also in combination with a buffer

\startbuffer
\startformula
x^2 = x\cdot x
\stopformula
\stopbuffer

\framed[width=6cm,height=4cm]{\getbuffer}


Wolfgang