## ifthen

Definiuje makroinstrukcje do przetwarzania warunkowego
`\ifthenelse{test}{jeśli prawda}{jeśli fałsz}`
ciąg jeśli prawda zostanie zrealizowany, jeśli wartość test będzie ,,prawdą'' (`true`), w przeciwnym wypadku zostanie zrealizowany ciąg jeśli fałsz.

Zdefiniowane są następujące makroinstrukcje i relacje:

`=` | sprawdzenie równości wartości numerycznej
`<` | mniejszy

`>`

większy

        \newcommand{\toEng}[1]{%
        \the\value{#1}%
        \ifthenelse{\value{#1} = 1}{$^{\hbox{st}}$}{}%
        \ifthenelse{\value{#1} = 2}{$^{\hbox{nd}}$}{}%
        \ifthenelse{\value{#1} = 3}{$^{\hbox{rd}}$}{}%
        \ifthenelse{\value{#1} > 3}{$^{\hbox{st}}$}{}}%
        This is the \toEng{section} section.

Daje następujący efekt: This is the section.

`\equal{str1}{str2}` | porównanie dwóch ciągów znaków
`\boolean{wartość logiczna}` | sprawdzenie wartości zmiennej logicznej (np. `\boolean{mmode}` --- czy aktualnym modem jest mod matematyczny).
`\lengthtest{test}` | służy do porównania wartości definiowanych przez polecenie `\setlength`; wewnętrz mogą być używane znaki `>`, `<` i `=`
`\isodd{liczba}` | czy wartość jest parzysta;

`\whiledo{test}{dopoki prawda}`

umożliwia zdefiniowanie pętli np.

    \newcounter{count}
    \setcounter{count}{1}
    \whiledo{\value{count} < 5}{%
        the hour is \toEng{count}{} h.\\%
        \stepcounter{count}}

daje poniższy efekt:

`\newboolean{nazwa}` | zdefiniowanie nowej zmiennej logicznej; wartość jest ustawiana na `false`
`\setboolean{nazwa}{wartość}` | ustawienie wartości zmiennej logicznej

dodatkowo w parametrze definiującym warunek można używać operatorów logicznych:

`\and`
`\or`
`\not`

oraz nawiasów

`\(` -- otwarcie struktury
`\)` -- zamknięcie struktury

Włodzimierz Macewicz

Ostatnie zmiany: 05.05.2014.