Hlavní navigace

Názor k článku TeX pro každého - grafické nadstavy, rentabilita nasazení TeXu, barvy v TeXu od Stanislav Brabec - Dávám to sem i ke starému příspěvku: \def\loop#1\repeat{\def\body{#1}\iterate} \def\iterate{\body \let\next\iterate ...

  • Článek je starý, nové názory již nelze přidávat.
  • 25. 11. 2002 12:12

    Stanislav Brabec (neregistrovaný)

    Dávám to sem i ke starému příspěvku:

    \def\loop#1\repeat{\def\body{#1}\iterate}

    \def\iterate{\body \let\next\iterate

    \else\let\next\relax\fi \next}

    Příklad použití:

    \newcount\cnt

    \loop\ifnum\cnt<10 a\advance\cnt by1\fi

    (vypíše deset a)

    Tedy if se nachází mimo makro. TeX skutečně nemá konstrukci na cykly. Toto makro funguje tak, že:

    - nadefinuje tělo cyklu jako makro \body

    - pokud není splněna podmínka opuštění cyklu, expanduje se \next v makru \iterate opět na \iterate

    - pokud je splněna, expanduje se na \relax a expanze končí