problem s \ifx
Petr Olsak
olsak at math.feld.cvut.cz
Fri May 7 14:29:44 CEST 1999
On Fri, 7 May 1999, Hynek Sladky wrote:
> Dobre odpoledne,
> potreboval jsem podminene zpracovani v TeXu/pdfTeXu.
>
> \ifx\pdfoutput\undefined \newcount\pdfoutput\pdfoutput=0
> \else \pdfoutput=1\fi
>
> Tato konstrukce probehne bez chyby v TeXu. Pri prekladu v
> pdfTeXu vypise chybovou hlasku:
> ! Incomplete \ifx; all text was ignored after line 5.
> <inserted text>
> \fi
> <to be read again>
> \newcount
> l.7 \newcount
> \pdfoutput
>
> Pokud odstranim makro \newcount, TeX chybu nezahlasi, ale
> nenadefinuje to counter \pdfoutput.
>
> Muzete mi, prosim, nekdo vysvetlit, kde delam chybu?
Makro \newcount je typu outer a nesmi byt pouzito v preskakovane casti
\if..\fi. Obejit se to da treba takto:
\ifx\pdfoutput\undefined \csname newcount\endcsname\pdfoutput\pdfoutput=0
\else \pdfoutput=1 \fi
Nebo si muzete udelat makyrko, ktere z toho \newcount "sunda" priznak
outer:
\def\noouter#1{%
\toks0=\expandafter\expandafter\expandafter{\csname#1\endcsname}%
\expandafter\edef\csname#1\endcsname{\the\toks0}}
\show\newcount % tady uvidite, ze \newcount je \outer
\noouter{newcount}
\show\newcount % tady zjistite, ze \newcount uz \outer neni
Petr Olsak
More information about the csTeX
mailing list