% This macro source file is from the four volume series % "TeX in Practice" by Stephan von Bechtolsheim, published % 1993 by Springer-Verlag, New York. % Copyright 1993 Stephan von Bechtolsheim. % No warranty or liability is assumed. % This macro may be copied freely if no fees other than % media cost or shipping charges are charged and as long % as this copyright and the following source code itself % is not changed. Please see the series for further information. % % Version: 1.0 % Date: May 1, 1993 % % % This source code is documented in 12.1.3, p. II-108. % Original source in file "par3.TEX", starting line 176. \wlog{L: "x-parsh.tip" ["par3.TEX," l. 176, p. II-108]}% % This file DOES belong to format "texip." \InputD{doloop.tip} \catcode`\@ = 11 \newcount\X@ParShapeCountA \newcount\X@ParShapeCountB \newcount\X@ParShapeCountC \newdimen\X@ParShapeDimenA \newdimen\X@ParShapeDimenB \def\XParShape{% \def\X@ParShapeCollect{ }% \X@ParShapeCountC = 0 \afterassignment\X@ParShapeB \X@ParShapeCountA } \def\X@ParShapeB{% \ifnum\X@ParShapeCountA = 0 \let\@XParShapeNext = \X@ParShapeD \else \advance\X@ParShapeCountA by -1 \let\@XParShapeNext = \X@ParShapeC \fi \@XParShapeNext } \def\X@ParShapeD{% \parshape = \X@ParShapeCountC\X@ParShapeCollect } \def\X@ParShapeC #1 #2 #3 #4 #5 {% \message{\string\X@ParShapeC: #1, #2, #3, #4, #5}% \X@ParShapeDimenA = #2% \X@ParShapeDimenB = #4% \DoLoop{\X@ParShapeCountB}{1}{1}{#1}% {% \edef\X@ParShapeCollect{% \space \X@ParShapeCollect \the\X@ParShapeDimenA \space \the\X@ParShapeDimenB \space }% \advance\X@ParShapeCountC by 1 \advance\X@ParShapeDimenA by #3\relax \advance\X@ParShapeDimenB by #5\relax }% \X@ParShapeB } \catcode`\@ = 12