Poradi radku
Pavel Calábek
calabek at aix.upol.cz
Thu Oct 20 13:41:33 CEST 2005
> Dobry den,
> mam nasledujici zdrojovy text pro plainTeX:
>
> \let\otazka=\line
> \otazka{derivace}
> \otazka{vektory}
> \otazka{vyroky}
>
> ....
>
> \otazka{nerovnice}
> \bye
>
> Jsou to temata matur. otazek z matematiky :-)
> Potrebuji je na vystupu zprehazet (aspon trochu, aby nebyly zasebou).
>
> dekuji
> --
Treba by se dalo udelat toto
%%%%%%%%%%%%%%
\newbox\Otazky
\newbox\Runda
\newcount\poc
%%%%%%%%%%%%%%%%%%%%%%
potom by se dalo predefinovat \otazka tak aby
do vboxu \Otazky pridala otazku
%%%%%%%%%%%%%%%%%%%%%%%%%%
\setbox\Otazky=\vbox{}
\def\otazka#1{\setbox\Otazky=\vbox{\unvbox\Otazky\line{#1}}}
%%%%%%%%%%%%%%%%%%%%%%%%
Potom bychokm si mohli definovat makro \Usporadej s jednim
ciselnym parametrem #1, ktere box \Otazky rozdeli do skupin
po #1 prvcích (od konce) a tyto skupiny nacte od konce
%%%%%%%%%%%%%%%%%%%%%%%
\def\Usporadej#1{%
\setbox0=\vbox{%
\unvbox\Otazky
\global\setbox\Otazky=\vbox{}
\setbox\Runda=\vbox{}
\poc=#1
\loop
\setbox1=\lastbox
\unskip
\ifhbox1
\global\setbox\Runda=\vbox{\box1\unvbox\Runda}
\global\advance\poc by -1
\ifnum\poc=0
\global\setbox\Otazky=\vbox{\unvbox\Otazky\unvbox\Runda}
\global\setbox\Runda=\vbox{}
\global\poc=#1
\fi
\repeat
\global\setbox\Otazky=\vbox{\unvbox\Otazky\unvbox\Runda}
}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
a potom si muzeme nadefinovat makro \provedvsechny, ktere pro vsechna cisla ve svem argumentu
ukoncena znakem ":" provede makro \Usporadej
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\provedvsechny{\let\next=\opakuj \next}
\def\opakuj #1{%
\if :#1\let\next=\relax
\else \Usporadej{#1}%
\fi
\next}
%%%%%%%%%%%%%%%%%%%%%%%%%
a potom uz si staci nejakym zpusobem vygenerovat nahodny argument
pro \provedvsechny a dost tezko nekdo najde system v otazkach
Napriklad:
%%%%%%%%%%%%%%%%%%%%%%%%
\setbox\Otazky=\vbox{
\hbox{1}
\hbox{2}
\hbox{3}
\hbox{4}
\hbox{5}
\hbox{6}
\hbox{7}
\hbox{8}
\hbox{9}
\hbox{10}
\hbox{11}
\hbox{12}
\hbox{13}
\hbox{14}
\hbox{15}
}
\Usporadej4
\unvcopy\Otazky
******************
\provedvsechny56{12}27:
\unvbox\Otazky
%%%%%%%%%%%%%%%%%%%%%%%%%
calabek
More information about the csTeX
mailing list