[cstex] Test prázdnosti parametru u makra \long\def

Zdenek Wagner zdenek.wagner at gmail.com
Wed May 6 11:44:45 CEST 2009


2009/5/6 "Procházka Lukáš Ing. - Pontex s. r. o." <LPr at pontex.cz>:
> Zdravím v konferenci,
>
> potřebuji otestovat, zda je parametr předaný makru prázdný nebo ne.
>
> Dokud bylo makro ne-\long, vše fungovalo podle představ. Ale deklarací \long
> se objevil problém, že nedokážu otestovat, zda je parametr prázdný. Přitom
> \long deklarace je nutná, jelikož makru může být předán odstavec jako
> parametr.
>
> Testuji na těchto makrech;
>
> \def\xxx #1{ ---
>     \def\t{#1}
>     \ifx\t\empty EMPTY \else NOT EMPTY \fi
>     --- \par
> }
>
> \xxx{}
> \xxx{bbb}
>
> \long\def\yyy #1{ ---
>     \long\def\t{#1}
>     \ifx\t\empty EMPTY \else NOT EMPTY \fi % Zde je podmínka zřejmě špatně -
> ale jak správně?
>     --- \par
> }
>
Chyba je v tom, ze \t je \long, ale \empty neni \long. Musite si
nadefinovat \long\def\LongEmpty{} a testovat \ifx\t\LongEmpty.

> \yyy{}
> \yyy{ccc\par ttt}
>
>
> Výsledek je:
>
> --  EMPTY --
> --  NOT EMPTY --
> --  NOT EMPTY --
> --  NOT EMPTY --
>
> Ale potřeboval bych:
>
> --  EMPTY --
> --  NOT EMPTY --
> --  EMPTY --
> --  NOT EMPTY --
>
> Kde dělám chybu?
>
> Zdravím.
>
> Lukáš Procházka
>
>
> --
>
> Ing. Lukáš Procházka [LPr at pontex.cz <mailto:LPr at pontex.cz>]
> Pontex s. r. o.      [www.pontex.cz <http://www.pontex.cz>]
> [pontex at pontex.cz <mailto:pontex at pontex.cz>]
> Bezová 1658
> 147 14 Praha 4
>
> Tel: (+420) 244 06 22 38
> Fax: (+420) 244 46 10 38
>
>
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> http://lists.felk.cvut.cz/mailman/listinfo/cstex
>
>



-- 
Zdeněk Wagner
http://hroch486.icpf.cas.cz/wagner/
http://icebearsoft.euweb.cz



More information about the csTeX mailing list