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