[cstex] nepovinný parametr

Zdenek Wagner zdenek.wagner at gmail.com
Mon Mar 2 14:03:29 CET 2009


2009/3/2 Jiricek <activeinzero at gmail.com>:
> Dobrý den,
> chtěl bych testovat výskyt nepovinného parametru #1 u příkazu v LaTeXu.
> Jakým způsobem poznám, že volitelné hranaté závorky nebyly uvedeny?
> Porovnávač textu \equal{#1}{} v podmínce z balíčku ifthen sice funguje, ale
> vypisuje mnoho chybových hlášek. (Jako defaultní hodnotu tam mám [] nic v
> hranatých závorkách.) Není na to nějaký vnitřní příkaz, něco jako
> IfOptionFilled?
>
Možností je spousta. Já často věřím tomu, že v nepoviném parametru
nikdy nemůže být matematika, tj. nebude tam dolar. Pok použiju tohle:

\ifcat$#1$ parametr není \else parametr je\fi

Pokud parametr uveden nebyl, pak #1 je prázdný, TeX vidí \ifcat$$, což
je pravda, takže se zpracují tokeny před \else. Pokud je v #1 nějaký
znak, pak \ifcat$#1 je false, vše až do \else se ignoruje a použijí se
tokeny mezi \else a \fi. Trik je v tom, že se #1 obalí dvěma znaky s
neopbvyklým \catcode. Možná ještě robustnější by bylo \ifcat_#1_,
protože matematický index sice v parametru může být, ale téměř jistě
to nebude první znak.

> _______________________________________________
> 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