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}