On Wed, Jun 1, 2011 at 3:52 PM, Mojca Miklavec
<[email protected]> wrote:
> On Wed, Jun 1, 2011 at 15:36, Wolfgang Schuster wrote:
>>
>> Am 01.06.2011 um 15:26 schrieb Mojca Miklavec:
>>
>>> Dear magitians,
>>>
>>> I discovered this in LaTeX, but ConTeXt behaves the same (plain TeX
>>> behaves differently). Can somebody please explain me why this code
>>> fails to work? (A workaround is to move \newif on top which I'm
>>> willing to do, but I'm still curious.)
>>>
>>> \starttext
>>>
>>> \ifx\hbox\undefined
>>>  \message{invisible to tex}
>>>  \newif\ifabc \abcfalse
>>>  \ifabc \message{abc true breaks} \else \message{abc false breaks} \fi
>>> \fi
>>>
>>> \stoptext
>>>
>>>
>>> systems         : begin file iftest at line 1
>>> abc false breaks
>>> ! Extra \fi.
>>> l.7 \fi
>>
>> The \ifx ends with the first \fi
>
> I figured that out, but I still find it very weird.
>
>> from \ifabc which isn’t defined and
>> ignored by TeX
>
> This part somehow makes sense (TeX should not keep defining stuff and
> writing out stuff) ...
>
>> the last \fi is left which generates the error message
>
> The code works when using \ifx\hboxx\undefined ... But despite the
> explanation, this is very very very weird. Or to quote Taco: "The
> trick of TeX being bug-free is that all the bugs and limitations are
> documented." I hope that this behaviour is documented in TeXbook.
>
> To some extent this resembles
> /* I want to comment out this code
>   c = a + b;
>   /* a more complex equation */
>   c = a * b;
> */
> but it is not quite the same.
see TeX by Topic e.g.
13.7 Evaluation of conditionals


-- 
luigi
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : [email protected] / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to