Aditya Mahajan wrote:
> On Sun, 2 Jul 2006, David Arnold wrote:
>
>   
>> Sanjoy,
>>
>> Of course. Thanks.
>>
>> But how about an example in latex or tex where a function eats a
>> brace and crashes, as what happens with this context code:
>>
>>  \placeformula[-]
>>  \startformula
>>  [9,\infty)=\{x:\,x\ge 9\}
>>  \stopformula
>>
>> I know I've seen this in Latex before, but I can't remember where.
>>     
>
> \begin{equation}
>   \begin{aligned}
>     [g,\infty)=\{...\}
>   \end{aligned}
> \end{equation}
>
> The package mathtools enforces that the optional arguments of aligned 
> et al. should come in the same line, that is
>
> \begin{aligned}[t] takes "t" as an optional arguments which
>
> \begin{aligned}
> [t]
>   
that only can work if one gives the end of line characters a different 
catcode; a side effect is that the lookahead may fail when the formula 
is passed in a macro so it will never be robust
> does not.
>
> I do not think that this can be ever enforced in Context, because a 
> lot of Context code is written like
>
> \definesomething
>    [somename]
>    [some options]
>
> \dosingleempty et al, could be changed to stop scanning on a newline, 
> but I am certain it will break some of the internals.
>   
indeed,

for tex (unless one messes around with the endline char)

\define[]
\define []
\define      []
\define
  []

is the same, and in order to be consistent, context even does some 
explicit testing so that intermediate newlines and spaces are gobbles 
(when non standard), think of:

\define[][]
\define[] []
\define []
  []

why should we treat spaces between \define [] and [] [] differently?

anyhow, it dates back a long time, is rather optimized, and will not change

Hans


_______________________________________________
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context

Reply via email to