super serialek!
uvital bych jeste nejake priklady z praxe - Bajt je udajne sazel v TeXu, PDF verze Linuxovych novin pravdepodobne taky, mozna toho bude vic.
Slo by techle par prikladu vzit a nejak nastinit, jak to delali? Ne podrobne, spis jenom jako natuknuti, co si precist, na co dat pozor. Zajima me hlavne takove ten prechod od zacatecnika k necemu profesionalnejsimu. Vsude jsou bud trivialni examply, anebo naprosto neprehledne pro profiky.
Psal jsem komentar i ke druhemu dilu, ale tam to uz asi mesic nikdo necte, tak to jeste zkusim tady:
Ja jsem sice v zivote v TeXu neprogramoval, ale ten priklad s definici makra \loop se mi nejak nelibi. Nejvic asi proto, ze tam je \else a \fi, ale neni tam \if, takze to v me hlave neproslo syntaktickou analyzou. ;-) Krome toho jsem nepochopil, co dela \repeat, kdyz je nad tim napsano, ze TeX nema zadnou konstrukci na cykly. Za vysvetleni dekuji.
PS. Serial je jinak sqelej, diky za nej! :)
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čí