From: Martin Mares Date: Tue, 5 Jun 2018 20:57:23 +0000 (+0200) Subject: ucw-algo: More customizable parameters X-Git-Tag: v1.99~1^2~18 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=1b2fdb338bf50410001853b35d05f5883bd9b076;p=ucwmac.git ucw-algo: More customizable parameters --- diff --git a/ucw-algo.tex b/ucw-algo.tex index f15d24b..cb65f04 100644 --- a/ucw-algo.tex +++ b/ucw-algo.tex @@ -19,7 +19,19 @@ \localedef{en}{alg:in}{Input} \localedef{en}{alg:out}{Output} -% Spacing (customizable) +% Item indent +\newdimen\algoindent +\algoindent=2em + +% Extra indent for nested items +\newdimen\algonestindent +\algonestindent=2em + +% Width of item label +\newdimen\algolabelwidth +\algolabelwidth=0.5em + +% Set up spacing (customizable) \def\algospacing{ \itemnarrow=\itemindent \interitemskip=1pt @@ -27,6 +39,19 @@ \postitemizeskip=\dimexpr \bigskipamount - \parskip \relax } +% Set up paragraph mode for a single step of the algorithm (customizable) +\def\algopar{ + \par + \parindent=\algoindent + \hangindent=\algoindent + \advance\hangindent by \algolabelwidth + \hangafter=1 + \leavevmode +} + +% Typeset step label (customizable) +\def\algostep#1{\hbox to \algolabelwidth{\hss #1~~}} + \def\algoinit{ \goodbreak \begingroup @@ -45,23 +70,15 @@ \def\endalgo{\goodbreak\endlist\endgroup} \let\endproc=\endalgo -\def\algopar{ - \par - \parindent=2em - \hangindent=2.5em % \parindent + width of box for the step number - \hangafter=1 - \leavevmode -} - \def\algoitem{% \ifnum\itemcount=0\par\nobreak\smallskip\fi \algopar\advance\itemcount by 1 - \hbox to 0.5em{\hss \the\itemcount.~~}% + \algostep{\the\itemcount.}% \futurelet\next\algoitemh } \def\algoitemh{\ifx\next:\let\next=\algohang\else\let\next=\algoitemgo\fi\next} -\def\algohang:{\advance\hangindent by 2em \hskip 2em\futurelet\next\algoitemh} +\def\algohang:{\advance\hangindent by \algonestindent \hskip \algonestindent\futurelet\next\algoitemh} \optdef\algoitemgo{\ifx\addid\undefined\else\addid{item}{\the\itemcount}\fi} \def\algin{\par\nobreak{\it \localestr{alg:in}:\/} }