+
+%%% Cviceni %%%
+
+\newcount\excount
+
+\def\exercises{\medskip
+\begingroup
+\h{Cvièení}
+\nobreak
+\excount=0
+\advance\leftskip by 1.5em
+\parindent=0pt
+}
+
+\def\endexercises{\endgroup}
+
+\long\def\exwith#1#2{\par
+\advance\excount by 1
+\>\llap{\hbox to 1.5em{\the\excount\rlap{#1}.\hfil}}%
+#2}
+
+% Cviceni obycejne a tezsi
+\def\ex{\exwith{}}
+\def\exx{\exwith{*}}
+\def\exxx{\exwith{*\kern-0.1em*}}
+
+% Napoveda, pise se pod cviceni, ale casem se bude sama sazet na jinem miste knizky
+\long\def\hint#1{\par
+\>\em{Hint:} #1}
+
+% Reseni cviceni, pise pod cviceni (a pripadne pod \hint)
+\long\def\solution#1{\par
+\>\em{Øe¹ení:} #1}
+
+%%% Odkazy na kapitoly a jine objekty %%%
+
+% Poridime si soubor, do ktereho budeme zapisovat identifikatory
+\newwrite\ids
+\def\writeid#1#2{\immediate\write\ids{\string\def\expandafter\string\csname id#1\endcsname{#2}}}
+
+\immediate\openin\ids=ids.aux
+\ifeof\ids
+\else
+\input ids.aux
+\fi
+\immediate\closein\ids
+\immediate\openout\ids=ids.aux
+
+\def\ref#1{\expandafter\ifx\csname id#1\endcsname\relax
+{\bo ??}%
+\immediate\write16{*** Warning: Reference #1 undefined ***}%
+\else
+\csname id#1\endcsname
+\fi
+}